阿里大佬分享面试体会

192 阅读5分钟
原文链接: mp.weixin.qq.com

本文是好友爱斯基摩海带写的,并且经过作者同意发的原创!爱斯基摩海带,转载请注明原创出处,谢谢!

看大家在零群里面提到了不少面试的问题,作为一个老程序员,跟大家分享一些自己的体会:

特质

先想想自己期望中的团队和同事具备哪些特质,然后让自己向着这些方面努力;

换个角度

跳开求职者的角色,想想如果你是团队的Leader,你想要招什么样的人(比如 聪明,钻研,潜力,韧性等等等等),其实面试官问你的那些具体问题,都是在试图评估前面的目标,他一定不会直接问你“你聪明么?”,这样的问题没有意义;

公司阶段

不同阶段公司的侧重点是不同的,对于初创型公司,最重视的是能立刻上手干活,应对快速变化的市场和方向;对于高速发展中的较成熟企业(类似滴滴、小米),商业模式基本清晰,技术进入深水区,效率和管理也成为急需解决的问题,开始关注人的发展和潜力,说白了就是要找牛人和潜力新星,但牛人(在当前阶段急需补足的特定领域有资深经验的人,比如算法,虚拟化技术,研发效能等)要较潜力新星更侧重一些;最后就是成熟大厂(BAT这种),除了对技术前沿的布局(例如AI、区块链、量子计算等)所需的专业人才之外,牛人和潜力新星的侧重基本持平。拿阿里举例,前几年是“平凡人做非凡事”,近两年更多的是“非凡人做非凡事”,团队TL招人的时候,也会很重视潜力(牛人也会看潜力,你能成为更牛的人的潜力),而且基本会考虑招的新人要在团队中同层级中位以上;

重视基础

重视基础,重视基础,重视基础!重要的事情说三遍,大家一定要重视基础,不要被琳琅满目的新技术花了眼,数据结构、算法、编译原理、操作系统、概率论/线性代数等等,这些面试的时候未必会考,但对他们的深入理解会帮你未来走的更高;

潜力

首先要定义什么是潜力,这个其实挺虚的,我一般会比较看重:对技术的热情和热爱(真心感兴趣才能更可能走得更远),乐观&韧性(不管做什么都必然会有挫折,有成功和失败,坚持才是答案,哈哈),认知和思考的能力(是否形成了自己的认知体系,能层层剥茧找到事物的本质),勤奋(加班不是勤奋,思考上的懒惰才是真正的懒惰)。举个特别简单的例子,面试时候常常会问道 StringBuilder和“+” 连接字符串的差别,估计一般人都能答出来,甚至还有同学研究过StringBuilder的源码,但下一个问题如果是“为什么Java中String要设计成 immutable的?和C++中的可变字符串相比,二者的优劣是什么?”,就不是所有人都能说出个所以然了。如果没答上,面试官可能会有不同的推论:(1) 技术好奇心可能不够,科班出身的大多都学过C++,对String这么关键的一个类,Java设计中如此重要的变化都没有引发好奇去探究;(2) 认知能力可能不够,对比是认知的重要手段;上面只是举例说明,即使没答上也不会盖棺定论,好的面试官会关注发掘面试者的优势(因为好的团队是“用人之长”而非“揭人之短”),对关心的特质也会多角度去佐证。

回答问题技巧

被问到不了解的问题不要慌:

  • 不知道就说不知道,不要绕和试图遮掩,大家都是做技术的,技术上的事,做没做过,会不会,一目了然。如果不懂装懂,绕来绕去,会让人觉得未来跟你合作会很累;

  • 对知识型问题,就是那种知道就是知道不知道就是不知道的问题(比如中国有多少个省级行政区),直接说不知道就好了。但对于认知型、问题解决型之类的问题,一定要根据自己已有的知识和经验给出自己的思考和解决方案,比如你可能从来没解决过线上的OOM问题,但你学习过JVM虚拟机的知识,被问到时你可以跟面试官说:“我没实际处理过,但如果遇到你说的问题,这样解决应该可行…..”。

关于这个多说几句,线上的OOM问题如何处理,这个问题本身可能面试官并不care(根据他的业务特点可能很少遇到类似问题,或者团队已有这方面的高手),重要的是这些:

  • 如果你处理过,那你对细节是否了解,是否形成自己的一套方法论,是否总结了问题分类和常见解法跳出解决问题迈向避免问题等等,这能从侧面反映你的认知能力和钻研能力;

  • 如果你没处理过,你能否根据已有的经验和知识给出不错的解决思路(侧面反映你的思考能力和举一反三的能力,以及解决新问题的能力)

  • 另外,有一些不明确的点一定要和面试官确认,比如,现象的一些细节,线上环境的配置等等,不要做主观假设,这其实也是很重要的方面,如果你解决问题都是靠猜和主观假设,很难让人放心.

先写到这吧,希望对大家能起到一点帮助 :),欢迎大家积极讨论。


如果读完觉得有收获的话,欢迎点赞、关注、加公众号【匠心零度】,查阅更多精彩历史!!!