前言

程序员面试不同于一般岗位的面试。当你在羡慕程序员十几万美金年薪的同时,你却不知道程序员面试时,要经历的重重磨难和压力。今天,我们就来总结一下程序员面试时最常见的27道问题。

HR Phone Screen

Phone Screen,一般是提交简历后,程序员面试开始的第一步,由公司HR负责。目的是了解一下候选人的背景,为下一步tech interview做准备。

常见问题如下:

1. 你为什么对本公司的这个职位感兴趣?

这一问HR主要想考察你有没有做好“功课”,事先研究了解过公司。

2. 你有没有用过本公司常用的编程语言?

如果你对这种特定语言没有太多的经验,那就说实话,否则就算过了电话关,也过不了之后的coding关。但你也要告诉HR你自己会的语言,并表示有能力学习新的语言。

3. 你有没有做过什么项目?

简明扼要。直接简洁地描述你参与过的项目和在里面扮演的角色。

4. 你有没有领导别人的经验?

这一题的答案不仅仅局限于技术上的领导力。如果你在学校里有过志愿者活动的领导经验,都可以说。 尽可能地将你以前的领导经验和你要申请的职位联系起来。

5. 为什么你要离开现在的公司?

你可以坦率地说出你的想法,但答案不要仅仅围绕在钱和利益上。你可以从职场文化、创意实践,解决现实问题的满意度等几个角度来回答这题。

注意,跟HR的面试,并不需要你深入地探讨一些技术上的问题和经验。要做到简明扼要,不要让HR睡着了。

Onsite Interview

当你顺利通过了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)

面试时,确保你不断向面试官解释你的思考过程(即使你被困住了)。 尝试着与面试官协作,并可以在遇到困难时勇敢地提问。因为这可以表明你愿意在团队中寻求帮助、以便把工作良好地进行下去,想要了解更多的程序员面试题,赶紧扫一下下方二维码关注了解吧。

程序员面试中最常见的27个问题,拿走不谢相关推荐

  1. 程序员面试中最常见的几个问题,拿走不谢

    程序员面试不同于一般岗位的面试.当你在羡慕程序员十几万美金年薪的同时,你却不知道程序员面试时,要经历的重重磨难和压力.今天,我们就来总结一下程序员面试时最常见的几道问题. Phone Screen,一 ...

  2. java程序员面试中的5个杀手锏问题

    java程序员面试中的5个杀手锏问题,不管你去面试的频率如何,下面这五个问题是每个软件工程师都应该问的--将有助于你确定自己在这家公司长期工作是否会合作愉快. 你们的企业文化是什么? 你每天将会有10 ...

  3. python程序员面试题精选100题_在Python程序员面试中被问的最多的10道题

    我们在为大家整Python程序员面试试题中,发现了一些被面试官问到的最多的一些问题,以下就是本篇内容: Python是个非常受欢迎的编程语言,随着近些年机器学习.云计算等技术的发展,Python的职位 ...

  4. 程序员面试中常见的哈希表,到底是什么?

    作者 | 倪升武 责编 | 胡巍巍 我所写的这些数据结构,都是比较经典的,也是面试中经常会出现的,这篇文章我就不闲扯了,全是干货,如果你能读完,希望对你有所帮助~ 哈希表也称为散列表,是根据关键字值( ...

  5. 程序员面试中遇到问题

    面试时候经常会问的一些问题(不断补充中) 面试必备基础题目(虽然不一定常用, 仅用于面试, 面试就是把人搞的都不会然后砍价, 当然您可以讲我可以查资料完成, 但是面试的时候就是没道理的, 起码我是经常 ...

  6. java面试时候算法题多吗_java程序员面试中最容易被问到的18个算法题(附答案!)...

    作者:cpp软件架构狮 链接:https://www.toutiao.com/i6618515311836529156/ (点击阅读原文前去围观) 算法是比较复杂又基础的学科,每个学编程的人都会学习大 ...

  7. mfc链表中的数据如何排序输出_java程序员面试中最容易被问到的18个算法题(附答案!)...

    算法是比较复杂又基础的学科,每个学编程的人都会学习大量的算法.而根据统计,以下这18个问题是面试中最容易遇到的,本文给出了一些基本答案,供算法方向工程师或对此感兴趣的程序员参考. 1)请简单解释算法是 ...

  8. 程序员面试中,有些问题要这样答

    2019独角兽企业重金招聘Python工程师标准>>> 对程序员而言,面试时让他写一段超难的代码他觉得很容易,让他和人面对面聊天反而会觉得很难.程序员觉得说不如做,自己的实力在这儿, ...

  9. Java程序员面试中的多线程问题1

    转自:http://blog.jobbole.com/18571/ 很多核心Java面试题来源于多线程(Multi-Threading)和集合框架(Collections Framework), 理解 ...

  10. Java程序员面试中的多线程问题

    很多核心JAVA面试题来源于多线程(Multi-Threading)和集合框架(Collections Framework),理解核心线程概念时,娴熟的实际经验是必需的.这篇文章收集了 Java 线程 ...

最新文章

  1. Python中datetime类错误
  2. DataGridView中回车键的妙用
  3. (转)几种常用存储过程分页方法
  4. printf利用转译字符在终端显示进度条(时钟)-zhuan
  5. 力扣-1337. 矩阵中战斗力最弱的 K 行
  6. mysql 一条记录的某个字段为空,是否占用存储
  7. android 音频压缩 silk,微信音频silk导出多个mp3,合并成一个mp3,压缩大小
  8. 暨反欺诈建模场景实操
  9. test.java_test JavaWeb开发的试题库管理系统。包括用户 、 、试卷生成及增删改查等。 Develop 256万源代码下载- www.pudn.com...
  10. 基于堆栈的缓冲区溢出_基于堆栈溢出问题构建搜索引擎
  11. java 检测表情符号_java 过滤表情符号
  12. 几组数据的相关性python_几的定义
  13. 适合学生党无线蓝牙耳机,好用又实惠蓝牙耳机推荐
  14. 零基础学python难吗?python自学难吗?
  15. 紧凑型游戏机械键盘——极度未知HyperX起源60水轴游戏机械键盘
  16. python地址怎么写_python文件地址(文件路径)怎么写
  17. 第1-7课:基础开胃菜
  18. 立创元件导入AD集成库的方法
  19. Shiro-官方文档及使用
  20. sass和less是什么?

热门文章

  1. java 移位运算_java移位运算
  2. mobile terminal 笔记
  3. android so劫持,防劫持SDK
  4. springCloud 之 Eureka高可用配置
  5. 机械优化设计c语言鲍威尔法,机械优化设计鲍威尔法
  6. MacBook常用快捷键有哪些?
  7. 22 个免费高质量的电商网站模版
  8. Xshell 5下载详细教程
  9. Win10注册DLL办法
  10. ONVIF协议基础概念