推荐:成为技术大牛的两个方法(二)
极客时间编辑部
讲述:丁婵大小:2.37M时长:05:11
近日,资深技术 leader 曹乐给团队写了一封信,信中提到了成为技术大牛的两个方法。在上一篇文章中,我们已经分享了其中一个方法,即寻找范式、刻意练习、及时反馈。本文继续分享第二个方法:垂直打透、横向迁移、深度复盘、在行动中思考。如下内容摘自原文。
对于学习,你可能会有一个疑问,就是工作本身已经如此繁忙了,哪里能抽出足够多的时间去学习?
其实工作和学习本身,是不应该被割裂的。工作本就应该是学习的一部分,是学习中的实践和及时反馈的部分。学习如果脱离了工作的实践,其实是非常低效的。因此每个同学应该对自己工作所在的技术和业务领域进行系统性的学习,并在工作中反复实践和验证。
不同的领域之间其实是融汇贯通的,当你对一个领域精通并总结出方法论以后,很容易就能上手别的领域。因此花几年时间彻底研究透一个领域,对于刚工作几年的同学来说,是非常重要,甚至是必须的。也只有在一个领域垂直打透之后才谈得上跨领域迁移,去拓展自己的知识面。
但这里有一个常见的问题是,学习的内容和工作的领域没有太多直接的关系,不便于垂直打透。
例如,曾经有两年我用所有的空余时间去读 Linux 内核的源代码以及相关知识,而这些知识在我那两年的工作中,几乎没有用处,最多只是一些“启发”,所以后来也忘得差不多了。
软件工程是一门实践科学,从书本上得到的知识如果没有在实践中应用和检验,基本上是没有用处的。
这时候,你可能会有另一个疑问,感觉日常工作非常琐碎,学不到什么东西,怎么办?
如果把学习分成从书本中学,和从工作中学这两种的话,那毫无疑问,工作中的“知识密度”比起书本的“知识密度”,肯定是要低很多。因为书本里的知识,都是从工作中抽象总结出来的。工作中每个点滴的琐事与平凡,都是可以抽象总结成为方法论的,更别说工作所在领域的博大精深了。如何从日常工作中学习呢?秘诀就是“从行动中思考”。
对于每一个软件工程师,最重要的两个能力,是写代码的能力和解决问题(Trouble Shooting)的能力。并且,要成为优秀的架构师,出色的开发能力和追查问题的能力是一切的基础。提高写代码能力的关键,首先在于坚持不断地写,但更重要的,在于每天、每周持续不断的 review 自己之前的代码。其次,要多 review 牛人写的代码。一旦觉得自己之前的代码不够好,就立刻复盘、立刻重构。更重要的是,多思考坏代码和好代码之间的区别及区别背后的原因。
特别要说明的是,除了要知道代码规范是什么以外,还要重视思考每一个代码规范背后的原理。
而要提高解决问题的能力,关键在于深度复盘自己遇到的每一个问题,寻找每个问题、每次事故背后的根本原因,并且思考后续如何避免同类问题、如何更快的发现同类问题。
此外,要对团队内外遇到的所有问题都保持好奇心。提高解决问题的能力是几乎无法从书本上获得的,其完全来源于对每一个问题的深度思考,以及对问题的广泛积累。
对于技术牛人来讲,除了需要更加优秀的代码能力和发现问题、解决问题的能力外,还需要对当前技术领域有相对完整的知识体系、体系化的思维能力和对业务的深入理解。
对于完整的知识体系可以通过寻找范式、刻意练习、及时反馈来构建,方法参照上一篇文章的内容。
对于体系化的思维能力,其来源于两个方面。一方面是在日常工作中,对每一个接口设计、子系统的拆分和组织方式、需求的技术方案、系统的顶层设计,都要反复思考和推敲,不断的复盘。另一方面,需要广泛学习行业内相似系统的架构设计。
而对业务的理解能力,也非常重要。深入了解业务并不难,你要深入思考每个需求背后的原因以及该需求能解决什么业务问题,有没有更好的方案等等,遇到不明白的问题多和周边技术同学、产品、运营同学请教。
以上就是今天的内容,尽管我们通篇都在讲方法,但其实在成为技术大牛的路上,方法反而是没那么重要的。真正困难的,在于数十年如一日的坚持。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
该免费文章来自《极客视点》,如需阅读全部文章,
请先领取课程
请先领取课程
免费领取
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(2)
- 最新
- 精选
- William Ning最后一句话是亮点,方法有时并不是问题,坚持才是。2
- 一声扣钉这文章解答了疑惑很久的问题,能清楚描述学习和工作的关系。1
收起评论