老生常談!程式設計師為什麼要閱讀原始碼?

Yxh_blogs發表於2024-06-11

大家好,我是碼農先森。

閱讀原始碼這是一個老生常談的話題了,但又是很多人想做又沒有付出行動的事情。前段時間我研究了 Swoole 的原始碼,並且輸出了系列的原始碼分析文章「感興趣的朋友可以翻閱以前的文章」。雖然這個過程很枯燥和艱難,但到最後有種苦盡甘來的感覺,因為突破了自己之前一直想做又不敢做的一件事情。可能有很多人會說了,平常的工作中又用不到,為什麼要去學習呢?如果你發出了這樣的疑問,那麼你大機率是初入職場的小白,或者是一年經驗用十年的資深程式設計師,這裡所說的「資深」要打雙引號了。

面試

面試造航母,入職擰螺絲。相信大家對這句話的精髓都深有體會,面試期間面試的問題都似乎要求面試者具備上能捅破天,下能鑽地球的能力,既要上得了廳堂,又要下得了廚房。站在用人單位的角度來看「小孩子才做選擇題,成年人全都要」。那為什麼會出現這種現象呢?還記得要幾年前網際網路如火如荼的時候,程式設計培訓行業如雨後春筍般的孵化出一批速成程式設計師,大量出現在人才市場,僅僅靠背幾套面試題就能獲得不錯的薪水。

如今網際網路行業人才市場飽和,直接加劇了程式設計師之間的內部競爭。想象一下如果面試官手裡握著好幾份候選者的簡歷,然而偏偏你理解底層原始碼,那面試官會向誰發放 Offer 呢?答案顯而易見,這就是閱讀原始碼在面試中的意義,它讓你形成了差異化的競爭,在這個過程中能夠脫穎而出。

職業

作為一名職業的程式設計師,想要在自己的領域能夠獲得穩定且長足的發展,閱讀原始碼是一道必須跨過去的坎。初入職場的前三年基本上都是參與常規的業務需求開發,大多數都處於增刪改查「俗稱CRUD貼上複製」的階段。三年後會嘗試元件封裝、框架腳手架的搭建「也就是大家常說的造輪子」,並且時不時的指點下初級程式設計師,解決一些專案層面的問題。到達第五年的這個時間點,這是一個職業生涯的轉折點。

具備這個階段經驗的程式設計師,對於絕大多數的需求開發都可以信手拈來輕鬆應對,如果想要謀求更高的技術造詣,就要從元件、框架,乃至語言實現層面的原始碼做為著手點來進行提升。職業的發展都是一個不斷攀升地過程,類似於遊戲中的升級打怪,一關關的突破「關關難過,關關過」,只有突破了閱讀原始碼這一關,才能讓自己的職業得到更好、更順利的發展。

興趣

大家常說:“如果把興趣變成了職業,那將是一種災難”。如果反過來呢?職業成為了興趣,那是不是意味著職業上會獲得更大成功?這個問題我還無法回答,因為我還沒有成功。但這個觀點並不妨礙有些人把閱讀原始碼作為一種興趣愛好,如果這樣做能夠驅動閱讀原始碼這件事情得以堅持下去,同時滿足了自己的興趣,又能從閱讀原始碼中獲得知識,豈不是兩全其美。

說實話閱讀原始碼的確是一件很枯燥乏味的事,最近我在閱讀 Swoole 原始碼的過程中就深有感觸,期間也有看不下去的時候,但是心裡總是默唸「這是自己的興趣」這才讓我堅持下來。雖說這不確信閱讀原始碼是不是我的興趣,但還是讓我用興趣的意念把這件事給完成了,透過閱讀原始碼讓我明白了「興趣」的偉大。

結語

對於閱讀原始碼這個老生常談的話題,首先「面試」帶來的是短期價值,它讓我們在面試的過程中形成差異化的競爭,從而讓我們脫穎而出。其次「職業」帶來的是長期價值,它讓我們在自己的領域能夠獲得穩定且長足的發展。最後「興趣」帶來的是一種信念,它讓我們在困難面前能夠有堅持下去的勇氣和動力。總而言之,閱讀原始碼是一件利大於弊的事情,希望大家能持之以恆的對待,堅持做具有長期價值且正確的事情。

推薦

  • 深入理解 Swoole 的底層載入原理
  • Swoole 原始碼分析之 epoll 多路複用模組
  • Swoole 原始碼分析之 TCP Server 模組
  • Swoole 原始碼分析之 Http Server 模組

歡迎關注、分享、點贊、收藏、在看,我是碼農先森。

相關文章