九章算法程序员面试指南

编辑 | JZ

专栏 | 九章算法


很多人一到求职面试季会不知所措,不知道要怎么做才能获得心仪的offer。

今天,通过《程序员面试指南》来告诉你:程序员要如何准备面试?

1.简历书写

简历书写的原则是:

  • 单页原则
  • 使用PDF格式
  • 将简历命名为:名字_学校_职位_简历
  • 两栏式的格式布局,左边的部分是时间,右边的部分是经历。然后纵向按照教育经历、经验之类的罗列开。注意对齐。
  • 实习经历>项目经历>获奖情况
  • 写经历的时候必须按照时间的倒序进行排列。一般来说刚毕业的把学校排最前,已经工作的把工作经历排在最前。
  • 重点展现技术相关内容,无关内容删掉
  • 写到简历上的项目要非常熟悉,并且写明你做了什么?怎么做的?你的贡献是什么?
  • 谨慎使用“精通”、“掌握”这些词

程序员简历模板可以关注“九章算法”微信公众号,后台回复“简历”获取。


2.Coding - 算法与数据结构

如果你做过各大IT公司面试真题,你会发现:在程序员技术面试中70%以上的题目都与算法和数据结构有关,面试中经常会考到下列知识点:

算法部分

        二分搜索 Binary Search 
分治 Divide Conquer 
宽度优先搜索 Breadth First Search 
深度优先搜索 Depth First Search
回溯法 Backtracking 
双指针 Two Pointers 
动态规划 Dynamic Programming 
扫描线 Scan-line algorithm
快排 Quick Sort
      

数据结构部分

        栈 Stack
队列 Queue
链表 Linked List 
数组 Array 
哈希表 Hash Table
二叉树 Binary Tree  
堆 Heap
并查集 Union Find
字典树 Trie
      

以上这些知识点看起来很简单,但是当你真正开始学习的时候,你就会发现每个知识点中包含着很多复杂的内容。

如果你想在在面试前快速高效地学习算法和数据结构,刷题将成为你的不二选择。

你需要做的是把 Lintcode 上至少70%的题目刷两遍,对比着 Lintcode参考答案查询 上的最优解,总结经验,做到60%的题目bug free。面试前两周需要有针对性地刷题,把 Lintcode阶梯训练 上的精选题目刷一遍,尤其是要刷 IT企业技术面试仿真模拟试题 ,从中摸索出IT企业的面试套路。


3. 系统设计面试

3.1.什么情况下,会遇到系统设计面试呢?

1. new grads 的项目经验和系统设计经验面试,占整个面试评估的比例约为大概是10-30%,可能是项目问题/算法问题的follow up,最经常出现在加面环节。有的公司会考核系统设计,有的公司则不会,需要根据具体公司的面经来定。Amazon、Uber的new grads面试会面到系统设计,Facebook、Google的new grads面试考到系统设计的概率不是很高,主要是算法为主。建议new grads在算法准备已经比较充分、或者时间比较宽裕的情况下,着手进行系统设计知识的补充,可展示自己在工业实践上的知识积累,为面试加分。

2. Experienced 求职者,基本上80%以上的概率会遇到系统设计面试。建议Experienced 求职者 一定要准备系统设计面试内容。

3.2.推荐一些系统设计的经典文章:

《系统设计面些啥?Palantir 面官教你如何准备系统设计面试》

《系统设计评分标准》

《Facebook HR 内部邮件, System Design 面试内容揭秘》


4.了解公司和行业动向

3.1.了解公司

包括以下几个方面:

  • 企业文化。你需要看这个公司的氛围是不是适合你的发展。
  • 薪资待遇。这是最最实际的部分,可能也是应届生选择工作时考虑最多的部分,不要仅仅局限在薪资上,可以看看公司整个福利体系,比如保险、假期、股票等等。
  • 晋升机制。公司是否重视人才?是否重视对人才的发展和培养?是否容易晋升?...你需要选择的是一个可以给你上升空间的公司,会对你的成绩和努力给予肯定的公司,只有这样才能有不断向前的动力。
  • 工作环境。一个好的工作环境对于员工来说绝对是一种福利。公司加不加班?公司的办公室怎么样?公司的食堂怎么样?公司的同事怎么样?

你可以关注“九章算法”微信公众号,后台回复“企业文化”、“薪资”、“晋升”、“干货”等关键词提取难相关企业介绍文章。

3.2.了解行业动向

包括以下几个方面:

  • 行业最新新闻。尤其是与你面试的岗位和公司相关的新闻,一定要了解一下。
  • 行业最新技术。可以适当关注一下行业的最新技术,对于一些感兴趣的技术可以深入研究一下。
  • 行业最新趋势。最近哪个比较火?哪个之后可能会火?哪个已经过时了?...请带着自己的思考去关注这些内容


5.面试沟通

5.1.充满热情

态度决定一切。HR通常认为,热情的员工会在工作中体会到快乐,从而更加努力的工作,所以公司往往希望聘用那些对公司充满热情、与公司有共同使命感的面试者。

5.2.事先准备好一些回答

很多问题的回答是可以实现准备好的。

  • 技术类问题:在面试前搜集公司的面经,了解这家公司常考的面试题,整理成一个表格,概念型的题目可以背下来,应用型的题目可以自己动手操作一遍。
  • 非技术类问题:像是behavior question、薪资博弈、企业文化等,都可以在《硅谷精英工程师面试指导大全》中找到解答,对于这些解答你需要烂熟于心,避过那些坑、为面试加分。

5.3.多加练习

熟能生巧,当你把面试过程练习过一遍、甚至好几遍的时候,你会发现,当你遇到类似的问题的时候,可以很快地形成思路、获得解答,大大提高了面试的通过率。最好的方式是与家人或者朋友进行角色扮演,模拟面试的全过程,并且用视频记录下来,以便稍后回顾。通过这种方式,可以帮你改正一些不良习惯,同时可以加深对面试过程的理解。


6.仪容仪表

6.1.服装

程序员的面试着装并没有具体的规定,你应聘的公司和职位决定了你需要怎么穿。建议在前往面试之前先打听下你面试公司一般的着装,然后根据其具体的着装进行调整,尽量做到符合公司气质且干净整洁。可以先用熨斗进行平整,显得更加有精神。

6.2.个人卫生

面试的时候一定要注意个人卫生。面试前需要精心洗漱一番,打理好发型、整理好衣服,最好可以喷一点除臭剂,避免因为出汗等原因发出一些让人不喜的气味。千万不要在面试前吃带气味的食物,可以在面试前嚼一粒口香糖。

6.3.仪容仪表

面试之前,需要花点时间来梳理自己。对于女性来说,需要给自己化个妆、给头发做个造型、适当佩戴一些饰品;对于男性来说,需要修理头发和胡须。另外,还需要修剪你的指甲,检查你的牙齿,不要忽视面试前的细节,每一点都可能会影响你的整体形象。

6.4.行为举止

  • 握手:握手时两人之间保持一步的距离,双足立正,上身微微前倾,伸右手,四指并齐,稍加力度微微抖动三至四次,眼睛需要与对方对视。
  • 眼神交流:当你与面试官交流时,需要看着对方,每过5秒钟,可以转移一下视线或者点一下头,适当的说:“是的”,“对”,“恩”等等。这样面试官就会感到你对他的尊重,会给面试官留下好的印象。
  • 微笑:面试中需要保持微笑,微笑体现出你的礼貌,也能够向面试官传达出你对他讲的内容很有兴趣的信息。
  • 姿势:俗话说“站有站姿,坐有坐姿”,在面试的时候也要以此作为要求,姿势要自然、不做作,但是不可以随意,站的时候不要哈腰,坐的时候不要抖腿,坚持用良好的姿势完成面试的整个过程。

6.5.拒绝非主流

纹身、穿孔、非主流的头型等可以产生负面的印象。为了安全起见,尝试覆盖或避免在面试中将这些非主流的东西展示出来。


7.结束面试

面试结束之后,总结并且记录被问到的问题,以便下一次电话面试或者现场面试的练习。同时还要分析自己的回答,发现自己在面试中暴露出来的短板,有助于下次改进。


最后,不要忘记给面试官发一条短信或者邮件表达自己的感谢之情、对工作的热爱之情,并重申自己能够胜任工作。感谢信怎么写可以参考:面试完后,感谢信该怎么写?


8.写在最后

通过面试有一定的技巧可以借鉴,但是作为一名程序员,专业技能知识永远是放在第一位的,切不可本末倒置。

最后祝大家都能顺利通过面试,获得心仪的工作。


欢迎关注我的微信公众号:九章算法(ninechapter)。

精英程序员交流社区,定期发布面试题、面试技巧、求职信息等。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值