专栏名称: 腾讯科技
只供应最有营养的科技大餐!
目录
相关文章推荐
InfoQ  ·  当大模型接管编程:NASA ... ·  11 小时前  
南方都市报  ·  细思恐极!记者花300元,买到了同事的秘密…… ·  13 小时前  
南方都市报  ·  细思恐极!记者花300元,买到了同事的秘密…… ·  13 小时前  
雷科技  ·  6万大洋、实测5款折叠屏,谁最拉胯? ·  昨天  
51好读  ›  专栏  ›  腾讯科技

技术大牛养成指南,一篇不鸡汤的成功学实践

腾讯科技  · 公众号  · 科技媒体  · 2017-03-04 09:09

正文


文 / 李运华

微信公众号 / InfoQ


有的人想成为大牛,却不曾为此努力。有的人辛苦耕耘,却收获寥寥。很多时候,你跟成功的差距并不是能力,也不是运气,或许只是正确的方法?这是一篇不鸡汤的成功学指南,如果你相信且愿意坚持尝试,未必帮不到你!



1


一碗有勺子的鸡汤


我工作已经将近12年了(其实12年才混到这个地步,天资实在是一般),在华为做了5年,在UC做了6年,现在主要负责阿里游戏的中间件和组件的架构设计和实现,包括用户消息推送、系统异步通知系统等等。


同时我还带了三四十人的研发团队,除了工作以外,我也喜欢写博客,是CSDN、云栖的社区之星和博客专家,InfoQ的签约作者。


总体上来说,我现在虽然还算不上业界顶级的大牛,但在公司也算一头小牛了,今天我的分享将综合自己的成长经历给大家谈一谈怎么样成为一个大牛。我现在还在业界的大牛路上狂奔,但我觉得这些经验和技巧应该是每个同学都可以用到自己的日常工作和生活当中的。


2


一鸣惊人背后是1万小时的不断练习


如何成为大牛?这个问题之前有很多人问我:你是怎么成为技术上的一个大牛的?


最开始的时候我也经常跟他们讲你要去看看某某某开发方案,深入学习UNIX的开发等等这些“术”的东西,后来我在思考,是否有成为一种大牛的“道”上面的东西,也就是说不管你做产品、做运营、做运维、程序员还是测试,通过这个方式都能够成为一个大牛呢?


通过寻找和思考,后来真的让我找到了应用到所有行业、所有职业我称之为成为大牛的一个道,这是1万小时理论。


我先简单介绍一下1万小时理论,我最初看到1万小时理论是从《异类》这本书知道的,这是很出名的书,它非常有意思,我建议所有同学都去看一下,它分析了很多成功人士背后一些我们通常情况下不了解或没看到的一些现象,得出一些比较令人震撼的结论,其中有一个理论就是1万小时理论。


它里面有举了一些例子,比如说莫扎特,大家都知道他是音乐神童,6岁就开始作曲了,你看完这本书就知道他真正出人头地是20多岁的时候,也就是说他虽然6岁开始作曲,但他当时作的曲也是比较不好的。


所以《异类》这本书里面提到了1万小时的理论,它对我是很有帮助的,成为世界上顶级的专家唯一的方法就是1万小时持续不断地进行练习,大家要特别注意“唯一”,也就是说绝大部分专业是没有什么天才的,所谓的天才只是他一鸣惊人之后我们才这样觉得,在他成为天才之前至少要经过1万小时持续不断的练习。


我第一次看到1万小时的理论,觉得没什么神奇的,我算了算,我工作五年就会成为业界顶级的专家了,但想想这是不可能的,为什么呢?我反思了一下我自己的工作状态,对于大部分人来说每天的工作很多时候是重复劳动,虽然我们一天工作8小时,但是只是重复以往的经验,并没有刻意去训练提升自己。


有一个笑话是有一个10年工作经验的人去面试,面试完了之后面试官跟他说其实你只有1年工作经验,你把它重复了9年。


对于1万小时理论来说如果你深入思考其实它并没有那么简单,这意味着什么呢?意味着你每天要花3小时时间用于提升自己的技能,这样一直做,要持续大约10年时间。大家想想每天持续十年去做一件事情去提升自己,有几个能做到,所以我们看到虽然有些人工作了10年,但是也不一定能成为业界的专家。


为什么我要强调每天3小时?持续10年提升自己,你不能把你重复的工作算进去,你要在专业广度和深度上面不断扩展,才能业界一个顶尖的大牛或者专家。


举一个例子,一个小孩子每天唱《两只老虎》,唱10年,你觉得他会成为周杰伦吗?肯定不会。当然1万小时理论不适合一些领域,尤其是不适合炒股,特别是中国的股市,如果你花1万小时去炒股,可能会倾家荡产。


3


如何找到10000小时?


碎片化时间管理


1万小时理论听起来好像很简单,每天持续3小时,也不难,但实际上真正做起来是很难的,就像我们互联网的人加班加成狗,感觉身体天天被掏空,时间从哪来,这是一个现实问题,不要说每天抽3个小时提升自己,每天抽1个小时陪女朋友或者找女朋友的时间都不够。具体怎么做?


首先是找到3个30分钟:


第一个30分钟就是早上的30分钟,假设你习惯8点起床,明天你把闹钟改成7点半,这就多了半个小时。


第二个30分钟是睡觉前的30分钟,假设你习惯玩游戏到12点,明天晚上你玩游戏就玩到11点半。


第三个30分钟就是上班到你座位上的30分钟,有的同学担心说我这30分钟会不会影响我这一天的工作效率,可能加班完不成,还让我挤出30分钟来,这不用担心,从我的经历来看挤30分钟不会影响你整体的工作效率,持续一两年,你会发现自己的收益非常大。


第二点是利用或节省路途时间


我们每天上下班都是一两个小时,比如像我这种,怎么去利用时间呢?


首先是可以利用上下班路上的时间去看书、听书,也是可以做的。如果你觉得上班路上是不能看书的,或者是不可能学习的,比如你坐广州的3号线,这是举世闻名的挤得要命的,不要说看书了,把手伸出去都不知道去哪了,那就建议大家搬到离公司近一点位置,虽然每个月多几百块钱的房租,但是你要相信这个投资节省下来的时间用于提升自己,它最终的收益是10倍回报都不止的。


第三点是周末4小时


周末还是不用怎么加班的,周末用于放松、睡觉、看电影、娱乐,你也可以在周末里面规定自己挤出4个小时,也就是每天2个小时,这样算下来,一天大概就两个多小时,再加上你在工作中的积累,每天3小时也不是很难。


接下来讲一下我是怎么做的,我现在有2个小孩,而且我住的比较远,应该在座的比我忙的也不会很多,看一下我是怎么做的,我是坐广州的四号线,坐四号线每天来回可以看一个小时的书,每天早晚30分钟,周末4小时,有的同学可能会有疑问,周末肯定要带小孩玩,自己也要休息,哪里有4个小时,其实只要你去找,时间都会有的,我找的方法就是当我小孩睡觉的时候,因为小孩子睡觉一般要睡三四个小时,大人一般睡一个小时、半个小时就差不多了,所以通过这种方式,大家可以看到2015年我一共看了84本书,有专业的,也有非专业的,人文社科、历史这些都有。


不过特别提醒一下对于男程序员来说有一个时间千万不能少,就是陪女朋友的时间,因为对程序员来说找女朋友不容易,别看了这篇文章回去之后女朋友也不要了,就天天回去提升,这也不是我们想要的生活。


4


10000小时理论如何轻松落地?


虽然理论上很简单,但真正要落地实行也并不那么容易,实行10000小时理论的关键在于坚持,我认为坚持的关键在于自己对于所从事的事业是否有“激情和兴趣”。这点当然是核心,但如果只靠激情支撑,持续10年也确实有挑战,正如一个朋友在分享会后问我的“要持续10年才能成为大牛啊,时间好长啊”!


如果说做一件事要10年后才能修成正果,估计很多朋友就会放弃了,毕竟像唐僧那么坚定的信仰者总是少数,大部分凡夫俗子都还是需要持续不断的激励才能有动力去做一件事,因为我们的大脑在进化的过程中已经形成了需要持续不断的奖励才能保持兴奋的机制,也就是说相对于在第10年给一个大奖励,还不如每年给一个小奖励。


那如何才能在10年漫长的路上让我们持续的坚持下去呢?答案其实就是首富的话:“先定一个能达到的小目标”!我们来看如何将“10年成为大牛”这个目标分解为一个个能达到的小目标。我将这个方法归纳为“三段分解法”,即:将一个宏大或者长远的目标经过3次分解,得到一个个短期内能达到的小目标。具体的分解方法如下。


一段分解:分解“等级”


10年成为大牛的目标虽然比较长远比较宏大,但并不意味着在没有成为大牛前,我们一直都是菜鸟。从菜鸟到大牛的过程中,中间其实有几个关键的里程碑,这些里程碑就是我们的一段目标。


以技术人员为例,技术人员典型的发展路径基本上都是下面的这个模式:


1) 0 ~ 1年:菜鸟,需要别人手把手来教


2)1 ~ 3年:初级,需要别人带你做


3)3 ~ 5年:高级,能独当一面,可以带初级技术人员了


4)5 ~ 8年:资深,能独挡多面


5)8 ~ 10年:大牛,统筹规划,高屋建瓴


通过上面的分解我们可以看到,虽然说10年才能成为大牛,但是3年就可以达到初级水平,5年就可以达到高级水平,8年就可以达到资深水平,在这个过程中我们一直在成长和提升,而不是说没有成为大牛就是菜鸟;并且对于很多朋友来说,如果目标不是像首富那样要赚就赚1亿,能达到高级或者资深水平,其实已经可以过得比较滋润了。


通过这种分解方法,再核对一下自己目前所处的位置,然后先瞄准下一个目标,全力以赴其实也就2 ~ 3年时间,这样来看一段目标其实是比较容易达成的。这种目标分解的方法除了适合技术人员外,其它很多领域也都适应,比如说产品人员、运营人员、甚至公务员!



二段分解:分解“技能”


经过一段分解后,明确自己目前所处的位置和下一个目标,接下来就要看这个一段目标如何实现了。虽然说每个一段目标持续时间在 2~3年,但3年时间说长不长,说短也不短,如果没有好好利用,可能到了2年多的时候回头一看,好像什么都没达成,还是原地踏步。因此,为了更好的利用这3年时间,我们需要进一步分解,这就是“二段分解”。


一段分解的维度是等级,二段分解的维度则不一样,不能再分等级了,否则等级太细就没法区别了。二段分解的维度变成了“技能”,即:为了达到一段目标,我需要具备什么样的技能。


还是以技术人员为例,假设经过自我评估,认为自己目前处于初级阶段,而且初级阶段的事情已经做得比较顺手和熟练了,那么下一个一段目标自然就是达到“高级”水平。“高级”与“初级”相比,有哪些不同的技能要求呢?


这就需要我们根据各自不同的行业和方向详细列出来了,如果自己想不出来,网上有很多资料都可以搜索到,最方便的就是到一个招聘网站,多看看几个招聘需求的描述,然后归纳总结一下。


我们随便到网上搜索一个,例如拉勾网上滴滴的“高级Java开发工程师”招聘:


多看几个类似的职位招聘,基本上我们就能明白“高级Java开发工程师”的一些基本要求。当然实际上的技能要求比招聘需求的描述还要更加细致,我个人的习惯是将这些要求整理为一个思维导图,详细列出每个技术点。例如:


注意:以上这个图只是示例,并不是说所有Java高级工程师都一定是这个要求,例如互联网行业和电信行业的要求不一样)


有了这样一个思维导图后,我们就可以开始真正进行二段分解了,分解的方法很简单:哪里不懂补哪里!例如:我感觉目前我的数据库水平一般,仅仅会写CRUD语句,其它的东西都不懂,那我就开始专攻数据库这一部分,经过一段时间的专攻来提升自己的水平。


二段目标持续时间一般建议是6个月,既不能太短也不能太长。太短容易让人陷入为了目标而做的误区,没有真正得到有效提升;时间太长的话,3年时间又不够完成其它目标了,例如要是我定一个目标说2年提升数据库,那操作系统怎么办?网络怎么办?……等等。以6个月为一个周期,基本上刚刚好。


经过分解,最终的二段目标可以分解为如下的几个更小的目标:


1)2016.06 ~ 2017.01:提升数据库水平


2)2017.01 ~ 2017.06:提升Linux水平


3)2017.06 ~ 2017.12:提升网络和网络编程水平


当然,二段分解目标并不是一成不变的,很多时候需要根据我们工作的内容进行调整。例如老大正好安排我来负责优化系统性能,降低机器负载,那么我完全可以将“提升Linux水平”安排到“提升数据库水平”之前。



三段分解:分解“行动”


二段分解得到技能的小目标后,接下来的关键就是要实现这个目标,这就是三段分解的主要目的,即:将技能目标分解为具体要做的事情,然后按照计划执行。


比如说我的二段目标是“提升Linux水平”,那怎么样才能提升呢?可以上网搜索(知乎是个好地方),也可以去问有经验的朋友。明确要做的事情后,三段分解需要将二段分解的6个月目标更加细化,分为1个月或者两个月一个目标。


以我当时加入UC的情况为例,我在华为的时候是在Windows平台上用VC6进行开发,而到了UC的时候是在Linux平台上用C++开发,我当时定了“提升Linux水平”的目标,然后通过上网查,找别人问等方法,最终将这个目标分解为几个步骤:


1)1个月:通读《UNIX环境高级编程》


2)1个月:通读《Linux系统编程》


3)2个月:通读《UNIX网络编程 卷1》


4)1个月:Linux常用命令实战:tcpdump、ps、top等


通过这种方法,将6个月的目标又进一步分解为1个月的目标,实施起来就简单多了,每1 ~ 2个月专注一个具体目标,每次完成后都很有成就感,既感觉自己的水平有了提升,又佩服自己能够坚持按计划按目标完成任务,双重奖赏让自己更有动力进行下一个目标。


我大约花了2年的时间将Linux、网络、MySQL三个重点技能从一无所知提升到高级的水平,很多同事都问我之前在华为是不是就是做这方面的,因为他们觉得短时间能达到这个水平是不太可能的。


综合前面的分析,我们将三段分解提炼一下:一段分解“等级”,二段分解“技能”,三段分解“行动”。通过前面我们的案例就可以看出,原本一个宏大的“10年成为技术大牛”的目标,经过三段分解,最终得到的是1 ~ 2个月可执行的具体行动,通过这种一步一个脚印的行动,最终就可以达成“10年成为技术大牛”的目标。







请到「今天看啥」查看全文