资深技术Leader肺腑忠告:如何成为技术大牛?

自媒体 自媒体

这篇文章,对于每一个想成为手艺大牛的人来说都值得细心阅读好几遍。 [原文来自:www.777y.com]


图片来自 Pexels [原文来自:www.777y.com]

双生说:曹乐是典型学霸,清华本硕,多年互联网大厂研发经验,所以“资深”。我刚到新部门的时候,约各位合作部门的 Leader 请问,也算帮我做新岗位入职的“平稳下降”。


印象最深的,就是作为手艺 Leader 的曹乐,一点都不像手艺——他和我谈对生意的懂得,各个维度的见解与设法,让人印象深刻。


然后,他很热情的帮我放置了他团队几个同窗的 1-1,匡助我熟悉了更多从手艺视角对生意与手艺团队协同、共创的思虑。


后来,起头深入合作,发现合作的手艺同窗,不单仅手艺上追求精进,而且是真正的也能够跳出往来看生意全局。能跳出来,能跳进去。


这封信,是曹乐写给团队的。若何成为手艺大牛(来自另一学霸同事的谈论,感谢):寻找范式、克意演习、实时反馈;垂直打透、横向迁徙、深度复盘;智慧人要下笨功夫。


Enjoy~


收受焦虑


多少同窗都有关于工程师该若何成长的问题,人人普及对若何成长为牛人,若何获得晋升,若安在忙碌的工作中持续进修布满了狐疑,这其实是每一位同窗成长过程中必经之路。


比来几回 1-1 也和同窗聊过这方面的问题。在这里也想跟人人分享一下我的一些心得。


同窗们普及对成长布满了焦虑感。工作太忙没时间进修,需求太多太琐碎感触自己没什么提高,做手艺是不是做到 35 岁往后就没人要了,等等,都是对成长焦虑的施展。


在这里我想说的是,这种焦虑是正常的,所有的希望,在心里的投射其实都是焦虑。


任何一个希望成长的人,不管处于什么阶段,一线工程师,架构师,照样总监,副总裁,其实心里中都是布满了焦虑的,无一例外。


对于这种焦虑,我们所要做的是收受,而不需要过度担忧。这种焦虑并不是说,想领略若何成长了就会没有了,到了某个阶段就会没有了的。


成长的脚步和等待一刻不止,心里的焦虑也一刻不会停歇。恰是这种焦虑感,使令你写代码追盘考题到星夜,使令你牺牲安歇娱乐的时间和一本本厚厚古板的书作伴,使令你络续起劲向前,不舍日夜。


相反的,若是心里中没有这种焦虑,反而是值得担忧的。这或许诠释已经习惯呆在自己的舒适区了。


在现在这样一个高速成长的社会,以及我们这样一个高速成长和改变的行业,失去对成长的希望和焦虑反而是一个非常危险的旗子。

35 岁危机


所谓的轨范员 35 岁危机,其实背后的根基原因是,有太多太多人在工作几年往后,就感受自己什么都邑了,之后的十几年工作只不过是头 2-3 年的简练频频而已。


在我们这样一个行业里,在招聘的时候,若是摆在治理面前的两个:
  • 一个是初出茅庐或刚工作 2-3 年,布满了对成长的希望。

  • 另一个工作十多年了但水平宁工作 2-3 年的人差不多,只是更熟练一些,不过在舒适区已经躺了十年了。


若是负责招聘的是你,你会做出什么样的选择?而另一方面,其实是高端人才熟行业内的极端极端稀缺。


人人可以想一想,我们部门上一次招聘到 D10 及以上的同窗是什么时候?从生意平台部 2016 年中成立到现在,一个都没有过。


D9 同窗也是凤毛麟角,一年能招到 1-2 个就充足可以偷着乐了。面试碰着牛人的时候,就如同相亲碰着女神一样打动。这熟行业内是非常普及的现象,真正的大牛太稀缺了。

在这样一个行业里,若是一个人能够持续成长,能力和工作年限成正比的持续提升,这样的人,任何时候熟行业里都是被疯抢,怎么或许会碰着任何岁数的危机呢?


每一个生意平台手艺部的同窗,都应该发奋成为这样的大牛,持续进修和成长。

克意演习三步法


若何进修,其实是有体式论的,那就是克意演习。所谓的 10000 小时成为大牛的理论是片面的,若是只是简练频频 10000 小时,是弗成能成为大牛的。


克意演习包含了三个措施:
  • 找到你要进修的这个领域系统的范式(Pattern)

  • 针对每个范式克意的一再进修和演习

  • 实时反馈


人人在过往的工作和进修生活中,或多或少都在实践着克意演习。拿面临高考的中学生举例子。


好的学生常日是把一门功课拆成了多少常识点(寻找 Pattern),然后针对常识点以及他们的排列组合,有针对性的一再做各类难度的题(克意演习)。


每次做完题都对一下谜底看看正确与否,若是错了就思虑,记录,复盘(持续实时反馈)。这样的进修体式就是事半功倍的。


而事倍功半的进修体式,就是不分青红皂白拿起一本习题或卷子就拼命做,我上学的时候身边不少同窗非常用功但成就并不好,多半都是这个原因。


再举一个我比来在学打羽毛球的例子,正确的进修体式是把打羽毛球拆解成步法和手上动作,小碎步,米字步,正反手挑球,放网,正手和头顶高远球吊球杀球等(寻找 Pattern)。


然后针对每一个动作一再演习(克意演习),然后请问练或许录下来看视频纠正自己的动作(实时反馈)。


而错误的进修体式是,上来就盲目找人打角逐,以赛代练,这样的提高是很慢的,而且错误的动作形成习惯往后未来反而很难纠正。


当进修体式禁绝确的时候,耐劳的进修经常只是看起来很用功,并没有应有的究竟。


当接触一个生疏领域的时候,错误的进修体式是不带目的性,上来就找一堆相关的大部头起头啃。


而正确的进修体式应该是快速梳理该领域的常识点,形成框架系统(寻找 Pattern),这里有些小窍门可以快速构建起一个领域的常识点系统。


例如看一些该领域的综述性或开创性的文章(看论文,别瞎看网上的文章),或许找本该领域综述性的教科书看它的目录(留意,好的教科书的目录往往就是这个领域的常识框架,内容倒不一定非要看下去)。


然后,针对每个常识点,找书里的相关章节,该领域相关 Paper 里的相关 Section 深入进修,竖立起自己对这个常识点的懂得(克意演习)。


最后,再把常识点和实际工作中的景遇(自己工作,或其他公司相关的工作)进行对照(实时反馈),从而竖立对一个常识点的深度懂得,最后交融贯通竖立对一个领域的懂得。

这样说或许有点抽象,拿我昔时进修分布式存储的过程为例子,先连络自己的工作内容梳理出需要深入熟悉的常识点。


例如,元信息组织、Meta Server 设计和 HA、副本组织和治理、Recovery、Rebalance、单机存储引擎、数据/元信息流、纠删码、一致性、多租户、存储介质、收集情形和 IDC 等等。


同时看多少综述性的材料,梳理分布式存储的常识点(有网上各类清算的对照好的文章,也有从各类系统实现的 Paper 里抽出),络续迭代构建分布式存储领域的常识点(寻找 Pattern,这是最难的一个过程)。


然后针对每一个常识点,找相关材料进行深度进修,例如,对于分布式一致性,需要阅读 CAP 理论,Paxos 的论文,Raft 的论文等等,以及周边的多少材料(克意演习)。


然后找各类系统实现的论文或文章,比如 GFS,Dynamo,Aurora,OceanBase,Ceph,Spanner 等等,看看和对比它们在一致性上是若何考虑和取舍的。


当然,最首要的是连络自己工作中的一再实践和所学常识点进行比对(实时反馈)。

这三个阶段并不是割裂的,而是周而复始的,经常会在克意演习和实时反馈的进修过程中,发现自己漏掉的常识点,或许发现自己梳理的两个常识点其实是重合的。


经由这种交叉比对,以及在实践中络续磨练的体式竖立的常识点是非常可落地的,而不会看了几篇论文往后就吠形吠声。


拿分布式存储的一致性举例子,若是不是一再对比、思虑和一再实践,你不会发现 GFS 论文里最难的一段,多个 Writer 对一个文件进行 Append 的逻辑,在实践中根基没用。


你也不会发现看起来优雅而学术的 CAP 三选二的理论,实践中压根不是这么完美,多少时候只能三选一。


你也不会发现 Dynamo 论文里的 Vector Clock,网上有无数文章摇头晃脑的解读,但在 Amazon 的应用场景里是个典型的 over design,Cassandra 在这点就务实多少。


这时候人人或许会有个疑问,工作本身就如斯忙碌了,哪里能抽出充足多的时间去进修?

工作和进修并不割裂


其实工作和进修本身,是不应该被割裂的。工作正本就应该是进修的一部门,是进修中的实践和实时反馈的部门。进修若是脱离工作的实践,是非常低效的。


是以每个同窗应该对自己工作所在的这个手艺和生意领域进行系统性的进修,并在工作中一再实践和验证。


不合的领域之间其实是融汇贯通的,当你对一个领域精晓并总结出体式论往后,很随意就能上手其余领域。


是以花几年实践彻底研究透一个领域,对于刚工作几年的同窗来说,是非常首要,甚至是必需的,也只有在一个领域打透之后才谈得上跨领域迁徙,去拓展自己的常识面。


更直接的说,对于一个领域还未完全把握的同窗,深度是最首要的,不用想广度的事情,等把握了一个领域之后,再去拓展广度就变得很随意了。


这里一个常见的误区是,进修的内容和工作的领域没有太多直接的关系。


例如,我以前曾经花了非常大的功夫去读 Linux 内核的源代码以及多少相关的大部头,几乎花掉了我将近两年的所有余暇时间。

然而在我这些年的工作里,几乎是没有效处的,最多就是有一些“启发”,ROI 实在是太低了,现在也忘得差不多了。


更首要的,软件工程是一门实践科学,从书本上获得的常识若是没有在实践中应用和磨练,根本上是没有效处的。


举一个例子,多少优良的架构师,尽管平时工作中或许一再在用,但未必说得出开闭原则,里氏替代原则,迪米特轨则等等。


反过来,对面向对象设计这 7 大原则七步之才的人,多少其实离真正的架构师还远得很,有些甚至只是博客架构师而已。


实践远远比看书,看文章首要得多,上文所述的我构建自己分布式存储常识系统的过程,看起来似乎都是看材料,看论文,而实际上 80% 的收获都起原于带着理论的实践,和从实践中总结沉淀的理论。


是以,彻底搞领略自己工作所在的手艺和生意领域,是最务实高效的做法,工作和进修割裂,会导致工作和进修都没做好。


这时候人人或许会有另一个疑问,感触平时工作非常琐碎,学不到什么器材,怎么办?


若是把进修分成从书本中学,和从工作中学这两种的话,那毫无疑问,工作中的“常识密度”,比起书本的“常识密度”,必然是要低多少的,因为书本里的常识,那都是人家从他们的工作中抽象总结出来的。


这也是为什么人人普及感受平时工作“琐碎”。然而工作中每个点滴的琐事与平常,都是可以抽象总结成为体式论的,更别说工作所在的领域自身的博大精湛了。从平时工作中进修的窍门,就是“动作中思虑”。

优良架构师的两大能力


对于每一个软件工程师,最首要的两个能力:
  • 写代码

  • Trouble Shooting


并且,要成为优良的架构师,超卓的斥地能力和追盘考题的能力是一切的底细。


提高写代码的能力的核心,首先在于僵持络续的写,但更首要的,在于天天,每周,持续络续的 Review 自己之前的代码,同时,多 Review 牛人写的代码。


比如团队里你感受代码写的比你好的同事,比如社区里以代码时兴著称的开源代码(作为一个 C++ 轨范员,昔时我的表率之一是 Boost 库)。一旦感受自己之前的代码不足好,就立时复盘,立时重构。


更首要的是,多思虑自己代码亲睦的代码之间不合之处背后的为什么,常日这就是为什么这些代码更好的背后的机要。


稀奇要诠释的是,代码规范除了知道是什么外,要特别正视思虑每一个代码规范背后的为什么。代码规范的每一句话,背后无一例外都是一片江湖上的血泪史。


要提高 Trouble Shooting 的能力,关键在于要深度复盘自己碰着的每一个问题,包括线上的,包括测试发现的。


寻找每一个问题,每一次事变背后的 Root Cause,并且思虑后续若何避免同类问题,若何更快的发现同类问题。


要对团队内外碰着的所有问题都要贯穿好奇心,关注一下周边的事变、问题背后的 Root Cause。


Trouble Shooting 能力的提高是几乎无法从书本上获得的,完全起原于对每一个问题的深度思虑,以及遍及储蓄每一个问题。


对于架构师而言,或许未必在一线写代码了,但看团队中一个架构师是否真正牛逼的一个很首要标准,就是看他是否能够追查出团队其他同窗查不出来的问题。


我见过的一个真正牛逼的架构师,对于系统中疑难杂症,常日问几个问题,就能简略猜出是哪里出的问题,以及或许的原因是什么,准确水平如同算命,屡试不爽,令人叹为观止。


对于一个架构师,除了加倍优良的代码能力和 Trouble Shooting 能力外,需要构建相对完整的当前手艺领域的常识系统,需要有系统化的脑子脑壳能力,需要敌手艺所处事的生意有非常深入的熟悉。


系统化的脑子脑壳能力,起原于两个方面。一方面是在平时工作中,对每一个接口设计,每一个逻辑,每一个模块,子系统的拆分和组织体式,每一个需求的手艺方案,每一个系统的顶层设计,都要一再思虑和推敲,络续的复盘。


另一方面,需要大量遍及的进修行业内相似系统的架构设计,这其实就是开天眼,只是手艺相对来说,行业内的交流加倍频繁。


淘宝、美团、百度、Google、Facebook、Amazon 等各个公司介绍系统架构的论文和 PPT 铺天盖地,需要带着问题持续进修。


除了手艺领域本身外,架构师需要非常熟悉生意上是若何使用我们的系统的,否则非常随意 Over Design,陷下手艺的自嗨中。


这也是为什么我说 Amazon Dynamo 论文里讲的 Vector Clock 是个 Over Design 的原因。


另一方面,多少时候手艺上绕不过去的坎,或许非常复杂的实现,往往只需要上层生意稍微变通一下,就完万能够绕以前。


这也是为什么我说 GFS 论文里,多个 Writer 同时 Append 统一个文件是个根基没用的设计(实际上 Google 内部也把这个功能去掉了)。


这也是为什么我在咱们部门内一再强调人人需要深入熟悉生意,因为达到同样的生意方针,或许稍微改一下产品方案就可以让需求的手艺实现变得无比简练。


只有真正知道上层生意是若何使用系统的,才或许真正做好架构。


深入熟悉生意并不难,对于每个同窗,只要对于每一个接到的需求,对于每一个需求评审中的需求,对于周边同窗或团队要做的需求,都深入思虑为什么生意要提出这个需求,这个需求解决了生意的什么问题,有没有更好的方案。


碰着不领略的多和周边同窗、产品、运营同窗请问。最怕的是自己把自己限制为纯粹的研发,接到需求就无脑做,这等于抛却了主动思虑。


衡量一个人是不是好的架构师,也有一个体式。对于一个需求,若是他给出了好几个可行的方案,说这些方案也可以,那些方案也可以,往往诠释他在架构师的路上还没有完全入门。


架构师的难点不在于给出方案,而在于找到独一的那一个最简练优雅的方案。


总结起来看,动作中思虑,就是始终贯穿好奇,络续从工作中发现问题,络续带着问题回到工作中去;络续思虑,络续在工作中验证思虑;络续从工作中总结抽象,络续对工作进行复盘,持续络续把工作内容和全领域的常识交叉验证,一再实践的过程。


在工作所在的手艺和生意领域中克意演习,加上动作中思虑,就是成为手艺大牛的窍门。


看起来体式也不复杂,为什么大牛照样非常稀少?


尽管我们通篇都在讲体式,但其实在成为手艺大牛的路上,体式反而是没那么首要的。


真正难题的,在于数年,数十年如一日的僵持。太多人碰着挫折,碰着瓶颈,就感受手头的事情太乏味古板,就想要换一个倾向,换一个领域,去学新的手艺,新的器材。


而真正能够成为大牛的,必需是能够青灯古佛,熬得住打破瓶颈前长时间的孤寂的,必需是肯下笨功夫的智慧人。


是以,和僵持对比,体式其实并没有那么首要。和人人共勉。

作者:曹乐

编纂:陶家龙、孙淑娟

出处:转载自微信公家号再成长一次(ID:Read_Enjoy)

超卓文章介绍:

轨范员35岁,依然可以“横行职场”!
实情了,中台事实“出路”照样“末路”?
据说你把1个经验一再用了10年?
自媒体微信号:777y扫描二维码关注公众号
爱八卦,爱爆料。
小编推荐
  1. NO.1 盘点只有老司机才听过的英雄台词,孙尚香和芈

    上次猫叔收集了一些霸气的英雄台词 受到了老铁们的喜欢 虽然你们没有直说 但是从你们积极的后台留言当中 猫叔 就可以看出来 以后有什么你们想

  2. NO.2 日本女星直播挑战下面“换物遮点” 竟一个手滑

    日本女团「假面女子」成员 神谷惠里奈 (神谷えりな)拥有G罩杯的傲人身材,身为写真女星的她常在网上大秀清凉美照。 近日,她拍影片挑战「换

  3. NO.3 啪啪时女票超能夹紧是什么感觉?

    从前有个人,人称3X哥。X哥爱污漫,一画不吃饭,天天开火车,呜呜呜呜呜,呆萌爱搞笑,逗比又好色。既爱啪啪啪,也爱么么哒,键盘遥控器,榴

  4. NO.4 魔兽世界8.2暴风城怎么去潘达利亚(魔兽世界考古碎片兑换)

    魔兽世界中的坐骑已经成为玩家们现在出行旅游必备的良品,今天就给大家带来一篇关于潘达利亚地下城成就龙的攻略。 这些成就中有一些单人无法

  5. NO.5 姑娘别这样,谢谢!

    爱健身的妹子身材不会差!公共场合拖鞋,没素质你应该把脚放大王肩上!总感觉有点奇怪!妹子这种表情啥意思?痒了好挠一挠吗?这个美女是买

  6. NO.6 如何做一款UGC内容游戏

    品牌引导用户从而产生UGC内容在自媒体时代非常吃香,正因为UGC更会源源不断的生命力且与时俱进,不需要专业人员维护,只要维护好环境就能不断

  7. NO.7 DOTA2 2017年珍宝之瓶和猩红见证者珍藏特效解析

    【天辉夜魇】总第484期 本文系C5GAME特约稿件,欢迎分享 题图 / DOTA2 文 / 天辉夜魇 小编周末最怕什么? 最怕服务器突然GG,最怕DOTA2突然的更新……

  8. NO.8 如何给直男解释口红档次?可以说非常直观了...

    这是整个微信 段子最多的腚阅号第643期 · 轻松一刻图文来自网络,版权归其所有以前去日本留学的时候,我最惊讶于一些中国人对日本有些执念的误

Copyright2018.七云自媒体资讯站,让大家及时掌握各行各业第一手资讯新闻!