IOS培训

亿元级外企ios培训企业

  • 全国服务监督电话4008270010
ios培训 > IOS职场 > iOS零基础学习:到底怎样才算高级程序员?
  • iOS零基础学习:到底怎样才算高级程序员?

    发布:ios培训  来源:IOS职场  时间: 2016年12月19日

  • 在最近一次会议上,我们谈到了最近要招一位高级程序员,大家一谈到这个话题就都立刻激情爆发了。因为要提到对公司影响重大的事,非招聘新人加入团队莫属了...

  • 在最近一次会议上,我们谈到了最近要招一位高级程序员,大家一谈到这个话题就都立刻激情爆发了。因为要提到对公司影响重大的事,非招聘新人加入团队莫属了,所以很自然的大家就开始各抒己见,热烈地讨论起我们要找的人到底应该具有什么样的资质来。

    可是除了依靠直觉,一屋子的人里却没有一个能够把大家的想法归纳起来,到底要怎样才能叫做“高级”。

    定义“高级程序员”的难题

    就我个人来说,我是对“高级程序员”这个称号非常怀疑的,尤其因为当初在我有了 9 个月的正规编程经验,他们就为了给我涨工资而给了我这个称号之后。事实上,如果你找来两个有经验的程序员,让他们分别描述一下他们心中的“高级”是个什么样子,我敢保证他们的答案会大相径庭。

    “怎样才能叫高级程高序员”这个问题其实非常依赖于语境,而且弹性空间非常大,以致于在我们这个行业里各个公司都可以给出任何自己需要的答案。下面是一些身边人给出的我亲眼见到的关于“高级程序员”的定义:有 15 年以上编程经验有 2 年编程经验并且有非常好的学习能力有 1 年使用一个非常热门的框架的经验,并且框架发布时间要超过一年一本技术书的作者

    可以在白板上默写出来某个计算机科学的算法写过一个开源库并且在公司里用起来了这些定义之间相差实在太远了。但想想在我们的生活中,很多东西都是没法下定义的,那又有什么问题呢?

    为什么要费力下这个定义?凭直觉做判断不好吗?当大家在会议上说出这个困惑时,大家实际上说的是我们并没有非常清晰和可定义的标准来雇佣人、开除人和提拔人这个问题。大家说的对,事实上也就是这么混乱。

    更糟的是,我们的核心使命——培养程序员——完不成了,因为我们没办法帮他们设定出一条发展路线来。

    “我一见到这个人我就知道他是个高级程序员”——这种说法揭示了另一个重大问题:“高级程序员”已经根深蒂固地成了一个偏见的有效载体。

    当我们没有明确具体的标准,只能凭着直觉来判断一个人的资历的时候,我们就没有办法不带有偏见,但我们还是要做出判断。

    作为招聘经理,当我们做出判断的时候我们都会自认为非常正确,即使大家得到的结论相距甚远。

    这样的结果就是不断被加强的偏见会阻止一些人进步,最终导致“头衔通货膨胀”。在当今技术界,各种偏见都不可避免的偏向白种男人,那么这种凭直觉做判断的体系就更多的会伤害女士和有色人种。

    为什么大家还没有解决这个问题?

    首先给这个问题下定义就很难,因为它和工作环境的具体情况关系太大了。大多数公司领导人处理这个问题的办法都是走着瞧,而最终解决方案也都是“差不多”就行了。

    解决这个问题也没有什么动力,因为当定下明确标准之后,公司领导人靠直觉做决定的权力很大程度上就会被剥夺了,而且还要为做出的决定负责。有谁会主动做一件让自己又要让出权力又要背上责任的事呢?

    加上问责

    我喜欢被问责,我也非常习惯。我懂得在为某件事负责任的同时,实际上我的自由度也是非常高的。就是否雇佣某个人这个问题来说,凭直觉下的决定往往比依据清晰的标准做出的决定更容易让人后悔。因为我们的直觉太容易受影响了,从我早上是不是忘了吃早餐,到那个人是不是能即兴谈起某个动画片,都有可能。

    问责也为我们打开了改进之门。作为招聘经理,我的责任是打造一支有战斗力、快乐和能力互补的团队。要不断改进并且朝着这样的目标努力,可以靠直觉,可以全凭运气,但我们也可以创建一种先定义、再衡量、又问责反思然后再从头开始这样的循环,来保证我们通向最终目标。

    始于责任

    现在问题变成了:我们怎样才能创造一种用于衡量资历的可度量的标准,而不是用那些有明显缺陷、象玩游戏一样的方法?

    我能想到唯一相对公平的评判一个侯选人的方式就是问几个关键问题:这个人的责任是什么?他是怎么完成任务的?他工作上需要什么样的帮助?

    联体三角形:简单的解释

    我恰好最近有机会与好几家不同规模公司的负责人讨论了“高级”的定义,大家意见的共同点只有一个。

    大家最简单的关于资历的共同解释就是:这个人需要多少指导?这个人能给别人提供多少指导?

    我赞成这个“高级程序员的组合三角形”是一个不错的主意,可以简明的表达出内在含义,就象 Action Jack 的“成功的组合三角形”一样。

    但即使这样的标准也是非常容易引入偏见的。它缺少一些重要的标准,并且过度强调了口碑这类容易见到的东西,以及解释深奥的计算机术语的能力。

    在会上我们讨论出了一个新的框架

    会上的热烈讨论有了一个非常酷的结果。在我试图灌输上面的三角形理论时,另一位员工提出了一个崭新的心理模形,吸引了大家的注意力。

    她把我们在 Frontside 确定资历的方法描绘成了一个文氏图(用闭合的区域表示集合的图示法)。三个集合分别是:这个人有多强的独立工作能力及领导力?这个人技术实力如何?这个人和外部环境关系如何、有多大贡献?

    文氏图:更复杂的解释

    在上文中我们已经把对资历的评估方法提升到了更高境界:“这个人需要多少指导?这个人可以给其他人提供多少指导?”但正像我们的员工指出来的,如果到此为止的话,还会有非常多令人困惑的地方。

    那我们该怎样定义一位候选人到底能把他的本职工作做得多好?我们怎样能把评判标准引向一些具体的方面,而千万不要变成数学公式?

    三大方面

    技术能力(Technical capability):技术能力强的人通常都对技术有浓厚兴趣,他们会不断钻研决不放弃,最终会做出可供经验不足的工程师使用、维护和学习的解决方案。

    领导力(Leadership):有领导力的人知道怎样为自己及别人发展并保持一种目的感。他们会指出公司里及自己职业生涯中出现的问题,并且揽到自己身上最终解决掉。

    “对文化的适应能力”怎么样

    我们最初差点把交际能力叫做“对文化的适应能力”了,但我非常怀疑这个定义实际上是个扼杀思想的陈词滥调。“对文化的适应能力”就是一个万金油,所有你想在程序员身上见到的可你又说不出来的东西都可以用它往上套,而且这里面也非常容易藏入偏见。

    当我们定义好了可以让 Frontside 的文化一致的标准之后,上面的观点就定义成了交际能力。

    在三个不同方面衡量资质

    还记得那三个方面吗?技术能力、领导力和交际能力,每个方面都有自己的从初级到高级的发展路线。

    现在人们换职业都不是什么新鲜事了。很容易见到那些有很强领导力和交际能力但刚参加完代码训练营的人,他们的技术水平就只能被认为是一般。相反,一个经验丰富又受过正规培训的技术人员却有可能缺乏领导力和交际能力。

    很少有人真的能在三方面都能达到高级水平,事实上也很少有人真的想在三方面都成为高级。我们 Frontside 把资质定义为这些方面的混合体,并努力帮助人们在他们想提高的方面获得进步。

    证据:唯一能得到的衡量依据

    衡量每个方面的资质都需要证据。如果你已经做了一些工作,那你手上应该已经有了一些证据。

    我们将在下一篇文章中讨论这 12 个特质,每一个都有详细的标准,可以让候选人提供证据来说明他们经过时间的积累的确具有这些特质并且经验丰富。

    或者如果某个人经常辅导别人、组织聚会,或者会做一些让大家过得更轻松的事,那我们就差不多可以在交际能力这方面给他打高分。

    我们怎么定义“高级”

    我们的衡量标准是如果某个人在技术能力上达到高级水平,他在领导力或交际能力中有一方面也能达到高级水平,我们就认为他是高级程序员了。如果他还想继续提高剩下的一方面,我们愿意提供帮助。

    如果他是在领导力和交际能力都能达到高级水平,在技术方面能属于中高级的话,我们也认为是高级程序员。

    举个一年前发生过的真实例子,我们雇佣了一个初级程序员,因为据我们评估,起码在最初的六个月中他需要非常多的指导。

    这样的事情为什么能发生?因为他是在我们公司起步的,而当时他已经在交际能力和领导力方面都可以达到高级水平了。所以他要在我们团队中做高级程序员的工作只是需要提高技术能力而已。

    只看技术水平并不够

    对于技术水平高但在领导力和交际能力方面都缺乏经验的人,不能直说“在我们这里你达不到高级程序员的标准”,这话太刺耳了。但对于他在团队中能承担的责任来说,我们可以暂时评订为中级,等他把另一方面或者两方面都提高了之后,我们再把他提升为高级。

    成为高级需要多久?

    “高级程序员”是不是就意味着“若干年的经验”?事实上我并没有看到过哪个人不用五年就可以成为高级程序员的。要在很短的时间内就把一些特质发展得非常好来在某一方面达到高级水平其实是非常困难、甚至不可能的,更别说在多个方面全部成为高级了。

    而且“五年经验”并不一定要意味着“五年的软件开发经验”。如果一个人已经在领导力和(或)交际能力上满足了条件,那他只需要提升技术能力,就已经可以发挥高级程序员的作用了。

  • 上一篇:浅谈应届毕业生ios开发面试题精要

    下一篇:来自大牛的iOS开发面试全攻略

网站导航
2001-2016 达内时代科技集团有限公司 版权所有 京ICP证8000853号-56