最近互联网风波不小,各大公司都在人力方面降本增效。意味着互联网的红利期过了,考察一个人扎实开发功底的时候来了
什么是开发功底呢?我理解就是一个人内外兼修的交集部分,即学到的理论真正用到实战中的究竟有多少 一直以来 我都认为学习源码中的优秀思想有助于我们平常中的开发提效,比如引入更好的设计模式以及数据结构,解藕我们复杂的需求
如何提升内功
多看优秀的源码,看不懂的拿着对应的类去搜对应的文档,看懂之后要造一个轮子辅助理解,否则只是纯粹的在读,不算是真正理解了。这样即便生产出了问题,也无从排查原因
外功应用到业务
- 多写demo练习
- 学会进行编程建模 (拿流程图梳理业务画设计方案)
- 把业务的实体关系梳理清楚了,开一个demo工程 尝试各种设计模式的组合是否适用
对于第1步而言,需要一定时间的坚持。 我记得大二数据结构编程课设哈夫曼编码实现的时候,穷尽一切办法也无法做到图片压缩率达到70%以上(可能在大部分人看来是我太菜了)。当时原本打算就此放弃。旁边的室友子麒看了一眼,问了一句话 “你不觉得这样挫败感太强了么”
想了想也是,做事不能有头没尾的,认输也要全力以赴之后再说。于是拿起c# API 猛攻了三天,除了叫外卖没出过屋,终于发现在不同文件格式的编码压缩中,buf的解码是时候文件头也是有长度限制的。最后交课设的时候 感觉心里很充实。这种发自内心的喜悦真是令人满足
对于第2步而言 需要一定的联想能力 这也是为什么大二 想着去打一下建模相关的比赛 不求能拿到名次,而是锻炼自己脑内建模的能力
对于第3步 需要培养沉下心来跟踪细节, 画出整个流程的全局思考能力
这大概是我为什么希望阅读源码的原因,因为这是一件需要很有耐心的事情,面对海量的细节。每一行代码都要仔细梳理,每一个方法的调用都会在我们脑海里复现。当你踏实的看过源码的一个模块。你会变得很有耐心,并且在接触一个陌生的系统时,能够在找到入口的前提下认真的梳理代码逻辑
未来的规划
我个人的经历很坎坷,这里就不提了。但是有些选择是不可抗力,有些选择是想改变自己做出的决定。我不后悔。 到了25这个坎。爸爸妈妈身体也不像以前那么好了,我也有经济压力需要承担。不想看到父母因为我而担心,也不想他们再有更多压力了。 那么,我们来谈点实际的 程序员在中年危机35岁这个分水岭到来之前 有两个选择
- 架构师
- 技术管理
以我的简历,深知大厂是无望了。小厂发展的话要么对各种业务场景做架构设计,要么做技术管理
- 对于架构师而言,不求每项技术都能二开源码,但是要求能有一项精通,这样在面对业务场景和问题的时候,会知道怎么样做选型和实践。此外对于公司的整个业务,需要有一个完善的业务流程图在脑海里维护,遇到问题可以第一时间排查和oncall
- 对于技术管理而言,需要对整个公司的业务有大体的了解,在下属遇到问题的时候,能给出合适的指导和建议。并且在面临困难的时候,拥有独立承担风险的心理素质
从以上看出 无论是哪一种,对于技术的深度,面临复杂问题时的分解能力,对于年限高的人来讲都是至关重要的。 所以即便是希望渺茫,我也想试试成为Rocketmq的Committer,毕竟消息中间件无论在哪个公司会应用的很广泛。而且存在很多业务的应用场景。同时在阅读源码的过程中,也能增强自己的技术深度和过人的心理素质
这一年,兜兜转转,阅读了不少源码。知道了开源社区沟通的方式,以及锻炼了阅读源码基本的心理素质。希望能把rocketmq这个组件吃透,下班有空之余,每看完一个模块发一篇博客,通过贡献为驱动,最终组成一个自己的源码解析系列: github.com/complone/ro…
就这么多吧 道阻且长,星光引路
引用宫园薰的那句话
在没有海图的海域里航行是需要勇气的