程序员的台阶

英语必须好

导致国内的技术人员落后于国际的重要原因,不是不够聪明, 而是国内的程序员英文水平不好。

在国内,英语又好,计算机能力又强的程序员,在2001~ 2010年左右,都会被招进 外企。这个情况在BAT等国内互联网公司做大之后,有所好转,但是,我见到的英语好 的程序员,很多走的路线都是:大公司工作 , 出国。

而国内的程序员为什么会比国外技术落后1~2年呢? 这个时间就是 认识到这个技术好(大约1年时间) + 翻译(一年时间) + 出书( 找出版社,出版,大约4个月)的时间。

现在,由于新兴技术越来越多,我们不能再采取“学中文书”的习惯了。 所以,我对新手的要求是:

  • 要么CET6. 过了六级的人,英语肯定没问题的。
  • 要么可以进行一段口语对话。口语是英语听说读写四个能力中最薄弱的环节。 如果这个人的口语是60分,那么阅读可以达到80分。

思路敏捷,清晰

有的人,我给他做培训时,他的思路跟不上我。有的人,我给他做培训时,他往往 能纠正我的错误,提醒我下一步的思路。

我们要的,就是后一种人。

思路的敏捷,直接导致程序员是否有“灵气”。 有灵气的人,几乎都是一点就通。 你给他一个方向,剩下的事他都能自己办完。

思路不行的人,让他做事就会让你特别痛苦,他离不开你,你一离开他就几乎没有 进度。

判断一个人思路是否敏捷,清晰,很重要的一点是看他口齿是否清晰,表述能力是否 足够好。

表达沟通能力强

表达和沟通能力强是非常重要的因素。一个软件项目能否做好,完全取决于大家的沟通。

比如说,

  • 这个需求没有说明白
  • 昨天提交的版本为什么没有通过
  • 那个bug昨天修改了,为什么今天又出现了
  • 用户的需求又改变了

我们在开发过程中,绝大部分出现的问题,我们都要与人商量,跟人沟通。 有沟通恐惧症的人是无法胜任软件开发的。而“话痨”程序员就特别难得。比如 ThoughtWorks的我认识的朋友,都是非常擅长沟通,口才特别棒的人。

对于不会沟通的人,往往工作就做不好,不受别人的待见。时间一长,这样的人 就容易恶性循环,越不敢跟人沟通。这个问题真的很常见。

具备领导气质

一个人的能力是极其有限的。一个十年经验的优秀工程师,在做普通难度的编码 方面,也不如2,3个普通人。

而通常,一个项目中70%左右的代码都是“普通难度”的代码。所以,团队的力量就 凸显出来了。你会发现一个5人精英团队做的事儿,比一个独行侠要多的多。

所以,要具备领导气质。因为一旦你的上级发现这个程序员是核心骨干,就会希望 对你委以重任。最直接的就是:让你做小组长。

恭喜你,程序员的晋升之路开始了。把握好这个机会,努力的培养自己的带队能力, 你会发现自己的成就更多了。

技术过硬

技术人员的世界观中,没有“老资格”一说,能让技术人员服气的,就是实力。 一旦你当上了Team Lead的时候,必须具备远超他人的技术实力,比如:

  • 对语言的高级特性掌握的清楚
  • 能够及时处理其他人遇到的编程难题
  • Linux技巧出众,能够轻松化解服务器的压力

只有这样,才能让你的团队成员服气。团队才能在你的带领之下成长。

否则,一旦队伍里其他人发现你的实力还不如他们,你的工作就没法干了。