如何辨别一个程序员水平的高低?
◎✑如何辨别一个程序员水平的高低?
1.自己介绍项目,看对项目的提炼总结能力(也是抽象能力);
2.自己印象最深的bug,可以知道大概技术深度;
3.设计模式提问,看有没有学习方法;
4.语法基础问题,多线,分布,安全等问题,看知识面广度;
5.智力问题,看反应能力,分析问题思路等
上述五步基本可知是否是一个好程序猿
⇗✮如何辨别一个程序员水平的高低?
计科专业从事软件开发十几年了,主要在浏览器内核领域研究的比较多,最近在研究服务器后台方向,辨别程序员水平高低主要看做出了什么产品,如同现在的程序员主要是项目经验,简历上写的一堆项目经验都是面试的时候主要提及的问题。经常在面试中会问两个关键点:一个是做过什么项目;一个是在项目组中承担什么职务,毕竟参与过和做的多少程度是不一样的,这些都是可以通过一些具体的细节检测出来,问题越具体越是容易看出水准,具体的东西不是能够编造出来的。
有很多技术公司直接不通过笔试,仅仅通过简单的面试就确定工资水准了,最简单的测试程序员水平的直接用笔试的方式,笔试可以把一些细节量化,尽量的细节化也是能测试出程序员基本功的,但这种基本用来测试初级程序员的,很多高级的程序员看到有笔试直接就抬腿走人了,因为有些程序员在一个方向做的时间太长了,很多基本功都忘得差不多了,所以笔试可能不过关,现实中很多程序员笔试不过关,面试还可以,也一样可以做项目说的就是这类人,起码这算是非常优秀的程序员。
有很多公司采用谷歌的方式,直接采用上机写代码的方式检验程序员水平,这种方式比较直接,但在现实中可能消耗的时间以及面试官的精力,目前只有极少数的公司用这种方式,国外的公司用这种方式比较多,这种看基本功非常有效。通过代码可以看到编码习惯以及算法的设计上,都能直接看的出来。
普通的程序员直接看项目的经验,高级的直接看做过的产品,特别是产品主要设计人员,这就是程序员内心的自豪感,毕竟作为一个程序员起码要有自己设计开发的产品,也算是不白做一个程序员,在程序员的职业经历中如果能经历过一个产品从开始设计的初稿到最后推向市场,如果是完整的经历,将是一种巨大的财富,只要经历过一次都会对产品设计有一个比较层次的认识,这种能力需要靠直接的面试语言表达来展示出来,谈下对产品的认识以及产品稳定性性能等方面的总结,能到这个层面起码是高级软件工程师的级别。
当然有些程序员内在的东西不是靠语言或者写代码看出来的,因为一个优秀的程序员不仅仅是代码能力以及框架能力,还有几个非常重要的能力
责任心,在项目推进过程中如果只是关心自己模块内容,对于整个项目置之不理,基本上很难有多大的成绩,眼界只是守着自己的一亩三分地,有些程序员开始其貌不扬,技术能力也不是最好的,但最后做到了主管或者经理甚至副总,这里面一定包含着技术之外的东西,至少包含责任心。
抗压能力,现在绝大部分程序员都有抗压能力不强的缺陷,有了一个看似变态的需求内心的第一反应就是排斥,作为一个技术人员首先要做到用技术服务产品,不要掺杂过多的消极因素在工作中,只要是能当技术管理抗压能力一定是比普通的技术人员更加用于承担。
沟通能力,这种其实在面试过程中能体现出来,沟通主要是技术沟通,以及和客户之间的沟通,所有技术都不是闭门造车就能搞定的,沟通能让事情推进起来更加顺畅,包括和产品经理之间的流畅的沟通也显得非常重要。
程序员的能力表面是可以直接展示出来,但很多内在需要是需要时间的磨合才能了解,人就才能见人心,而且很多优秀的程序员是培养出来的,能够长时间在一起的队友都是时间长了磨练出来的。
希望能够帮到你。
▌➮如何辨别一个程序员水平的高低?
自认为不是一个好的面试官,因为我认为在这么短的时间内,准确地衡量出来程序员水平的高低是有比较大的难度的,并且我有多次看走眼的时候,面试的时候觉得能力还不错,但是入职工作了一段时间之后,编程能力不忍直视。
工作之后接触一段时间,我会从这么几个方面观察他们,以判断技术能力的高低和发展潜力。
能不能出活儿、能不能debug
能不能把开发任务按时按质量地完成,当然是最主要的衡量标准了:
需求理解快而准确,流程设计考虑全面,可以按时间要求开发完成,Bug少...这当然是项目经理最喜欢的程序员了;
能力一般,但是工作态度端正,不懂就问,也可以按照时间要求完成工作,这也是合格的程序员;并且经过一段时间的培养和成长,可能变成优秀的程序员;
工作能力一般,每次迭代都领最简单的任务,开发出来的代码问题多多,没有责任心,发生问题就喜欢甩锅...这种程序员,很快会被淘汰。
解决问题的方法
在开发过程中,难免会遇到没有见过的问题,有些程序员遇到问题无从下手,而优秀的程序员,自有一套解决问题的方法。
擅长使用搜索引擎、Stack Overflow等网站,有一定的英文阅读能力,遇到问题之后,先尝试按照暴露出来的问题搜索,寻找解决问题的方法;这里不太建议使用中文搜索引擎,很多时候,按照英文搜索,更容易找到解决方法;
问领导、问前辈、问同事,有些问题自己解决起来很困难,但是其他人有可能遇到过相同或类似的问题,他们给一些提示和方向,就可以帮助你很快地解决问题;但是要注意,这些问题一定是要你自己思考过,尝试解决过,而不是一有问题,就去寻求别人的帮助。
分析问题、流程设计的思路
有人会认为,程序员的主要工作就是敲代码,上班大部分时候都是在敲代码,其实并不是这样:
程序员很多时间都在做需求分析,能不能快速和全面地理解需求,也是考核程序员水平的一个标准;
在敲代码之前,要做很多设计工作,一些复杂的功能,需要把流程图画出来,甚至把伪代码写出来;一些水平比较低的程序员,甚至这一步做的都有困难,流程都想不明白,写出来的代码更不可能对了。
总结问题和改进问题的能力
好的程序员,相同的问题不会犯第二次,差的程序员,总会在一个问题上栽跟头:
优秀的程序员,也是一步一步成长起来的,各方面都差不多的两个新手程序员,为什么若干年后的水平相差很大,就是因为优秀的程序员,在工作中会遇到各种问题,他们在找到解决问题的方法之后,会总结经验,当未来遇到相同或类似问题的时候,可以很快解决;
建议大家养成写技术笔记的习惯,技术博客不仅是分享给别人看的,更是一个总结的过程,写给自己看的。
我将持续分享Java开发、架构设计、程序员职业发展等方面的见解,希望能得到你的关注。
﹠⇝如何辨别一个程序员水平的高低?
不请自来,一介码农路过,留下些看法。
程序员主要是有四种综合能力,也就是debug 能力、 performance分析、 保护性编程和 投入产出比。
debug 能力。这是我们生活中常用的一种能力,也就是调试问题的问题。performance分析。能够对业务和代码进行精准的分析。保护性编程。对代码的侵入性尽量的低,也就是解耦。投入产出比。效率的问题。仅仅独立完成日后必然成高手?
在这里不能说一棒子打死,至少对于很多人来说,能独立完成是没什么问题的,有的是因为对业务熟悉,有的是真的基础扎实。但怎么说呢,程序员和浏览器打交道是最多的,现在这个互联网时代,遇到的大部分问题百度都是可以解决的,也就是普通程序员 + 百度 = 超级程序员。 但很多人也没明白具体的原理,甚至都是这个项目抄抄那个项目抄抄的,久而久之虽然解决了平时的业务,但进步的空间却很少,甚至止步不前,写出来的代码也可能存在很多坑,所以,仅仅能独立完成任务的话,离高手还有比较远的一段距离。
如何辨别高手程序员?
也就是结合我们一开始列举的那四个能力进行判断。不同级别的程序员,在那综合能力面前,强弱也是不同的。例如在奔溃的或者其他性能调优问题上,即使是面对大量复杂的代码,在信息不全的时候也会一步步的分析,抽丝剥茧缩小范围,最终定位根本原因
,并且最终给出一个好的方案。
如何成为高手程序员?
学习设计模式。设计模式对程序员来说是一门重要的课程,设计模式是前辈程序员们总结下来的宝贵的解决问题的问题,能让我们写出更好的代码。写代码其实也可以看成是一门艺术,代码写得优雅就会让人看着舒服。动手前养成先思考规划的习惯。很多时候,我们临急临忙的动手,反而留的坑会越来越多。就比如我最近项目上遇到的一个问题,一开始做得复杂了,越写下去就发现越多坑,而且代码也比较凌乱。后来冷静的思考了一下,发现只有设计库的设计稍微修改修改,问题就能变得简单起来,代码也写得比之前的优雅了许多。有条件的话学习下算法和数据结构。在这里,也还是推荐适当的学习算法和数据结构的,虽然很枯燥,但这也是让我们变强大的内功。虽然可能很多时候用不到,但其实算法是在潜移默化的改变了我们思考的能力,让我们脑子变得更加的灵活,甚至会慢慢的一点点渗入我们的生活中。〓✄如何辨别一个程序员水平的高低?
看他写的代码。恰如其分的注释,整齐划一的命名,友好的安装文档,就算是一个外行,也能看懂个七七八八。能否快速定位问题,如何排除,如何打短点、如何做隔离、如何用假数据?语言表达能力,能不能三言两语把一件事说明白,是不是答非所问。弄不清需求走弯路就不好了。是否有开放的心态,有的程序员自持傲物,觉得码农最牛逼,其他人都得围着他转,别人什么都不是。虽然技术很牛,但还是建议远离。工具的使用能力,比如把Windows换成苹果甚至Linux,他还能不能工作?把IDE换成记事本甚至VIM他还能不能愉快的工作?一个好的程序员这都不是事儿,他都会玩一遍,什么样的环境都难不倒也困不住他。读过多少计算机专业的书,是否愿意把技术分享出来?那些愿意分享技术经验,和同行互通有无的程序员,更容易融会贯通。形成自己在公司的威望,进一步出人头地。有没有自己的业余玩耍项目?有可以加分,没有可能是真的太忙,也不必减分。永远不要低估程序员对英语的依赖,英语好的查阅外文编程资料,仅仅依靠英语阅读能力,就能解决百分之八十的能力。那些英语单词都认不明白的,高不了。也可以换一个编程以外的话题,看他了解的深不深,往往那些优秀的程序员,在其他领域也能给你带来很不一样的惊喜,比如钢琴弹的很好。很遗憾,还是要看学历。名校、高学历,哪怕跨专业过来的,天资自然聪慧,一般差不了。高考已经把人区分开来了。
当然还有看他摘了帽子是否秃顶这样的笑话,就再不赘述了。
------------------
推荐阅读:
如果孙武,韩信,李靖,徐达,岳飞,卫青各自领兵决战,谁会是最后的人生赢家?