软件开发工程师面试应该考察哪些素养如何做衡量.docx

上传人:b****6 文档编号:6322161 上传时间:2023-01-05 格式:DOCX 页数:9 大小:25.39KB
下载 相关 举报
软件开发工程师面试应该考察哪些素养如何做衡量.docx_第1页
第1页 / 共9页
软件开发工程师面试应该考察哪些素养如何做衡量.docx_第2页
第2页 / 共9页
软件开发工程师面试应该考察哪些素养如何做衡量.docx_第3页
第3页 / 共9页
软件开发工程师面试应该考察哪些素养如何做衡量.docx_第4页
第4页 / 共9页
软件开发工程师面试应该考察哪些素养如何做衡量.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

软件开发工程师面试应该考察哪些素养如何做衡量.docx

《软件开发工程师面试应该考察哪些素养如何做衡量.docx》由会员分享,可在线阅读,更多相关《软件开发工程师面试应该考察哪些素养如何做衡量.docx(9页珍藏版)》请在冰豆网上搜索。

软件开发工程师面试应该考察哪些素养如何做衡量.docx

软件开发工程师面试应该考察哪些素养如何做衡量

软件开发工程师的面试应该考察哪些素养,如何做衡量?

庄生的回答

第一介绍一下背景

行业:

我所在的行业IT很重要但并非是revenuecenter,属于烧钱部门,地位不能跟纯互联网公司或游戏公司比

组:

咱们组最近几年的方向都是招一条龙的程序员,以便减少沟通本钱和方便问责。

那个地址的一条龙不但包括技术上写前后端和数据库的代码,也包括在公司内部和用户沟通拿需求,测试,发布部署前后的行政工作。

大体上出了问题推都推不掉。

个人:

我本人从来没有在国内工作过,因此体会上可能会有所误差。

我一样来讲都是第二面,第一面主管已经面过了,简历上的问题问的差不多了,因此我很少会问简历上的问题。

除非有匪夷所思的经历。

从最近几年招人的体会中得出的结论要紧有以下几点。

按重要性排序如下:

1-态度

这是我最看重的特质,固然那个态度说的不是对我的态度,而是试探问题和解决问题的态度。

个人来讲比较偏好的是对自己感爱好的领域具有‘打破砂锅问到底’的精神,具有如此精神的人往往有一种完美主义,关于自己的代码有强烈的mentalattachment,会自己挤时刻不断地fixbugs,增加unittests或refactoring,久远来看对项目质量超级有益处,组里有如此的人超级省心。

(哎,我干吗帮资本家去想这些)

如此的面试,我一样直接问candidate你最有自信的技术是什么?

然后顺着那个不断地深切挖掘。

通过“若是你来设计”如此的假设,来考察应聘者对自己自信的技术到底有何种程度的了解,到底有无想过这些技术什么缘故会是如此的。

案例1,我对数据库很熟悉

那么“若是你来设计”的问题就会类似如此:

1,若是你来设计数据库,你会怎么治理文件的?

比如我insert了一行数据到employee表,具体在后台发生了什么情形?

会有什么样的写入操作?

有哪些东西会被更新

2,好,此刻record已经在数据里面了。

我跑一句select*fromemployeewherelast_name='Smith'。

你感觉数据库具体做了哪些情形把这一条数据给返回的?

它是怎么从文件系统中把这一条记录给找出来的?

3,假设我的employee内外已经有一些数据了,这时我加了一个新的column,会发生什么情形?

文件系统中需要做哪些改动?

4,假设我的employee内外已经有一些数据了,这时加了一个index,又会发生什么情形?

要写入哪些文件,具有什么特性的数据结构?

5,好,此刻已经有index了,那么一样的查询select*fromemployeewherelast_name='Smith'在执行的进程中会有什么区别?

看能不能具体展开说明

6,若是你来设计数据库,你会怎么实现join呢?

若是两个表都建了索引是怎么做的?

若是两个都没有呢?

若是一个表有索引?

7,等等等等。

案例2,我用Spring用得最熟

1,singleton到底有什么用?

我用staticmethod什么缘故不能做一样的情形?

什么情形下会用staticmethod更好一些?

2,dependencyinjection到底有什么用?

interface在那个地址的作用究竟是什么?

3,好,这么看来,spring确实可能在某些情形下有点用,那么若是你来改善spring的话,你会改良哪些点呢?

4,能不能大致讲讲,你感觉autowire具体是怎么实现的?

实际利用中会有哪些问题呢?

5,constructorinjection和methodinjection的好坏比较?

什么情形下用哪个?

6,spring在unittest中起到什么作用,哪些情形下能够不用spring,给一下具体的例子?

7,若是有一天Oracle想在语言层面支持DI,你会怎么设计syntax?

什么缘故?

8,等等等等。

注意:

那个地址要紧考察的是思维能力,看看他有无想过这些问题,而不要纠结于Sybase或Spring是不是真的是这么实现的。

我再重复一遍,不要纠结回答的准确性,关键是那个人的思路怎么样,是不是能自圆其说。

这一部份一样持续20分钟到30分钟,取决于candidate的素养和话题本身能不能聊出东西来。

可能因为我的那个面试方式比较少见,感觉许多candidate一开始会比较紧张。

这时作为面试官需要不断地给于正面回馈,让他感觉自己还不错,以便放松下来。

固然,若是实在是太差的大体就直接“doyouhaveanyquestionsforus”了。

2-体会

那个体会不但包括过去公司里从事过哪些项目,也包括平常都做些什么。

因为我的行业关系,我感觉纯大公司流或纯互联网公司流的都有缺憾。

前者过于保守古板沉闷,后者过于激进缺乏质量意识,都比较极端。

最理想的是在大公司工作一段时刻,同时业余保护一个github项目之类的。

这种人一样既比较踊跃主动,又能明白得并遵守历史遗留问题。

属于兼容并包的好队友。

这一块一样10分钟,取决于有无东西聊。

3-算法

那个可能会引发争议,算法上只要不是太差就行,毕竟咱们日常工作牵涉算法的部份不是专门多。

由于一样咱们第三面会有别的同时做pairprogramming,因此我这边都是可能问一个简单的可是实际的问题。

举个例子,给你一列区间,如何把它归并起来?

defmerge(ranges:

List[Int,Int]):

List[(Int,Int)]=?

?

?

伪代码写在纸上就好了。

确实是看看大体的排序递归的利用。

具体排序算法也不是非得写出来。

这一块一样15到20分钟。

4-对新技术的热情

最近有关注什么新技术吗?

angularjs啊,好在哪儿呢?

akka啊,说明说明什么是SoftwareTransactionalMemory啊?

之类的。

因为很多人很喜爱聊这些,也算是给自己充充电。

可能是我个人经历的关系,对新技术的热情是一个必要条件,但并非单独组成一个加分项,我见过很多对新技术很有热情,完全只是因为宜奇,想尝鲜的方式。

关于组和公司的利益却不怎么放在心上。

把组里的项目当做实验场,如此的人最后往往需要其他组员帮他擦屁股。

这一块大体确实是闲聊,当是扫尾了,5到10分钟吧。

vczh的回答你就这么想把,那个人进来了,要跟你一路做同一个项目。

你愿不肯意?

在咱们这,情愿就给hire,不肯意就给nohire,然后通过了一成天的面试那个人就有了很多hire和nohire,到时候一看便知。

李运华的回答谢@忻尚魁的回答我这边招人的话普遍是如下

1.知足该职位的技术能力(不扯细节代码,从一些技术实现方式上即可快速了解其程度)

2.喜爱编程(从自己做的非公司项目看)

3.可塑造(比如够年轻,可弥补技术能力问题)

4.交流能力好(说话听不清或说明的东西让人很难明白得,大体没戏)

5.有必然产品意识(能对产品提出质疑或从技术角度纠正产品的问题,而非像机械一样只干活)

我感觉技术方面不需要牵涉太深。

连年工作体会的话技术仍是一样,是我的话就可不能考虑的,不如去选一个刚毕业底子还不错的。

MiloYip的回答這個問題是和公司和工作性質相關的。

以我所在的部門而言,較偏向於技術研發多於純粹軟件開發,因此會比較看重基礎。

但由於國內一样比較不看重技術研發方面,而是重於產品製作,因此較難找到合適的有經驗的人材。

在這個情況下,通常比較希望慢慢培養基礎好的畢業生,讓他們養成良好的技術研究及軟件開發習慣,包括做實驗驗證方式、寫單元測試、寫各種文檔、嘗試做一些軟件設計、與客戶溝通分析需求等等。

這需要長時間的投入,不斷討論、檢查代碼文檔、給予建議等等。

當然,程序員總不會100%時間做高大上的情形,總要做一些較簡單、枯燥的工作,這也是一種訓練。

或許有時候可能用不著全数基礎,但有良好基礎的人往往有更好的潛力,在未來能够做更深切的情形。

侯天资的回答可能刚出校门的人或跨了领域的人,基础专门好但没有职位所需的领域知识,需要从头学起。

也有一些人有连年工作体会,但基础一样,领域知识的把握深度也一样,但可能能够解决公司或项目组面临的人手不够的迫切问题。

像这种情形,如何做衡量?

有闲钱就人材储蓄,没闲钱就项目优先,公司能够存活下去是第一名的,第二才是进展。

面试中,基础方面的考察,数学,数据结构与算法,写程序的功底,把握到什么程度会以为是适合的人选?

再有,算法和数学题可能相对容易设计,但软件抽象的领域那么不是三两句话就说得清的,如安在面试中考察一个人抽象的能力,和设计易于保护易于测试代码的能力?

有项目体会,以考察项目体会优先,从面试人员对其在项目中所做工作的描述就能够够对其代码能力,业务熟悉程度和人际沟通等各方面了解个七七八八。

再深切问一下做项目的时候碰到过什么问题,怎么解决的?

这时偏重要了解的确实是解决问题的能力,会包括数学,数据结构与算法的深切讨论。

没有项目体会,场景测试吧。

从一个已有项目中的实际问题聊起,看看面试人有何反映,和能够提出如何的解决方案。

一言概之,从实际项目动身,逐层深切,从架构到模块到技术难点,以开放式场景代替固定答案的算法与数学题,重点观看/考察的是试探的进程,而非结果。

只是这种方式对面试官的能力要求很高,不是所有的面试官都能以这种方式考察被面试对象的

有很多日常的dirtywork,和很多业务逻辑性的代码,事实上并非需要太多数学和算法方面的知识也能解决。

那么招人标准抬得很高,让超水平的人来解决这些问题,是不是又有浪费之嫌?

真正高水平的人都是伶俐的懒人。

像如此的dirtywork或重复性劳动,本身就能够够通过跑脚本或流程优化的方式大大提高效率。

你会发觉当你真正雇佣到一个超水平的人去做这种情形的时候,他的效率会比死脑筋做这些dirtywork的人高很多倍,然后这些dirtywork就被他们打理得不那么dirty了,再然后他们所采纳的工作流程和脚本就能够够推行到整个Team乃至部门利用,再再然后他们就被晋升了(或跳槽)然后你又开始招聘新人补他们的坑。

成隽的回答1.有洁癖

各类元素的命名、包名字空间划分,代码自说明

这些素养能专门快区分出“高-中低”两个层次。

2.对“什么缘故”感爱好,热衷并擅长动手解决“怎么干”

3.懂取舍,懂平稳

“趋势-性能-本钱-保护”这些方面懂审时度势,趋利避害。

1是好员工,弄定多且一般的杂事

2是能手,弄定难点

3是牛人,给个方向目标,带着一、2就能够把事了了。

考察1,百行代码的基础逻辑试题足够。

考察2,面试官可无心曝露或伪造自身项目架构烂点,或表达含糊不清。

好奇心强爱寻根究底的应聘者会追问、提疑虑、给建议。

太傲的不屑的舍弃。

考察3,暴露一堆烂尾,面试者能总结出失败点专门好,给出整改方案更好,还能灵敏准确估量改造点风险和技术/非技术阻力,有靠谱本钱估算,收吧

国内IT偏项目,较少偏学术。

多数情形三分靠琢磨、三分靠体会,三分靠偏执,一分靠天赋,九十分看脸。

学历,忽略吧。

在一个错综复杂的利益环境里能理清然后解决一堆mess的,在任何环境都是强人。

因此挑这种人可能最简单的方式确实是有针对性的给出一堆mess,然后看对方的应变、心态和思维缜密度。

TomZhu的回答电话作答,写一下要点。

第一咱们确信,要招的是开发工程师,不是产品领导,不是项目领导,不是架构师,不是cto。

那么,招进来就要立刻产生直接的生产力。

以此为前提:

一面,主持者:

hr

1,候选者期望薪酬是多少,是不是超预算。

2,从谈天中判定候选者的心理状况,筛除奇葩。

3,了解候选者前任工作状况,必要时会打给前任公司了解情形。

4,介绍公司情形。

二面,主持者:

项目带头人

1,了解候选者技术背景,过往的成绩。

2,依照项目所需的技术,在候选者的技术背景范围之内,选择一个问题,现场作答。

3,依照项目所需的技术,但超出候选者的技术背景,选择一个问题,现场作答。

三面,主持者:

cto

1,了解候选者的技术偏好。

2,了解候选者的技术积存和感悟。

3,介绍候选者估量要分派的项目和职位。

SiLao的回答

第一说一下自己:

在读大四本科生,现为国际某软件公司实习生

在今年3月份开始,和其他大三的码农一样,参加了一些公司的实习生招聘,有的进入了最终面,拿了offer,也有的笔试就被刷了T_T,因此下面说的都是基于实习生面试来讲

1.基础知识超级重要(基础知识包括数据结构和算法,运算机网络,操作系统,数据库,编程语言大多会问C/C++等)。

基础知识贯穿整个笔试面试,建议面试前好好温习,平常也要牢固把握。

2.项目经历。

感觉项目经历反映了你做过哪些情形,具有哪些能力,因此面试官都很喜爱问。

一方面是了解整个项目的规模和难度,还有确实是看你是不是真的有参与,是不是明白其中的细节。

这些问题都了解后,会依照项目的细节问你那时是怎么实现的,或有无碰到困难怎么解决,或有无优化的方式等。

在那个地址仍是考察个人的能力。

3.不同公司不同职位要求不同,建议依照有关职位预备相应的知识。

4.沟通能力和解决问题能力。

现场可能会有一些问题你不能马上回答出来,面试官会尝试引导你一步步地解决,给你提示,因此需要有一个好的沟通和解决问题的能力,在和面试官交流中,让他看到你的实际能力到了哪里。

以上是自己在面了那么多公司后的一些心得,希望能对你有帮忙。

AF知识网用户的回答我面试技术人员要紧看三点:

1基础及相关知识的把握程度,就算没有把握的很全,也应该有那种基础很重要的觉悟,而且一直在学习。

2对待技术的态度,是出于爱好,仍是为了那份薪水,区别是不同的。

3沟通、性格、责任感、团队精神,这几点很重要,以后会直接阻碍到你的工作。

技术相关问题能够直接了解,沟通和性格的问题,需要多了解一下他生活或对待某些情形的观点去侧面了解,更多的是面试时候是看直觉。

举个例子,前段时刻面试一个android工程师,面谈了10分钟,感觉不错,就让他做上机测试题,测试题其实很简单的,获取一个接口的数据,显示到listview上就能够够了,可是这人突然表现的很动气,摔门而出,我不明白他什么缘故如此,或许是因为我给的题太简单了,可是不管怎么说,他的性格、态度、行为,已经出卖了他,假设让他到了团队工作,那他也是一个按时炸弹。

AF知识网用户的回答这要从公司的规模、现状和你本人的需求来决定。

若是公司规模大,资金充沛。

那把两个人都招进来也无妨,一个作为技术人材储蓄,一个作为解决现有问题。

若是公司方才成立,资金有限,同时急需产品盈利,那确信只能把那位有连年体会的留下来以解决当下之急。

上述两种为大体状况,招人关于面试者而言也有主观的部份。

假设公司规模小,但成立时刻较长。

而你作为核心元老,为了公司的久远进展,同时也为了惜才,也能够把那位有潜力的新人招进来。

一方面你能够自已加班加点的工作来弥补新人的工作量。

另一方面,既然是有潜力,那么这位新人关于工作也必然能够快速上手。

而且你不用疑心新人关于工作的热情,年青人可是干劲十足。

赵小熊的回答泻药。

做过一段时刻的面试官,最后总结确实是有眼缘,会说话。

有眼缘不说明。

会说话的表此刻几个方面:

用术语回答下列问题。

不拐弯抹角。

不罗嗦。

说话的态度。

其他的都不是问题。

此刻的软件开发,只要不是一个人自己做,有同事、有XX、有谷歌什么问题都能够解决,解决不了的是沟通还有你愿不肯意跟他合作这两个问题。

马骏的回答要能装一桶的知识来应付工作单位要的那一"盆",若是能够的话你应该预备的知识还有些满益出来了,那样的会给老板惊喜.

第一要预备好各类编程知识,明白怎么完成一件情形,具体怎么做.

而且还不能局限于如此,你应该还要明白作为软件来讲最重要的是质量测试,和用户体检,自己处在技术位置,那么单位看重哪一点,目前还缺那些,能说的上来.

如此不但技术过关,还具有必然的治理能力,还具有眼界,如此的人到哪会找不上工作呢.看到他人不能所看,做他人不能所做.月光下的涂鸦的回答不同类型的公司需要的人材类型不一样,面试考察的标准也就不一样。

一样讲,创业型的公司或小公司需要一个人干多个人的事,需要的是通才,应该什么都用过会一点,能随着公司的快速转变迅速转向的人;创业或小公司招两种人,一种是廉价的,另一种是有足够的体会能直接上手做事的。

大公司或成熟公司需要的是专才,需要的是产品相关的技术领域有足够造诣的人。

倒不是说平常做的事需要何等高的算法/编程技术。

只是公司人材积存多了,招一个低于平均标准的人进来很难和其他人竞争。

另外大公司每一个人负责的范围相对窄但深切,没有必然技术深度也很难胜任。

这些年在中国和美国大大小小面试过几百号人,感觉我公司的招人要紧围绕以下几方面:

1。

对技术的热情;

2。

在面试时刻内独立试探,解决问题的能力;

3。

把头脑中的解决方案快速转换成代码的能力;

4。

对CS大体概念的明白得,这要紧在解决问题时从侧面考察;

5。

沟通能力;

一样毫不犹豫给Hire的是感觉很伶俐,写程序又快又好的人;很犹豫的是那些写程序一样,但对技术很有热情,且年轻的人;很确信给NoHire是别的不管如何但最后写不出程序的人;建议转PM或测试的是那些别的很一样,但感觉对技术有热情且沟通能力专门好的人。

海涛的回答只说其它考察之外的一个专门方式:

设身处地

请对方假设他自己在面试他人,会出一个什么样的面试题,并附加自以为较佳的答案和什么缘故。

范围能够依照你自己公司、产品、项目的特点而增加约束条件,以避免针对性不强而浪费

依照他的选题和答案,能够了解他对约束条件之下的可选范围内的偏重点(知识面)、分析方式(业务+逻辑)、判定选择(喜好、偏向性)王敏慎的回答这么个性化的问题,作为旁观者给你的意见仅供参考:

基础好,有潜力VS技术一样,体会丰硕:

作为职位提供方,你确信对那个/些职位需要哪些能力才能胜任很了然。

而能够知足你大体需求的情形下,要体会仍是要潜力需要看你的用人需求是不是很迫切啦。

若是不是很着急,那我建议你找一个好感度更高的、沟通能力更强的、更主动的那个。

毕竟技术再强一个人也解决不了所有问题。

什么样的大体功才够用:

大体功固然是越扎实越好啦,碰到极端点的情形就能够表现出咱们苦练这么连年大体功的用途了。

固然越扎实也就越贵,因此酌情考虑性价比吧;若是你们有着自己的编码标准的话,那么保护性好的代码其实也没那么难写;至于抽象能力这种无法在短短几轮面试中表现的能力,请见仁见智吧……

其实最好的方法仍是提供足够有吸引力的环境/待遇,你确信能找到基础好、能力强、体会丰硕的工程师的。

谢丹丹的回答第一我提个问题,招聘官希望找到什么样的人?

假设新员工不是期望的那样,该怎么应付?

是不是有能里应付?

考察的素养需要考虑到公司能提供给员工的职位变更灵活性,因为当你发觉某个员工并非适合其在的职位,可否提供其他职位加倍充分利用资源?

灵活度大的公司,考察的技术基础和爱好比重大些;

而灵活性小的公司,考察的方面那么需要定制化。

依照具体公司来情形,还要看招聘的职位在公司中是处于什么位置,专门是那些部份或小组成份不容易流动的公司中,进入什么定位大体上就处于那个定位了。

因为没有足够的空间来调整,招聘到不适合的工程师代价会专门大。

贺路的回答蟹約。

技术上可行,谈天上实在。

杨杰的回答(知识+能力)*态度。

记住,知识和技术只是加法关系,真正决定的是态度。

能力强知识牢固,只能决定他的起点比他人高一些,真正重视的是态度。

一个好的态度你能情愿教会他很多。

你招来的是一个工程师,不是给你洗两天碗就走人的大妈,因此不要过重视知识,可不能的能够培训嘛。

固然,这些适用于应届生或刚工作一两年的人AstralRoad的回答有人邀请是很奇怪的情形嘛。

学习他人:

谢@邀请

我这看起来和轮子大说的差不多,作为非治理人员偶然面过几回他人,要紧关注点在于,谈天聊起来是不是顺畅,三观接近,行业八卦知晓,聊聊怎么黑语言,黑平台,黑一个区要500台效劳器什么效劳端,聊聊以前做过的东西,最多确实是找个目前项目里一些地址提出来看看有什么观点。

因为低端翻译工作,也就不要做那些奇怪的题目什么的,然后问下那个加班很多还没加班工资大丈夫?

我那个地址薪水低,没前途什么的,就没楼主想的那么多啦。

领域知识方面的,那个无解,情愿花时刻培育确实是了,不肯意就去挖他人家的,一样不至于要养好多个月才能用。

至于领域知识和技术能力的选择取舍问题,勉强能够说这两点并非相干吧,或是看实际项目偏重点。

若是人手真那么不够,又当即招不到,再不行也只能捏着鼻子认了呗。

算法什么的,没什么要求的话,常见算法说得出差不多情形;有要求就看具体公司项目了。

再考察一些以前项目代码的组织结构,测试部署相关的东西。

至于脏活嘛,老是得干的。

在可控的交流本钱下能够分给小朋友啦,阿三啦,策划啦,领导啦,美术啦,闲的蛋疼的队友啦。

可是一样仍是自己弄定自己负责范围内的好。

有些情形,有些脏活需要工具,需要良好的支持,速度仍是专门快的,恰好就当休息了。

招人要求大体都大大超过填简单逻辑的程度的要紧问题是,怎么把需要做的东西拆成只要高手完成的部份,和只要无脑填逻辑的部份。

找队友仍是很欢乐的情形啦。

============================================

500台效劳器什么的那谁万万别看到。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 自然科学 > 生物学

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

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