1. 程式人生 > >告別2019,寫給2020:幹好技術,要把握好時光裡的每一步

告別2019,寫給2020:幹好技術,要把握好時光裡的每一步

不知不覺,一晃年關將近,即將翻開2019,進入新的一頁。

這周已經在朋友圈看到了來自公眾號《恰同學少年》《Edi.Wang》和《吃草的羅漢》幾位老師寫下的年終總結,他們的年終總結讓我感想頗多,對自己的2019年也感想頗深,對2020年也充滿期待,是時候對過去一年的一些感悟做一個簡單的總結了。

關於“雲程式設計師”

在2018年的年終總結中,與其說是一個總結,不如說是寫了一堆漂亮話,其實真正落地的flag太少,而且總結不夠徹底,沒有起到總結經驗,反思教訓的意義。

總體上來說,我應該做個對技術充滿熱情和追求的開發者,而在去年的年終總結大概也只表達了一個意思,不要做雲程式設計師,不要做雲程式設計師,不要做雲程式設計師。

而2019年,我的目標就是迴歸本質,不做雲程式設計師,從現在來看,至少從思維模式上,已經發生了很大的變化,至少“我覺得xxx技術也不過如此”“我以為xxx技術不過是xxx”這樣的主觀評判的口氣已經不會在說了。

之所以成為“雲程式設計師”,大概是來源於過去若干年有意無意的習慣使然。

有時候得承認,越是中小公司,越容易培養所謂通才,因為公司的發展尚處於摸石頭過河的階段,往往需要在紛繁複雜的混沌亂局中尋找一切可以生存的機會,這也意味著中小企業對開發者的要求幾乎都是招之能來,來之能戰,戰之能勝的通才。中小企業也並沒有太多職業生涯規劃或培訓指導的工作安排,所以工程師的成長往往需要靠自己的方式。

大部分所謂成長,其實是在憋工齡,在一個又一個圈子中繞來繞去。你會用到許多東西,實際上你無法學到真正屬於自己的技能。有時候會貪圖掌握更多知識,尤其是新技術,於是就開始走在了雲程式設計師的路上。似乎許多中小企業出來的開發者更喜歡自稱為全棧工程師,並自稱自己什麼都會,有的甚至會因此而對那些真正從事技術領域的專業開發者帶有偏見,以為他們是死腦筋,其實往往是井底之蛙的個人之見。

專業公司的培養形式是以提高效率為目標的工業化培養形式,對專才的要求也越來越高。IT是一個複雜程度絲毫不亞於其他產業的系統工程,它涉及的領域和技術非常多,幾乎每一個方面都值得人花一輩子去認真探究。事實上只有優秀的公司才有可能培養出專才,而且才有這樣的土壤,能夠讓一些開發者能夠把時間花在某些專業領域持續學習和研究,然後讓知識產生價值。

規模越大、越優秀的公司越容易對開發者產生吸引力,除了其待遇問題外,往往是因為這些公司專業化程度更高,也意味著你更容易快速成長,因為專注於一個領域顯然比無法專注於一個領域更能帶來更快的成長。從軟體研發崗位來說,當你在某些技術方向上的深度上到一定程度,再來擴充廣度時,也更容易吸收到有用的東西。當然,現在網際網路公司也逐漸開始往通才發展,因為掌握全域性思維的開發者更容易做出產品,但是網際網路公司和中小企業的通才區別依然比較大。網際網路公司需要的是具備網際網路思維,能夠把自己一塊小天地處理完美,還能兼顧其他人工作的可複用型T字型人才,而小企業要的大概是一字型人才。

尤其對於長沙這座小城市而言,更難以發現專注於某些領域的開發者,或許與企業規模和職業定位有一定的關係,其實哪怕優秀如BAT或華為,也或許無法找到太多某些領域的專業開發者,除了公司的客觀因素,與開發者們的主觀選擇也有關係。當然,不管在大公司或小公司,這不能妨礙我們成為專業開發者,只是意味著如果我們要成為某些領域的大牛,得花更多的時間和精力來經營自己的領域。

當然,專業/不專業,雲程式設計師/非雲程式設計師或許本身不重要,畢竟對於大部分開發者來說,選擇IT知識混口飯吃。而對於有追求的開發者來說,更應該長期的職業發展全域性均衡,而不要僅僅關注眼前的利益。尤其在目前這個時代,你的每一段職場,其實不僅僅在為金錢工作,而是為你的簡歷工作。如何從你的職場中積累對未來發展有價值的東西,才是核心關鍵的因素。不論你在哪家公司,總會有許多讓你收穫頗多的東西。常懷感恩之心,用心去發現價值,總能讓你成為正能量的傳播者。這樣的你,既是公司最寶貴的財富,也同時會讓你成為人群中的閃光點。

關於軟體研發技能

如前文所說,軟體領域是一個非常複雜的系統工程,每一個專業領域都值得人花一輩子去努力鑽研,但是對於大部分開發者來說其實無需如此,往往只需花幾年時間,就能快速吸取到IT軟體發展的精髓,併成長為公司的核心人員。

當你成長起來之後,或許會以為框架就是技術的王道;也會以為軟體就是工具+框架的結合,而忽略了更具有普遍意義的基礎技能和演算法能力;在抽象化思維上,在過程式思維這條路上越走越遠,也極大的侷限了開發者的成長;你會以為只有底層程式碼才是程式碼,業務程式碼或增刪改查就不是程式碼;你會以為寫文件、寫PPT的人都是吹牛逼的。這些都是開發者的怪毛病

軟體研發技能確實是一個值得仔細探究的核心領域,哪怕簡單到一句需求的描述,也需要用系統性思維來思考這個問題。

回顧過去,我總是在想,我真的懂得做專案麼,真的懂得如何做好一個軟體麼?我做的專案是否還有進一步可以提高的空間?如何優雅的收集客戶需求,如何優雅的打造完美的產品?如何優雅的做好一個專案?如何讓每一個專案都成為標杆專案?如何從失敗中吸取經驗教訓。好吧,我有點囉嗦。

做一個軟體真的並非想象中那麼簡單,需要將行業思維與IT思維更加完美的融合,既要從更高的戰略層面思考問題,又要從程式碼的微觀層面思考問題,有思考有設計、有碰撞有火花,這恰好是軟體工程最大的魅力所在。

關於讀書

2019年看了大概20-30本書,並寫了超過15篇書評。包括以下書籍,我認為這些書籍給我帶來的無窮收穫,遠超這些書本身的貨幣價值。

《領域驅動設計-軟體系統核心複雜性應對之道》:這本書來自埃文斯-埃裡克的書,是一本經典的領域驅動設計的書,在2018年8月我開始認真閱讀其中的每個文字,並讓我對領域驅動有了更深層次的理解;今年我還通過GitChat購買了張逸老師的領域驅動設計的課程,張逸老師不愧為領域驅動設計方面的專家,他用自己的經驗解釋了領域驅動設計,讓我對這本書、以及相關知識都有了系統而全面的瞭解,同時還通過這一個課程瞭解了更多的知識領域,對健全我的知識體系產生了巨大的作用。

《中臺》:來自阿里巴巴鍾春老師的中臺,這本書介紹了阿里巴巴中臺建設的歷程,這本書造出了一個獨特的中國概念,也重新整理了我的知識觀,雖然短期來看我所經歷的企業都沒有中臺的打算,但能夠讓我具備全域性性思維來思考IT體系建設的問題。

《小團隊、大架構》:來自張清輝老師,這本書介紹了攜程的.NET技術架構轉型過程,讓我對.NET架構的演進方向有了明確的認識。當然這本書過多的介紹輪子,許多讀者或許不喜歡,如果跟《微服務架構模式》一起交替的看,一定會產生不錯的效果。

《構建之法》:來自鄒欣老師,這本書介紹了軟體工程師的成長和微軟的IT管理模式,讓我能夠靜下來思考當下自己的發展方向。作為一個擁有十年工作經驗的開發者,已經陷入了一個以自我為中心的乖蹇,而周筠老師對我的悉心教導,也讓我非常感動,我也要持續努力,堅定自己的發展方向,努力做一個腳踏實地的開發者。

《浪潮之巔》共兩卷:這是吳軍老師的作品,吳軍老師的質樸清新,不刻意使用過多的辭藻鋪墊的寫作風格讓我獲益匪淺,同時講述的一個個故事又是如此的引人入勝。從故事中,我們看到了一群充滿夢想的年輕人們,他們在網際網路的浪潮之下做出的選擇,是如何一點一點的改變了世界。

《例項化需求》:這是一本介紹BDD模式的書,介紹了行為驅動開發這種模式,讓我獲得了新的知識。當然短期內用不起來,但多學一點總不會吃虧。

除此之外還有:《程式碼整潔之道》、《重構-改善既有程式碼的藝術2》、《持續交付2.0》、《PMBook》(好吧,考了12月的pmp,把pmbook看了四遍)、《程式設計師的三門課》、《Http/2基礎教程》、《混亂:如何成為失控時代的掌控者》、《我的世界觀》、《演算法圖解》、《未來簡史》、《重新整理》、《修煉之道》、《獵豹行動》、《單元測試的藝術》和剛剛讀完的《華為方法論》。

這20幾本書都是不同方向的書,與能夠讀完50本書或更多的優秀前輩們相比確實還存在一點差距,當然這些書有精讀有略讀,甚至有的其實是牛嚼牡丹,值得以後細細品味。

有的書著實發人深省帶來了許多啟迪,有的書則讓我的知識體系進一步全面,不過從書到知識到技能,還需要進一步實踐、修煉和理解,不然依然是走在雲程式設計師的路上。

關於社群

2019年比較大的成績,拉了一個技術社群應該算是一個;從2月的醞釀,到4月的落地,花了不少的精力,而且這些都是利用業餘時間完成的,連籌款都是靠社群大佬、微軟、騰訊運加以及社群朋友們的大力支援。也把公眾號從80開始,做到了目前的5000+,這些也算是小收穫吧,不過沒什麼驕傲的,畢竟那麼多人都是從零開始,做到萬粉大號。

從某種意義上來說,社群似乎離大家都比較遠。有時候會感覺試圖打造社群來凝聚開發者,其實是一廂情願。技術社群,或許只會給那些擁有開放性基因的企業和開發者帶來好處,並有望助力企業的進一步騰飛。尤其在長沙,究竟有幾家企業擁有開放的技術心態?這是個問題。長沙的技術氛圍著實令人窒息。

我們總是渴望打造一個優秀開發者社群。其實優秀開發者本身是一個不好衡量的問題,畢竟成為前百分之二十已經是優秀者,而張一鳴口中的那百分之一的精英,本身就並非一朝一夕所能煉成。

最終還是落在產出上,你助力企業騰飛、或者你做出了優秀的產品、或者你能夠具備自己的系統性思維,並能寫出一輛本書;優秀有太多種了,每一種都來之不易。

一個所謂社群,如果沒有形成長期有價值的積累,沒能打造優秀的平臺,最終走向消亡反而會是“眾望所歸”。如何讓社群避免成為水群、如何發掘更多優秀開發者,形成精英小圈子,我想說每個人都得繼續努力,最起碼不能成為一個菜市場,否則這樣的圈子,其實毫無價值。

有時候會發現,每個群都是那麼幾個固定的人,沉迷於群其實根本不能帶來個人成長,真正的成長還是得靜下來自己認真學習。

要成為優秀開發者,有時候三天打魚,兩天晒網的刻意憋一點大招,表面上看能帶來一點好氣象,但是過了那個熱度就被客觀條件或主觀條件拋棄。技術這東西真得堅持個三五年,才真的能夠成長起來。有的人,看到這個火,就追逐這個,看到那個熱門就趕潮流搞那個,一邊寫著程式碼,一邊想著明年是不是該轉行,這樣的學習方式如何能夠提高自己?

從這一點上來看,我只想說我已經在努力朝著好的方向進步,但是還遠遠不夠,與那些已經堅持優秀習慣五年、十年之久的開發者相比,我需要做的遠遠不止眼前這一點點。

關於2020年的計劃

有時候不太想列過於巨集大的計劃,因為往往計劃會變成插紅旗,然後在自己的背上插滿了紅旗,變成了一個京劇裡面的大英雄。這樣的計劃或許毫無意義。

所以還是得認真思考,踏踏實實的做幾個能夠落地的計劃:

  • 1、勿忘初衷,踏實前進:不吹水,不裝逼。做一位優秀的專業開發者,在專業方向上持續形成系統性思維。
  • 2、減法和加法:
    • 有感於今年隨著參與了社群活動,加的群也越來越多了,2020年得在這一點上多做減法。
    • 有時候追逐於資訊的熱度,其實大部分都與我毫無關係。為何關注這些東西?還是八卦性思維的束縛,這一點也有做減法。
    • 而知識體系的厚度上則需要做加法,多看書,多思考。朋友圈做加法,並非多交更多的朋友,而是都跟優秀的朋友交流溝通,吸取他們的優點,轉化成自己的優點。
  • 3、寫滿一百篇部落格,看五十本書。
  • 4、也得學Edsion周同學鍛鍊身體了。
  • 5、努力踐行積極樂觀向上的團隊文化、努力培養一支有戰鬥力的學習型團隊。

超過30歲的開發者總是會焦慮於自己的職業發展,不知道自己的未來該如何選擇,那大概是由於想得太多,做得太少。

行走在IT這條路,成長太快反而不是好事,只有腳踏實地,一步一個腳印,才能真正無所畏懼。 “易定者無感,易感者無定。”,謀劃好未來,並經營自己的當下,才有美好未來。