写在前面
2018 马上就过去了,今年对于我来说是很特别的一年,因为去年的现在,我曾经十分迷茫,因为工作这几年,写了很多代码,参与了很多项目,但总有一种碌碌无为的感觉,而且似乎离成为一名合格的全栈工程师越来越远了。因此,去年给自己定下的目标就是,在新的一年中,一定要远离自己的舒适区,开拓自己的视野,尽可能的 forget the label,不再以前端或者后端的角色限制自己,到头来虽然还是感觉碌碌无为,但有些事情的过程难道不是比结果更重要吗?
今年一整年来,陆陆续续看了很多书,翻译了很多文章,写了很多笔记,还折腾了很多新技术、新框架,每日也坚持学习英语,基本上也算是比较充实了,今日看到 SF 中的“总结你的 2018” 活动,因此凑个热闹,写这么一篇,简单分享下这一整年来,对于自己经历和看到的一些事情的感悟和看法。
业精于术,立于道
由于今年陆陆续续接触并上手了若干种技术栈和框架,前端后端都用,整体的感觉就是我之前一定对全栈这个概念有一些误解。之前我对于全栈的理解,过分地将关注点放在了全字上面,但实际上并非如此。同时,“学不动了”这个关键词估计可以算是今年比较火的词汇了,因为前端的技术栈更新换代实在是太快了,这也让我非常理解那些说“学不动了”的人的心态。
想要打破这种困境,必须要明白业精于术,立于道这个道理。举一些例子,像前端中的 MVVM 框架,React、Vue、Angular 这些东西是术,而组件化的开发思想、底层渲染机制、代码复用方案是道,各种编程语言是术,而面向对象、函数式、响应式的开发思想是道。当然了,我这样说的意思不是说这些术就不重要了,请注意,这句话中关于术和道的先后顺序,只有先精于术,才有可能立于道。
因此,如果你不熟悉某一类技术栈的话,先挑一个较成熟的框架或者库,学会它,之后再深入了解它的原理,然后再利用这些原理举一反三的横向扩充其他技术栈,会产生”学不动了“的想法,只是因为学习新东西的方式不正确而已,正确的学习方式应当是利用已有的知识来举一反三,从而达到事半功倍的效果,从而打破“学不动了”的困境。
关于面试
由于我一直比较喜欢有挑战性的工作,每当自己进入舒适区的时候,就会产生危机感,这也是我 10 月份以来,陆陆续续进行了一大波面试的直接原因。
老实讲,面试的过程并不顺利。像各种大厂,比如阿里、腾讯、京东的面试我都参加了几次,我一直认为自己的技术水平还是不错的,但在实际面试中,还是会对一些问题有所疏漏,以至于答的不能让面试官满意,以至于最终基本都挂掉了。还有一次印象比较深刻的经历就是,在内推流程中直接简历评估就被 PASS 掉了,这让我一度很是蛋疼,备受打击。但后来也明白了,面试这个事情,最忌讳的就是妄自菲薄,因为挂掉不一定意味着你的能力不行,也可能是不合适,而且,面试也不是一个可以量化的考核过程,达标并不意味着通过,面试者肯定会选择最好的那一个,况且,千里马常有,而伯乐不常有,所以也没必要太计较结果。
匠心精神
关于这一点,是我在最近接手公司的一个项目时感悟到的。关于接手的项目,只能用混乱来形容,代码毫无规范、缺乏单元测试、设计缺乏逻辑,其实对于接手这种类型的项目,抱有一定的负面情绪也是正常的,但我想说的是,一定不要让这些客观因素影响了自己的工作态度。
一开始,我是很反感接手这种遗留项目的,况且代码还如此混乱,因此对于一些需求的实现,总是抱有得过且过,应付了之心态去完成,结果当然不尽人意,bug 很多,每次发布更新时都很忙乱,因此后来觉得不能再这样下去了,就耐下心来,好好地将项目的一些关键模块的代码看了一次,并进行了重构和调整,并补充了单元测试,之后每次发布更新都很顺利,bug 也少了很多。
所以少抱怨,多做事,耐心地解决问题,这可能才是一个合格的工程师该有的工作态度吧。
要有包容之心
程序员可能是杠精最密集的职业之一,毕竟每天 true/false 见多了,说什么事情都要争个对错。比如在技术社区中,有各种版本的“驳”学,如果你自己看的话,会发现最后你也不知道他们在讨论什么了,基本是为了驳倒他人而驳。我想说的是,作为一个心智成熟的人,一定要有包容之心,理智的探讨技术问题,而非抬杠。
还有就是对待你的同事,不要因为一些显而易见的错误而抱怨或者说一些不适当的话,谁能保证不犯错误呢,有可能下一个犯错误的就是你自己。
总结
大概就这些,下面我将 2018 年内翻译和编写的具有专题性的文章做一些汇总和分类,以供参考,如果还能在一定程度上帮助到他人,那简直太荣幸了。
30 分钟系列
高级 Vue 组件模式系列
- 高级 Vue 组件模式 (1)
- 高级 Vue 组件模式 (2)
- 高级 Vue 组件模式 (3)
- 高级 Vue 组件模式 (4)
- 高级 Vue 组件模式 (5)
- 高级 Vue 组件模式 (6)
- 高级 Vue 组件模式 (7)
- 高级 Vue 组件模式 (8)
- 高级 Vue 组件模式 (9)
高级 Angular 组件模式系列
- 高级 Angular 组件模式 (1)
- 高级 Angular 组件模式 (2)
- 高级 Angular 组件模式 (3a)
- 高级 Angular 组件模式 (3b)
- 高级 Angular 组件模式 (4)
- 高级 Angular 组件模式 (5)
- 高级 Angular 组件模式 (6)
- 高级 Angular 组件模式 (7)
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。