有很多人, 包括我也困惑的一个问题, 就是如何成为一个很厉害的工程师. 类似的问题也有很多, 如何成为一个很厉害的运营, 如何成为一个很厉害的产品, 或者跨行业的, 如何成为一个很厉害的医生, 如何成为一个很厉害的作家等等.
如何成为一个很厉害的工程师, 我想是我的毕生追求, 至少目前是.
榜样的力量
一个很好的方式, 就是以业界成功或者知名的人来作为目标. 从阿里来说, 就有很多很厉害的人物, 比如多隆,"他从阿里的第一位程序员, 做到了阿里的合伙人, 是神一样的人物","阿里扫地僧","一群工程师几天无法排查的问题, 多隆一眼定位问题根源".
比如吴翰清,"轻松瘫痪阿里内网, 防御 16 亿次黑客攻击","20 岁入职阿里, 马云 500 万聘请的天才少年". 类似这样的阿里人, 多如牛毛, 以上两个已经在互联网顺手拈来的神话般的人物. 从阿里内部看, 可能就更多了, 无数的 P10 和 P11 都有各自的神话故事, 也是每个技术人榜样.
不可复制的神话
在学校起, 就涌现了很多互联网的天才人物, 10 岁的黑客, 百万年薪的阿里星天才等. 让人的感觉, 此类人物天赋异禀, 是常人无法企及的. 比如多隆, 一眼能看出的问题, 我等屌丝程序员首先, 要拿出电脑, 打印错误日志上下文, 拉上上下游同学, DEBUG 一个星期, 可能勉强才能定位: 这尼玛, 原来少传了一个入参.
因此除了望洋兴叹, 我不知道自己能做什么.
不可复制的年代机遇
有些神话可能注定是神话, 成功的人很多, 但是没有一个成功是可以被复制的. 成功不仅自身天赋很重要, 也需要同时具备天时地利人和.
在互联网野蛮生长的十年, 涌现了很多技术牛人, 但是到了如今互联网红利吃紧的时代, 缺没有新的技术大牛崭露头角, 在如今, 想成为技术大牛, 却变得如此艰难.
从业前,
求伯君写出了 WPS 第一行代码, 那时候我刚出生
马云去美国的时候, 中国没有互联网.
马化腾 QQ 用户 50 万的时候, 我还在高中的破网吧里, 着急向网吧老板 2 块钱买个 QQ 号.
新浪微博走红的时候, 我还在研究生期间写论文.
从业后,
人手必备的迅雷已无人问津
红极一时的暴风影音关门大吉
而今,
大大小小的公司纷纷裁员.
年代已不在, 当初的互联网有多火, 现在可能就有多悲伤
于是乎, 大多数人这么做
没有天赋, 没有时代的红利, 如何成为一个厉害的工程师, 变成了一种奢望和工匠般的追求.
大多数人, 开始了抢滩逃难, 有去考公务员的, 有去国企的, 有去开店的, 当然, 还有去送外卖的.
但是更多的, 是在潮水褪去, 光着身子, 站在沙滩上, 无所适从. 于是,"摸鱼" 成为了一个程序员最佳的选择."摸鱼" 成为了一种态度, 也成为了一种工作方式.
无战略, 无战术, 从以前的指哪打哪, 变成了打哪指哪.
撸码随心所欲, 跑起来是检验系统成功上线的唯一标准.
编码狂放不羁, 半年内不出问题是编码的唯一标准.
"可维护", 搞笑吧, 半年后我可能跑路了, 维护不维护跟我有啥关系;
"可扩展", 逗我玩吧, 业务半年后也要挂了, 扩展啥玩意;
"高可用", 瞎扯了, 就几十个几百个人访问, 挂了几天也无所谓.
当石匠喝完酒来建别墅, 当奔驰在索马里创办工厂, 当当红小生来主演历史剧, 可想而知, 我们理想中要的精致和现实中的粗糙会有多大的反差.
此时, 一本《论演员的自我修养》应该给演员一个大大的耳光. 同样的, 一本《论程序员的自我修养》也应该摆在大多数有追求的程序员面前.
至少, 此时我, 还想有一些追求, 追求设计出优雅结构的系统, 落地快速发展的业务, 追求成为一名优秀的工程师.
如何成为一个厉害的工程师
从知乎上一个经典的理论,"以大多数人的努力程度之低, 根本轮不到拼天赋", 即大部分对于自己梦想付出的努力, 还远远不到拼天赋的地步. 换句话说, 每个人只要真正努力, 就可以超越大部分人.
保持学习
前两天跟公司的一位 P9 沟通, 他说, 我至少几个月要保持学习一门新语言, 从学习新语言里学习新的思考方式. 对于普通程序员来说, 不仅要保持学习的态度, 更要保持学习的深度, 学习是唯一不落后的最佳渠道.
我在项目里, 就学习 java8 的语法, 用新语法来尝试新业务, 效果出奇. 而且据我观察, 往往有追求的大佬和新同学, 都对新技术渴求和渴望.
即为明显的一个例子, 我根据多年的交易经验, 设计了一套轻量级业务隔离框架, 一个 P9 大佬, 在我做完技术汇报后, 硬是单独拉着我, 咨询我框架是如何实现, 并且直接阅读我写的源代码, 一直到问懂了才恍然大悟.
学习, 可以是学习书本知识, 可以学习当下的知识付费, 可以学习跨界思维, 还可以学习人, 学习大师, 学习身边的同事.
REVIEW
学而思, 学和思本来就是互相补充的关系, 而 REVIEW 在互联网界, 有着更深的含义, 有 CODE REVIEW, 故障 REVIEW, 项目 REVIEW, 技术方案 REVIEW 等等. 互联网变得很快, 有时候快是第一要素, 先行抢占市场, 抢占用户才能胜者为王. 但是快, 往往也会忽视很多问题, 忽略方案上的漏洞, 忽略代码上的缺陷, 忽略团队上的管理和沟通, 此时要停下来, REVIEW 自身和项目, 继续做到每日精进.
借势和借力
前几周末, 跟 CTO 做技术 REVIEW, 我汇报的主题是交易系统架构. 谈到跨部门的合作问题和难点, CTO 一句话让我醍醐灌顶, 如何推动项目. 他说, 做业务, 要懂得借势和借力. 借势指的是两者目标一样, 自然能促进业务发展和跨团队合作, 借力是指复用已有的产品能力, 技术架构. 两者合二为一, 驱动业务发展自然水到渠成.
总结和抽象
我一直认为, 从低层次往高层次走, 最重要的一个特性, 就是 "总结和抽象". 这是一种能力, 也是一种思考方式.
前两天看到有很多同行在脉脉吐槽阿里的中台,"徒有其表","炒作概念","无需中台" 的评论. 为什么从中台哺育了整个阿里经济体技术框架的中台, 在这些人里一文不名? 我想除了不懂阿里内情, 视角不同外, 很多人缺少 "总结和抽象" 的能力.
总结, 是把一篇文章, 用一句话概括; 能从下笔千言里, 找到最重要的一句话; 能把做了半年的系统, 用一个序列图完美释义. 信息泛滥的互联网, 总结变成了一种非常重要的能力, 能剔除垃圾信息, 找到最重要的值得付费的一句话.
总结是精炼, 类似咖啡萃取, 将最精华的部分提炼出来, 可以理解成量变, 只不过是将大的化小, 化繁为简; 而抽象是质变, 将一个业务和一个系统, 抽象到更高的层次, 抽象成更为通用的理解方式. 抽象, 用哲学来说, 是还原一个事务最本质的面目. 在 JAVA 面向对象编程里, 一个非常重要的特性, 就是接口定义, 接口就是对业务具体逻辑实现的抽象, 抽象出一个模块具有的能力.
举个例子来说, 钉钉有很多功能, IM 聊天会话, 审批, 打卡等, 抽象起来, 这个能力叫: 办公协同.
抽象可以让用户在更高层次上去思考, 拓宽业务和系统边界. 这也是为什么老板一句话, 属下做一年. 正是老板在更高程度的抽象, 而实际落地, 却是需要补充无数的血肉, 才能真正落地一个业务.
之所以老板可以高瞻远瞩, 而我等屌丝只能一线撸码, 相信也是总结和抽象能力让我等望其项背.
最后
读一本书, 不会成为很厉害的人, 但是想成为很厉害的人, 可以读一下《如何成为一个很厉害的人》, 知乎推荐书目.
来源: https://yq.aliyun.com/articles/742397