分享一个我判断程序员代码实力的方法

2017-08-22 01:03:49 +08:00
 baskice
根据我的观察,程序员的实力可以根据 代码量:bugs 数量 的增长函数来鉴别。

刚入门的新人通常在代码量较少时 bugs 的数量也少,但当项目复杂程度增长后 bug 数量会指数式爆发增长
(团队没有培养能力的话尽可能不要招这个水平还自身没有很强学习动力的人)

普通水平的程序员自己写代码时 bugs 数量和代码量呈稳定线性增长趋势
(合作项目就难说了,更看管理者合作能力好不好)(这个程度薪水已经能够保证了,但替代性依旧很强,老板可能一言不合炒人)

高级程序员 bug 量几乎不随代码量增长而增长。到这个阶段如果还有一定管理能力,脑子正常的老板已经不敢随意开除了。



代码量 /bug 比可以从 GitHub 的公开项目获得。当然这种鉴别方法也可以对抗,比如新人尽量不写复杂大项目以期混入普通程序员中。
或者干脆不给 GitHub 这些过往代码给你看。只靠面试看走眼的几率还是很高的。
9787 次点击
所在节点    程序员
61 条回复
ThatIsFine
2017-08-22 11:30:50 +08:00
@Lucups 你是个程序员?你确定吗?
Lucups
2017-08-22 12:40:23 +08:00
@ThatIsFine 我是产品经理,谢谢。
JacksonBond
2017-08-22 13:04:38 +08:00
自以为是曹操,其实是蒋干
woshixiaohao1982
2017-08-22 13:05:16 +08:00
@k9982874 #12 一言以蔽之 隔离变化
woshixiaohao1982
2017-08-22 13:06:57 +08:00
@k9982874 #12 设计模式本身其实是次要的,不懂业务 对需求分析没有前瞻性,就算你把设计模式背得滚管烂熟 依旧毫无用途
hellojl
2017-08-22 13:28:19 +08:00
看变量名,看方法复杂度,可复用程度等等,才能看出代码实力吧
k9982874
2017-08-22 13:35:57 +08:00
@woshixiaohao1982 设计模式是对编程方法的总结。你所说的需求分析前瞻性,都是经验的总结,都可以归结到设计模式中来,并非主次要的关系。

嘴上说会做分析,做过无数项目的开发,不可能不懂设计模式,即使说不出专有名词,也会讲清自己所设计的模式。

反之设计模式背得滚瓜烂熟没有实际项目经验,让他说一下怎么把设计模式应用到项目中,举个具体用例,绝对说的吞吞吐吐。

高下立判。

看你用户名也是老程序,不应该理解不了。
ThatIsFine
2017-08-22 13:43:14 +08:00
@Lucups 所以你不知道如何判别真正好的程序员
TuSDK
2017-08-22 13:46:40 +08:00
@hjc4869 too simple
woshixiaohao1982
2017-08-22 13:49:57 +08:00
@k9982874 #27 所以功夫在诗外嘛,发现变化 创建抽象才是重点
leekafai
2017-08-22 14:17:43 +08:00
bug 是指
达不到程序开发者的预期
还是
达不到 pm 或者老板的预期
Lucups
2017-08-22 14:57:17 +08:00
@ThatIsFine 那你来教教我怎么判别真正好的程序员?

急,在线等。
GuuJiang
2017-08-22 15:29:19 +08:00
自从公司实施了这个考核标准以后,我一行代码不写,bug 量始终保持零,稳居全公司实力第一
ThatIsFine
2017-08-22 15:39:16 +08:00
@Lucups 写程序不是玩星际, 手速快慢不能作为程序员优秀与否的评判标准之一. 你提的其他的点, 也不多说.

工作中偶尔遇到同事用大量代码解决一个小问题, 代码很快敲好入库, 而引起其他的大问题. 而交给经验丰富的同事却只用了几行代码.

同样的, 有的同事因为找不到根本原因而引入大量代码来规避问题, 而这个问题在几个同事轮番规避后未果. 大量无用的修改投入. 最后却只是一个"||" 前后调换一下顺序解决.

其实楼主说的很对, 如果 1000 行只有两三个 BUG, 这样的一般都比较优秀. 不过还是要看解决的问题难易程度.

估计非技术出身的 PM 也不好理解程序好在哪里, 只能看谁在在当前开发及解决问题的效率.所以就说这么多.
solomaster
2017-08-22 15:50:11 +08:00
曾经以前公司有一个牛人做的总是复杂的项目,另一个水货懒人分到的大概率总是简单的项目。结果懒人做的又快又好,牛人的 bug 比懒人还多。这个你怎么算?只有我们程序员知道自己的东西难度系数。别人是不知道的,甚至有时候脱离一线的领导都不知道。
还有,不同的 bug 性质不一样,比如这懒人出个问题,都是比较严重的 bug。牛人出的 bug 都是小问题。这个又怎么算?
solomaster
2017-08-22 15:59:09 +08:00
两人写同样的东西,然后比 bug 数,这样当然是可以判断程序员水平的。但不是全部。新手程序员可以通过很臃肿的代码来规避很多出问题的地方,而老手反而可能试图用复杂的设计方案反而更有概率出问题。
任何通过某个数据的方式来判断程序员水平都不正确的。判断程序员真实实力是需要一个长期的过程,通过不断的产出来综合判断。你和一个人共事久了,自然之道。

另外提一个观点,欢迎拍砖:任何可用物质系统或者可用虚拟系统,其出 bug 的机率跟系统复杂度成正比例相关,不会因为参与者水平引起巨大的波动。因为可用系统复杂到一定程度,自然会淘汰低于此系统水平的程序员。也就是说,能参与这个程度系统的程序员本身就是满足一定水平条件的,不满足的自然根本参与不进来。
Lucups
2017-08-22 16:21:40 +08:00
@ThatIsFine

看你写了这么多字,最终还是没有回答 『怎么判别真正好的程序员』这个问题啊。

另外,我说手速是『编码实力』之一有什么问题?相同条件的两个人,一个手速快,一个手速慢,手快的自然有优势啊。你一指禅比得过人家十个手指头?
ThatIsFine
2017-08-22 16:31:13 +08:00
@Lucups 你没看明白, 我的意思就是懒得和你解释吗?你真的是"产品经理"?
wangjxxx
2017-08-22 16:38:50 +08:00
手速我只符 eclipse+vim
Lucups
2017-08-22 16:40:58 +08:00
@ThatIsFine 撕不过开始耍赖啦? 哈哈哈!本来这个话题就是娱乐娱乐而已,你非要认真。我跟你认真起来你又开始耍赖,没意思。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/384709

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX