Stephen Tobolowsky在定义联体三角形……
“我真的开始对我在这里做的事情感觉不自信了。如果我们都不知道高级程序员到底是个什么样子,那我又该怎么朝这个目标努力?”
我们Frontside公司是习惯于每周二下午开个全公司例会的,会上大家谈谈上周取得的成绩,并为下一周订订计划。
在最近一次会议上,我们谈到了最近要招一位高级程序员,大家一谈到这个话题就都立刻激情爆发了。因为要提到对公司影响重大的事,非招聘新人加入团队莫属了,所以很自然的大家就开始各抒己见,热烈地讨论起我们要找的人到底应该具有什么样的资质来。
可是除了依靠直觉,一屋子的人里却没有一个能够把大家的想法归纳起来,到底要怎样才能叫做“高级”。
当一位同事说出了文章开始我引用的那段话之后,我意识到我们已经迷迷糊糊地碰上了一个对于整个公司来说都非常重要的问题:我们无法为我们想招聘的角色下一个定义,也不知道我们该怎样培养我们的程序员。
定义“高级程序员”的难题
就我个人来说,我是对“高级程序员”这个称号非常怀疑的,尤其因为当初在我有了9个月的正规编程经验,他们就为了给我涨工资而给了我这个称号之后。
事实上,如果你找来两个有经验的程序员,让他们分别描述一下他们心中的“高级”是个什么样子,我敢保证他们的答案会大相径庭。
“怎样才能叫高级程高序员”这个问题其实非常依赖于语境,而且弹性空间非常大,以致于在我们这个行业里各个公司都可以给出任何自己需要的答案。
下面是一些身边人给出的我亲眼见到的关于“高级程序员”的定义:
· 有15年以上编程经验
· 有2年编程经验并且有非常好的学习能力
· 有1年使用一个非常热门的框架的经验,并且框架发布时间要超过一年
· 一本技术书的作者
· 可以在白板上默写出来某个计算机科学的算法
· 写过一个开源库并且在公司里用起来了
这些定义之间相差实在太远了。但想想在我们的生活中,很多东西都是没法下定义的,那又有什么问题呢?
小编推荐阅读