ImageVerifierCode 换一换
格式:DOCX , 页数:9 ,大小:26.21KB ,
资源ID:6213446      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6213446.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(软件开发工程师的面试应该考察哪些素质如何做权衡精.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

软件开发工程师的面试应该考察哪些素质如何做权衡精.docx

1、软件开发工程师的面试应该考察哪些素质如何做权衡精软件开发工程师的面试应该考察哪些素质,如何做权衡?庄生的回答首先介绍一下背景行业:我所在的行业IT很重要但并不是revenue center,属于烧钱部门,地位不能跟纯互联网公司或者游戏公司比组:我们组最近几年的方向都是招一条龙的程序员,以便减少沟通成本和方便问责。这里的一条龙不但包括技术上写前后端和数据库的代码,也包括在公司内部和用户沟通拿需求,测试,发布部署前后的行政工作。基本上出了问题推都推不掉。个人:我本人从来没有在国内工作过,所以经验上可能会有所偏差。我一般来说都是第二面,第一面主管已经面过了,简历上的问题问的差不多了,所以我很少会问简

2、历上的问题。除非有匪夷所思的经历。从最近几年招人的经验中得出的结论主要有以下几点。按重要性排序如下:1 - 态度这是我最看重的特质,当然这个态度说的不是对我的态度,而是思考问题和解决问题的态度。个人来说比较偏好的是对自己感兴趣的领域具备打破砂锅问到底的精神,具备这样精神的人往往有一种完美主义,对于自己的代码有强烈的mental attachment,会自己挤时间不断地fix bugs,增加unit tests或者refactoring,长远来看对项目质量非常有好处,组里有这样的人非常省心。(哎,我干嘛帮资本家去想这些)这样的面试,我一般直接问candidate你最有自信的技术是什么?然后顺着这

3、个不断地深入挖掘。通过“如果你来设计”这样的假设,来考察应聘者对自己自信的技术到底有何种程度的了解,到底有没有想过这些技术为什么会是这样的。案例1,我对数据库很熟悉那么“如果你来设计”的问题就会类似这样:1,如果你来设计数据库,你会怎么管理文件的? 比如我insert了一行数据到employee表,具体在后台发生了什么事情? 会有什么样的写入操作?有哪些东西会被更新2,好,现在record已经在数据里面了。我跑一句 select * from employee where last_name = Smith。你觉得数据库具体做了哪些事情把这一条数据给返回的? 它是怎么从文件系统中把这一条记录给

4、找出来的?3,假设我的employee表里已经有一些数据了,这时候我加了一个新的column,会发生什么事情? 文件系统中需要做哪些改动?4,假设我的employee表里已经有一些数据了,这时候加了一个index,又会发生什么事情? 要写入哪些文件,具备什么特性的数据结构?5,好,现在已经有index了,那么同样的查询 select * from employee where last_name = Smith 在执行的过程中会有什么区别?看能不能具体展开解释6,如果你来设计数据库,你会怎么实现join呢?如果两个表都建了索引是怎么做的?如果两个都没有呢?如果一个表有索引?7, 等等等等。案例

5、2,我用Spring用得最熟1,singleton到底有什么用?我用static method为什么不能做同样的事情? 什么情况下会用static method更好一些?2,dependency injection到底有什么用? interface在这里的作用到底是什么?3,好,这么看来,spring确实可能在某些情况下有点用,那么如果你来改善spring的话,你会改进哪些点呢?4,能不能大致讲讲,你觉得autowire具体是怎么实现的?实际使用中会有哪些问题呢?5,constructor injection和method injection的优劣比较? 什么情况下用哪一个?6,spring在

6、unit test中起到什么作用,哪些情况下可以不用spring,给一下具体的例子?7,如果有一天Oracle想在语言层面支持DI,你会怎么设计syntax?为什么?8,等等等等。注意:这里主要考察的是思维能力,看看他有没有想过这些问题,而不要纠结于Sybase或者Spring是否真的是这么实现的。我再重复一遍,不要纠结回答的准确性,关键是这个人的思路怎么样,是不是能自圆其说。这一部分一般持续20分钟到30分钟,取决于candidate的素质和话题本身能不能聊出东西来。可能因为我的这个面试方式比较少见,感觉许多candidate一开始会比较紧张。这时候作为面试官需要不断地给于正面回馈,让他觉得

7、自己还不错,以便放松下来。当然,如果实在是太差的基本就直接“do you have any questions for us”了。2 - 经验这个经验不但包括过去公司里从事过哪些项目,也包括平时都做些什么。因为我的行业关系,我感觉纯大公司流或者纯互联网公司流的都有缺憾。前者过于保守死板沉闷,后者过于激进缺乏质量意识,都比较极端。最理想的是在大公司工作一段时间,同时业余维护一个github项目之类的。这种人一般既比较积极主动,又能理解并遵守历史遗留问题。属于兼容并包的好队友。这一块一般10分钟,取决于有没有东西聊。3 - 算法这个可能会引起争议,算法上只要不是太差就行,毕竟我们日常工作牵涉算法的

8、部分不是特别多。 由于一般我们第三面会有别的同时做pair programming,所以我这边都是大概问一个简单的但是实际的问题。举个例子,给你一列区间,如何把它合并起来?def merge(ranges: ListInt, Int: List(Int, Int = ?伪代码写在纸上就行了。就是看看基本的排序递归的使用。具体排序算法也不是非得写出来。这一块一般15到20分钟。4 - 对新技术的热情最近有关注什么新技术吗?angularjs啊,好在哪儿呢?akka啊,解释解释什么是Software Transactional Memory啊?之类的。因为很多人很喜欢聊这些,也算是给自己充充电。可

9、能是我个人经历的关系,对新技术的热情是一个必要条件,但并不单独构成一个加分项,我见过很多对新技术很有热情,完全只是因为好奇,想尝鲜的想法。对于组和公司的利益却不怎么放在心上。把组里的项目当成试验场,这样的人最后往往需要其他组员帮他擦屁股。这一块基本就是闲聊,当是收尾了,5到10分钟吧。vczh的回答你就这么想把,这个人进来了,要跟你一起做同一个项目。你愿不愿意?在我们这,愿意就给hire,不愿意就给nohire,然后经过了一整天的面试这个人就有了很多hire和nohire,到时候一看便知。李运华的回答谢忻尚魁的回答我这边招人的话普遍是如下1.满足该岗位的技术能力(不扯细节代码,从一些技术实现方

10、式上即可快速了解其程度)2.喜欢编程(从自己做的非公司项目看)3.可塑造(比如够年轻,可弥补技术能力问题)4.交流能力好(说话听不清或者解释的东西让人很难理解,基本没戏)5.有一定产品意识(能对产品提出质疑或从技术角度纠正产品的问题,而非像机器一样只干活)我觉得技术方面不需要牵扯太深。多年工作经验的话技术还是一般,是我的话就不会考虑的,不如去选一个刚毕业底子还不错的。Milo Yip的回答這個問題是和公司和工作性質相關的。以我所在的部門而言,較偏向於技術研發多於純粹軟件開發,所以會比較看重基礎。但由於國內一般比較不看重技術研發方面,而是重於產品製作,所以較難找到合適的有經驗的人材。在這個情況下

11、,通常比較希望慢慢培養基礎好的畢業生,讓他們養成良好的技術研究及軟件開發習慣,包括做實驗驗證想法、寫單元測試、寫各種文檔、嘗試做一些軟件設計、與客戶溝通分析需求等等。這需要長時間的投入,不斷討論、檢查代碼文檔、給予建議等等。當然,程序員總不會100%時間做高大上的事情,總要做一些較簡單、枯燥的工作,這也是一種訓練。或許有時候可能用不著全部基礎,但有良好基礎的人往往有更好的潛力,在未來可以做更深入的事情。侯天资的回答可能刚出校门的人或跨了领域的人,基础很好但没有职位所需的领域知识,需要从头学起。也有一些人有多年工作经验,但基础一般,领域知识的掌握深度也一般,但可能可以解决公司或项目组面临的人手不

12、够的迫切问题。像这种情况,如何做权衡?有闲钱就人才储备,没闲钱就项目优先,公司能够存活下去是第一位的,其次才是发展。面试中,基础方面的考察,数学,数据结构与算法,写程序的功底,掌握到什么程度会认为是合适的人选?再有,算法和数学题可能相对容易设计,但软件抽象的领域则不是三两句话就说得清的,如何在面试中考察一个人抽象的能力,和设计易于维护易于测试代码的能力?有项目经验,以考察项目经验优先,从面试人员对其在项目中所做工作的描述就可以对其代码能力,业务熟悉程度以及人际沟通等各方面了解个七七八八。再深入问一下做项目的时候遇到过什么问题,怎么解决的?这时候侧重要了解的就是解决问题的能力,会包括数学,数据结

13、构与算法的深入讨论。没有项目经验,场景测试吧。从一个已有项目中的实际问题聊起,看看面试人有何反应,以及能够提出怎样的解决方案。一言概之,从实际项目出发,逐层深入,从架构到模块到技术难点,以开放式场景代替固定答案的算法与数学题,重点观察/考察的是思考的过程,而非结果。不过这种方式对面试官的能力要求很高,不是所有的面试官都能以这种方式考察被面试对象的有很多日常的dirty work,以及很多业务逻辑性的代码,事实上并不需要太多数学以及算法方面的知识也能解决。那么招人标准抬得很高,让超水平的人来解决这些问题,是否又有浪费之嫌?真正高水平的人都是聪明的懒人。像这样的dirty work或者重复性劳动,

14、本身就可以通过跑脚本或者流程优化的方式大大提高效率。你会发现当你真正雇佣到一个超水平的人去做这种事情的时候,他的效率会比死脑筋做这些dirty work的人高很多倍,然后这些dirty work就被他们打理得不那么dirty了,再然后他们所采用的工作流程和脚本就可以推广到整个Team乃至部门使用,再再然后他们就被晋升了(或者跳槽)然后你又开始招聘新人补他们的坑。成隽的回答1.有洁癖各类元素的命名、包名字空间划分,代码自解释这些素质能很快区分出“高-中低”两个层次。2.对“为什么”感兴趣,热衷并善于动手解决“怎么干”3.懂取舍,懂平衡“趋势-性能-成本-维护”这些方面懂审时度势,趋利避害。1是好

15、员工,搞定多且平凡的琐事2是能手,搞定难点3是牛人,给个方向目标,带着1、2就能把事了了。考察1,百行代码的基础逻辑试题足够。考察2,面试官可无意曝露或伪造自身项目架构烂点,或表达含糊不清。好奇心强爱刨根问底的应聘者会追问、提疑虑、给建议。太傲的不屑的放弃。考察3,暴露一堆烂尾,面试者能总结出失败点很好,给出整改方案更好,还能敏感准确预计改造点风险和技术/非技术阻力,有靠谱成本估算,收吧国内IT偏项目,较少偏学术。多数情况三分靠琢磨、三分靠经验,三分靠偏执,一分靠天赋,九十分看脸。学历,忽略吧。在一个错综复杂的利益环境里能理清然后解决一堆mess的,在任何环境都是强人。所以挑这类人可能最简单的

16、方式就是有针对性的给出一堆mess,然后看对方的应变、心态和思维缜密度。Tom Zhu的回答手机作答,写一下要点。首先我们确定,要招的是开发工程师,不是产品经理,不是项目经理,不是架构师,不是cto。那么,招进来就要立刻产生直接的生产力。以此为前提:一面,主持者:hr1,候选者期望薪酬是多少,是否超预算。2,从聊天中判断候选者的心理状况,筛除奇葩。3,了解候选者前任工作状况,必要时会打电话给前任公司了解情况。4,介绍公司情况。二面,主持者:项目带头人1,了解候选者技术背景,过往的成就。2,根据项目所需的技术,在候选者的技术背景范围之内,选择一个问题,现场作答。3,根据项目所需的技术,但超出候选

17、者的技术背景,选择一个问题,现场作答。三面,主持者:cto1,了解候选者的技术偏好。2,了解候选者的技术积累以及感悟。3,介绍候选者预计要分配的项目和岗位。Si Lao的回答首先说一下自己:在读大四本科生,现为国际某软件公司实习生在今年3月份开始,和其他大三的码农一样,参加了一些公司的实习生招聘,有的进入了最终面,拿了offer,也有的笔试就被刷了T_T,因此下面说的都是基于实习生面试来说1. 基础知识非常重要(基础知识包括数据结构和算法,计算机网络,操作系统,数据库,编程语言大多会问C/C+ 等。基础知识贯穿整个笔试面试,建议面试前好好复习,平时也要牢固掌握。2. 项目经历。感觉项目经历反应

18、了你做过哪些事情,具有哪些能力,所以面试官都很喜欢问。一方面是了解整个项目的规模以及难度,还有就是看你是不是真的有参与,是否知道其中的细节。这些问题都了解后,会根据项目的细节问你当时是怎么实现的,或者有没有遇到困难怎么解决,或者有没有优化的方法等。在这里还是考察个人的能力。3. 不同公司不同职位要求不同,建议根据相关职位准备相应的知识。4. 沟通能力和解决问题能力。现场可能会有一些问题你不能马上回答出来,面试官会尝试引导你一步步地解决,给你提示,因此需要有一个好的沟通和解决问题的能力,在和面试官交流中,让他看到你的实际能力到了哪里。以上是自己在面了那么多公司后的一些心得,希望能对你有帮助。AF

19、知识网用户的回答我面试技术人员主要看三点:1 基础及相关知识的掌握程度,就算没有掌握的很全,也应该有那种基础很重要的觉悟,并且一直在学习。2 对待技术的态度, 是出于兴趣,还是为了那份薪水,区别是不同的。3 沟通、性格、责任感、团队精神, 这几点很重要,将来会直接影响到你的工作。技术相关问题可以直接了解, 沟通和性格的问题,需要多了解一下他生活或者对待某些事情的看法去侧面了解, 更多的是面试时候是看直觉。 举个例子, 前段时间面试一个android工程师, 面谈了10分钟,觉得不错,就让他做上机测试题, 测试题其实很简单的, 获取一个接口的数据, 显示到listview上就可以了, 但是这人突

20、然表现的很生气, 摔门而出, 我不知道他为什么这样,也许是因为我给的题太简单了,但是不管怎么说, 他的性格、态度、行为,已经出卖了他, 假如让他到了团队工作, 那他也是一个定时炸弹。AF知识网用户的回答这要从公司的规模、现状以及你本人的需求来决定。如果公司规模大,资金充沛。那把两个人都招进来也无妨,一个作为技术人材储备,一个作为解决现有问题。如果公司刚刚成立,资金有限,同时急需产品盈利,那肯定只能把那位有多年经验的留下来以解决当下之急。上述两种为基本状况,招人对于面试者而言也有主观的部分。假如公司规模小,但成立时间较长。而你作为核心元老,为了公司的长远发展,同时也为了惜才,也可以把那位有潜力的

21、新人招进来。一方面你可以自已加班加点的工作来弥补新人的工作量。另一方面,既然是有潜力,那么这位新人对于工作也必定能够快速上手。而且你不用怀疑新人对于工作的热情,年青人可是干劲十足。赵小熊的回答泻药。做过一段时间的面试官,最后总结就是有眼缘,会说话。有眼缘不解释。会说话的表现在几个方面:用术语回答问题。不拐弯抹角。不罗嗦。说话的态度。其他的都不是问题。现在的软件开发,只要不是一个人自己做,有同事、有XX、有谷歌什么问题都可以解决,解决不了的是沟通还有你愿不愿意跟他合作这两个问题。马骏的回答要能装一桶的知识来应对工作单位要的那一盆,如果可以的话你应该准备的知识还有些满益出来了,那样的会给老板惊喜.

22、首先要准备好各种编程知识,知道怎么完成一件事情,具体怎么做.而且还不能局限于这样,你应该还要知道作为软件来说最重要的是质量测试,和用户体检,自己处在技术位置,那么单位看重哪一点,目前还缺那些,能说的上来.这样不但技术过关,还具备一定的管理能力,还具备眼界,这样的人到哪会找不上工作呢.看到别人不能所看,做别人不能所做.月光下的涂鸦的回答不同类型的公司需要的人才类型不一样,面试考察的标准也就不一样。一般讲,创业型的公司或小公司需要一个人干多个人的事,需要的是通才,应该什么都用过会一点,能跟着公司的快速变化迅速转向的人;创业或小公司招两种人,一种是便宜的,另一种是有足够的经验能直接上手做事的。大公司

23、或成熟公司需要的是专才,需要的是产品相关的技术领域有足够造诣的人。倒不是说平时做的事需要多么高的算法编程技能。只是公司人才积累多了,招一个低于平均标准的人进来很难和其他人竞争。另外大公司每个人负责的范围相对窄但深入,没有一定技术深度也很难胜任。这些年在中国和美国大大小小面试过几百号人,感觉我公司的招人主要围绕以下几方面:1。对技术的热情;2。在面试时间内独立思考,解决问题的能力;3。把头脑中的解决方案快速转换成代码的能力;4。对CS基本概念的理解,这主要在解决问题时从侧面考察;5。沟通能力;一般毫不犹豫给Hire的是感觉很聪明,写程序又快又好的人;很犹豫的是那些写程序一般,但对技术很有热情,且

24、年轻的人;很确定给No Hire是别的不管怎样但最后写不出程序的人;建议转PM或测试的是那些别的很一般,但感觉对技术有热情且沟通能力很好的人。海涛的回答只说其它考察之外的一个特别方法:设身处地请 对方假设他自己在面试别人,会出一个 什么样的面试题,并 附加自认为较佳的答案以及为什么。范围可以根据你自己公司、产品、项目的特点而增加约束条件,以免 针对性不强而浪费根据他的选题和答案,可以了解他对约束条件之下的可选范围内的 侧重点(知识面)、分析方法(业务+逻辑)、判断选择(喜好、倾向性)王敏慎的回答这么个性化的问题,作为旁观者给你的意见仅供参考:基础好,有潜力VS技术一般,经验丰富:作为职位提供方

25、,你肯定对这个/些职位需要哪些能力才能胜任很了然。而能够满足你基本需求的情况下,要经验还是要潜力需要看你的用人需求是不是很迫切啦。如果不是很着急,那我建议你找一个好感度更高的、沟通能力更强的、更主动的那个。毕竟技术再强一个人也解决不了所有问题。什么样的基本功才够用:基本功当然是越扎实越好啦,遇到极端点的情况就能体现出我们苦练这么多年基本功的用处了。当然越扎实也就越贵,所以酌情考虑性价比吧;如果你们有着自己的编码规范的话,那么维护性好的代码其实也没那么难写;至于抽象能力这种没法在短短几轮面试中体现的能力,请见仁见智吧其实最好的办法还是提供足够有吸引力的环境/待遇,你肯定能找到基础好、能力强、经验

26、丰富的工程师的。谢丹丹的回答首先我提个问题,招聘官希望找到什么样的人?假如新员工不是期望的那样,该怎么应对?是否有能里应对?考察的素质需要考虑到公司能提供给员工的职位变动灵活性,因为当你发现某个员工并不适合其在的职位,能否提供其他职位更加充分利用资源?灵活度大的公司,考察的技术基础和兴趣比重大些;而灵活性小的公司,考察的方面则需要定制化。根据具体公司来情况,还要看招聘的职位在公司中是处于什么位置,特别是那些部分或者小组成分不容易流动的公司中,进入什么定位基本上就处于那个定位了。因为没有足够的空间来调整,招聘到不合适的工程师代价会很大。贺路的回答蟹約。技术上可行,聊天上实在。杨杰的回答(知识+能

27、力)*态度。记住,知识和技能只是加法关系,真正决定的是态度。能力强知识牢固,只能决定他的起点比别人高一些,真正重视的是态度。一个好的态度你能愿意教会他很多。你招来的是一个工程师,不是给你洗两天碗就走人的大妈,所以不要太重视知识,不会的可以培训嘛。当然,这些适用于应届生或者刚工作一两年的人AstralRoad的回答有人邀请是很奇怪的事情嘛。学习别人:谢 邀请 我这看起来和轮子大说的差不多,作为非管理人员偶尔面过几次别人,主要关注点在于,聊天聊起来是否顺畅,三观接近,行业八卦知晓,聊聊怎么黑语言,黑平台,黑一个区要500台服务器什么服务端,聊聊以前做过的东西,最多就是找个目前项目里一些地方提出来看

28、看有什么看法。 因为低端翻译工作,也就不要做那些奇怪的题目什么的,然后问下这个加班很多还没加班工资大丈夫? 我这里薪水低,没前途什么的,就没楼主想的那么多啦。领域知识方面的,这个无解,愿意花时间培养就是了,不愿意就去挖别人家的,一般不至于要养好多个月才能用。 至于领域知识和技术能力的选择取舍问题,勉强可以说这两点并不相干吧,或者是看实际项目侧重点。如果人手真那么不够,又立即招不到,再不好也只能捏着鼻子认了呗。算法什么的,没什么要求的话,常见算法说得出差不多情况;有要求就看具体公司项目了。再考察一些以前项目代码的组织结构,测试部署相关的东西。至于脏活嘛,总是得干的。在可控的交流成本下可以分给小朋友啦,阿三啦,策划啦,经理啦,美术啦,闲的蛋疼的队友啦。但是一般还是自己搞定自己负责范围内的好。有些情况,有些脏活需要工具,需要良好的支持,速度还是很快的,刚好就当休息了。招人要求基本都大大超过填简单逻辑的程度的主要问题是,怎么把需要做的东西拆成只要高手完成的部分,和只要无脑填逻辑的部分。找队友还是很欢乐的事情啦。=500台服务器什么的那谁千万别看到。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1