谈谈今天的一次面试...
发布于 9个月前 作者 fanxiong 1502 次浏览

我们最近在招聘nodejs方面的人才。所以,今天有位求职者过来面试,34岁,年纪不小了,8年工作经验,看上去也是很资深的样子。于是跟他聊了一些技术话题,发现很多问题:

  1. 对一些基本概念理解有太多的误差。 1.1 混淆第三方包和标准库 这位求职者用socket.io写了个类似webQQ的聊天工具,然后把所有的功劳都归到nodejs上面,对siocket.io是一个第三方包含混不清。 1.2 混淆HTTP协议和webSocket协议 导致此兄认为C/S与B/S间的差异就在于可否长连接上。
  2. 对语言没有认真思考 2.1 对js语言特性没有概念 此兄在nodejs和java/C#之间的区别上不知所云。也不能详述nodejs的优劣。也就是说:我会用js编程,但不知道为什么要用js编程!
  3. 也犯些常见性毛病 3.1 拿着锤子,看什么都是钉子 这对很多程序员都很类似,对自己掌握的一门技术,爱它爱得要死,干什么都用它。但这跟前一个问题很相关,如果不清楚这种工具的好处,那有时候干活儿就很笨拙,就像拿了把钳子去拧螺丝一样,虽然能勉强拧动,但那不是最合适的工具,效率会大打折扣!甚至会把螺丝拧坏。 3.2 学习不够 一个人工作了7、8年,如果没有对IT技术有个全面而又深刻的认识,那就很难有什么竞争力了!那些后起之秀将很快上来超越,这些后浪在知识、经验、认知、性价比、可用性等方面具备更大的优势。而对IT技术的全面认识可以从两种渠道获得:工作经验和自我学习,有时需要以行业交流来补充
  • 工作经验跟自己所在公司有关,公司业务如果很单一,那员工技能就很难扩展。
  • 自我学习是不受限的,自我学习可以自由安排,挑选自己感兴趣、有价值的知识内容。
  • 行业交流往往是通过头脑风暴的形式进行,可以快速扩展眼界。 所以,如果在20~30岁间没有经过大量阅读,广泛学习,那么后面的路就很难往下走!招聘方绝对不会因为你简历上写着10年+的工作经验就直接招聘进来。相反,他的要求会更高,因为很自然的会觉得你应该懂得更多,涉猎更广,技术更扎实,工作作风更规范。

在这里跟大家聊这些,并不是为了批评这个人,或者展示我的高明,而是希望陈述一些IT人常见的问题,表达我对IT从业者的观点。在我读别人批评的文章时,常常会自我对照,看看是不是自己有他批评的那些问题,以便弥补。因为自己常常看不到自己身上的缺点,不交流就不知道外面的世界还很宽广。 我们还在招聘,有效期至2014年7月底。如果你技术不错,可以发送简历过来。详情见:http://cnodejs.org/topic/53141c252a5b081d6c0cd6ce

22 回复

只会 CoffeeScript 的表示省去了对比不同语言之间纠结的麻烦…

趁现在还没有太多压力和束缚的时候,多学点,深入点,总没错。

coffeeScript只是通过新增很多语法糖的方式,解决一些ECMAScript语法复杂的问题,其本质还是js。而且不支持除js外的其他语言。

希望你能实践下去!也祝你成功!

学习了一段时间,不过看了你对这位面试者的描述,感觉我比他强很多了。 已经写了一个多人博客了,不过还在慢慢的更新中,上班没时间好好写啊。当我完成了这个博客就要换工作了…

@fanxiong 嗯… 不过某种程度上说也支持 Lua

楼主年轻气盛啊,楼主的路以后会很短! 招聘的目的是什么?不是你把各个应聘人员的技术比下去,然后在这里德比德比,找到你需要的人就OK了。

欢迎过来试试!

有的人是请来做一线开发的,能磊代码就行,薪水给个7,8K就不错了。但我们是要请人过来做高级的工作,解决复杂问题,创造并实施符合业务需求的服务的。 把某人比下去,达到心理满足,那就永远找不到人!

文字很中肯!

  1. 其实大部分人并不适合干程序员,只是因为好找工作、工资高就进来了!

  2. 7-8年的程序员,如果全职转nodejs,只有2种情况,

    1. 特别牛跨学科多语言混编。
    2. 在原来领域混不下去了,停止不前。
  3. 中国的程序员,大都是实用主义者,只用会,而不知道为什么用。这也是生存压力大,所带来的非常不好现状。天天加班忙着改代码加功能,而没有时间去学习和理解原理。

  4. 中国的程序员,在大学里浪费了太多的时间,很多是毕业以后上个培训班就业的,底子太差,但自我感觉良好。

  5. 编程语言的使用门槛在降低,特别是Node,花个1-2天时间,新手就能实现一个web。本来应该知道的通信层、协议层、设计模式等的基础知识,都被框架封装了。所以,真正挑出来的高手,有1%就不错了。

很赞成您的观点。 我曾问我们公司的前辈 什么是 依赖注入,他们都会讲一些漫天不相关的,搞得我更迷惑了。他们工作上也仅是能完成功能,但是底层知识很少会很深入的讲出来

你的大部分观点我都很同意! 其实很厉害的IT从业者还是不少的,在一些知名的公司里,那里有很高的进入门槛,很好的技术氛围,更多的学习、实践和交流的机会、也有更多的高水平同事,环境与个体良性促进,成长出一批优秀的人。 那些不在优秀公司里的精英也有,他们往往是有强烈的追求,坚持不懈的奋斗,这种由内而外的驱动力也可促使自己成长为精英!我们很欣赏这类型的精英!

@fanxiong 这类精英不到整个从业人员的1%,而且身在舒适、能成长的环境中,也不会轻易愿意出来创业的。 希望你的公司也能够培养更多的优秀程序员!祝招聘顺利!

@nicholasxjy 必须掌握一门底层的语言,比如C++、Java,你才能真正了解,为什么Node会这么容易学。 面试的时候,如果能以跨学科多语言的角度来“问”或“答”,就能掌握面试整个过程了,进退自如。

水一句 1.喜欢并愿意持续深入 2.有能力应用 感觉面试者能证明给面试官这两个问题就足够了,但往往又不那么简单

我好像认识一个这样的人,啊哈哈

挺好的,这里面也有我不足的地方,赶紧充电去了~

总结的很好!我毕业工作有八九个月了,学校学习的C/C++,后来工作用了几个月的C#,现在在用JS做nodejs的开发,个人感觉确实nodejs的应用门槛很低,很容易上手,但是深入下去就会觉得在很多问题上会有限制,因为把很多实现方法、思路都封装好了,反而需要花很多功夫调研一些问题的产生原因或者是否有第三方包能很好实现想要的功能。这和以前学习C++的感觉明显不一样,C++可能有繁杂的开发过程,较多的底层处理,但是正因为足够底层,实现功能的逻辑和方法都可以较自由的控制,所以大部分问题都可以很快确定能否解决以及如何解决。 另外,,,工作这段时间深深体会到了加班的危害,因为自我学习是需要时间和精力的。您面试的人不一定没想过要好好学习新的知识,扎实理论基础,实际上他很可能是被加班耽误了青春。 人之过,己之鉴,不能放弃学习啊。

像你这样刚刚工作的新人,如果能先进行些底层的接触,对个方面基础知识掌握牢固,后面的工作就很容易。这种自下而上的认识过程,对后面的理解速度有很大的帮助。相反,自上而下的认识会相对慢很多。 加班是个问题,所以自己一定要掌握好时间。无论如何也要抽出些时间来学习。以前听闻松下辛之助(也许记得不准确)深夜酒后回家还要读一段时间的书。这多难得! 另外,加班还是要适当拒绝。一是要正确认识自己的价值,不能将自己的宝贵时间全放在公司上面;二是要为自己健康着想;更好的方式是将时间用在加速增长自己价值的事情上。以最快的时间登到顶峰!

挺好的。 这个行业本来就是这样 。有些人所谓的10年经验,不过是一个经验用了10年而已 。其实什么语言都不简单,要看你做到什么程度了。 如果你只是为了输出个hello,打开vs的时间,node.js已经运行好了。 你不懂基本的原理,那你永远都只是一个使用者,而不是开发者。楼主也没有看不起谁,抬高自己的意思,就是说说整个行业的现状,给年轻人一些进步的经验。语言本身没有强弱之分,强弱在于使用的人。

回到顶部