12
返回列表 发新帖
楼主: AlexQin

[转载] 怎样才能叫高级程序员?

[复制链接]
论坛徽章:
1056
紫蜘蛛
日期:2015-09-22 15:53:22紫蜘蛛
日期:2015-10-15 13:48:52紫蜘蛛
日期:2015-10-15 14:45:48紫蜘蛛
日期:2015-10-15 14:47:47紫蜘蛛
日期:2015-10-15 14:48:45九尾狐狸
日期:2015-09-22 15:53:22九尾狐狸
日期:2015-10-15 13:50:37九尾狐狸
日期:2015-10-15 14:45:48九尾狐狸
日期:2015-10-15 14:47:47九尾狐狸
日期:2015-10-15 14:48:45
11#
 楼主| 发表于 2016-8-20 15:41 | 只看该作者
三大方面
技术能力(Technical capability):技术能力强的人通常都对技术有浓厚兴趣,他们会不断钻研决不放弃,最终会做出可供经验不足的工程师使用、维护和学习的解决方案。
领导力(Leadership):有领导力的人知道怎样为自己及别人发展并保持一种目的感。他们会指出公司里及自己职业生涯中出现的问题,并且揽到自己身上最终解决掉。
交际能力(Community/Connectedness):交际能力强的人非常希望自己成为一个大集体中的一员,有非常强的奉献意识,身上有别人(同事、客户等)无法轻易描述的个人魅力,并且存在感非常强,生活充实快乐。

使用道具 举报

回复
论坛徽章:
1056
紫蜘蛛
日期:2015-09-22 15:53:22紫蜘蛛
日期:2015-10-15 13:48:52紫蜘蛛
日期:2015-10-15 14:45:48紫蜘蛛
日期:2015-10-15 14:47:47紫蜘蛛
日期:2015-10-15 14:48:45九尾狐狸
日期:2015-09-22 15:53:22九尾狐狸
日期:2015-10-15 13:50:37九尾狐狸
日期:2015-10-15 14:45:48九尾狐狸
日期:2015-10-15 14:47:47九尾狐狸
日期:2015-10-15 14:48:45
12#
 楼主| 发表于 2016-8-20 15:41 | 只看该作者
“对文化的适应能力”怎么样
我们最初差点把交际能力叫做“对文化的适应能力”了,但我非常怀疑这个定义实际上是个扼杀思想的陈词滥调。“对文化的适应能力”就是一个万金油,所有你想在程序员身上见到的可你又说不出来的东西都可以用它往上套,而且这里面也非常容易藏入偏见。
当我们定义好了可以让Frontside的文化一致的标准之后,上面的观点就定义成了交际能力。

使用道具 举报

回复
论坛徽章:
1056
紫蜘蛛
日期:2015-09-22 15:53:22紫蜘蛛
日期:2015-10-15 13:48:52紫蜘蛛
日期:2015-10-15 14:45:48紫蜘蛛
日期:2015-10-15 14:47:47紫蜘蛛
日期:2015-10-15 14:48:45九尾狐狸
日期:2015-09-22 15:53:22九尾狐狸
日期:2015-10-15 13:50:37九尾狐狸
日期:2015-10-15 14:45:48九尾狐狸
日期:2015-10-15 14:47:47九尾狐狸
日期:2015-10-15 14:48:45
13#
 楼主| 发表于 2016-8-20 15:42 | 只看该作者
在三个不同方面衡量资质
还记得那三个方面吗?技术能力、领导力和交际能力,每个方面都有自己的从初级到高级的发展路线。
现在人们换职业都不是什么新鲜事了。很容易见到那些有很强领导力和交际能力但刚参加完代码训练营的人,他们的技术水平就只能被认为是一般。相反,一个经验丰富又受过正规培训的技术人员却有可能缺乏领导力和交际能力。
很少有人真的能在三方面都能达到高级水平,事实上也很少有人真的想在三方面都成为高级。我们Frontside把资质定义为这些方面的混合体,并努力帮助人们在他们想提高的方面获得进步。

使用道具 举报

回复
论坛徽章:
1056
紫蜘蛛
日期:2015-09-22 15:53:22紫蜘蛛
日期:2015-10-15 13:48:52紫蜘蛛
日期:2015-10-15 14:45:48紫蜘蛛
日期:2015-10-15 14:47:47紫蜘蛛
日期:2015-10-15 14:48:45九尾狐狸
日期:2015-09-22 15:53:22九尾狐狸
日期:2015-10-15 13:50:37九尾狐狸
日期:2015-10-15 14:45:48九尾狐狸
日期:2015-10-15 14:47:47九尾狐狸
日期:2015-10-15 14:48:45
14#
 楼主| 发表于 2016-8-20 15:42 | 只看该作者
证据:唯一能得到的衡量依据
衡量每个方面的资质都需要证据。如果你已经做了一些工作,那你手上应该已经有了一些证据。
我们将在下一篇文章中讨论这12个特质,每一个都有详细的标准,可以让候选人提供证据来说明他们经过时间的积累的确具有这些特质并且经验丰富。
但总的来说,如果在某个方面有一两项特别擅长和精通的特质的话,就可以认为他在那个方面是高级了。
比方说,假如某个人告诉你他的代码用好几种语言实现过,那在“技术好奇心”这个特质上就可以得高分了。如果他还会非常严谨的为项目的核心代码写出全面、高质量的测试用例并用于持续集成,你就差不多可以认为他在技术能力上达到了高级水平。
或者如果某个人经常辅导别人、组织聚会,或者会做一些让大家过得更轻松的事,那我们就差不多可以在交际能力这方面给他打高分。
如果某个人曾经带过几个团队,那他就应该已经掌握了带团队的技巧。再加上挖掘问题根本原因的能力,那你就可以认为他在领导力的方向上达到高级了。

使用道具 举报

回复
论坛徽章:
1056
紫蜘蛛
日期:2015-09-22 15:53:22紫蜘蛛
日期:2015-10-15 13:48:52紫蜘蛛
日期:2015-10-15 14:45:48紫蜘蛛
日期:2015-10-15 14:47:47紫蜘蛛
日期:2015-10-15 14:48:45九尾狐狸
日期:2015-09-22 15:53:22九尾狐狸
日期:2015-10-15 13:50:37九尾狐狸
日期:2015-10-15 14:45:48九尾狐狸
日期:2015-10-15 14:47:47九尾狐狸
日期:2015-10-15 14:48:45
15#
 楼主| 发表于 2016-8-20 15:42 | 只看该作者
我们怎么定义“高级”
我们的衡量标准是如果某个人在技术能力上达到高级水平,他在领导力或交际能力中有一方面也能达到高级水平,我们就认为他是高级程序员了。如果他还想继续提高剩下的一方面,我们愿意提供帮助。
如果他是在领导力和交际能力都能达到高级水平,在技术方面能属于中高级的话,我们也认为是高级程序员。
举个一年前发生过的真实例子,我们雇佣了一个初级程序员,因为据我们评估,起码在最初的六个月中他需要非常多的指导。
到了第六个月,他的技术水平就已经达到中级了。到第一年结束时他就已经达到了高级水平。我敢这么说的原因是我们知道如果他离职,我们需要雇佣一个高级程序员来顶替他。
这样的事情为什么能发生?因为他是在我们公司起步的,而当时他已经在交际能力和领导力方面都可以达到高级水平了。所以他要在我们团队中做高级程序员的工作只是需要提高技术能力而已。

使用道具 举报

回复
论坛徽章:
1056
紫蜘蛛
日期:2015-09-22 15:53:22紫蜘蛛
日期:2015-10-15 13:48:52紫蜘蛛
日期:2015-10-15 14:45:48紫蜘蛛
日期:2015-10-15 14:47:47紫蜘蛛
日期:2015-10-15 14:48:45九尾狐狸
日期:2015-09-22 15:53:22九尾狐狸
日期:2015-10-15 13:50:37九尾狐狸
日期:2015-10-15 14:45:48九尾狐狸
日期:2015-10-15 14:47:47九尾狐狸
日期:2015-10-15 14:48:45
16#
 楼主| 发表于 2016-8-22 14:06 | 只看该作者
只看技术水平并不够
对于技术水平高但在领导力和交际能力方面都缺乏经验的人,不能直说“在我们这里你达不到高级程序员的标准”,这话太刺耳了。但对于他在团队中能承担的责任来说,我们可以暂时评订为中级,等他把另一方面或者两方面都提高了之后,我们再把他提升为高级。
很多公司只根据技术水平来做判断,但这样对于我们这种小型的而且非常依赖合作模式工作的公司来说行不通。其实我非常担心那些只衡量技术能力的公司是认可“孤独的天才开发者”这样的危险想法的,觉得一个人技术水平高,就想当然的认为领导力和交际能力也很好。
在大公司中每个人都只负责一小部分工作,我非常乐于见到他们分享对于“高级程序员”的定义,那应该会在技术和非技术的方面都更加全面,让我们工作得效率更高,尤其是在需要与客户打交道的团队里。

使用道具 举报

回复
论坛徽章:
1056
紫蜘蛛
日期:2015-09-22 15:53:22紫蜘蛛
日期:2015-10-15 13:48:52紫蜘蛛
日期:2015-10-15 14:45:48紫蜘蛛
日期:2015-10-15 14:47:47紫蜘蛛
日期:2015-10-15 14:48:45九尾狐狸
日期:2015-09-22 15:53:22九尾狐狸
日期:2015-10-15 13:50:37九尾狐狸
日期:2015-10-15 14:45:48九尾狐狸
日期:2015-10-15 14:47:47九尾狐狸
日期:2015-10-15 14:48:45
17#
 楼主| 发表于 2016-8-22 14:06 | 只看该作者
成为高级需要多久?
“高级程序员”是不是就意味着“若干年的经验”?事实上我并没有看到过哪个人不用五年就可以成为高级程序员的。要在很短的时间内就把一些特质发展得非常好来在某一方面达到高级水平其实是非常困难、甚至不可能的,更别说在多个方面全部成为高级了。
而且“五年经验”并不一定要意味着“五年的软件开发经验”。如果一个人已经在领导力和(或)交际能力上满足了条件,那他只需要提升技术能力,就已经可以发挥高级程序员的作用了。
我们招聘的“秘密武器”很大程度上源于我们观察到的事实:对于具有领导力和交际能力的人来说,要再提升技术能力并不需要很多时间,反之则不然。我见过很多这样的人,从代码集训营中出来两三年后就已经成了非常好的高级程序员。

使用道具 举报

回复
论坛徽章:
1056
紫蜘蛛
日期:2015-09-22 15:53:22紫蜘蛛
日期:2015-10-15 13:48:52紫蜘蛛
日期:2015-10-15 14:45:48紫蜘蛛
日期:2015-10-15 14:47:47紫蜘蛛
日期:2015-10-15 14:48:45九尾狐狸
日期:2015-09-22 15:53:22九尾狐狸
日期:2015-10-15 13:50:37九尾狐狸
日期:2015-10-15 14:45:48九尾狐狸
日期:2015-10-15 14:47:47九尾狐狸
日期:2015-10-15 14:48:45
18#
 楼主| 发表于 2016-8-22 14:06 | 只看该作者
更多要讨论的
这篇文章留下了非常多未能回答的问题。我们在这三个方面是用什么具体方法来评估候选人的能力和特质的?在面试前和面试中该怎么衡量呢?该如何把这些评估结果与一些具体的东西联系起来,比如工资?
这个框架又如何应用于非高级程序员?程序员们该什么时候升级?怎么升级?初级、中级和高级之间的区别是什么?它们之间差了些什么?这些词会不会实际上毫无意义而该被替换掉?
最后,如果真的可以的话,这个框架该如何应用于其他与Frontside有着非常大的文化和需求差异的公司?
在下一篇文章中我们会详细回答这些问题。

使用道具 举报

回复
论坛徽章:
1056
紫蜘蛛
日期:2015-09-22 15:53:22紫蜘蛛
日期:2015-10-15 13:48:52紫蜘蛛
日期:2015-10-15 14:45:48紫蜘蛛
日期:2015-10-15 14:47:47紫蜘蛛
日期:2015-10-15 14:48:45九尾狐狸
日期:2015-09-22 15:53:22九尾狐狸
日期:2015-10-15 13:50:37九尾狐狸
日期:2015-10-15 14:45:48九尾狐狸
日期:2015-10-15 14:47:47九尾狐狸
日期:2015-10-15 14:48:45
19#
 楼主| 发表于 2016-8-22 14:08 | 只看该作者

使用道具 举报

回复
论坛徽章:
1056
紫蜘蛛
日期:2015-09-22 15:53:22紫蜘蛛
日期:2015-10-15 13:48:52紫蜘蛛
日期:2015-10-15 14:45:48紫蜘蛛
日期:2015-10-15 14:47:47紫蜘蛛
日期:2015-10-15 14:48:45九尾狐狸
日期:2015-09-22 15:53:22九尾狐狸
日期:2015-10-15 13:50:37九尾狐狸
日期:2015-10-15 14:45:48九尾狐狸
日期:2015-10-15 14:47:47九尾狐狸
日期:2015-10-15 14:48:45
20#
 楼主| 发表于 2016-8-22 14:18 | 只看该作者

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表