面试的故事(用人单位为什么问你一些关乎项目上层,优化之类的问题)
用人单位不是在用一个总监的要求来面试你,而是在用一个热爱这个行业的程序员要求来要求你。
面试的时候,一般都会问你擅长什么,避免询问你不擅长的领域。回答是精通Java,那我一定会从整个Java体系来询问,如果你都不知道Tomcat和JBoss有什么区别,那很抱歉,我不觉得你精通Java。
什么?老子会Spring、Struct、Hibernate,知道反射了解GC还不算精通?答案是,也许真的精通,但肯定不热爱。我要招的是真心热爱这个行业的人。如果你认为会这些就是热爱,那我只能说你从未真正的爱过(不好意思,扣帽子了,但毕竟是我在招人)。
技术热情也分很多种,常见的是“纯的技术热情”和”技术与业务的结合”,这两种都会分开来看。“纯的技术热情”大家比较好理解,你精通这个领域,那你就必须知道这个领域的方方面面,而且在这些方面中要有自己的一技之长。
“技术与业务的结合”这个就比较难了,一般是进一步的现场面试,考核你的抽象总结能力和视野[以及你对这个现状的思考]。常见的就是让你画出整个公司的产品技术架构图,让你描述出核心模型、核心模块、以及他们之间是怎么协作,然后你觉得这样的架构(系统架构、产品架构)有什么优势和劣势。
热爱的人,一定会有自己的思考和观点。热爱和精通,真的有很大很大的区别。
这里分享一个我校园招聘的例子:
[候选学生]:
你好,这些是我在学校期间的作品。
[面试官]:
请问你在学校的学习成绩、竞赛情况、年级排名、有什么专业的学术论文发表在哪里?
[候选学生]:
大学的东西你又不是不知道,虚的很多,还不如我自己实践。你看比尔盖茨大学都没毕业…
[面试官]:
我关注的是这个人对他职业的态度,学生的职业是学习,在学习过程中领悟到学习的技巧和艺术,考核你学习的结果最好的方式就是你最不看好的成绩和排名;
很抱歉的说,你在学校里面学到的编程一个普通员工在培训之后在实战中几个月就能追上,几个月之后你还有什么社会竞争价值?其实你最大的价值就是在学习和思考的能力,所以这也是我重点关注的内容。