2021年元旦节假期没回家,在出租屋里想到了2020结束了,又到了一年一度的总结时刻,翻看了2019年的总结,突然觉得去年的自己还是这么稚嫩,即使我已经是29的高龄了。
还是羡慕那些刚毕业就能从事这行的小伙子,到了我这个年龄,已经都是从业七八年的资深专家了,所以我需要在追赶,需要去思考总结,我得把学习变成一件高效的事件,而不是事半功倍。
我在心里给自己定了一个年度计划,但这其实就是妥协了,还不够坚定,因为心里定的计划随时都能改变,随时可以推迟,那就不叫计划,而只是空想而已,所以今年会把计划的思路写出来,然后提炼出来写到笔记本上,必须落到实处,而不仅仅只是空想。
当然在做此之前,还是回顾一下今年做的事,以及去年立的那些flag。
回首2020
今年从呆了两年多的公司离开了,来了杭州,虽然还是小公司,但所幸公司后面来了一个阿里的大佬,感觉突然又有奔头了。当然大佬不愧是大佬,给自己带来了很多提示、或者说是认知上的一个改变,这个后面会说到。
去年就有提到过去钻研前端的某个方向,但是迟迟未决定,所以依然是搞好传统PC端的业务,但是开始更着眼于的底层原理性的东西。
首先花了大概三个月的时间去学习算法,从基础的数组、栈队列开始、刷leetcode做题,大概做了将近240道题,但是效果其实自我感觉并没有一些大佬文章中那么好,就觉得自己做的时候,怎么都想不到思路,但是一看题解又都能明白的尴尬境地。很明显,就是自己的思路没能拓展,做不到举一反三,更是做完题后也没有什么总结,这点在我看到一个算法公众号以后就更加确定自己的不足了。
后面在做知识体系的总结,从浏览器到网络原理,再到CSS、JS语言层面,好像都提到了,但是好像也都是浅尝辄止,就像是对所学的一个拷贝,而没有自己的理解,感觉就像是搬运工,虽然我们都是在做搬运的工作。不过这么做,效果也还是有的,对前端领域有了一个全面性的了解,可以说提到一个知识点,能让自己联想到其他点,当然如果是临场用语言来说,又是另外一回事了,这是后话了。
其次就是今年从Vue转到了React。框架原理其实都是相通的,学起来并没有那么难,只是学精比较难。整体看了一下React的源码,了解了一下React中不同于Vue的架构设计。比如React15中的递归更新和React16的Fiber就是一个全新的架构设计,解决递归更新导致的长任务页面卡顿的问题,现在变成了异步可中断更新,单从性能而言提高了很多。这里感兴趣的同学可以看看这篇文章,不得不说,理解的太好了。
最后就是因为业务原因,开始学习WebGL,当然也是因为自己喜欢这样的挑战,能把自己上面学到的一些数据结构算法的东西用起来才是最重要的。就像自己之前学了flutter,但是公司最后没用,一段时间没用,然后就已经抛之脑后了。目前一边学习,一边整理学习的总结,估计今年会多写点这样的文章供大家参考。
思考 & 认知
说完了今年做的一些事,来谈谈今年给自己带来的一系列的突破性的思想转变,或者也可以说是认知改变。
- 技术上无法深入底层
这点是比较明显的,但是很重要的地方就是你学习的东西,你要能够把他给用上,特别像是一些底层的东西,数据结构、算法及设计模式这些。可能你都知道,做题做的也非常的溜,但是工作中从来没有想过,那学习这些就像是镜花水月。那么很多人就会说,我做的东西太简单了,根本用不上。其实不是用不上,而是你觉得简单,没有必要深究,做出来就算了。当然我也是这么想的。
嘿嘿。所以说好的平台能够带给你的东西就太多了,即使我们说再多的深挖底层,如果你的业务只是让你做个活动页,写死了也写不出花来。我觉得如果真的是这样的话,那就专注自己的基础学习,打牢好基础,为下次更好的平台而准备嘛。
- 业务理解不够深刻
相信很多同学都会有这样的感触:我就一个写页面的,业务跟我有什么关系,那是后端的事,产品让我怎么写,我就怎么写。不说了,我还是这样的!
但是现实告诉我们,掌握业务,你才能掌握团队,一个团队的核心必然是那个最懂业务的,如果你不懂业务,即使你的技术再好,如果有晋升这样的机会可能也轮不到你,因为你只会埋头写代码。很真实,但确实是这样,这么些年我给别人的感觉也就这样的:这个人技术不错,业务嘛,一窍不通。
所以技术并不仅仅就是写代码,如何沟通,如何说清楚你负责的业务,语言组织其实非常重要。深入业务就是用技术赋能业务,业务反哺技术。说起来很官方,但是细想确实非常有道理。很简单的一个例子,我们每周都有分享会,我也会经常拿出写的一些博客来作为内部分享,但是在博客上感觉自己很容易就能说清楚技术点,步骤逻辑等等,但是用语言描述这一切的时候,发现真的算的上是语无伦次、胡言乱语级别了。能把自己想要表达的和自己真实说出来的东西保持一致,其实就已经很成功了,今后无论怎么讨论,你的内心已然胸有成竹了。
所以对于一个技术人员来说,技术本身固然重要,但是软实力也是技术人员成长发展必不可少的部分。这也是公司大佬分享给我们的。这些软实力包括与同技术人员沟通,和产品沟通需求,给非技术人员做分享,推动项目落地等等。这些东西我们从一些xxx招聘软件也能看到一二,经常会看到某某招聘要求:推动项目落地,推动项目的能力等等。如果真实主导过一个项目,这里说的主导,不是说代码主要都是你写的这种,而是从项目结构设计,人员安排、工时预估,需求评估、资源协调基本都是你在主导才算得上。这之间带来的收获其实是非常大的。掘金上,看到很多大佬的经历分享,都是在主导过项目以后,无论是从技术还是业务上面的理解都是飞速提升,然后成为了技术的顶梁柱的故事。
- 没有自己的产出
作为一个程序员必须得有自己的产出,博客、框架、工具链等等都可以算是产出,但是优秀的产出却少之又少,这不是我们心血来潮想要写个demo这么简单,而是经过不断打磨、改进,经得起推敲的产出。所以如果你想要推动一个自己写的框架什么的,如何去推广他,又是一个软实力的体现。
坚持
坚持永远是最难的事情。
这就像每天告诉自己要跑步锻炼,却总也执行不起来。冬天周末早起看书,却总是留恋被窝的温度。计划学习xxx源码,却总是被枯燥乏味外加看不懂的代码给折腾到放弃。
这些都是自己在亲身经历的事情,也是一直在克服,却还没有被克服的。
想要突破,没有那么容易。今年给自己的感觉就是什么都会了,但是好像也都不会。瓶颈这个东西,到一定阶段之后慢慢都会出现,想要突破瓶颈除了深入底层原理外,多去看看别人的经历,找到适合自己的一条路。
去年立的定好方向也算是完成了,今年除了朝着这个方向继续以外,能够自己去完整推动一个项目、或者是一个库的推广,这已经是计划中的了。接下来把今年完整的计划定好,一定要落实到纸面上,每天能够看到的那种。还有就是多参加沟通交流会这样的活动,沟通真的非常非常非常重要,特别对于一个技术人员来说,这真的是最深刻的一个体会了。
好了,暂时就想到这么多了,溜了。