浅谈程序员团队建设

前面聊过我为什么反对寄希望于内部培训提升员工技能的方法?创业阶段敏捷开发产品原型,有个网友在微博上问我怎么解决项目成员不熟悉项目运行的平台的困难,140个字没办法全说明白,因此写一篇文章解释一下我对团队建设的看法。

首先我认为IT技术变化实在太快,各种技术层出不穷,日新月异,团队很难做到在每个领域都紧跟时代的脚步,有的时候甚至是要被迫放弃自己熟悉的技术,为了某个项目或者产品不得不进入一些陌生的领域。我就有切身的体会,微软Silverlight和WPF技术刚刚出来的时候,曾经为它的编程模型以及创新性的理念非常着迷,当然后面的故事大家都知道了,一个叫Jobs的家伙搞的大家都没Jobs了– HTML 5来了。

那么在不断变化的技术圈,如何保持团队的竞争力呢?我觉得团队核心的竞争力应该是:1)、动手(编码)能力– 能够立即将理解的算法转化成代码的能力。2)、对一门或者几门技术很精通。3)、英语读写能力好。


1.编码能力强 – 能将思路转换成代码,普通的数据结构、算法了然于胸。可以用熟悉的编程语言将他的想法变成代码,一般来说,连续写了三、四年程序的人,在白板上写一个正确的小函数(比如链表、查找那些算法)一般是没有什么问题的,这个网上已经聊了很多了。很多程序员的什么算法面试题,说白了就是看程序员的动手能力,不是考懂什么算法。

编码能力强的程序员,只需要读懂一篇算法(比如新的)方面的文章,就可以将其转换成代码,变成经验固化下来。

建议在跟候选人面谈的时候,可以让候选人现场写一段代码– 比如一个字符串转数字的函数:

先把代码要求跟候选人讲讲– “写一个字符串转数字的函数”,确定他听清楚要求后,问他有没有问题。

一般思维缜密的候选人,会问你几个问题,比如“字符串是否都是数字,是否要考虑负数等”,视情况加一些限制条件,看看他如何解决。

如果他说没有问题,那在写代码之前问问他实现思路,他可能会跟你说把函数的返回值开始置零,字符串遍历一遍,每碰到一个字符,把前次的累加结果乘10,将这个字符跟’0’相减的结果加到累加值里,听明白他的思路之后。如果觉得有纰漏,就直接问他– “如果字符串是个负数如何处理?”当然他会跟你探讨好几种方案,听明白之后,就让他写代码吧。

代码写完后,让候选人把自己写的代码再讲解一遍,这样就能确保候选人的确能够将自己的思路转换成代码,不是事先背过标准答案的。


2.精通一门手艺 – 我觉得现在很多技术,什么.NET啦、Java啦、Python、PHP之类的技术纷繁复杂,看的人眼花缭乱,但说到底,殊途同归,都是某个相同问题的不同解决方案。好比说要做一个网站,既可以用ASP.NET、也可以用PHP、还可以用ruby on rail等,但都是根据用户的请求作一些计算,在数据库里做一些操作,组合一段html代码发回给客户端。

我之所以强调精通一门技术,是因为这样的程序员对技术所解决的问题,方方面面都非常熟悉,在使用其他解决方案解决相似问题时,可以触类旁通。比如说,知道WPF有Data Model、Data Template这个概念,在写HTML 5的时候,就自然而然会去看看jQuery下是否有类似的东西;比如说,知道Windows下进程间通信的方式后,什么管道、共享内存啦,在写Linux程序的时候,也会去找这些机制,甚至在写Android程序的时候,也知道Binder实际上就是一个RPC、.NET Remoting。

这个在面谈的时候,可以看候选人的简历,挑几个他以前做过的项目,问问他当时是如何做的– 这个是了解解决方案,再问他为什么要这样做– 这个是为了了解他是否明白问题的本质。

另外,在平时观察中,也可以看看程序员是否会经常性的将一些重复工作写程序自动化,比如说,如果嫌每次开发网站的时候需要写OR映射代码,那好的程序员自然而然会去寻找自动根据对象创建数据库的方案。如果嫌每次编译完代码部署产品很繁琐的话,为什么不写一个批处理来做这个事情呢,即使是简单的xcopy命令也可以把时间节省下来冲杯咖啡。

将繁琐的工作自动化有多个好处:

a、节省时间,也就是节省成本,让机器做事怎么说也会比人快。

b、避免出错,只要是人,在重复劳动以及高压状态下,再熟悉的工作都有可能出错。

c、经验固化,即使原来的员工因为种种原因离职了,即便当时没有任何文档留下来,如果有个自动化程序,无论如何,it just works!

3.英语好 – 既然当今世界唯一的超级大国在说英语,很多技术都是从英语世界发起的,拥有一个英语好的团队非常必要。很多技术的官网文档本来就很全了,看看官网文档,学习一下示例代码,很快就可以上手。

很多公司在面谈的时候,都会考察英语,我不知道为什么大家都喜欢问“please introduce yourself”这种可以在面试前准备的问题,为了探测候选人是否事先准备了这种问题,用人方和候选人尝试了数不清的探测和反探测手段。一般我在面谈的时候,喜欢让候选人用英语总结一下面谈经历,当然还是能碰到一些候选人一开口就是“My name is ……”

对于英语读写不好的程序员,我的建议是看几本英文原版的技术书籍,看完一两本之后就会发现英语读写不再会是问题了,如果觉得技术书籍枯燥无味的话,playboy或许也是一个不错的选择。

对于团队管理者,如果想提高团队的英语水平,其实可以从国外招几个员工过来。我有的时候很困惑,为什么有些公司喜欢在国内花高价请一个外籍员工,还是让他做管理岗位。所谓物以稀为贵,这个世界上,除了13亿的中国人,其他的不都是老外吗?

下面是我的经验:

l 直接从国外招聘外籍员工,一般来说,只要员工有劳动合同,中国领事馆都会给工作签证的,工作签证一般是一年。面谈的话可以用电话,或者在线网络视频,都很便宜(skype?)。

l 除了印度人,巴基斯坦、菲律宾等很多国家都说英语,而且巴基斯坦人的发音比印度人纯正很多。

l 也可以在发达国家招一些实习生,比如我用过法国的实习生。

n 一是他们学英语很快,英语沟通基本没有问题;

n 二是法国政府还给这些在海外实习的学生有奖学金,有几千欧元(每次想到这,我就想呼吁大家多招这种国家的实习生,让中国政府借给欧洲人的钱切切实实地为我所用)。因此一般对于这种实习生来说,中国公司给的工资都是周末喝酒的零花钱。

然而不幸的是,中国政府给这些学生的旅游签证最多只有3个月,有些学生的实习期有6个月!这好办,3个月快到期的时候,让实习生飞到新马泰玩几天,再入境就可以重新签证了。

l 一定不能让外籍员工做管理,本来就是为了让他们帮忙提高中国员工的英语水平的,将老外提到管理岗位上,无助于中国员工和他的顺畅沟通。

l 最后一点就是不建议中国员工在与老外交流时夹杂汉语,否则最终的结果就是老外的汉语说得比中国员工的英语还要好。

好了,就说这么多,希望对大家有些帮助,也请大家随意批评指正。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值