题目:一个 40 岁老程序员的 2022 年中总结:不忘初心,四十不惑
2022 年对我来说是里程碑的一年,因为就在往年五月,我正式年满四十岁,成为了一名在某些贩卖焦虑的 IT 自媒体人口中的面临 “ 年龄危机 ” 的老程序员。
一转眼,2022 年又快过来一半了。借着加入掘金社区 2022 年中总结征文大赛
的机会,我把本人这过来的半年经验,简略做一个复盘。
我上半年的日常工作和技术写作生存
我于 2007 年 7 月,在电子科技大学计算机系统构造业余硕士毕业后,退出了 SAP 成都研究院,成了一名利用开发程序员。SAP 是一家总部位于德国的软件公司,次要从事企业管理软件畛域的开发。十五年过来了,我也很光彩地拿到了 SAP 给工作超过十年以上的员工颁发的留念奖杯,如下图所示:
我十五年的工作生涯,当然也不止一次思考过本人的职业规划和将来的职业倒退方向。对于 国内
程序员 35 岁当前的前途,网络上曾经有很多探讨了,不外乎以下几条:
- 本人守业
- 持续做一名程序员,成为技术专家
- 转型成项目经理、产品经理、品质工程师、架构师等软件开发流程中的其余角色
- 转行,来到程序开发行业
对我来说,一件侥幸的事件是,毕业之后只管在同一家公司曾经做了 15 年的软件开发,但现在的我对技术的激情,和我第一天正式入职相比,并没有削弱多少。所以我感觉,持续保持在一线做开发,致力成为技术专家,是最贴合我理论状况的职场之路。
到 2020 年之前,我从事的始终都是偏后端的开发,应用的是 ABAP,Java 和 Node.js 这些偏后端的编程语言和技术栈。2020 年 8 月,因为工作变动,开始接触 Angular 和 TypeScript,工作方向也转移到了前端开发畛域,始终做到当初。我当初的日常工作,是开发一款代号为 Spartacus 的 SAP 电商云前台 Storefront 利用:
我还记得刚刚从后端转到前端时,因为十几年积重难返的后端开发思维,对前端开发的有些理念,尤其是对 Angular 框架里重度应用的响应式编程框架 RxJs 很不适应,也被后者平缓的学习曲线 (至多对于我来说很平缓) 折磨过。所幸我所在团队里有不少才华横溢的 Angular 开发工程师,并且乐于助人,在他们的帮忙下,我逐步找到了前端开发的一些感觉。而我之前始终用 ABAP 和 Java 开发后端,对于当初 Angular 里的装璜器、注解,依赖注入等概念也感觉十分亲切。
2022 年年初到当初,应用 Angular 实现日常工作之余,我陆陆续续看完了两本 Angular 开发的纸质书,把 Angular 官网的教程和文档都过了一遍,最近在研读一本名叫《深入浅出 RxJs》的中文书。
只管很多 RxJs 高手可能感觉其官网的文档和 Demo 更权威更有帮忙,我因为程度无限,还是更喜爱看这本国内专家用中文写的书,适宜本人的才是最好的。
笔者始终放弃着通过技术博客将本人所学的常识输入的习惯,这些年在国内外各大技术社区也发表了一些技术文章。
感激掘金社区的反对,授予了我 优良创作者
的名称:
我晓得本人输入的前端开发的文章,从内容深度上来说,必定不能和掘金社区上的前端大神相比,然而我也的确没有和人比拟的念头,输入这些文章的初衷是记录本人工作中遇到的疑难点,同时心愿可能帮忙一些遇到和我同样问题的初学者们。我曾经年满四十,早已过了爱争强好胜和人暗自较劲的年龄了,只有本人每天和前一天相比,都有点滴提高,我也就满足了。
我往年也踊跃加入了掘金社区一些流动,上面是我取得的一些纪念品。
年满 40 岁之后对技术学习形式的一些思考
往年上半年我也在一直思考,感觉本人未来技术学习的形式须要继续做出一些转变办法,记录如下。
不再只拘泥于具体的源代码细节
在我从 25 岁硕士毕业加入工作到 35 岁这期间,我感觉是一个程序员潜心钻研技术的黄金十年:精力充沛,业余时间多,学习能力强。在我过来的十年里,我感觉我看待技术的态度上有点像强迫症患者,对于一个技术点,除了理解它的设计原理和架构之外,我还喜爱从源代码的层级去钻研。我毕业后退出 SAP 从事的头几个产品开发,都是基于 ABAP 技术栈的,产品的每一行源代码对于开发者来说都可见。这极大地满足了我对这些产品实现源码的好奇心,让我一头扎进了代码的汪洋大海,也养成了我遇到问题就喜爱从源代码层级剖析的习惯。
随着我工作内容的变动,从绝对比拟关闭的 ABAP 技术栈,切换到了更加凋谢,甚至拥抱开源的技术畛域,比方云原生开发,CloudFoundry,Docker,Kubernetes,Node.js,Angular 等技术上来,我逐步发现自己过来那种基于源代码级别的学习形式曾经不再是一种无效或者说事实的办法了,起因有二:
- 程序员年满 35 岁,成家立业,结婚生子之后,主观上不太可能再有像以前独身时那样,有大块大块的闲暇工夫能静下心来研读源码。人到中年,上有老,下有小,程序员的业余时间太容易被生存中其余事件所占据了。
- 当今的开源产品或者说工具库,其实现复杂度和代码量,曾经远远超过了某一个程序员可能把握的领域了。即使是某个开源我的项目的贡献者自身,他 / 她们相熟的也只是本人共享的那一个模块的局部代码。
以 Kubernetes 的应用为例,遇到谬误音讯时,依照我过来的做法,我会尝试依据谬误音讯的文本,去搜寻 Kubernetes Github 上的源代码,找到哪些源代码里有可能会抛出这个谬误音讯。当初我感觉更无效的办法,当然是 Google 或者 StackOverflow 上搜寻线索,因为这么风行的技术平台,咱们遇到的问题,大概率早就有其余同行遇到过了,网友们的剖析和解决方案,对咱们的问题排查来说有极大的借鉴意义。
同样,在学习一个新技术 & 框架时,放在过来,我会先把它的 quick start / demo / tutorial 找到,尽快在本人本地搭一个环境,弄一个能够运行的例子进去,而后再从源代码层面开始学习。当初的我会老老实实从这些新技术的官网的 Overview 页面开始读起,理解这个新技术诞生的原因,解决了什么业务痛点,次要的组成模块,设计架构等等。我感觉一个 40 岁的程序员,和 30 岁的程序员,20 岁的程序员,对同一项技术的关注点理当有所不同。20 岁的程序员,关注的更多的是技术的具体实现细节和应用形式。40 岁的程序员,更多应该关注的技术背地的一些深层次货色,比方这些技术,如何能力更好地融入到本人公司所负责的业务和产品中去,如何能力给客户带来更多的价值?
更事实一点的问题就是,我当初 40 岁,在这家公司工作了 15 年,我和公司当初刚入职的 25 岁年老程序员相比,我作为一个老程序员,我的价值和外围竞争力到底体现在哪些地方?这个问题也是我工作过程中始终在思考的问题。
学会取舍,学会做减法
在我刚刚成为一名年老的程序员时,我已经误以为,一个程序员会应用的编程语言、编程工具越多,使用的技术越风行,把握的技术栈越纯熟,这个程序员就越优良。在这种想法的驱动下,我尽可能多地去尝试新的编程技术和工具,不论这些货色在本人工作中是否能利用得上。每天泡各种技术论坛,一看到介绍陈腐技术和工具的帖子,马上在本人本机上尝试。保持了一段时间之后我察觉,即使这样做,也没有成为本人心目中“优良的程序员”的样子。反而因为很多新技术只是浅尝辄止,在工作中没有使用上,成了屠龙之技,所以一段时间过后就忘记得差不多了。
因为笔者工作的 SAP 业务是开发企业管理软件,所以在工作一段时间深受这家德国企业的文化陶冶之后,我也缓缓领悟到,即使一项技术再先进和风行,如果它不能帮忙公司的客户解决其业务上的痛点,无奈给客户带来理论的价值,无奈帮忙本人退职场进阶之路上走得更顺畅,那么我在下决定业余时间去学习它之前,就应该慎之又慎,因为大龄程序员的业余时间切实太贵重了。
因而我这一章节副标题的学会取舍和做减法,就是想揭示本人,在新的开发技术和开发理念不断涌现的大环境下,大龄程序员对于调配本人业余时间用于技术充电这一点上,肯定要慎之又慎。好钢用在刀刃上,优先投资那些能给本人的职业倒退和公司业务带来助力的技术上。
以上喃喃自语了这么长的篇幅,感激大家急躁看完一个 40 岁中年男人的碎碎念。笔者心愿本人可能不忘 22 年前高考填志愿抉择计算机专业时的初心,心愿本人可能在迈入四十岁大关之后,能真正做到四十不惑。笔者也祝福各位程序员同行,在 2022 年下半年里可能工作顺利,技术上更上一层楼,感激浏览。