转眼间, 2018 年马上就要过去,以前从来没有总结自己过去一年的习惯,那就从今年开始吧。我对自己 2018 年的总体表现是:不太满意。在技术上虽然有了比较明确的方向和目标,但是大部分都没能达到理想的结果。原因就只有一个字:懒!但不管怎样,人总是会随着时间的推移不断成长的,所以经常对自己的过去进行反思和总结也是有必要的。只有更加认清自己,才能走得更快走得更远。所以我主要想好好总结一下自己这一年的成长和不足。主要分为两方面:技术和其他软技能。
技术成长
我对自己 2018 年的期望是:在 Node.js、后端、架构能力上有较大的提升。首先聊聊 Node.js
,毕竟这是我吃饭的技术。感觉自己今年在 Node.js
上没有多大的进步,除了工作中使用到的技术比较熟悉外,其他方面没有深入去学习,工作中使用的技术也比较有局限性。对 Node.js
底层的东西没有入去学习,比如 事件循环、Emitter、Stream、V8 等,虽然在工作中能熟练运用,但对原理却说不出个所以然。其次是后端能力,这一年 主要提高的是数据库方面的能力,对 SQL 性能优化、 MySQL、 DB2 有了更深入的理解,在 SQL 性能调优方面积累了一些经验,但是还有很多需要学习,当前对我来说最重要的就是服务器性能监控和调优以及前后端交互优化方面的技术。最后是架构能力,算是小有收获吧。至少对一些架构概念有了初步的了解,比如 高可用、高性能、双机架构、架构相关方法论 等。还是罗列一下我在 2018 年在工作之余都做了什么吧。代码相关的大部分都放在 GitHub 了,这一年主要写了这些:
![github-contribute-2018]({{ site.url }}/images/goodbye-2018/github-contribute-2018.jpg)
- 用
Node.js
写了一个少儿不宜的爬虫 :joy: ,项目地址:blackmatch/pornhub-downloader,这个竟然还是 star 最多的。。。真是无心插柳柳成荫,该项目更新到第二个版本已经停止维护的,毕竟我的初心是练习 Node.js 相关技术,确实也是这个项目学到的东西最多,比如 HTTP 代理、 Range 请求等。 - 写了一个生成我国最新省市县行政区域的工具,项目地址:blackmatch/mockz,踩了一些高并发请求的坑。
- 翻译了两篇Node.js 最佳实践 的文章,项目地址:i0natan/nodebestpractices,这是一个很好的项目,里面有很多
Node.js
最佳实践的文章。 - 其他还有一些杂七杂八不值一提的东西,比如使用 docker 搭建 gitlab、 gogs 等教程。
当然,这些都是一些很微不足道的东西,但是总比什么都不做好。至少慢慢养成了动手实践,坚持写作的习惯。虽然写的东西都是很轻量的,但是其中也会遇到一些棘手的问题,如果能寻根问题,也能学到很多。其实我写的这些项目中还有一些没有解决、没有弄懂的问题,所以,把每一件小事做到极致也能有所收获。
其他软技能
程序员除了在技术上要有一技之长,软实力也不可小觑。比如:沟通能力、协调能力、学习方法、眼界等。在这一年,自己的学习方法和看问题的深度有了一定的提高。学习方法都是因人而异的,有人喜欢直接刚源码,有人喜欢看视频,有人喜欢看书看文档看别人的代码等,找到适合自己的方法就是最好的方法,最关键的一点是:要行动起来。我比较喜欢的学习方法是:先过一遍官方文档,然后看看视频,然后做一些小的功能或者项目,逐渐深入。程序员在项目中遇到问题时,思考的方向容易受到束缚,很容易就往技术方向去思考,比如针对新需求或者需求变更时,往往会先从技术实现上先想一遍,然后才会关注需求的合理性和相关细节,这样会一定程度上带入自己的主观意识,甚至和产品干起来。所以,思考问题时,要学会多换位思考,不要被技术束缚了,不要忘了:技术是用来满足需求的。
展望未来
程序员几乎无一例外的都需要面临一个问题:技术的日新月异。唯一的解决方法就是:不断学习,不断成长。在即将到来的 2019 年,我不会给自己立什么 flag,只希望自己 不要太懒,朝着目标和方向默默努力就行了,行动才是成败的关键。共勉。