实用的程序员面试技巧

时间:2019-03-18
本文章向大家介绍实用的程序员面试技巧,主要包括实用的程序员面试技巧使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

转载地址:https://blog.csdn.net/billcyj/article/details/79940289#comments

前言

如果你是牛人,那不用看了哈,本文适合不是牛人,但又有梦想、愿意努力进大厂的童鞋们~

面试建议

核心思想:边答边提问,把面试转换为讨论

1.自我介绍环节

一般说个一两分钟左右,这是一个很好的用于把握面试节奏的机会,可以在自我介绍中埋下很多引子,等面试官等会来问你这些你熟悉的问题,自我介绍模板:
····我是XXX,是XXX学校XXX专业的XXX届的学生。写了多少技术博客,加了什么技术团队、做了哪些项目、在这个项目中担任什么职责、为这个项目做了哪些小工具、为这个项目做了什么优化、这个项目获得了什么奖,为了应聘这个岗位做了哪些努力,看了哪些相关的书籍,以后打算深入做哪一方面以早日成为T型人才···

但我遇到过的一半面试并未给我机会让我自我介绍,但我也不虚,因为在后面回答他问题的时候,我会慢慢提及自我介绍里的内容,来引导面试官问我熟悉的问题。

2.问项目环节

面试官会问你做的项目以及项目相关的一些,这个环节没啥好说的,只要项目是自己做的,都没啥问题。如果是拿着别人做的项目并且在那里乱说,那面试官就象征性地给面子地问几个简单的问题就结束这场面试了,然后你就挂了。

3.问答环节(千万要控制节奏,不要搞成了一问一答,要搞成讨论)

面试答题要会套路,不能人家问你这个问题怎么做的,你就说几个词,而是要把这个相关的都吧啦吧啦说一遍,如果题目不会,可以考虑把话题绕一绕,答些相关的但不会出错的基础,总之要有的说,一定要多说。一句话:面试过程中,话不能停,不能让面试官去思考问你什么!

如果问到底层实现,就算真的不懂底层实现,你可以吧啦吧啦说:这一块我没有深入研究过,但是我是这样觉得的:XXX;如果遇到拓展型发散型面试题,一定要先说出自己的思路,并表现出努力去思考的态度,最后,再反问一下答案,一定要记得反问来得到正确答案以体现出自己对知识的渴望。

计算机基础会问哪些内容:(以游戏客户端开发为例)
1.数据结构和算法:https://blog.csdn.net/BillCYJ/article/category/7237601
2.操作系统:https://blog.csdn.net/BillCYJ/article/category/7310468
3.计算机网络:https://blog.csdn.net/BillCYJ/article/category/7487360
4.面向对象:一般就问问多态 https://blog.csdn.net/BillCYJ/article/details/79523110

游戏开发相关知识会问哪些内容:(以游戏客户端开发为例)
1.Unity或其他引擎相关问题:https://blog.csdn.net/BillCYJ/article/category/6984439
2.C#或C++或Lua:大多数一些语法的问题:
C# https://blog.csdn.net/BillCYJ/article/category/7369935
C++ https://blog.csdn.net/BillCYJ/article/category/7151698
Lua https://blog.csdn.net/BillCYJ/article/category/8108262
3.Unity Shader或图形学基础知识:https://blog.csdn.net/BillCYJ/article/category/7206580
4,Git或SVN:https://blog.csdn.net/BillCYJ/article/category/7482047

上述知识点基本上覆盖了百分之九十五的问题,一般面试官不会问你不会的,所以,上述的游戏开发相关的知识点有少数几个不会也没啥影响,当然,会的越多越稳。但是上述的计算机基础的知识点都要会哈,很重视基础的,对于应聘游戏客户端开发岗来说,游戏开发相关的知识点都是加分项罢了,但都想录用有过游戏开发经验的童鞋,因为可以拿来直接用、直接做需求,廉价劳动力呀,哈哈。

4.智力逻辑题环节(有一定概率没有这个环节)

比如:海盗分金币这类题(网上有不少这类题,思考几道就好了,反正到时候和面试官边讨论边做这道题,这个环节就可以看成送分环节了)
核心思路:不能放弃,不能说不会,一定要尽量去想,边想边说出自己的思路历程,时不时和面试官讨论下可行性,实在没有思路的时候,就让面试官提示一下,然后自己继续想。重复这个过程,直到得到正确答案,面试官就觉得你这个人沟通能力、学习能力、智商都是OK的。

5.手写算法题环节(有一定概率没有这个环节)

另外,手写编程题,在一个面试中常常会有15到30分钟的编程测试,各种概念背得溜或知道怎么去解决是不够的,还是要能稳定高效地写出来并写好。
推荐《剑指Offer》这本书。

6.有啥问题问面试官环节

一定要问,问两到三个比较合适,那有什么可问的呢,我给几个比较好的问题:
1.技术方面的问题
1.刚才那个问题我很想知道答案,能不能给我解释一下为什么是这样?
2.前面他没问到的,但又是你的长处的地方:贵公司对XXXX技术的使用情况,等他说用得多,你就说自己对这方面也有一些专研,您想听我讲一下吗?然后就说出来。
3.我应聘的这个职位对技术上有什么要求呢?如果我有幸能够得到这个offer, 我希望我能提前在技术方面准备一下。(千万不要打听面试结果!)
2.非技术方面的问题
1.贵公司对新入公司的员工有没什么培训项目?此处可以展开来问架构技术、人员组成、开发流程等等问题。(体现对学习的热情)
2.贵公司的晋升机制是什么样的?(体现上进心)
3.想了解一下入职后参与的项目的情况。(体现对公司的忠诚)
4.住宿和三餐问题
5.补充: 还可以聊性能优化、底层原理等话题;另外,面试官是搞啥的就可以问那方面,如果他开发的产品你用过,那就可以再一起聊聊他的产品。
6.如果是应聘实习生,可以说自己可以实习XX个月,可以吗?(如果自己的实习时间长,一定要问这个,可实习的时间越长优势越大)
7.如果是应聘实习生,可以问如何才能留用?

谈薪水建议

收到Offer之后就涉及到谈薪水,能到谈薪这一步,就说明对方想要你了。但在这个时候别太单纯,不要直接说出你的期望薪资,不然要么你亏,要么别人不要你。建议这样说:我认为这是一个需要综合考虑的问题,我暂时还没有一个明确的数字,不过我认为贵公司会给我一个公正的待遇。
等你收到有薪水的 录用书后,如果自己是大白菜且觉得工资偏低,可以给HR提出SP的申请,至于能不能申请成功,都不会影响你的这份录用了~所以,可以尝试为自己争取一下。

实习建议

如果你不是牛人,那就不要非得证明你有多强;摆正心态,展现出你积极的态度,勤于思考善于思考的风格,坚强坚韧的性格,快速学习能力,还有良好的沟通水平,就好。
还有很重要的一点,想尽一切办法尽量按时完成需求,功能的扩展性是很被看重的一点,另外,有Bug很正常,后面修就好了。

最后,推荐一个网址:https://www.nowcoder.com/discuss/53246 ,点进去你就知道了~