您的当前位置:首页正文

程序员不同类型的面试技巧

来源:个人技术集锦


程序员不同类型的面试技巧

一位从硅谷面试过,并且顺利得到OFFER的技术大牛分享了“程序员不用类型的面试技巧”,他根据不同类型面试的问题,给出了自己总结的经验和方法,但是万变不离其宗的是,不管什么样的问题,他主要考察的就是你的实用工作技能,这些技能回答出来,你基本就过关了。

(1)算法面试

这是最常见的面试类型。面试官会要求你在白板上解决一个问题,并据此来评估你对数据结构、排序算法、递归、时间/空间复杂度分析、模式和极端案例识别等方面知识的掌握情况。在这样的面试中,你通常会提出一个蛮力的解决方案,然后试着改进这个解决方案,并且讨论权衡不同的解决方案。

就我个人而言,我非常喜欢白板算法,因为我不需要担心编写可编译的语法,这让我能够专注于解决手头要解决的问题。其他人可能不喜欢在白板上进行算法面试,对于这些人,我要说的是,如果能坚持练习,这可能会改变他们的想法。

(2)架构设计面试

这是一种非常有趣的面试类型。面试官会要求你在白板上设计一个系统,比如停车场的售票系统、聊天通讯系统、推特信息流系统以及其他常见的系统。

通过这类面试,面试官考察的是,在你拿到一个宽泛的概念之后,你如何设计一个能够满足所有需求和限制性条件的系统。在这个过程中,需要应聘者提出正确的问题,因为这些问题将会定义需求和限制性条件。这类面试过程更多的是一种对话,你需要在这个过程中画一些图表,甚至是阶级结构。所有这些都是一种高层次的交流,所以你不需要编写任何实际的代码。

(3)行为面试

你是如何对待失败的?你认为你自己最大的弱点是什么?你如何解决冲突?如果有机会可以重来,你现在的做法会与以前的有何不同呢?

在面试过程中,要真诚,不要耍小聪明,要表现出对你的工作的热情,承认你的缺点,并表现出有改进缺点的主动性和强烈意愿,只有这样,你才能得到面试官的青睐。

(4)文化匹配性

很多大型科技公司都非常重视企业文化,并根据应聘者是否符合公司价值观来决定是否录用他们。如果你在这样的一家公司里面试,你需要想办法了解这家公司的价值观,并找到你自己那些与公司文化相契合的过往经历,并向面试官展示出这一点,这一点非常重要。

(5)结对编程

一种非常有趣的面试类型是,让你和另外一位工程师在一个设置好的编程环境中结对编程,这和实际工作场景非常类似。你会被分配一个基本的任务,任务中列出了你必须完成的一系列需求列表。

我发现,在这样的面试中,很多候选人能否通过考察主要依赖于他们真实世界的开发经验。与白板面试不同,在这类面试中需要你写出语法正确的代码,因此你应该彻底了解你的编程语言和环境,因为你肯定不希望在编程面试过程中花太多时间去在网上或文档里搜索答案。

(6)发现并修复Bug

作为工程师,我们所做的很多工作都是围绕着找到和修复那些我们从不同渠道搜集到的bug。每个编码环境都有各自的小怪癖和细微差别,我所做的很多bug修复工作都来自于以前的IDE(集成开发环境)的经验以及我在过去多年时间里积累的相关框架。

(7)考察专业领域知识

在我们今天看到的大多数通用语言中,编程基本上是相同的。如果你知道一种编程语言的面向对象编程,那么这些技能多半能够转移到另一种编程语言里。但是,这类面试的考察技是不能在语言或框架之间相互转换的。面试官将会在特定的环境下考察你在有关API、内存管理、功能和局限等专业领域知识的掌握情况。

(8)对操作系统的了解

根据你所应聘的职位或团队的不同,你可能会有一个专门的操作系统方面的面试。在这个面试中,你会被问到一些问题,面试官通过这些问题对你对计算机操作系统机制的理解进行评估。

作为IT技术人才培养中心,不得不说北大青鸟做的非常不错,在学员的课程学习中有职业素养一课,并且在毕业之前会有大量的项目联系和就业面试指导,模拟面试场景,帮助学员更好的就业。

北大青鸟兰州优越校区的学时比较短,快的五到十个月,最多一般不会超过两年。较快的学习节奏使学生的学习氛围很好,学习效率也会提高很多。而且这也保证了学生学到的技术符合企业发展的需求。

更多有关程序员学习、面试问题,请点击咨询。

因篇幅问题不能全部显示,请点此查看更多更全内容