关于野生程序员面试的故事与思考

Posted Java程序员联盟

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于野生程序员面试的故事与思考相关的知识,希望对你有一定的参考价值。

 

      在招聘前端工程师的时候,我们对应聘者的要求是,在掌握基本前端技术的前提下,最好有更为全面的技术。这样,即使我们的项目人力结构、平台和方向发生变化的时候,他也能够更加灵活地转移到其他角色中。而且技术的全面更能表现一个人对技术的热情以及较强的学习能力。从团队多样性来讲,多一些技术种类的话,大家在一起也能碰撞出新的火花。


  有一次,我在 QQ 群发布了一条简单的信息:“招聘前端工程师,全栈更佳。”随后有一个“全栈工程师”A君向我自荐。

  我问他:“我们的职位是前端工程师,那么您有哪些前端方面的技能呢?”他回答:“我擅长 html、CSS 和 javascript。”

  “对于 Web 性能优化,您有哪些了解和经验吗?”他思索了一阵答道:“我们在发布项目之前压缩 CSS 和 JavaScript 源代码,这样文件体积就变小了,用户加载必要资源所花的时间也就更短了。”我继续说道,很好,还有吗?他想了半天,答不上来了。


  其实关于 Web 性能优化,有非常多的方面可以去做,我希望应聘者能尽量多回答一些。

  我想既然他对 Web 性能优化方面不太熟悉,可能他是一个偏后台的程序员,因而就又问道:“关于服务器端 MVC 架构的技术实现,您是怎样理解的?”他说:“是数据模型、视图、控制器的分离。”

  我更进一步问道:“这种架构方式有什么好处?您在项目中是如何应用这一架构的?”他回答说:“MVC 的架构方式会让项目可维护性更高,所有涉及界面的代码都在视图(View)里面,所有涉及核心逻辑的代码都在模型(Model)里面,URL 路由之类的代码都在控制器(Controller)里面。我在项目中使用了 MVC 架构的 php 框架——CodeIgniter。”

  好吧,我想这是一个典型的“知易行难”的开发者,他知道采用 MVC 架构的项目的可维护性更高,可是在分离样式与结构上面还没有达到最基本的要求,甚至把 CSS 写在 HTML 中。至于他说的在本地环境上发现 CSS 文件经常缓存,可能要看看本地服务器的缓存设置是否有问题,然后再做调试。稍微了解一点 HTTP 的浏览器端缓存,这就不是难事了。我更欣赏在开发流程上花工夫去理解和优化的应聘者,而不是马马虎虎,只是以完成需求为目标的人。

  我突然想到他说的“所有需求他都能完成,且只有他能完成”,于是就想问问他代码版本管理方面的问题。我说:“您们团队现在加入了两个新人,那么您们如何进行代码版本管理?”他回答:“我们有一台测试服务器,用 FTP 来测试代码,如果在测试机上没有问题的话,我们就会发布到生产环境。”

  我说:“等等,我不是问您们代码部署的问题,是平时您们如何管理代码版本,如何分工协作的?”他说:“我们把代码从测试服务器上拷下来,修改完了之后再传上去。”

  到这里,我终于明白为什么他们团队的新人无法快速融入项目了,因为项目没有使用 SVN 或者 Git 这样的版本管理工具。团队只有一个人在写代码的时候,缺乏版本管理工具的问题可能还不会暴露出来,但是当更多成员加入时,整个项目就会寸步难行,大家都要花大量的时间合并代码,以及找回丢失的代码。万一出现了外网 bug,版本工具也能帮我们把站点状态快速恢复到之前的时间点。

  最后我抱着几乎绝望的心情,问了下关系数据库设计原则方面的问题,他的回答也不是很理想。


  我知道,我又遭遇了“野生程序员”。

  什么是“野生程序员”

  所谓“野生程序员”,就是没有计算机基础知识和相关教育经历,靠着对计算机开发的兴趣进入这个行业,虽然知识面比较广,但是各方面都一知半解的开发者

  这几年我从一个求职者,转变成一个招聘者,有一个感受就是,中国高等教育与市场需求不接轨。学校不了解市场究竟需要什么样的人才,其设立的课程和技术往往比市场技术现状落后了 5 年以上。我在大学学习用 ASP 建站,但是现在已经几乎没有人用 ASP 建站了。一个直接的后果是,很多高校毕业生不能满足企业的要求。

  与此同时,中国互联网市场蓬勃发展,特别是移动互联网的发力,让中国跳过“WAP 时代”,直接进入“App 时代”。市场的热钱都投入到互联网行业,“BAT”等大公司不断扩张,创业公司也如雨后春笋,整个市场对软件工程师的需求缺口巨大,所以很多公司在招人的时候,没法招聘到“专业”的计算机专业毕业生。

  在美国,因为教育与市场稳定发展了很多年,供求关系相对平衡,计算机相关专业本科已经成为基本要求。举例而言,美国的硅谷公司(如 Google)绝大部分前端开发招聘岗位都有一个最低要求——本科学历,计算机相关专业。

  相比而言,从中国的大公司(如腾讯)的招聘网站上可以看出,有一些前端开发岗位没有对学历的要求,也有一些要求“本科及以上学历”,少数才会要求“本科学历,计算机相关专业”。我们的团队中就有一些成员是大专学历。许多企业在招聘的时候往往放松了对学历的要求,只看重项目和经验,而不看重学历。这是一件好事,代表市场在高等教育的规模和质量都跟不上市场要求的情况下,给予更多有兴趣和能力的年轻人进入 IT 领域的机会,也填补了人才市场的空缺。


  美国硅谷,是世界互联网公司的中心,是所有求职者梦寐以求的圣地。在最开始,硅谷之所以名字当中有一个“硅”字,是因为当地企业多数是从事加工制造高浓度硅的半导体行业和电脑工业。随后,互联网公司和软件公司渐渐取代传统的硬件公司,让硅谷获得了新的生命,但硅谷这个名字保留了下来。在硅谷从诞生到发展壮大的整个生命周期中,斯坦福大学起到了很大的作用,我认为称之为硅谷的母亲也不为过。

  在中国,由于政策、环境、历史原因,还有大学教育投入上的差异,导致大学在整个互联网发展中起的作用没那么大。中美两国 IT 人才市场供求关系上的这些差别,也反映在整个行业文化中。

  一个直观的反映就是软件工程师的“草根”化。其实很多软件工程师的收入都很高,处于中上层水平,相比金融行业的白领也毫不逊色,但是一谈起程序员,大家的印象还是“一年四季的T恤(在行业展会上免费拿的)牛仔裤,平时也喜欢宅在家里,不会像同样收入的金融白领,平时爱好听歌剧打高尔夫球”。这种差异一方面是外部人士对软件工程师职业的偏见,另一方面也是程序员行业的自惯。在招聘时岗位要求就已经放到最低:不要求学历、上班不要求着装、上下班时间灵活,这样才好更方便地招聘。而金融行业有意识地塑造一种“精英”文化,从学历就设置高门槛,即使有些工作根本不需要那么高的学历。



声明:文章来自网络分享,文图版权、观点归原作者所有,平台只提供参考。
更多精彩
关注我们

以上是关于关于野生程序员面试的故事与思考的主要内容,如果未能解决你的问题,请参考以下文章

关于程序员的几点思考

关于程序员中年危机的一个真实案例

大牛程序员面试名企被嫌学历低,HR:我们不招野生程序猿

一个关于女程序媛从落榜到逆袭的故事,拥有它,你也可以

这里有6个关于BAT程序员面试的经验分享!

你要面试一个程序员,应该问他啥问题