写给自己:
入行三载,技术栈换过两次,作为开发者,我时常会想要在技术进步上,拥有持续的获得感,但回首这几年的工作,似乎被困在了业务、交付、拉通和对齐中,对一切都变得逐渐麻木;
失去了一些冲动,就像是闲暇时刻,坐在电脑前,望着满屏的游戏列表,却提不起劲去打开一款游戏让自己沉浸,这明显不是一件好事;
于是,工作之余我会思考,为什么书看了,实例代码写了,过一段时间后,知识仍像水一样流过了脑子,不带半点涟漪?
良久,我才有了一些结论,在这里分享下,也希望得到指点和共鸣;
1、自己看过的那些书,真的有用吗?
有用,但很有限。这里基于我自己更换技术栈的情况,从java转到c++,本身是一个挑战,但实际落到工作中,却是if-else居多,这就导致顶着高强度的工作之余去学任何东西,结果工作中用不到,更没有时间自己输出项目和实际有用的代码,只是写点用例和demo项目自嗨,这样的进步不过是对校园学习方式的路径依赖,纸面上看,好像是把学到的点,用代码都实现了下来,但这些自学后实际发挥作用的地方——没有,实际能解决的问题——没有;
2、怎么让自己学到的东西,变成活的?
答案是输出,而不是盲目、按部就班地听课、写demo,思考和代码都要落于实处;
①将思考落在实处,我认为个人博客是个不错的方式,比如我暂时还不想出名,那一定要找个广告少、干扰少、人也不是很多的平台;
②将代码落在实处,就不能只盯着书本和课程了,公司中的资源,完全可以合理利用起来,比如我最近学了缓存,那就要去找项目中用到缓存的业务,同时找负责这块的兄弟部门了解一下,看看学到的,跟实际使用的方式,有哪些差异?为什么会有差异?受性能还是行业内的业务场景影响?这些差异又解决了什么具体问题?这样,就完全可以把项目中的业务,套进学到的知识点中,让学到的东西落到实处;
3、这样做的好处是?
① 解决了我们开篇的问题:只有让自己的积累,知识也好能力也罢,将这些都落到了实处,才能有持续的获得感;
② 积累“有效的”项目经验:如果我是面试官,那我肯定知道自己有多水,但用如果我早一点用这种将项目业务,套在知识点里的方法,输出文章和工作内容,用有效的积累去增加自己的底气,会更不惧如今并不景气的行业现状;
③ 同理,八股文也可以按上述的方法来进行准备,我可以说自己的实际用法有点low,但不落在实处的理论知识,就只是空谈。这也是为什么我之前打心底对八股文这种考察形式反感,学生时期的我便是顶不住枯燥的背诵才选择了理科。通过上面的思路,我们可以让八股文也落在实处,即:用项目中的技术点,来准备八股文,而不是干背,那一点用没有。我完全可以只准备项目中用过的技术点,配合上具体的八股文题目来吃透,或者反过来,以八股文驱动去看项目,两者是相辅相成的。比如:xx是什么?→xx的大致用法→项目中用到xx的业务场景→使用xx在该业务下解决了什么问题(或:为什么在设计时要用xx)。
我想可以通过这种实践,来增加自己的有效积累,通过不断变强的竞争力来驱散麻木,获得持续的进步感;