一个40岁老程序员的2022年中总结 - 四十不惑,不忘初心
標(biāo)題:一個(gè)40歲老程序員的2022年中總結(jié):不忘初心,四十不惑
2022年對(duì)我來說是里程碑的一年,因?yàn)榫驮诮衲晡逶?#xff0c;我正式年滿四十歲,成為了一名在某些販賣焦慮的 IT 自媒體人口中的面臨 “年齡危機(jī)” 的老程序員。
一轉(zhuǎn)眼,2022 年又快過去一半了。借著參加掘金社區(qū)2022年中總結(jié)征文大賽的機(jī)會(huì),我把自己這過去的半年經(jīng)歷,簡(jiǎn)單做一個(gè)復(fù)盤。
我上半年的日常工作和技術(shù)寫作生活
我于 2007 年 7 月,在電子科技大學(xué)計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)專業(yè)碩士畢業(yè)后,加入了 SAP 成都研究院,成了一名應(yīng)用開發(fā)程序員。SAP 是一家總部位于德國(guó)的軟件公司,主要從事企業(yè)管理軟件領(lǐng)域的開發(fā)。十五年過去了,我也很光榮地拿到了 SAP 給工作超過十年以上的員工頒發(fā)的紀(jì)念獎(jiǎng)杯,如下圖所示:
我十五年的工作生涯,當(dāng)然也不止一次思考過自己的職業(yè)規(guī)劃和未來的職業(yè)發(fā)展方向。關(guān)于國(guó)內(nèi)程序員 35 歲以后的出路,網(wǎng)絡(luò)上已經(jīng)有很多討論了,不外乎以下幾條:
- 自己創(chuàng)業(yè)
- 繼續(xù)做一名程序員,成為技術(shù)專家
- 轉(zhuǎn)型成項(xiàng)目經(jīng)理、產(chǎn)品經(jīng)理、質(zhì)量工程師、架構(gòu)師等軟件開發(fā)流程中的其他角色
- 轉(zhuǎn)行,離開程序開發(fā)行業(yè)
對(duì)我來說,一件幸運(yùn)的事情是,畢業(yè)之后盡管在同一家公司已經(jīng)做了15年的軟件開發(fā),但如今的我對(duì)技術(shù)的熱情,和我第一天正式入職相比,并沒有減弱多少。所以我覺得,繼續(xù)堅(jiān)持在一線做開發(fā),努力成為技術(shù)專家,是最貼合我實(shí)際情況的職場(chǎng)之路。
到 2020 年之前,我從事的一直都是偏后端的開發(fā),使用的是 ABAP,Java 和 Node.js 這些偏后端的編程語(yǔ)言和技術(shù)棧。2020年 8 月,由于工作變動(dòng),開始接觸 Angular 和 TypeScript,工作方向也轉(zhuǎn)移到了前端開發(fā)領(lǐng)域,一直做到現(xiàn)在。我現(xiàn)在的日常工作,是開發(fā)一款代號(hào)為 Spartacus 的 SAP 電商云前臺(tái) Storefront 應(yīng)用:
我還記得剛剛從后端轉(zhuǎn)到前端時(shí),由于十幾年根深蒂固的后端開發(fā)思維,對(duì)前端開發(fā)的有些理念,尤其是對(duì) Angular 框架里重度使用的響應(yīng)式編程框架 RxJs 很不適應(yīng),也被后者陡峭的學(xué)習(xí)曲線(至少對(duì)于我來說很陡峭)折磨過。所幸我所在團(tuán)隊(duì)里有不少才華橫溢的 Angular 開發(fā)工程師,并且樂于助人,在他們的幫助下,我逐漸找到了前端開發(fā)的一些感覺。而我之前一直用 ABAP 和 Java 開發(fā)后端,對(duì)于現(xiàn)在 Angular 里的裝飾器、注解,依賴注入等概念也覺得非常親切。
2022 年年初到現(xiàn)在,使用 Angular 完成日常工作之余,我陸陸續(xù)續(xù)看完了兩本 Angular 開發(fā)的紙質(zhì)書,把 Angular 官網(wǎng)的教程和文檔都過了一遍,最近在研讀一本名叫《深入淺出 RxJs》的中文書。
盡管很多 RxJs 高手可能覺得其官網(wǎng)的文檔和 Demo 更權(quán)威更有幫助,我由于水平有限,還是更喜歡看這本國(guó)內(nèi)專家用中文寫的書,適合自己的才是最好的。
筆者一直保持著通過技術(shù)博客將自己所學(xué)的知識(shí)輸出的習(xí)慣,這些年在國(guó)內(nèi)外各大技術(shù)社區(qū)也發(fā)表了一些技術(shù)文章。
感謝掘金社區(qū)的支持,授予了我優(yōu)秀創(chuàng)作者的稱號(hào):
我知道自己輸出的前端開發(fā)的文章,從內(nèi)容深度上來說,肯定不能和掘金社區(qū)上的前端大神相比,然而我也確實(shí)沒有和人比較的念頭,輸出這些文章的初衷是記錄自己工作中遇到的疑難點(diǎn),同時(shí)希望能夠幫助一些遇到和我同樣問題的初學(xué)者們。我已經(jīng)年滿四十,早已過了愛爭(zhēng)強(qiáng)好勝和人暗自較勁的年齡了,只要自己每天和前一天相比,都有點(diǎn)滴進(jìn)步,我也就滿足了。
我今年也積極參加了掘金社區(qū)一些活動(dòng),下面是我獲得的一些紀(jì)念品。
年滿 40 歲之后對(duì)技術(shù)學(xué)習(xí)方式的一些思考
今年上半年我也在不斷思考,覺得自己將來技術(shù)學(xué)習(xí)的方式需要持續(xù)做出一些轉(zhuǎn)變方法,記錄如下。
不再只拘泥于具體的源代碼細(xì)節(jié)
在我從25歲碩士畢業(yè)參加工作到35歲這期間,我覺得是一個(gè)程序員潛心鉆研技術(shù)的黃金十年:精力充沛,業(yè)余時(shí)間多,學(xué)習(xí)能力強(qiáng)。在我過去的十年里,我覺得我對(duì)待技術(shù)的態(tài)度上有點(diǎn)像強(qiáng)迫癥患者,對(duì)于一個(gè)技術(shù)點(diǎn),除了了解它的設(shè)計(jì)原理和架構(gòu)之外,我還喜歡從源代碼的層級(jí)去研究。我畢業(yè)后加入 SAP 從事的頭幾個(gè)產(chǎn)品開發(fā),都是基于 ABAP 技術(shù)棧的,產(chǎn)品的每一行源代碼對(duì)于開發(fā)者來說都可見。這極大地滿足了我對(duì)這些產(chǎn)品實(shí)現(xiàn)源碼的好奇心,讓我一頭扎進(jìn)了代碼的汪洋大海,也養(yǎng)成了我遇到問題就喜歡從源代碼層級(jí)分析的習(xí)慣。
隨著我工作內(nèi)容的變化,從相對(duì)比較封閉的 ABAP 技術(shù)棧,切換到了更加開放,甚至擁抱開源的技術(shù)領(lǐng)域,比如云原生開發(fā),CloudFoundry,Docker,Kubernetes,Node.js,Angular 等技術(shù)上來,我逐漸發(fā)現(xiàn)自己過去那種基于源代碼級(jí)別的學(xué)習(xí)方式已經(jīng)不再是一種有效或者說現(xiàn)實(shí)的方法了,原因有二:
程序員年滿35歲,成家立業(yè),結(jié)婚生子之后,客觀上不太可能再有像以前單身時(shí)那樣,有大塊大塊的空閑時(shí)間能靜下心來研讀源碼。人到中年,上有老,下有小,程序員的業(yè)余時(shí)間太容易被生活中其他事情所占據(jù)了。
當(dāng)今的開源產(chǎn)品或者說工具庫(kù),其實(shí)現(xiàn)復(fù)雜度和代碼量,已經(jīng)遠(yuǎn)遠(yuǎn)超過了某一個(gè)程序員能夠掌握的范疇了。即便是某個(gè)開源項(xiàng)目的貢獻(xiàn)者本身,他/她們熟悉的也只是自己共享的那一個(gè)模塊的部分代碼。
以 Kubernetes 的使用為例,遇到錯(cuò)誤消息時(shí),按照我過去的做法,我會(huì)嘗試根據(jù)錯(cuò)誤消息的文本,去搜索 Kubernetes Github 上的源代碼,找到哪些源代碼里有可能會(huì)拋出這個(gè)錯(cuò)誤消息。現(xiàn)在我覺得更有效的方法,當(dāng)然是 Google 或者 StackOverflow 上搜索線索,因?yàn)檫@么流行的技術(shù)平臺(tái),我們遇到的問題,大概率早就有其他同行遇到過了,網(wǎng)友們的分析和解決方案,對(duì)我們的問題排查來說有極大的借鑒意義。
同樣,在學(xué)習(xí)一個(gè)新技術(shù) & 框架時(shí),放在過去,我會(huì)先把它的 quick start / demo / tutorial 找到,盡快在自己本地搭一個(gè)環(huán)境,弄一個(gè)可以運(yùn)行的例子出來,然后再?gòu)脑创a層面開始學(xué)習(xí)。現(xiàn)在的我會(huì)老老實(shí)實(shí)從這些新技術(shù)的官網(wǎng)的 Overview 頁(yè)面開始讀起,了解這個(gè)新技術(shù)誕生的緣由,解決了什么業(yè)務(wù)痛點(diǎn),主要的組成模塊,設(shè)計(jì)架構(gòu)等等。我覺得一個(gè)40歲的程序員,和30歲的程序員,20歲的程序員,對(duì)同一項(xiàng)技術(shù)的關(guān)注點(diǎn)理應(yīng)有所不同。20歲的程序員,關(guān)注的更多的是技術(shù)的具體實(shí)現(xiàn)細(xì)節(jié)和使用方式。40歲的程序員,更多應(yīng)該關(guān)注的技術(shù)背后的一些深層次東西,比如這些技術(shù),如何才能更好地融入到自己公司所負(fù)責(zé)的業(yè)務(wù)和產(chǎn)品中去,如何才能給客戶帶來更多的價(jià)值?
更現(xiàn)實(shí)一點(diǎn)的問題就是,我現(xiàn)在40歲,在這家公司工作了15年,我和公司現(xiàn)在剛?cè)肼毜?5歲年輕程序員相比,我作為一個(gè)老程序員,我的價(jià)值和核心競(jìng)爭(zhēng)力到底體現(xiàn)在哪些地方?這個(gè)問題也是我工作過程中一直在思考的問題。
學(xué)會(huì)取舍,學(xué)會(huì)做減法
在我剛剛成為一名年輕的程序員時(shí),我曾經(jīng)誤以為,一個(gè)程序員會(huì)使用的編程語(yǔ)言、編程工具越多,運(yùn)用的技術(shù)越流行,掌握的技術(shù)棧越熟練,這個(gè)程序員就越優(yōu)秀。在這種想法的驅(qū)動(dòng)下,我盡可能多地去嘗試新的編程技術(shù)和工具,不管這些東西在自己工作中是否能應(yīng)用得上。每天泡各種技術(shù)論壇,一看到介紹新鮮技術(shù)和工具的帖子,馬上在自己本機(jī)上嘗試。堅(jiān)持了一段時(shí)間之后我發(fā)覺,即便這樣做,也沒有成為自己心目中“優(yōu)秀的程序員”的樣子。反而因?yàn)楹芏嘈录夹g(shù)只是淺嘗輒止,在工作中沒有運(yùn)用上,成了屠龍之技,所以一段時(shí)間過后就遺忘得差不多了。
因?yàn)楣P者工作的 SAP 業(yè)務(wù)是開發(fā)企業(yè)管理軟件,所以在工作一段時(shí)間深受這家德國(guó)企業(yè)的文化熏陶之后,我也慢慢領(lǐng)悟到,即便一項(xiàng)技術(shù)再先進(jìn)和流行,如果它不能幫助公司的客戶解決其業(yè)務(wù)上的痛點(diǎn),無法給客戶帶來實(shí)際的價(jià)值,無法幫助自己在職場(chǎng)進(jìn)階之路上走得更順暢,那么我在下決定業(yè)余時(shí)間去學(xué)習(xí)它之前,就應(yīng)該慎之又慎,因?yàn)榇簖g程序員的業(yè)余時(shí)間實(shí)在太寶貴了。
因此我這一章節(jié)副標(biāo)題的學(xué)會(huì)取舍和做減法,就是想提醒自己,在新的開發(fā)技術(shù)和開發(fā)理念不斷涌現(xiàn)的大環(huán)境下,大齡程序員對(duì)于分配自己業(yè)余時(shí)間用于技術(shù)充電這一點(diǎn)上,一定要慎之又慎。好鋼用在刀刃上,優(yōu)先投資那些能給自己的職業(yè)發(fā)展和公司業(yè)務(wù)帶來助力的技術(shù)上。
以上自言自語(yǔ)了這么長(zhǎng)的篇幅,感謝大家耐心看完一個(gè)40歲中年男人的碎碎念。筆者希望自己能夠不忘22年前高考填志愿選擇計(jì)算機(jī)專業(yè)時(shí)的初心,希望自己能夠在邁入四十歲大關(guān)之后,能真正做到四十不惑。筆者也祝愿各位程序員同行,在 2022年下半年里能夠工作順利,技術(shù)上更上一層樓,感謝閱讀。
總結(jié)
以上是生活随笔為你收集整理的一个40岁老程序员的2022年中总结 - 四十不惑,不忘初心的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 群控系统linux脚本,万能安卓群控脚本
- 下一篇: LQR控制算法的浅析