程序员面试中最常见的27个问题,拿走不谢!
Posted 来Offer网
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了程序员面试中最常见的27个问题,拿走不谢!相关的知识,希望对你有一定的参考价值。
程序员的面试不同于一般岗位的面试。
当你在羡慕程序员十几万美金年薪的同时,你却不知道他们在应付面试时,要经历的重重磨难和压力。
今天,我们就来总结一下程序员面试时最常见的27道问题。
HR Phone Screen
![程序员面试中最常见的27个问题,拿走不谢!](https://image.cha138.com/20210501/6591afebfebe49899eb35f8ba2010f00.jpg)
Phone Screen,一般是提交简历后,面试开始的第一步,由公司HR负责。
目的是了解一下候选人的背景,为下一步tech interview做准备。
常见问题如下:
1. 你为什么对本公司的这个职位感兴趣?
这一问HR主要想考察你有没有做好“功课”,事先研究了解过公司。
2. 你有没有用过本公司常用的编程语言?
![程序员面试中最常见的27个问题,拿走不谢!](https://image.cha138.com/20210501/4d78261a945943a3b81c2e3fbd495515.jpg)
但你也要告诉HR你自己会的语言,并表示有能力学习新的语言。
3. 你有没有做过什么项目?
简明扼要。直接简洁地描述你参与过的项目和在里面扮演的角色。
4. 你有没有领导别人的经验?
这一题的答案不仅仅局限于技术上的领导力。如果你在学校里有过志愿者活动的领导经验,都可以说。
尽可能地将你以前的领导经验和你要申请的职位联系起来。
![程序员面试中最常见的27个问题,拿走不谢!](https://image.cha138.com/20210501/86f71e633db24510a33a9f11e824a35a.jpg)
5. 为什么你要离开现在的公司?
你可以坦率地说出你的想法,但答案不要仅仅围绕在钱和利益上。
你可以从职场文化、创意实践,解决现实问题的满意度等几个角度来回答这题。
![程序员面试中最常见的27个问题,拿走不谢!](https://image.cha138.com/20210501/e361bef2e64b4549bc1cead2f23cb16c.jpg)
注意,跟HR的面试,并不需要你深入地探讨一些技术上的问题和经验。
要做到简明扼要,不要让HR睡着了。
![程序员面试中最常见的27个问题,拿走不谢!](https://image.cha138.com/20210501/eea6d1cfa1ba4ee6b95e11a5276301d0.jpg)
Onsite Interview
![程序员面试中最常见的27个问题,拿走不谢!](https://image.cha138.com/20210501/968f8ec1c586483b9b8f188edfbdf893.jpg)
当你顺利通过了HR的phone screen、或是之后的technical phone interview后,你有可能面临一个4-5轮的Onsite Interiew。
面试官会从项目经历、行为、文化、技术、coding等几个角度来全方位了解候选人。
01
Experiential Questions
6. 在给其他团队成员reveiw code时,你觉得最重要的是什么?
这题的答案没有明确的对与错,目的是为了检验你的知识,以及你是否可以表达好code review的过程。
回答角度可以围绕:
Functionality
Readability
Maintainability
Security
Simplicity
Regulatory requirements
Resource optimization
7. 描述一下你写代码的全部过程。
面试官想知道你在写代码时,是否有一个清晰的流程,并确保你的工作方式是有组织的,而不是杂乱无章的。
![程序员面试中最常见的27个问题,拿走不谢!](https://image.cha138.com/20210501/16b80f657a0349a8b78392c82f9961cf.jpg)
8. 你做complex algorithms的首选语言是什么?
你可以说实话,但至少要给出两个答案,以表明自己“多才多艺”和“不钻牛角尖”。
你可以说 “XYZ是我的第一选择,但ABC也是一个很好的选择。” 然后告诉他们为什么。
9. 如何设计一个可以扩大规模的APP?
这题测试的是你的知识和思维过程。
10. 你做过的最满意、最值得骄傲的项目是什么?
这是你表现自己的时刻,告诉面试官你的coding实力,并描述一个你最引以为傲的项目。
![程序员面试中最常见的27个问题,拿走不谢!](https://image.cha138.com/20210501/d055a160938b4266aa835d4ab082fa07.jpg)
一定说出理由,为什么你觉得这个项目让你骄傲 (比如它满足了某种需求等等)。
11. 描述一个你做过的失败的项目。
你可以清楚地说明为什么这个项目最终失败了。
你还可以说你之后花时间剖析了这个项目,并且总结了问题,从失败中学到了经验。并在下一次项目中,没有再犯。
02
Cultural / Behavioral Questions
12. 你目前所在的公司,有什么吸引你的地方吗?
不要说,“没有,我讨厌现在的公司”。可以选择说一说目前公司和所申请公司共同的优点。
如果这是你的第一份工作,你可以谈谈在学习或实习期间喜欢什么。
13. 描述你理想的公司文化。
做好你的research,提前了解这个公司。确保说出来的理想文化,和这个公司的文化相似。
14. 你的同事是怎么描述你的?
你可以通过这个问题来向面试官展示你的社交意识,你可以说通过与同事的交流协作,你了解到了自己在别人眼中的样子。
![程序员面试中最常见的27个问题,拿走不谢!](https://image.cha138.com/20210501/74ae142d9d79413994d1ea0aa28dadd7.jpg)
同时,你可以用这个问题来表明你是有自我认知的。你知道自己的长处和短处,以及你能给团队带来什么。
诚实回答,不要过度自嘲。
03
Technical Questions
这一类的面试题,会根据不同候选人的不同知识背景进行考核。
![程序员面试中最常见的27个问题,拿走不谢!](https://image.cha138.com/20210501/ab70c58cb9e9456898eced5fded5deaf.jpg)
常见问题举例:
15. mutex 和 semaphore 有什么区别?
16. 什么是多线程编程?
17. Local Variable和Global Variable有什么区别?
18. 哈希表如何工作?
19. 给出一个真实生活中哈希表的例子,并描述一个哈希表为何是一个糟糕的数据结构选择。
20. 假设你有一个单线程的C标准应用程序,它不断崩溃,但从来不在同一个地方崩溃。你觉得可能导致它崩溃的原因是什么?
21. queue和stack之间有什么区别?
22. 什么是regression test?
04
Coding Questions
这个阶段是所有面试中最难的一关。
![程序员面试中最常见的27个问题,拿走不谢!](https://image.cha138.com/20210501/7d28d4591c8e4044805caf00374ae6ea.jpg)
你不仅需要在高压的环节中展示你的知识成果,而且你还要在不熟悉的环境(白板上的手写代码)和时间限制下工作。
每个候选人会遇到的具体问题有所不同,但以下是一些常考的经典题目:
23. Linked lists(删除重复,反转链表,确定它是否有环)
24. 时间和空间复杂度分析
25. Tree:基本构造,遍历和操作算法。知道如何实现平衡二叉树。
26. Stack(用两个栈实现一个队列)
27. 数组和字符串(反转字符串,permutations)
面试时,确保你不断向面试官解释你的思考过程(即使你被困住了)。
尝试着与面试官协作,并可以在遇到困难时勇敢地提问。
因为这可以表明你愿意在团队中寻求帮助、以便把工作良好地进行下去。
![程序员面试中最常见的27个问题,拿走不谢!](https://image.cha138.com/20210501/eea6d1cfa1ba4ee6b95e11a5276301d0.jpg)
本文编译自:https://www.paysa.com/blog/2017/05/23/33-common-software-engineering-interview-questions/
想提升自己的coding能力?
通过面试、斩获offer?
软件工程师旗舰核心课程
5月22日,免费试听!
全新3+1模式的系统训练,
助你拿到大公司offer!
前三个月课程:
50%理论知识系统 + 50% coding 动手能力
第四个月课程:
算法实战 + 数据结构实战 + Coding实战,通过实际动手对前三个月的学习融会贯通!
第四个月开始,跟随工业界一线老师动手做完整的一线公司Summer Intern Level的工业界项目:为期一整月。
项目介绍
![程序员面试中最常见的27个问题,拿走不谢!](https://image.cha138.com/20210501/c2bc3b0b1826424195bbbe7be95abaa4.jpg)
全新升级的+1项目,将由资深的后端工程师和前端工程师一起,带领大家完成一个Location Based的推荐系统。
其基本功能包括:搜索页面、设置用户喜好页面和推荐页面。
最终完成一个可以实际上线的Web Application!(这个写在简历上有多么拉风就不用我多说了吧~)
学习本项目之后,你将基本掌握Web项目的开发流程,掌握诸如html、CSS、JS、Rest、mysql、Tomcat、Yelp API等的基本使用和配置。
同时你还将熟练掌握Java如何开发后端Service,重点理解MySQL以及SQL语言的特点,学习javascript和Ajax的使用方法.....项目完成之后,你的简历背景、coding实力将获得全方位提升!
趁这个暑假,行动起来!
课程介绍
(点击图片即可查看)
课程咨询
添加来Offer课程顾问为好友
直接进行课程报名咨询
求职,你只需要一门课程!
以上是关于程序员面试中最常见的27个问题,拿走不谢!的主要内容,如果未能解决你的问题,请参考以下文章