范文资料网>人事资料>招聘与面试>《程序员面试职业规划怎么回答

程序员面试职业规划怎么回答

时间:2022-04-16 21:12:58 招聘与面试 我要投稿
  • 相关推荐

程序员面试职业规划怎么回答

与其他岗位相比,程序员相对来说会内向一些,思维也会更严谨、更有个性。企业招聘程序员就是要求他能和团队一起完成既定的开发任务,所以重点从技能水平、学习能力、团队合作及工作心态等几个方面考察程序员。

程序员面试职业规划怎么回答

技术水平是对程序员最基本的要求,很多企业会通过笔试来辅助考察。技能的考察主要看面试者技能匹配度、对技术发展趋势的了解以及自己的职业规划。

1. 你认为自己最擅长的技术是什么?

2. 谈谈你对XX行业/技术发展趋势的看法?对最近XX技术问题发表下你的看法?

3. 在五年的时间内,你有什么样的职业发展规划?

技术快速更替,员工的求知欲和学习能力比他现在的技能更为重要。宁愿招聘一个学习能力很强的员工,也不要一个靠吃老本、不愿学习的员工。

1. 你最近有看哪些书或参加过什么样的培训?有灌技术论坛的习惯吗?

2. 今年有什么学习计划?今年有什么目标?

3. 研究过开源项目吗?有什么收获?

在现在的软件开发中,已经没有所谓的“孤胆英雄”,项目主要靠团队合作来完成,而团队合作能力可以通过考察以往项目,来了解面试者对团队的理解、遇到问题的解决思路等。

1. 你做过哪些项目?最成功的是哪个?为什么?

2. 辛辛苦苦工作半年的项目失败了,你怎么办?

3. 评价下你过去的团队?你喜欢在什么样的团队中工作?

4. 你的业余爱好是什么?

招聘新员工,需要了解面试者对工作的心态和价值取向,并且与他沟通公司的企业文 化。如果你所在企业需要快速发展,有高强度的研发任务,而他想找一份轻松的工作,可能就不是很合适了。

1. 为什么选择离开上一家公司?

2. 有了解过我们公司的产品/服务吗?

3. 你对加班的看法?你家人或朋友抱怨你加班怎么办?

4. 如果在试用期发现你技能不符合要求,该怎么办?

最后,技术人员的有效沟通能力也非常关键,特别是对问题的分析和说明,所以在整个面试过程中你要观察面试者的分析思路,对问题重点的把握以及表达。经常有一些滔滔不绝、 但不知所云的面试者,让人非常头疼!

程序员的能力分为两种:技术能力和非技术能力。技术能力包括编码能力、系统分析与设计能力;非技术能力包括写作能力、沟通与协作能力、组织与管理能力等。而根据程序员的能力水平,可以将程序员分成初级、中级、高级三个级别。因此,在面试过程中我会针对初级、中级、高级程序员三个级别来提出不同的问题。

在技术能力方面,重点考查初级程序员的编程能力、中级程序员编程能力并兼顾系统分析的能力、高级程序员的系统分析与设计能力。在非技术能力方面,重点考查初级程序员的沟通与协作能力、中级程序员的写作能力(主要指编写技术文档,如需求分析文档、用户手册、部署手册等)、高级程序员的组织与管理能力(如指导、协助中级程序员进行问题分析和开发)。

在面试时,程序员首先要将自己的技术能力展现出来,以一种交流的心态去面对,不要紧张,要有自信,即使面试失败自己也要下去总结失败的原因,找到技术弱点加以弥补;其次,面试中遇到不会的问题要讲明自己的思路,因为有些问题不是考你的编程能力,而是逻辑思维的能力;最后,对照程序员能力模型进行自我分析与评价,做好职业规划,不断学习,提高自己的编程能力和抽象思维能力。

以SQL Server为例,我来分享一下面试时常问的一些技术问题。

1. 聚集索引和非聚集索引有何区别?应该怎样使用?

2. SQL的一张表中有一个自增的ID字段,但是现在不连续,写一条SQL语句取出某个位置到另一位置(如50~60)之间的数据。

3. 如何判断和防止SQL注入?

4. 如何对海量数据进行处理?

第1题考查基础知识;第2题考查SQL语句的编写能力和技巧,属于初级程序员的问题;第3题考查SQLServer的安全性,属于中级程序员的问题;第4题考查SQLServer的性能,属于高级程序员的问题。通过这几个问题可以判断出应聘程序员的数据库水平。

从个人经历来说,我会对以下五个问题比较感兴趣。

1. 请说出3个你觉得至今都没有算法可以解决的问题。

这是一个开放式问题。从回答中我们可以了解到被面试者的思维方式和思维敏捷度,而这两点是一名优秀程序员不可或缺的。我预料一般有两类回答:第一,学术类,比如有人会说一些关于寻找质数之类的现在还无法解决的问题;第二,生活类,我比较期待这一类有意思的回答,如果被面试者可以结合一些现在的社会现象作出回答,也可以从另一个角度反射出其社会属性。

2. 请从技术角度谈一下《黑客帝国》的观后感。

同样又是一个开放式问题,完全没有所谓的标准答案。《黑客帝国》是程序员的必看“教材”,整个故事最精彩的莫过于构思。我觉得能具备这样的构思能力是程序员的最高境界。那么从技术角度,对于这个构思的框架搭建以及实现等,我想听听程序员的不同理解和实现方法,从侧面了解他们的潜在创造能力和对身边事物的建模能力。

3. 你比较偏向于把程序员比作翻译、建筑师还是设计师?

问这个问题的目的是看你怎样理解程序员这个职业。一个人对自己职业的认识以及定位将直接决定其在这个职位上的积极性和创造能力。我的答案是程序员既是翻译,又是建筑师,更应该是设计师。并且随着这三个职业的排序,正是我认为的程序员职业能力升华台阶。

4. 请设计至少两个不同的算法解决将一个蛋糕平均分为6份的问题。

比较实际的专业能力题。这是一个既简单又综合的考验。除了对程序员这个职位的正确认识之外,实际操作能力毕竟是影响今后实际工作的第一要素。这道操作题,考察应聘者对问题的思考,以及分析能力和解决问题的动手能力。

5. 比较一下这两个算法,你觉得哪个更好,依据是什么?

比较算法,还是考察的专业能力,目的是看你怎样判断一个算法的好坏。对这道题,没有接受过专业训练的应聘者应该无法给出全面且科学的分析。并且请他们评论自己设计的算法,也是对自我认识的一种衡量。程序员的概念有点宽泛,为更有针对性,我主要分享对“网络程序员”的观点。简言之,我们主要关注面试者的硬条件、软条件两个方面。硬条件是指学历、技术经验、语言等能直接呈现的能力。技术是实在的东西,有就有,没有就没有,由不得半点浮夸。

我们比较感兴趣的问题如下。

1. 做过什么:是写代码、设计还是架构?

2. 做成功过什么:是大型的平台吗?其特质如可扩展、高并发、交互式。

3. 擅长做什么:使用的编程语言是哪种?使用经验有几年?

4. Debug的经验,遭遇什么复杂的问题(需例证其复杂性)?

技术面试的后续往往是笔试或上机,比如,在所有你使用过的DesignPattern中,请解释对比其中两种,如CommandPattern和VisitorPattern(可以文字回答,也可以画图)?DOMparser与SAXparser的区别在哪儿?什么情况下采用DOMparser而不是SAXparser?大家在面试之前可以Google一下类似的题目。

如果面试外资公司,需要英文达到流利读写的水平。因为项目的完成往往需要协同全球多个国家的同事,如果缺乏英文技能,在外企的发展是比较受限的。计划今后进入外资公司的朋友,一定要加强练习。

软条件是指性格、兴趣、职业规划等非直接呈现的能力。公司对于程序员一般会看重两种性格特质:爱技术、乐分享。

“爱技术”的人才会自发的钻研,不浮躁,也才会在这一行做得长久。对于这点,面试官可能希望了解你工作之外喜欢做什么。我听到过很多分享:经营自己的博客或者技术论坛;尝试新技术、新设备,学习新技术是一种乐趣而不是负担;当然,下次你可以说你平时喜欢阅读《程序员》。

“乐分享”的人才能带动团队整体进步。对于这点,面试官可能希望了解你在团队中是什么角色。有的人可能讲我是Mentor,我们遇到技术问题时要内部讨论,我往往是能给出solution的人,所有人都解决不了,我们会求助于互联网——说明你不只愿意分享,而且有东西可以分享。

以前曾在面试中听说,程序员是青春饭,3~5年之后一定要转做Manager。我觉得职业发展一定要切合自己的性格,并不是每个人都很享受并善于处理人事管理。有的资深开发人员转成Manager几年之后,又转回纯技术(IndividualContributor)。而资深技术人员对于公司是非常宝贵的财富,不管从受重视程度、薪资福利待遇都是非常有吸引力的。

程序员面试:如何回答技术性的问题2015-09-20 23:12 | #2楼

程序员面试中,面试官会经常询问一些技术性的问题,有的问题可能比较简单,都是历年的笔试面试真题,求职者在平时的复习中经常遇到,应对自然不在话下,但有的题目可能比较难,来源于Google、Microsoft等大企业的题库或是企业自己为了招聘需要设计的题库,求职者可能从来没见过或是从来都不能完整地、独立地想到解决方案,而这些题目往往又是企业比较关注的。

如何能够回答好这些技术性的问题呢?编者建议,对于简单的题目,求职者要努力做到完全正确,毕竟这些题目,只要复习得当,完全回答正确一点问题都没有(编者认识的一个朋友据说把《编程之美》、《编程珠玑》上面的技术性题目与答案全都背得滚瓜烂熟了,后来找工作简直成了“offer杀器”,完全就是一个bug,无解了),对于难度比较大的题目,不要惊慌,也不要害怕,即使无法完全做出来,也要努力思考问题,哪怕是半成品也要写出来,至少要把自己的思路表达给面试官,让面试官知道你的想法,而不是完全回答不会或是放弃,因为面试官很多时候除了关注你的独立思考问题的能力以外,还会关注你技术能力的可塑性,观察求职者是否能够在别人的引导下去正确地解决问题,所以,对于你不会的问题,他们很有可能会循序渐进地启发你去思考,通过这个过程,让他们更加了解你。

一般而言,在回答技术性问题时,求职者大可不必胆战心惊,除非是没学过的新知识,否则,一般都可以采用以下六个步骤来分析解决。

(1)勇于提问

面试官提出的问题,有时候可能过于抽象,让求职者不知所措,或是无从下手,所以,对于面试中的疑惑,求职者要勇敢的提出来,多向面试官提问,把不明确或是二义性的情况都问清楚。不用担心你的问题会让面试官烦恼,影响你的面试成绩,相反还对面试结果产生积极影响:一方面,可以给面试官一个心思缜密的好印象;另一方面,方便后续自己对问题的解答。

例如,面试官提出一个问题:设计一个高效的排序算法。求职者可能丈二的和尚摸不到头脑,排序对象时链表还是数组?数据类型是整型、浮点型、字符型还是结构体类型?数据基本有序还是杂乱无序?数据量,有多大,1000以内还是百万以上个数?此时,求职者大可以将自己的疑问提出来,问题清楚了,解决方案也自然就出来了。

(2)高效设计

对于技术性问题,如何才能打动面试官?完成基本功能肯定是必须的,仅此而已吗?显然不是,完成基本功能顶多只能算及格水平,要想达到优秀水平,至少还应该考虑更多的内容,以排序算法为例:时间是否高效?空间是否高效?数据量不大时也许没有问题,如果是海量数据呢?是否考虑了相关环节,例如数据的“增删改查”?是否考虑了代码的可扩展性、安全性、完整性以及鲁棒性?如果是网站设计,是否考虑了大规模数据访问的情况?是否需要考虑了分布式系统架构?是否考虑了开源框架的使用?

(3)伪代码先行

有时候实际代码会比较复杂,上手就写很有可能会漏洞百出、条理混乱,所以,求职者可以首先征求面试官的同意,在编写实际代码前,写一个伪代码或是画好流程图,这样做往往会让思路更加清晰明了。

切记在写伪代码前要告诉面试官,他们很有可能对你产生误解,认为你只会纸上谈兵,实际编码能力却不行。只有征得了他们的允许,方可先写伪代码。

(4)控制节奏

如果是算法设计题,面试官都会给求职者一个时间限制用以完成设计,一般为20分钟左右。完成的太慢,会给面试官留下能力不行的印象,但完成的太快,如果不能保证百分百正确,也会给面试官留下毛手毛脚的印象,速度快当然是好事情,但只有速度,没有质量,速度快根本就不会面试中加分。所以,编者建议,回答问题的节奏最好不要太慢,也不要太快,如果实在是完成的比较快,也不要急于提交给面试官,最好能够利用剩余的时间,认真仔细地去检查一些边界情况、异常情况、极性情况等是否也能满足要求。

(5)规范编码

回答技术性问题时,多数都是纸上写代码,离开了编译器的帮助,求职者要想让面试官对自己的代码一看即懂,除了字迹要工整,不能眉飞色舞以外,最好是能够严格遵循编码规范:函数变量命名、换行缩进、语句嵌套、代码布局等,同时,代码设计应该具有完整性,保证代码能够完成基本功能、输入边界值能够得到正确的输出、对各种不合规范的非法输入能够做出合理的错误处理,否则,写出的代码即使无比高效,面试官也不一定看得懂或是看起来非常费劲,这些对面试成功都是非常不利的。

(6)精心测试

在软件界,有一句真理:任何软件都有bug。但不能因为如此,就纵容自己的代码,允许错误百出。尤其是在面试过程中,实现功能也许并不十分困难,困难的是在有限的时间内设计出的算法是否各种异常都得到了有效的处理,是否各种边界值都在算法设计的范围内,等等。

测试代码是让代码变得完备的高效方式之一,也是一名优秀程序员必备的素质之一。所以,在编写代码前,求职者最好能够了解一些基本的测试只是,做一些基本的单元测试,功能测试,边界测试以及异常测试。

其实,在面试时,求职者往往会存在一种思想误区,把技术性面试的结果看得太重要了。面试过程中的技术性问题,结果固然重要,但也并非最重要的内容,因为面试官看重的不仅仅是最终的结果,还包括求职者在解决问题的过程中体现出来的逻辑思维能力以及分析问题的能力。所以,求职者在与面试官的博弈中,要适当地提问,通过提问获取面试官的反馈信息,并抓住这些有用信息进行辅助思考,从而博得面试官的欢心,进而提高面试的成功率。

【程序员面试职业规划怎么回答】相关文章:

面试中回答职业规划04-30

接到面试电话怎么回答05-16

面试客服优点怎么回答03-22

面试关于态度怎么回答05-24

面试中如何回答职业规划04-30

面试问性格优缺点怎么回答05-26

面试时怎么回答离职原因05-11

面试回答技巧05-12

面试财务内帐怎么回答06-01

招聘面试回答技巧05-07