1. 程式人生 > >工作15年碼農總結:學程式設計難嗎?那只是你覺得難!

工作15年碼農總結:學程式設計難嗎?那只是你覺得難!

個混跡微博的IT愛好者的話,可能對下面這個頭像有印象。

沒錯,這就是Easy!

從2003年寫下第一行PHP程式碼開始,程式設計就成為了他生活的日常。而他的人生履歷,也與程式設計緊密切合。

2004年,他入職新浪,負責WAP釋出平臺,日訪問量2億;

後來,他成為了新浪雲資深產品架構師,平臺訪問量8億+;

Easy出版的《程式設計師跳槽全攻略》,為程式設計師跳槽提供了方法論和工具,全網累計分發量超過8萬;

現在,他是一位獨立開發者,同時也為想要入行程式設計的小夥伴提供幫助。

接下來,讓我們看看今天Easy到底想分享給我們什麼方法來學習程式設計呢?

01

自從業以來,我就不停地被問到類似「程式設計到底難不難呀,我能不能學會呀?」這樣的問題。

要是以前你問我這個問題,我肯定會回答,一點都不難。你如果去問十年以上的老程式設計師們,估計答案都差不多。

但是去年我開始系統化的梳理 Web 全棧相關的知識點以後,發現現在學習程式設計,和我們那個年代學習程式設計,已經完全不一樣了。

以 Web 為例來說明吧。

作為和網際網路一起成長起來的一批程式設計師,我們最開始接觸的 Web 是非常簡單的,最開始只有HTML 、然後才有了 CSS 、再之後 Ajax 才興起。

我們都是先學會了核心,再一點一點的去學新增的內容,所以我們一點都不覺得難。

但今天,使用者對網頁的要求越來越高,整個 Web 開發的知識累積量也已經非常龐大。

眾多陌生的知識一擁而上,很容易讓人不知所措,甚至心生恐懼。想想以前我們用一個長假可以把 HTML 學一遍,還能做幾個小表單;

現在可能連 WebPack 語法都還沒看完,這要何時才是個頭呢。

所以我覺得,如果方法不對的話,程式設計可能是挺難的。

02

那麼什麼樣的方法才是管用呢?

先來聽我講講一個朋友的故事。在那個國慶節之前,程式設計曾經是他認為不可能學會的事,而在那個國慶節之後,程式設計成為了他最擅長的事。

嚴格的說呢,這位朋友並不算一個好學生。進入大學後便迷上了CS,大三因為掛科太多被學校勸退了。

這下他清醒了,這樣下去不行,但學校已經回不去了,於是報了個培訓班學程式設計求生。

天天學天天練,學了三個月,但都沒入門。也不是不會,是只有老師教過的才會,和教的只要一點不一樣,就立馬不會了。

不久後,他在火車上遇到一位大廠的程式設計師,閒著沒事,兩人就一起聊程式設計。聊了不到一個小時,就豁然開朗了。

我問他怎麼就開朗了,能不能說具體點,他說,原來腦子裡雖然裝滿了知識,但也就是那麼放在那裡,每個知識都一樣。

但當明白了 Web 開發到底是在做什麼以後,這些知識就有了權重、有了優先順序、有了結構和位置。

腦子就像有一根繩,將這些知識分門別類的串了起來。哪些知識幹什麼用,變得清清楚楚。

把那些周邊知識先扔一邊,重點攻克那些主幹知識,就能從中殺出一條血路來,等主幹知識鞏固好了,再慢慢回來補周邊知識。

仔細想想,我其實也在無意間使用著這種學習方法,於是後來在其基礎上進行了強化,用到公司的新人培訓上,效果甚好,這裡分享給大家。

03

我叫它「多周目知識樹學習法」。

分開來講。

先說多周目,周目就是輪次的意思,經常玩遊戲的同學應該會知道,很多劇情都要二週目甚至三週目才能玩出來。這裡借用的就是這個概念。

作為初學者,我們不奢求一次吃個胖子,我們分多次來學習。

第一遍看全域性,知道有哪些東西,每一部分都是幹什麼用的,哪些重要,哪些不重要。

第二遍重原理,從最核心的原理出發,一步一步嘗試以最短的路徑走通整個流程,完成核心任務。

第三遍補周邊,把之前做的方案拿出來,看看哪些地方可以優化,哪些地方能做得更好。

這麼幾遍下來,每次的學習難度降低了不少,而我們對知識的理解卻深入了很多。

然後是知識樹。

就像前文所說,知識點並不是平等的。我們需要在理解本質和原理的基礎上,梳理出一顆知識樹。

在這棵樹上,我們應該可以清晰的看到哪些知識是核心、那些知識是周邊,我們為什麼要學它、學了它能用到那些地方。

每個人的知識樹可能不一樣,會隨著你的理解進行調整。初學者往往很難立馬建立起來完整的知識樹,這時候可以藉助一些學習路線圖作為樣本。

學好程式設計並以此為職業並不是一件容易的事情,這裡也只是針對我們發現的問題提出的方法,希望能對在學習摸索中的你有所幫助。