2020毕业不要慌,给想当程序员的你——面试宝典,让你offer拿到手软!
Posted 水木IT社区
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2020毕业不要慌,给想当程序员的你——面试宝典,让你offer拿到手软!相关的知识,希望对你有一定的参考价值。
年初,疫情爆发,武汉封城,牵动着每一个中国人的心,真正的2020开始了。但是我们对面新型冠状病毒肺炎,没有恐惧,没有软弱。我们在党政府的领导下,我们团结 、坚韧 、自强!战胜了突如其来的疫情,向全世界证明了什么叫做中国速度!
不过与疫情一起到来的还有失业潮、倒闭潮,工厂不能复工,学校不能开学......这几天,全国人民的目光又落在了首都北京。
这种情况对于今年大学毕业生来说无疑心里又欣喜又惆怅的,满心欢喜的拿到文凭,但遭遇疫情的变故,目前不少毕业生仍在家中待业,不知道自己该如何发展。除了应届毕业生,有的是年前辞职准备今年大干一场的,但是现在的他们,一份工作一个饭碗,却成为了梦寐以求的东西。
不过呢现在科技发达,信息传播快。各个平台都在放大自己的优势,大家开始通过自媒体平台推介自己。各个公司为了降低风险,提高效率也开始进行视频面试,这对于我们来说是非常好的机会。塞翁失马焉知非福呢?更多企业会在这个档口挑选最适合自己的人才!
应对面试,我们还需减少焦虑和心理压力,认真调节好自己的心态,调整个人就业计划与目标,等待就业期间也可以多自学一些自己感兴趣的技能,充实自己个人价值,蓄势待发,等待合适的时机抓住机会。
今天呢,我们来聊聊更有压力的一群人——程序员。
程序员面试不同于一般岗位的面试,当我们在羡慕程序员几十万年薪的同时,你却不知道程序员面试时,要经历的重重磨难和压力。
“我去阿里面试,面了四轮!!人事,项目负责人,部门经理,总监,最后没有结果了!”——来自一位后台码农朋友
对于IT行业的人来说,一个程序员能否很好地成长,离不开就职环境的影响。所以能否进入一个好的就职环境,规划满意的职业生涯,是十分重要的。所以呢今天为大家提供巨头IT企业程序员面试中最常见的问题。
一般是提交简历后,程序员面试开始的第一步,由公司HR负责。目的是了解一下候选人的背景。
HR Phone Screen:
1. 你为什么对本公司的这个职位感兴趣?
这一问HR主要想考察你有没有做好“功课”,事先研究了解过公司。
2. 你有没有用过本公司常用的编程语言?
3. 你有没有做过什么项目?
简明扼要,直接简洁地描述你参与过的项目和在里面扮演的角色。
4. 你有没有领导别人的经验?
这一题的答案不仅仅局限于技术上的领导力。如果你在学校里有过志愿者活动的领导经验,都可以说。尽可能地将你以前的领导经验和你要申请的职位联系起来。
5. 为什么你要离开现在的公司?
你可以坦率地说出你的想法,但答案不要仅仅围绕在钱和利益上。你可以从职场文化、创意实践,解决现实问题的满意度等几个角度来回答这题。
注意,跟HR的面试,并不需要你深入地探讨一些技术上的问题和经验。要做到简明扼要,不要让HR睡着了。一个技术非常牛的朋友去阿里面试,成功通过了几轮技术车轮战,最后躺在了 HR 面上......所以,尽管你技术再牛逼,你回答不好 HR 的问题,赢得不了 HR 的认可,你最终也进不了公司。因为最终发 Offer 的是 HR,HR 也要为整个公司人力资源负责的。
当你顺利通过了HR的phone screen、或是之后的technical phone interview后,你就会进入程序员面试的下一个环节。也就是一个4-5轮的Onsite Interiew。面试官会从项目经历、行为、文化、技术、coding等几个角度来全方位了解你是不是他们想要的程序员。
Experiential Questions:
6. 在给其他团队成员reveiw code时,你觉得最重要的是什么?
这题的答案没有明确的对与错,目的是为了检验你的知识,以及你在面试中是否可以表达好code review的过程。回答角度可以围绕:
Functionality
Readability
Maintainability
Security
Simplicity
Regulatory requirements
Resource optimization
7. 描述一下你写代码的全部过程。
面试官想知道你在写代码时,是否有一个清晰的流程,并确保你的工作方式是有组织的,而不是杂乱无章的。
8. 你做complex algorithms的首选语言是什么?
你可以说实话,但至少要给出两个答案,以表明自己“多才多艺”和“不钻牛角尖”。你可以说 “XYZ是我的第一选择,但ABC也是一个很好的选择。” 然后告诉他们为什么。
9. 如何设计一个可以扩大规模的APP?
这个面试题测试的是你的知识和思维过程。
10. 做过最满意、最值得骄傲的项目是什么?★
这是你表现自己的时刻,告诉面试官你的coding实力,并描述一个你最引以为傲的项目。一定说出理由,为什么你觉得这个项目让你骄傲 (比如它满足了某种需求等等)。
11. 描述一个你做过的失败的项目。★
你可以清楚地说明为什么这个项目最终失败了。你还可以说你之后花时间剖析了这个项目,并且总结了问题,从失败中学到了经验。并在下一次项目中,没有再犯。
Cultural / Behavioral Questions:
12. 你目前所在的公司,有什么吸引你的地方吗?
在面试的时候,千万不要说,“没有,我讨厌现在的公司”。可以选择说一说目前公司和所申请公司共同的优点。如果这是你的第一份工作,你可以谈谈在学习或实习期间喜欢什么。
13. 描述你理想的公司文化。
在进行onsite面试之前,做好你的research,提前了解这个公司。确保说出来的理想文化,和这个公司的程序员文化相似。
14. 你的同事是怎么描述你的?
你可以通过这个问题来向面试官展示你的社交意识,你可以说通过与同事的交流协作,你了解到了自己在别人眼中的样子。同时,你可以用这个问题来表明你是有自我认知的。你知道自己的长处和短处,以及你能给团队带来什么。诚实回答,不要过度自嘲。
Technical Questions:
这可以说是程序员面试中最重要的一个环节之一。这一类的面试题,会根据不同候选人的不同知识背景进行考核。
常见问题举例:
15. mutex 和 semaphore 有什么区别?
16. 什么是多线程编程?
17. Local Variable和Global Variable有什么区别?
18. 哈希表如何工作?
19. 给出一个真实生活中哈希表的例子,并描述一个哈希表为何是一个糟糕的数据结构选择。
20. 假设你有一个单线程的C标准应用程序,它不断崩溃,但从来不在同一个地方崩溃。你觉得可能导致它崩溃的原因是什么?
21. queue和stack之间有什么区别?
22. 什么是regression test?
Coding Questions:
这个阶段是所有程序员面试中最难的一关。你不仅需要在高压的环节中展示你的知识成果,而且你还要在不熟悉的环境(白板上的手写代码)和时间限制下工作。每个候选人会遇到的具体问题有所不同,但以下是一些常考的经典题目:
23. Linked lists(删除重复,反转链表,确定它是否有环)
24. 时间和空间复杂度分析
25. Tree:基本构造,遍历和操作算法。知道如何实现平衡二叉树。
26. Stack(用两个栈实现一个队列)
27. 数组和字符串(反转字符串,permutations)
在Coding这个环节,经常性出现的题目无外乎就是数组编程,链表编程,字符串编程,二叉树编程等等,当然还有会关于算法、设计、位运算和通用逻辑问题。
面试时,确保你不断向面试官解释你的思考过程(即使你被困住了)。尝试着与面试官协作,并可以在遇到困难时勇敢地提问。因为这可以表明你愿意在团队中寻求帮助、以便把工作良好地进行下去。
程序员的学习能力真的值得我们每个人学习,他们为了新的项目无时无刻的学习新的知识。真心希望每一位程序员都在一个有善解人意的产品经理,没有bug的环境开心编程~
参考资料:1.知乎-硅谷Laioffer2.CSDN-Java技术栈 3.CSDN-Harrytsz
编辑:IT程小编
注:图片来源于网络
欢迎各位爱书的朋友
踊跃在文末点赞及留言
我们会有不定期福利送给大家
小清最近库房搬家所以先不送书
但学习不能停止
大家可以跟着程小编学习编程技巧
水木IT社区
技术|交流|图书|社群
你「在看」吗?点亮小花好不好↓
以上是关于2020毕业不要慌,给想当程序员的你——面试宝典,让你offer拿到手软!的主要内容,如果未能解决你的问题,请参考以下文章