又一年春去冬来,到了年末盘点的时候,感觉自己今年相较于前两年沉稳了些,也愈能明晰自身的不足;所以本年的主题就定为了不忘初心,夯实基础。今年年初的时候领证结婚,未立业而先成家;从南大毕业,结束了学生生涯;从零到一组建技术团队,看着新公司逐步发展壮大;加入某厂,结束三年的创业生涯,突破现有的瓶颈。三年创业,终未成猪,也是有哭有笑;虽然算不得什么慷慨激昂大事,却也有一种渡尽劫波兄弟在,相逢一笑泯恩仇的感叹。
首先来聊聊初心吧,像我这样小富即安,胸无大志的,可能也谈不上有什么初心;但是随着眼界与格局的提升,会忧虑于此生一事无成,亦担心自己浅薄而不甘平庸,反而成了痛苦的原罪。当我什么都不会的时候,心有惴惴,容易妄自菲薄;这三年的磨砺下来,只希望自己的心境圆融些,能够不卑不亢,知道自己能做什么,知道自己要做什么。很多的领域也是多奇技淫巧,像笔者这样愚钝的唯有脚踏实地,步步向前;中道而行,心无旁骛。前五年都在中小型团队,更多的承担的是团队协调的职责;在不同的业务场景、团队搭配背景下,我也慢慢地养成了自己对于团队成员的期望。而当今年自己作为校招新人进入新的团队,从零做起时,愈发体会到提升团队效能的重要意义。
从大四出来开始创业至今也有四五年的时间,笔者自觉自己的技术学习历经了三个阶段;首先是只会写基础语法,使用内建接口的阶段,而后是喜欢追逐名词,不求甚解的阶段,现在是发现自己连基础语法都不会的阶段。技术一直有所谓的术道之辨,有的开发者选择了广度,有的选择了深度,但是无论如何都需要从点到面;类比知识的金字塔,唯有地基广而实,才能保证塔尖高而稳。现在又是知识爆炸的时代,借鉴未来简史中所谓自由主义的挽歌,如果我们踟蹰不前,肯定是要被抛弃的;另一方面,现在又是繁忙的时代,极少有时间能够系统化地学习,更多的还是要碎片化学习。所谓集腋成裘,聚沙成塔,但是没有能沉淀为体系,终究也是水上浮萍,经不住时间的打磨。笔者下车伊始即致力于打造完备的 知识图谱 ,让知识在它该在的地方,这也是笔者遨游无尽海洋的一叶方舟。越来越多的技术、工具、框架之间存在交集,特别是在微服务、分布式系统、容器编排等方面,而知识图谱不断重构地过程,在笔者看来,也是不断穿过表象看本质的淬炼。
不拘于具体的技术方向或者领域,笔者认为最为珍贵的能力之一即为解决问题的能力;从技术的角度来看,就是编码能力与工程组织(等)。很多时候我会感慨于编程的时候会有阻塞感,因为需要频繁地在各个语言之间切换,很多语法特性却是无法信手拈来;另一方面,随着各种技术方案推陈出新,我们不应该追逐新颖,但是要能够为问题寻找合适的解决方案,打造面向团队的,能够提升团队整体研发效能的工程体系。年末的时候,笔者将两千多篇笔记规整到七个仓库二十余个不同的系列中,这些笔记即是以不同的组织形式,承载不同的内容,来提升、保障笔者的编码能力与工程组织意识,确保任何时候都保持自己对于知识的掌握。笔者不可避免地会陷入到不专一、容易三心二意的困局,但是任何愿意抬头看路的程序员都会关心整个产品,他山之石,可以攻玉;也不希望现在做的事情,限制了自己的发展。
笔者为不同的系列取了不同的名字,各有寓意,也自然是有很多名不副实,不过也是表达了笔者的一种希冀。首先是 Knowledge Map - IT 知识图谱与技术路线 ,指明了技术之路上漫游的方向;文末附图即是最新的知识图谱,而泛前端、web、微服务等等细节则可以前往 原文 查看。其次是 Awesome Reference 与 Awesome CheatSheet ,分别从不同的维度解决我知识编排的问题。 Awesome Reference 记录了笔者在日常阅读、学习与实践中发掘的优秀的资料,其按照知识图谱中定义的各个领域的知识体系分门别类地存放。笔者会不断更新其中链接,去芜存菁,去重留一,希望为同仁提供优秀的、有价值的、尽可能精简的资料索引。笔者还将自己阅读,收集的,优秀的电子书集锦到了 Awesome-CS-Books-Warehouse ,阅读书籍永远是最为系统的学习方式,能够帮助我们缓解过于碎片化带来的技能不连贯性与片面性;本仓库以 IT CS 相关书籍为主,同时也会包含一些著名的、有价值的公开课程。 Awesome CheatSheet 则是致力于解决知识易忘与速学概览的需求,其目标为语法速览, 实践备忘,从零到一,上手即用; Awesome CheatSheet 会是我 2018 年里的重点项目,也是保证我编程能力的重要依仗。对于笔者往年技术之路的记述,归档在了 Tech Road - 某熊的技术之路 。
其次是编程语言相关,主要归档在了 Domain of ProgrammingLanguage - 编程语言语法基础与工程实践 ,存放了笔者在编程语言方面学习与实践总结而来的笔记;笔者目前首选的语言为 JavaScript / Java / Python / Rust,因此笔记也就为 现代 JavaScript 开发:语法基础与工程实践 , 现代 Java 开发基础 , Java 工程实践与设计模式 , 深入浅出 Java 并发编程 , JVM 内部原理与性能调优 , 现代 Python 开发:语法基础与工程实践 , Rust in Action , 编程语言理论指南 等几个方面。编程语言是软件开发的基石,而软件开发就是把一个复杂的问题分解为一系列简单的问题,再把一系列简单的解决方案组合成一个复杂的解决方案。笔者在 SoftwareEngineering Essentials - 软件工程基础 中归档了 数据结构与算法基础 , 团队协同开发与软件质量保障必知必会 , 设计模式与软件架构之禅 等内容。
笔者今年投注精力较多的 Web 领域,最令我惊讶的就是 前端每周清单系列 ;万事开头难,坚持不懈则是难上加难,我并非意志坚定的人,但是一年来前端每周阅读清单能持续更新,我也是蛮佩服自己的,经常会半夜加班赶稿;很多时候无暇发文,都是内容整理好了之后交与我夫人帮忙发布,所以来年大大们轻喷呀~ 而在系列文章方面,笔者整理了 现代 Web 开发基础 、 现代 Web 开发工程化实践 、 现代 Web 应用架构与性能调优 、 React 开发与前端工程化实战 、 Vue 开发与前端工程化实战 等数个系列,归档在了 Web-Development-And-Engineering-Practices 之中。而对于更广阔的大前端领域,笔者在 Frontend Technology Handbook - 大前端开发相关 中整理了 iOS 开发基础与工程实践 , Android 开发基础与工程实践 , 混合式开发基础与工程实践 , 深入浅出数据可视化 等内容。
而在泛后端领域,笔者总结在了 服务端应用程序开发与系统架构 、 深入浅出分布式基础架构 这两个仓库中,分别包含了 服务端应用程序开发基础 , 深入浅出 Node.js 全栈架构 , Spring Boot 5 与 Spring Cloud 微服务实践 , DevOps 与 SRE 实战 , 信息安全与渗透测试必知必会 ;以及 Linux 配置使用、内部原理与 Shell 编程 , MySQL 内部原理与性能优化 , 分布式存储与 NoSQL 数据库基础 , 分布式容器架构与编排 , 云计算系统与大数据应用 等内容。最后就是在数据科学、机器学习、深度学习等领域,笔者归档在了 程序猿的数据科学与机器学习实战手册 , 包括了 Python 机器学习基础 , 深度学习课程笔记 , 深度学习与自然语言处理实践 等内容。
不同人的学习方式不一样,不过对于瓶颈期的人而言,保证自己每天能阅读 / 浏览 30 ~ 50 篇资讯 / 文章,也是比较可行且容易量化的成长方式。而撰写技术文章,不仅是对自己的积淀,帮助自己更深入地理解;也是希望能够以自己的绵薄之力跟大家一起成长,不仅能用于公司内同事的共同学习,也想着能有更多的后进英才,使整个行业蓬勃发展。笔者将今年常看的一些站点列举如下:
此外,笔者今年还尝试分享自己工作生活中编写的小工具,或者模式化的解决方案。 fractal-components 存放了笔者以 Pure CSS / Vanilla JS / React / vue / RN / D3 不同的形式 / 框架积攒的组件 , webpack-app-template 、 iReactPack 、 iVuePack 、 webpack-app-template 则是前端项目组织方式的沉淀。 Modern-JavaScript-SwissGear 中则集锦了 observer-x 变量响应式监控、 decorator-x 现代实体类注解与 Swagger API 文档生成、 declarative-validator 校验、 x-fetch 网络请求等模块。
2018 年在保证自己每天开心地做好本职工作之余,希望完成思虑(拖延)多年的 Java 并发编程与 JVM 实战系列、熟悉并且实践 Rust、真正地能将机器学习与深度学习用起来。虽然 Rust 尚未投入到生产环境中,但是笔者认为其是非常不错且合适的 JavaScript 技术栈的互补;其编译为 WebAssembly 的能力以及作为 Node.js 原生插件,都能够弥补 JavaScript 在性能上的不足。对于 Rust 的学习与使用也并非朝夕之事,还是需要较长时间的了解与实践才能用好。今年前端框架之战逐渐平静,期待明年的编译元年,为前端带来更多的可能。
今年的很多时间还要来筹备婚礼,12.30 携妻手踏入婚姻的殿堂,工作繁忙之后很多的文案整理与发布也都是她帮我处理的,每天回家之后才能进行些内容写作,或者维护些项目代码。感谢尾尾,感谢川哥,谢谢一年来很多前辈同仁的提携与指导,支持与鼓励;谢谢每一位阅读我的文章,批评、指正、认可我的人,谢谢你们给予我前进的动力。山高水远,来年再见~
(各领域更多内容查看 Knowledge Map - IT 知识图谱与技术路线 )
来源: https://segmentfault.com/a/1190000012613837