网络上关于面试技术问题的文章层出不穷,感觉再写此类文章的意义不大,而且“八股文”有时候真的无法分辨一个人的真实能力。所以我想写写面试中除了考察技术之外,我通常比较喜欢问候选人的一些问题。
此类问题一般是了解对方的技术热情如何,是不是喜欢思考,有没有好奇心,是否只顾完成任务以及对软件开发有没有一个清晰的认识,另外我觉得工作观念是否合拍、融入团队的能力也非常重要,因为我相信一个快乐工作的团队,产出质效一定更高。
我也在问题下写明了每个问题的潜台词,即我希望考察的点,当然这些问题必然是没有标准答案的,但是基本都是即使没做过准备也能答上一些内容的主观问题,不像技术问题可能就是会与不会两种情况。
如何候选人能将以下问题都答得不错(面试肯定没有全问),技术方面我就认为问题不大了,至少潜力十足。
问题列表:
1.都说算法没用,你怎么看,你有使用或者了解算法在前端中的实际落地使用场景吗?举例说明
(我想知道你是否会人云亦云,对一些知名的、有争议性的“谣言”,有去了解、调研吗?即使不了解,也会从候选人对算法的态度考量他的技术性格)
2.js是动态类型的好处和弊端,为什么有的语言要有类型,有的又不用?
(我想知道候选人有没有从宏观了解过每天使用的编程语言以及对高级语言底层实现的思考,而不是总纠结于各种api调用,同时也侧面考察你有没有横向了解过其他语言,若能延伸到对ts的观点最好了)
3.通俗的描述下vue和react分别带给你什么感受?
(想看看候选人的表达、描述抽象事物能力,对框架的整体认识;另一个好处是即使候选人只会其中之一,也应该对另一个有些许的了解和印象,不妨碍回答这个问题,如果完全一点都不了解,我会对候选人的技术热情产生疑虑,如此主流的技术为何看都不看一眼?)
4.你觉得一个好的前端和普通的前端,可以从哪些点体现?
(其实这个问题很广,一方面如果候选人有积极学习提升自己,肯定能答出很多他自己进阶的目标和观点;另一方面其实可以延伸他是否做到了回答的点,为什么没做到等来考察候选人对自己优缺点的认知)
5.我个人反对加班,但是你觉得什么情况下加班是合理的?你之前加班是出于什么原因
(考量责任心,这算是我个人非常看重的一点,看看对方过往经历和工作节奏如何、是否匹配。没事耗着加班不走是我比较反感的同事类型,同时这也是一个敏感的问题可以看看候选人的情商如何)
6.当你学习一项新的技术栈的时候,你通常怎么开始?
(考察候选人是否有经常学习、学习方法是否合理、有没有善于总结经验)
7.作为软件工程师,你的成就感通常来源于哪些方面?可以举例说明
(这个好理解,就是看看候选人的过往经历是否有亮点可以发掘,另外技术热情源自于何处,是真喜欢还是假“热情”,通常回答可以延伸到选择前端的原因)
8.你如何看待团队定期的技术分享这种行为
(看看候选人独狼还是团队作战,有没有团队精神,技术自私、技术自负的人,我个人不喜欢)
9.要求前端会后端,你如何看待这种情况?
(看看你认为自己vue/react工程师?前端工程师?还是软件工程师?不会可以学,但如果你的态度比较排斥,那可能不太合适我。ps:我前端团队成员都会1-2门后端语言,技术建设中也会使用)
10.你觉得一个好的团队,有哪些要点,或者聊聊什么样的团队会吸引你/让你厌恶
(侧面看看候选人对我们有没有兴趣,以及对团队的认知。面试双向选择嘛,如果我比较认可对方,我会问这个问题)
11.你技术上的短板是什么,为什么存在
(比较尖锐的问题,字面意思)
12.同事问到你不会的或者不了解的技术问题,你怎么处理
(我希望候选人是一个真诚的人)
13.有没有什么找bug的技巧或者经验分享
(培训班刚出来包装简历的人往往很难回答好这个问题,其实很少筛选出这种简历,但是还是会保险问一下,我并不歧视培训班出来的朋友,但是包装简历,经验造假不可取)
14.你觉得前端领域中,那些场景比较有挑战性,技术深度足够
(字面意思,看看候选人的技术方向感和规划如何)
15.如何看待老项目里遗留的垃圾代码
(看看候选人的态度是否有职业精神)
最后
也欢迎大家带着思考一起讨论这些问题,或者有面试官朋友也可以交流下你所认为的“好问题”。