學程式設計的笨辦法
1. 選擇一個難學的語言
首先選擇一個難學的開發語言,在這一點上不要投機。
也許你聽人們說過C++或Java對於初學者而言太難了,但是即使這些難學的語言也只需要
一點額外的耐心和堅持。
可能你會選擇一個老式的開發語言,例如COBOL或PL/I,或者相當底層的語言例如彙編甚至機器碼?那為什麼不試一下像Malbolge或Befunge或INTERCAL這樣深奧的語言呢?
無論怎樣,不要選擇一個現代的、到處在用的開發語言例如JavaScript、Python或Ruby。雖然這些開發語言可能有巨大的需求,網上也有很多的學習資源,例如像匯智網這樣專門針對自學程式設計者提供的線上學習服務,有系統的教程,也有助教答疑。
2. 搭建一個糟糕的程式設計開發環境
你可能聽說過眾多的可以免費下載或試用的文字編輯器和整合開發環境,例如Sublime、Atom、VSCode、IntelliJ…
有些人聲稱這些工具可以更舒服和高效地寫程式碼,請忽略他們。
確實…自動完成、語法高亮、程式碼檢查、以及各種各樣的擴充套件包,聽起來可以讓開發變得簡單。不過現實完全不同。真正知道如何開發軟體的人不需要這些東西。
事實是這些被業界專業人士和熟練開發者使用的編輯器和IDE與開發是無關的,它只是一種
陰謀而已,毫無疑問。
基於終端的編輯器,例如Vim或Emacs,常被認為是難學的,不過即使這些也是可以在
實踐中掌握的。
在一個更有挑戰性的開發環境中,可以嘗試windows寫字板,反轉你的鍵盤,拔掉你的顯示器,可能看起來是這樣:
3. 早日開始大型專案
如果你是認真對待學習程式設計這件事,那麼每個人都知道你應當幫助世界進步。
畢竟,你應當能夠在第一個星期就做出一個實時分散式視訊流媒體平臺,然後在第二個星期新增基於人工智慧的推薦系統,然後一個月左右差不多就可以搞出來一個百億美元估值的高科技企業了。
無論如何,不需要在意那些針對初學者的分步學習專案,也不需要為流行的開源專案做貢獻。絕對不要在這些事情上費神。
4. 永遠不要尋求幫助
在軟體開發領域,新手這個詞實際上指的那些天生有很多年經驗和程式設計知識的人。
這就是為什麼開發者從來不尋求幫助的原因。另外,對某些東西感到生疏是一種典型的示弱。
你不想表現的軟弱,因此當你可能需要時不要尋求幫助。為什麼你可以用笨辦法學習時還尋求幫助?
問答網站例如stackoverflow看起來有各種經驗層級的開發者回答彼此的問題。但是他們真的瞭解什麼?
需要承認,他們許多人都是專家級的軟體專業人士,他們希望與所有階段的開發者分享他們的知識。但是他們絕對幫助不了我們…
5. 休息6個月再學
你知道什麼是比學習程式設計更難的嗎?
花兩個小時學習開發,然後休息六個月,接著回來學。
每個人都知道成功的關鍵是不堅持。有些人聲稱他們經常做小練習是學習新技能的最好辦法。他們也說一天20分鐘就會有效果。不管從哪方面說,他們都是錯的。
一個六個月長的休息可以完美地忘記之前學習的東西。如果你不能休息六個月,怎麼也得休息至少三、四個月才行。
只是不要把學習變成你的日常生活的一部分,就像刷牙和衝馬桶一樣的日常生活。沒有人可以通過天天做一件事達到擅長。
6. 不要圍繞主題閱讀
網際網路時代的一大缺陷就是,網上你沒有足夠的東西去閱讀、去聽、去看。
可能你聽說過部落格、線上出版物、播客、視訊教程等等。壞訊息是,我已經確認過了,這些東西根本不存在。
除此之外,有人會真的相信主題閱讀可以幫助你更廣泛地理解嗎?或者那些偶然看見的文章可以激發你深入之前從未考慮過的方向?
即使這些神奇的資料真的存在,誰敢保證它們的高質量、或者是專家寫的?
可能你應該試著去書店或圖書館看看?
不過還是壞訊息,現在沒人再出版紙質書了,因為沒人看。網際網路殺了它們。
7. 避免和更有經驗的開發者打交道
學習任何東西的第一規則就是:遠離專家。
這是因為大多數專家只有短期記憶,記不起來他們開始學習時的情形。這不是他們的錯,他們的腦子裡只是充滿了太多你不懂的東西。
經驗被高估了…對嗎?對。
很多傢伙說結對程式設計是向有經驗開發者學習技巧的好辦法。實際上,你更可能學習他們的壞習慣或錯誤的世界觀。
另外,回憶一下上次有人向你諮詢他們關心事情的建議,想像你的感受有多糟糕?
因此,你真的認為有經驗的開發者喜歡討論他們做的事情嗎?當然不。
8. 遠離實習和工作申請
最後,避免尋找你學習領域內的實習機會和入門級開發工作。
在你已經開發出可以登月著陸的程式碼之前,不要申請任何工作。在拿到比爾蓋茨和蒂姆庫克的聯名推薦信之前,不要申請任何工作。
是的,實習可以提供現實中在開發團隊中的工作經驗,可以讓你的工作獲得實時反饋,也可以幫助你決定是否為一個特定的工作角色做好了準備。
但是!如果你認為這些實習和初級工作有助於你成為一名專業的開發人員,這種想法是錯誤。
每個人都知道實習生是廉價勞動力。事實上,你的時間將被用來煮咖啡。記住,所有的關於學習程式設計的成功故事都有意忽略了這一關鍵的細節。
類似的,申請工作也是一個糟糕的想法。
是的,檢視工作申請可以讓你知道下一步要學習什麼技能。但是記住,企業總是希望你的技能比簡歷裡的多得多,這是一個沒有盡頭的過程。
即使你申請了一個工作,也接到了面試邀請,一定要拒絕。面試很可怕,而且永遠與經驗無關。更好的做法是閉上眼,等著工作來找你。
補充說明
當然,如果你希望輕鬆學程式設計,請參考以下建議:
- 選擇一個現代的、隨處可用的開發語言,例如JavaScript、Python或Ruby
- 使用業界廣泛使用的程式碼編輯器和整合開發環境
- 自動完成、語法高亮、程式碼審查以及各種擴充套件包可以讓程式設計更輕鬆
- 有很多對初學者友好的、逐步深入的學習專案
- 向流行的開源專案貢獻程式碼從未像今天這樣簡單
- 善用stackoverflow…那裡有各種級別的開發者彼此回答問題
- 求助那些有經驗的專家,他們通常樂於分享
- 經常做小練習是學習新技能的最好方法
- 每天即使只練習20分鐘也會有巨大的收穫
- 讓程式設計稱為你的生活一部分
- 圍繞一個主題進行閱讀可以拓寬你的視野
- 偶然碰到的文章可以激發你研究從未考慮過的方向
- 網上的教程也可以是高質量的、或者由專家撰寫,比如匯智網的教程
- 去圖書館或書店看書
- 結對程式設計是向高手學習的好辦法
- 有經驗的開發者喜歡討論他們在做的事情
- 向有經驗的開發者諮詢他們開始學習時是如何處理問題的
- 實習可以提供團隊工作機會,獲得真實反饋,也可以幫助你決定是否為某個工作做好了準備
- 檢視工作要求可以讓你評估下一階段的學習方向
- 面試…經多了就簡單了
原文連結:笨辦法學程式設計 - 匯智網