海軍陸戰隊的原則與程式設計
海軍陸戰隊的原則是:只要找到身體素質合格的男女,透過正確的教育與訓練,就幾乎可以把任何人培養成獨當一面的戰士。程式設計也是一種技能,就像彈吉他、游泳,或騎腳踏車。沒有人一出生就是單車手。

有不少聰明能幹的人,工作量比工程師多一倍,收入卻只有四分之一。或許他們只是沒有待在對的位置?
為什麼選擇程式設計?
在教一個人學習程式之前,最好先弄清楚這能帶來什麼。
1. 簡單又有趣的工作
程式設計是一份簡單又有趣的工作,創作空間很大。許多新手開發者一開始很難完全相信:現在他們在做自己喜歡的事,還能因此領到薪水。之後就會慢慢習慣。
2. 報酬優渥
看到能幹的專業人士工作 5 年後開始買車或買房,真的令人開心。
3. 彈性工時
僵硬的作息很不舒服。凡是曾在尖峰時段塞過車,或因遲到 5 分鐘被罰過的人都能作證。那麼,能不能上午 11 點上班、下午 5 點下班?你會說,作夢嗎?對多數工程師來說,這就是現實。把工作做好,沒有人會多說什麼。很多公司甚至允許你不必進辦公室,而是直接在家工作。很多事情都可以協調。
4. 專業成長
在幾乎任何組織裡,想拿到體面的職位並賺得高薪,通常得一路爬升。對工程師而言,只要持續當工程師就好。你不需要從工程師改做管理員,也不必去爭主管職;可以單純在專業上不斷精進。擁有 5~10 年經驗的工程師,薪資相當可觀。
5. 高度的國際流動性
全世界薪資最高的三個職業:律師、外科醫師/醫師,以及程式設計師。律師在國外執業非常困難:法律體系不同、還有判例法等。醫師需要學語言、了解不同的醫療標準,還得重新考試。工程師幾乎不必重新學:一樣的語言,一樣的標準,很多時候甚至連客戶都一樣。
6. 業界頂尖的薪資

薪資名列前茅。對初級工程師尤其如此。
讀完一本書不會讓你成為工程師。這裡至少需要 500 小時的實作。就跟拳擊一樣,不能只是把所有比賽看完就成為職業選手。你得在訓練場花上許多個夜晚(因此 CodeGym 安排了非常多的實作任務)。
凡是宣稱 10 小時就能學會程式設計的提議,等同於 10 小時教你拳擊,然後直接上擂臺!別這麼做。
有時,新手在論壇詢問如何成為工程師,得到的建議是:自己想題目並動手做。這行不通。因為人很難為自己設計剛好落在知識邊界之外的題目。要嘛會,要嘛不會。
只有對主題非常熟悉的人,才能替你設計一串循序的任務,每一題都讓你學到新東西,且不需要耗上一整週才能弄懂。這正是我們所做的。
創新的學習方式
CodeGym 的學習方式和大學不同。你很快就會注意到這點。不過它更有效。
在大學裡,你多半是以這種形式學習:冗長的講課,外加用實作來鞏固。這種做法的目標是給你大量知識,但你的實作能力往往不盡理想。老實說,用這種學法,你幾乎學不到真正能派上用場的東西。
這裡的做法不一樣。理論是知識,而知識是對我們問題的答案。因此,我們先給問題——也就是用當前知識很難解的實作任務——接著再給答案(讓你更容易解決它們的理論)。
新內容分三個階段呈現:
- 初探(最少量的理論,或是幾個實作練習)。
- 核心知識(你應該完全理解在講什麼)。
- 細節與實務(填補空白)。
因此,你至少會三次接觸同一個主題。更不用說,所有內容彼此高度關聯,幾乎不可能在不先部分介紹其他主題的情況下,就把某一主題完整說清楚。
有些學生甚至會對題目感到不滿:我們還沒學到這個啊。這類題目正是讓你思考:用現有的知識要怎麼解?你可能會在這些題目上多花一兩個小時,但之後會很高興遇見新的原創思路或漂亮的解法。
此外,在真實的工作中也是先拿到任務,之後才會去找需要的知識來解決它。現實就是這樣。所以越早習慣這種做法越好。
GO TO FULL VERSION