怎样构建一个可持续发展的程序员能力成长模型?

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
查看查看94 回复回复3 收藏收藏 分享淘帖 转播转播 分享分享 微信
查看: 94|回复: 3
收起左侧

怎样构建一个可持续发展的程序员能力成长模型?

[复制链接]
Caesar 发表于 2016-11-2 09:46:12 | 显示全部楼层 |阅读模式
快来登录
获取优质的苹果资讯内容
收藏热门的iOS等技术干货
拷贝下载Swift Demo源代码
订阅梳理好了的知识点专辑

就像计划是用来变更的,人没有瓶颈和迷茫那是不可能的。但关键是我们怎么突破瓶颈期,持续的保持进步。接下来我将结合我的实际经验,和大家分享下,怎么持续的保持高效的战斗力,拓展自己的视野,迈过三十岁的那道坎。

怎样构建一个可持续发展的程序员能力成长模型?

怎样构建一个可持续发展的程序员能力成长模型? - 敏捷大拇指 - 怎样构建一个可持续发展的程序员能力成长模型?


视频
http://111.13.171.16/vmind.qqvideo.tc.qq.com/q0200u5hl4u.p202.1.mp4?vkey=ED031EED7A7A87AF8398F0A39D916FBD1400ABFB89FF915A192A719355067081D31D47E65BBFBF3EC148A9E03E3360050C95E80429B322A8A73EE2D0BE8DF03E8192495EF159FE1EF330055A90B7A3F8DEF757783DBE65B9&platform=&sdtfrom=&fmt=hd&level=0

接下来我将从5个维度和大家分享今天的主题:




1、我是如何用6年时间 从程序员成长为产品总经理?

我觉得有必要先把我的经历和大家交代下。首先大家不要被我的Title迷惑了,其实我就是一个程序员,去年还写了大量的代码。我的十年工作经历中大概分为两段:前五年开发、后五年架构、产品定义。

工作职责的话先后做过程序员、架构师、项目经理、产品经理、部门经理。虽然做过很多经理的角色,但个人认为在软件行业,技术是老本,我个人现在仍保持50%的精力在技术学习上。每个角色变化过程中,其实对我来说都是一个全新的挑战,做事方式、思维模式都会有很大的变化,需要持续的投入精力,学习、训练。

先后做过4款产品的研发,每个产品的代码行均在百万行级别;做过4个大型客户化产品定制项目,每个基本上都是1年,客户现场的项目,对进度、设计、质量等要求较高,使我提升比较大。大型项目与产品的研发,锻炼了我架构设计能力、项目把控能力。对大家来讲,争取能够做一些比较大的项目,并在里面尽可能承担较多的责任,对大家的成长会受益颇大。

如果非要分享成长心得的话,我觉得有三点可以分享给大家。

第一点,状态调整(每个人都有高潮和低谷,最关键的是如何常年保持);

第二点,快速得到认可(同事、上司、客户),无关乎你现在的能力;

第三点,站在比自己高一级的位置思考(以更高的视角分析处理问题;给自己更高的定位;给自己更多的空间,为后续的晋升提前准备好能力);




2、持续成长这么难,工程师该如何做?

在开始这个话题前,我觉得我们有必要了解下,成功的或者出色的程序员是什么样子的,大家的现状是什么?知己知彼,我们才容易找到差距和突破点。



2.1、优秀的程序员具备的特质

新技术第一批吃螃蟹的人:具有技术的直觉,喜欢试验各种事物。如果给他一样新东西,他很快能够掌握,并能够和自己的知识做快速的结合。这类人非常的自信。简直就是布道师。

好奇:保持婴儿般的好奇心。特别喜欢提问,对任何不懂的喜欢刨根问底。

有主见:能够轻易的通过现象看到问题的本质,会设法理解你面临的每个问题的内在本质。不会轻易苟同别人的观点。

易于沟通(不一定善于沟通):对上、对下、对平级都能够很好的沟通,善于说服对方接受自己的观点,而且通常能够成功。

多才多艺:多个技术领域的专家,面对新的方向能够快速的转向新领域和新的挑战;而且比较博学。



2.2、程序员的技能模型(德雷福斯模型)

新手:具有很少的经验,或者根本没有经验;通常是刚工作1-2年的;但也不能严格按照工作年龄考量。比如一个开发人员声称拥有十年的经验,但实际上只是一年的经验重复了9年,那么这不算是经验。

高级新手:可以独自尝试任务,但仍难以解决问题。对技术的全貌关注较少,也不愿关注(一种是没有意识,一种是知道但觉得和自己的关系也不大)。比如在Java领域,对J2EE规范很少有了解,但在使用各种常见的技术上没有问题。

胜任者:通常在团队中发挥领导作用,是团队的中流砥柱,而且主动性特别强,既可以指导新人,又不会骚扰专家;

精通者:具有全局思维,超强的自我修正能力,善于总结,学习他人的经验;在公司层面基本上算是大师级;

专家:是知识和信息的主要来源,专家凭直觉就可以工作。出书、写文章、演讲。通常是布道师。

国内很多的IT从业者中大多数人都是高级新手,大家关注下,我们有多少百度或者Google程序员(编码基本靠百度,缺少系统性知识,和全局思考能力)。要求我们需要系统性的掌握技能,做到一专多能,既有深度又需要有广度。



2.3、技术上要一专多能

程序员必须有2-3个拿得出手的技能,而且需要非常精通,达到成为真正专家的能力。懒惰是程序员最大的敌人,大家可以看下业界每年的代码行数,腾讯公司月均3000+行代码,一年也就有4万行的代码量,我们公司普元一年代码最多的记录保持在8万行。行动起来,每年去完成5万行代码量吧(大家对照下自己的每年编码量吧)。

另外程序员经常关注如何平衡技术的广度和深度问题,下面是我的一些看法:

其实这两者是相辅相成的,通常需要在2-3个的技术领域有深度了解,这样在了解其他的技术时候才能较快的融会贯通。知识的广度有助于我们对大局观的把控,优秀的架构师必须具备一定的知识广度。

在面对新的技术领域的时候,推荐大家采用总分总的学习模式(我们读书时,语文老师叫我们写文章是不是经常使用总分总的结构):即先了解新技术的全局,有一个整体的概念和认知;然后找一个技术点进行深入的学习和理解;最后从点到面,延伸到该领域的其它方面就会变得相对容易。



2.4、持续成长,我们只关心技术就够了吗?

优秀的程序员,不仅仅关注在技术上,在综合能力(一些软技能)上都能够胜人一筹,他们是怎么做到的,我们又怎么去学习那?我大概分为两个阶段给大家介绍:第一个阶段,是大家进入工作后前几年应该快速掌握的;第二个阶段,带有一点管理的味道,即使做纯技术的同学也需要在软技能方面提高下。

第一个阶段:工作必备软技能

勇敢表达想法:不害怕求助他人,勇于表达自我需求;在团队中大胆表达所想;

善于知识积累:善于总结回顾,不断建设自我的知识体系库(比如使用wiki);

保持技术敏感度:保持好奇心、融会贯通;具备技术敏感度,多问为什么;关注社区,多了解一些IT的八卦历史,保持对IT圈的兴趣。

懂得主动承担:懂得主动领导事情,敢于尝试;不团突破自己、突破前人框架;

程序员对负责架构、需求、甚至业务流程的人员的反馈要么根本没有,要么严词拒绝,要么干脆被大家遗忘在脑后。程序员经常实现他们明知道是错误的东西。

细节决定成败:

邮件怎么写?清晰的标题,明确的观点,总分的结构;

会议怎么开?会前准备,会中控场,会后总结;

会议纪要怎么写?观点鲜明,待处理任务标出,流水账放最后;

执行力:路径文化(不为目标找借口,为实现目标找到实施路径,不要证明目标不正确)、拒绝拖沓症(形成日事日毕能力)

第二个阶段:Leader必备软技能

高阶能力来看,带有一定的管理视角,即使大家没有名义上的管理Title,也要按照下面的一些思路进行做事:

理解力:深刻理解每项目标的业务价值;准确理解客户需求,有一定的方案梳理能力;

沟通力:保持适当的沟通频度;沟通时能够做到耐心倾听,分析问题本质; 保持适当沟通频度;沟通需要倾听;不限于技术问题;

养成对周围同事关怀的习惯:出差关怀,生活关心,节日关怀(能用红包解决的少说废话,节假日可以发发小红包);

多对下属进行规划,技术指导;员工的成长才能造就部门的成长;

管理力:只招最对的人,招人结构要合理,重视团队建设;开放与共享,有着博大的胸怀与成熟心态;

协调力:为每项任务找到团队相应的Owner,并关注所有环节;

并行做事能力:经常会被打断,导致思路收到各种干扰;随着我们负责事情的增多,我们必须提高并行处理的能力,比如把事情分轻重缓急;......




3、从菜鸟到高工,我们应该具备哪些能力?

上面的目标和理论,可能大家都非常了解,但最关键的是如何行动去执行,我认为我们要走向优秀和卓越,需要具备如下四点能力:兴趣、主动学习能力、主动思考能力、主动写作能力。



3.1、兴趣

为什么说这个话题那?我认为IT行业在国内是非常好的行业,提供了大把的机会,提供了通过自己努力奋斗,就能晋升到高收入阶层的行业,如果仅仅作为一个Job,其实大家挺难主动去思考、主动去做事情的。



3.2、主动学习能力

把学习养成一个习惯,确实很难坚持,但只要坚持下来,你就胜利了一半。接下来我会和大家从三个维度聊聊如何学习。

1)学习什么?

程序员需要不断的学习----不仅仅是学习新技术,还包括应用的问题域、用户社区的奇思妙想,行业的八卦新闻、项目演进的重要特征,我们必须学习再学习,持续不断的学习,然后把学习的成果应用到解决日常遇到的一切旧问题上。

通过学习,我们可以慢慢塑造批判的思考能力、创造力等。这些能力都是没有人能够教的,都取决于我们自己。

2)学习有哪些途径那?

提起“学习”这个词可能给人一些不舒服的感觉,总是让人想起年轻时埋头于黑板粉尘的岁月,或参加公司组织的单调枯燥的“复印机”式的培训之类的低质量教育活动。给大家推荐几个学习的途径:

组建圈子:建议组建小范围的学习圈子,会有较高的学习质量;又能够做到知识的分享与交流;

读书:一年30本的读书目标,赶快去实现吧。对于读书,大家可以分为精读、通读两种类型;专业技能的图书最好精度。另外推荐大家去读国外专家大牛写的图书,因为国内的图书质量确实一般,基本上是写给初级程序员看的。

以教代学:给领域之外的人讲解;学着做布道师,成为一个乐于积极分享的人;大家可能都听说过橡皮鸭的故事吧,就是描述了通过自言自语的讲解,竟然解决了困惑已久的问题。

橡皮鸭的故事:你正在解决一个困难的问题,已经花费了大量的时间,最后的期限迫在眉睫。这时,你找了一位同事帮忙。他们来到你的屏幕前,你开始解释怎么回事,是什么地方出错了。还没有说多少,你的大脑中灵光一现,“啊!”地叫了起来,你找到了bug。一头雾水的同事一句话还都没有说,就摇摇头走了。

找牛人聊天:我见过太多,在办公室一坐一天的TX;动起来吧,在和高手的思想碰撞中,更容易产生灵感。给大家推荐一些认识牛人的方法:大型展会,通常会有很多的牛人出现;各种微信群、Swifthumb.com、InfoQ上就有很多大拿;自己通过技术创作成为牛人,自然增加了认识更多牛人的渠道;

3)保持一定的英文能力(至少能够经常浏览英文文献、Github)

不阅读英文文献,Github的程序员,不是好的程序员。国外的新技术基本上领先国内中文图书2-3年,如果大家不想做落后者,把我们的英文捡起来吧。听说读写,咱们来个最低要求,只要求能读就OK啦,这是咱们的强项。国内的很多图书,不建议大家去看(为啥:基本上是写给低手看到);要看就去看国外大家的作品,虽然难懂,但确实够经典的。



3.3、主动思考能力(有很多人忙忙碌碌,却一事无成):

大家身边不知道是否有这样的人,每天早出晚归,看行业动态,听大咖培训,读了各种书,一年下来却没有大的进步。核心关键的一点,就是缺少停下来思考和总结。没有消化的知识等于0;犯过的错误,不总结,下次还会继续。

更确切的应该是抽象总结能力,我们最大的弱点是不善于总结,做过的每一个设计,每一个项目,每一件事情,都需要我们回过头来进行总结,在总结的时候,既要寻找做的好的地方,更重要的是找出做的不好地方,寻求改进点:每次改进点不需要特别多,有1-2点就可以了,如果每次能把这1-2点进行改进,持续坚持下来,我们的能力已经变得非常好了。

给大家举个例子:在进行开源选择的时候,大家一定碰到过各种各样失败的情况,有的是因为社区支持不好,不继续发展;有的是功能缺陷较多,存在各种各样的问题。

其实这个时候,多问一点为什么会有很好的效果;我们经过多年的总结,总结了一套对于开源如何进行选择的标准(四个维度:技术与及功能;项目运作模式;技术提供者的背景;生态环境四个维度),后续为公司进行开源选择打下了坚实的基础。

思考的东西要落地,需要大家提升技术写作能力,这也是我要说的第四个能力。



3.4、写作能力

鼓励程序员去写大量的技术文章,可以是博客、技术软文、大会演讲、写书等等都是途径;

为什么鼓励大家去写一些技术文章?其实写作是一个总结的过程,梳理思路的过程,沉淀自己。当然了,写技术类的文章开头非常困难,其实迈过第一步之后,后面会变得相对轻松。

对于技术文章的编写,除了提升总结思考能力之外,还能够帮助大家认识更多的人,产生更多的交流机会,扩大自己的交往圈;提升自身品牌影响力、未来能够获得更多的机会,比如被大公司看重,等等。

大家可能关心怎么写一篇好的技术文章,下面给大家几条建议吧,也是我经常使用的写文章的方法。

起一个响当当的标题(多用热点词,快餐文化时代,标题对于吸引读者是非常有帮助的)

需要有鲜明的观点,那篇观点是错误的,没有鲜明观点的文章,一点营养价值都没有;

先列大纲,后写内容;而不是反过来;需要培养大家的结构性思考力;

善用图表,通常来讲,读者对文字的认可度是文不如字、字不如表、表不如图;一图胜千言;




4、技术与管理的路口,我们向左还是向右?

对于未来的发展方向,程序员可以向资深开发、架构师、项目经理、技术经理、产品经理、部门经理等方向发展。对于管理,我有一个观点,在IT行业,如果带领的部门没有超过100人的话,基本上没有纯管理的事情。所以说,即使做了管理工作,对技术也要有一定的投入。

在技术和管理我们向那走,需要取决于我们自身,需要提前找到定位,找准自己的兴趣点;提前规划,总比临时抱佛脚好得多。不是所有人都能够做管理,同样也不是所有人都能成为技术高手。我们公司就有骨灰级程序员,能够解决任何疑难杂症。

每个角色变化过程中,其实对大家来说都是一个全新的挑战,做事方式、思维模式都会有很大的变化。很多管理上的能力是可以通过后天的学习、强化训练获得的。也希望大家能够提前规划自己的方向,早点确认自己的职业目标。




5、程序员需要突破哪些不可能的事情?

为什么一定要和大家讨论这个问题,呆在舒适区里面多好啊,可以做自己擅长的事情。因为我们程序员晋升的每一步,都需要我们做大量前期未做过,未处理过的事情,需要我们在做事方式、思路、习惯上作出较大的改变。有一句谚语挺好的,生命中没有什么是恒久不变的,只有死鱼才随波逐流。不想当死鱼就尝试改变自己吧。

我经常和一些同学聊天的时候,听到最多的是:“我带人的事情,肯定干不了”;“我只能做Java后端,其它干不了”;“客户交流,哈哈,我这口才不行”。好多事情,大家都没有开始干,甚至没有尝试,就把自己圈子自己熟悉的圈子里面。

程序员通常只关注写代码,其它事情一律和自己无关(需求由项目经理管控,和我无关;…...)。大家关注过软件工程的话,开发阶段最多只占15-20%,你还觉得自己只写代码有道理吗?大家在深入的思考下,我们软件最终交付的成果是啥?代码?还是可用的功能?思考完这些,或许,你就有感觉了。

给大家一个建议:每年找1-2个从来不愿意做的事情(比如演讲能力、写技术文章的能力等),实现突破。日记月累你会收到意向不到的效果。

最后送给大家一句话:行动是老子、知识是儿子、创造是孙子。祝愿大家能找到各自的方法,实现人生的持续突破。

都看到这里了,就把这篇资料推荐给您的好朋友吧,让他们也感受一下。

回帖是一种美德,也是对楼主发帖的尊重和支持。

*声明:敏捷大拇指是全球最大的Swift开发者社区、苹果粉丝家园、智能移动门户,所载内容仅限于传递更多最新信息,并不意味赞同其观点或证实其描述;内容仅供参考,并非绝对正确的建议。本站不对上述信息的真实性、合法性、完整性做出保证;转载请注明来源并加上本站链接,敏捷大拇指将保留所有法律权益。如有疑问或建议,邮件至marketing@swifthumb.com

*联系:微信公众平台:“swifthumb” / 腾讯微博:@swifthumb / 新浪微博:@swifthumb / 官方QQ一群:343549891(满) / 官方QQ二群:245285613 ,需要报上用户名才会被同意进群,请先注册敏捷大拇指

嗯,不错!期待更多好内容,支持一把:
支持敏捷大拇指,用支付宝支付10.24元 支持敏捷大拇指,用微信支付10.24元

评分

参与人数 1金钱 +10 收起 理由
Anewczs + 10 推送上首页了~分享到朋友圈微博QQ空间吧~.

查看全部评分

金牌经纪人 发表于 2016-11-3 21:28:26 | 显示全部楼层
头一次听说这个title——产品总经理……
Anewczs 发表于 4 天前 | 显示全部楼层
这个应该发到职场版块啊
安卓大师 发表于 前天 10:51 | 显示全部楼层
还比较干货!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

做任务,领红包。
我要发帖

分享扩散

都看到这里了,就把这资料推荐给您的好朋友吧,让他们也感受一下。
您的每一位朋友访问此永久链接后,您都将获得相应的金钱积分奖励
关闭

站长推荐 上一条 /3 下一条

热门推荐

合作伙伴

Swift小苹果

  • 北京治世天下科技有限公司
  • ©2014-2016 敏捷大拇指
  • 京ICP备14029482号
  • Powered by Discuz! X3.1 Licensed
  • swifthumb Wechat Code
  •   
快速回复 返回顶部 返回列表