笨辦法學(xué)編程物延。
1. 選擇一個難學(xué)的語言
首先選擇一個難學(xué)的開發(fā)語言宣旱,在這一點上不要投機。
也許你聽人們說過C++或Java對于初學(xué)者而言太難了叛薯,但是即使這些難學(xué)的語言也只需要一點額外的耐心和堅持浑吟。
可能你會選擇一個老式的開發(fā)語言,例如COBOL或PL/I耗溜,或者相當(dāng)?shù)讓拥恼Z言例如匯編甚至機器碼组力?那為什么不試一下像Malbolge或Befunge或INTERCAL這樣深奧的語言呢?
無論怎樣抖拴,不要選擇一個現(xiàn)代的燎字、到處在用的開發(fā)語言例如JavaScript、Python或Ruby阿宅。雖然這些開發(fā)語言可能有巨大的需求候衍,網(wǎng)上也有很多的學(xué)習(xí)資源,例如像匯智網(wǎng)這樣專門針對自學(xué)編程者提供的在線學(xué)習(xí)服務(wù)洒放,有系統(tǒng)的教程蛉鹿,也有助教答疑。
2. 搭建一個糟糕的編程開發(fā)環(huán)境
你可能聽說過眾多的可以免費下載或試用的文本編輯器和集成開發(fā)環(huán)境往湿,例如Sublime妖异、Atom、VSCode领追、IntelliJ...
有些人聲稱這些工具可以更舒服和高效地寫代碼他膳,請忽略他們。
確實...自動完成蔓腐、語法高亮矩乐、代碼檢查、以及各種各樣的擴展包回论,聽起來可以讓開發(fā)變得簡單散罕。不過現(xiàn)實完全不同。真正知道如何開發(fā)軟件的人不需要這些東西傀蓉。
事實是這些被業(yè)界專業(yè)人士和熟練開發(fā)者使用的編輯器和IDE與開發(fā)是無關(guān)的欧漱,它只是一種陰謀而已,毫無疑問葬燎。
基于終端的編輯器误甚,例如Vim或Emacs缚甩,常被認為是難學(xué)的,不過即使這些也是可以在實踐中掌握的窑邦。
在一個更有挑戰(zhàn)性的開發(fā)環(huán)境中擅威,可以嘗試windows寫字板,反轉(zhuǎn)你的鍵盤冈钦,拔掉你的顯示器郊丛,可能看起來是這樣:
[圖片上傳失敗...(image-c1de47-1545869879578)]
3. 早日開始大型項目
如果你是認真對待學(xué)習(xí)編程這件事,那么每個人都知道你應(yīng)當(dāng)幫助世界進步瞧筛。
畢竟厉熟,你應(yīng)當(dāng)能夠在第一個星期就做出一個實時分布式視頻流媒體平臺,然后在第二個星期添加基于人工智能的推薦系統(tǒng)较幌,然后一個月左右差不多就可以搞出來一個百億美元估值的高科技企業(yè)了揍瑟。
無論如何,不需要在意那些針對初學(xué)者的分步學(xué)習(xí)項目乍炉,也不需要為流行的開源項目做貢獻绢片。絕對不要在這些事情上費神。
4. 永遠不要尋求幫助
在軟件開發(fā)領(lǐng)域恩急,新手這個詞實際上指的那些天生有很多年經(jīng)驗和編程知識的人杉畜。
這就是為什么開發(fā)者從來不尋求幫助的原因。另外衷恭,對某些東西感到生疏是一種典型的示弱此叠。
你不想表現(xiàn)的軟弱,因此當(dāng)你可能需要時不要尋求幫助随珠。為什么你可以用本辦法學(xué)習(xí)時還尋求幫助灭袁?
問答網(wǎng)站例如stackoverflow看起來有各種經(jīng)驗層級的開發(fā)者回答彼此的問題。但是他們真的了解什么窗看?
需要承認茸歧,他們許多人都是專家級的軟件專業(yè)人士,他們希望與所有階段的開發(fā)者分享他們的知識显沈。但是他們絕對幫助不了我們...
5. 休息6個月再學(xué)
你知道什么是比學(xué)習(xí)編程更難的嗎软瞎?
花兩個小時學(xué)習(xí)開發(fā),然后休息六個月拉讯,接著回來學(xué)涤浇。
每個人都知道成功的關(guān)鍵是不堅持。有些人聲稱他們經(jīng)常做小練習(xí)是學(xué)習(xí)新技能的最好辦法魔慷。他們也說一天20分鐘就會有效果只锭。不管從哪方面說,他們都是錯的院尔。
一個六個月長的休息可以完美地忘記之前學(xué)習(xí)的東西蜻展。如果你不能休息六個月喉誊,怎么也得休息至少三、四個月才行纵顾。
只是不要把學(xué)習(xí)變成你的日常生活的一部分伍茄,就像刷牙和沖馬桶一樣的日常生活。沒有人可以通過天天做一件事達到擅長片挂。
6. 不要圍繞主題閱讀
互聯(lián)網(wǎng)時代的一大缺陷就是幻林,網(wǎng)上你沒有足夠的東西去閱讀、去聽音念、去看。
可能你聽說過博客躏敢、在線出版物闷愤、播客、視頻教程等等件余。壞消息是讥脐,我已經(jīng)確認過了,這些東西根本不存在啼器。
除此之外旬渠,有人會真的相信主題閱讀可以幫助你更廣泛地理解嗎?或者那些偶然看見的文章可以激發(fā)你深入之前從未考慮過的方向端壳?
即使這些神奇的資料真的存在告丢,誰敢保證它們的高質(zhì)量、或者是專家寫的损谦?
可能你應(yīng)該試著去書店或圖書館看看岖免?
不過還是壞消息,現(xiàn)在沒人再出版紙質(zhì)書了照捡,因為沒人看颅湘。互聯(lián)網(wǎng)殺了它們栗精。
7. 避免和更有經(jīng)驗的開發(fā)者打交道
學(xué)習(xí)任何東西的第一規(guī)則就是:遠離專家闯参。
這是因為大多數(shù)專家只有短期記憶,記不起來他們開始學(xué)習(xí)時的情形悲立。這不是他們的錯鹿寨,他們的腦子里只是充滿了太多你不懂的東西。
經(jīng)驗被高估了...對嗎级历?對释移。
很多家伙說結(jié)對編程是向有經(jīng)驗開發(fā)者學(xué)習(xí)技巧的好辦法。實際上寥殖,你更可能學(xué)習(xí)他們的壞習(xí)慣或錯誤的世界觀玩讳。
另外涩蜘,回憶一下上次有人向你咨詢他們關(guān)心事情的建議,想像你的感受有多糟糕熏纯?
因此同诫,你真的認為有經(jīng)驗的開發(fā)者喜歡討論他們做的事情嗎?當(dāng)然不樟澜。
8. 遠離實習(xí)和工作申請
最后误窖,避免尋找你學(xué)習(xí)領(lǐng)域內(nèi)的實習(xí)機會和入門級開發(fā)工作。
在你已經(jīng)開發(fā)出可以登月著陸的代碼之前秩贰,不要申請任何工作霹俺。在拿到比爾蓋茨和蒂姆庫克的聯(lián)名推薦信之前,不要申請任何工作毒费。
是的丙唧,實習(xí)可以提供現(xiàn)實中在開發(fā)團隊中的工作經(jīng)驗,可以讓你的工作獲得實時反饋觅玻,也可以幫助你決定是否為一個特定的工作角色做好了準(zhǔn)備想际。
但是!如果你認為這些實習(xí)和初級工作有助于你成為一名專業(yè)的開發(fā)人員溪厘,這種想法是錯誤的胡本。
每個人都知道實習(xí)生是廉價勞動力。事實上畸悬,你的時間將被用來煮咖啡侧甫。記住,所有的關(guān)于學(xué)習(xí)編程的成功故事都有意忽略了這一關(guān)鍵的細節(jié)傻昙。
類似的闺骚,申請工作也是一個糟糕的想法。
是的妆档,查看工作申請可以讓你知道下一步要學(xué)習(xí)什么技能僻爽。但是記住,企業(yè)總是希望你的技能比簡歷里的多得多贾惦,這是一個沒有盡頭的過程胸梆。
即使你申請了一個工作,也接到了面試邀請须板,一定要拒絕碰镜。面試很可怕,而且永遠與經(jīng)驗無關(guān)习瑰。更好的做法是閉上眼绪颖,等著工作來找你。
補充說明
當(dāng)然甜奄,如果你希望輕松學(xué)編程柠横,請參考以下建議:
- 選擇一個現(xiàn)代的窃款、隨處可用的開發(fā)語言,例如JavaScript牍氛、Python或Ruby
- 使用業(yè)界廣泛使用的代碼編輯器和集成開發(fā)環(huán)境
- 自動完成晨继、語法高亮、代碼審查以及各種擴展包可以讓編程更輕松
- 有很多對初學(xué)者友好的搬俊、逐步深入的學(xué)習(xí)項目
- 向流行的開源項目貢獻代碼從未像今天這樣簡單
- 善用stackoverflow...那里有各種級別的開發(fā)者彼此回答問題
- 求助那些有經(jīng)驗的專家紊扬,他們通常樂于分享
- 經(jīng)常做小練習(xí)是學(xué)習(xí)新技能的最好方法
- 每天即使只練習(xí)20分鐘也會有巨大的收獲
- 讓編程稱為你的生活一部分
- 圍繞一個主題進行閱讀可以拓寬你的視野
- 偶然碰到的文章可以激發(fā)你研究從未考慮過的方向
- 網(wǎng)上的教程也可以是高質(zhì)量的、或者由專家撰寫唉擂,比如匯智網(wǎng)的教程
- 去圖書館或書店看書
- 結(jié)對編程是向高手學(xué)習(xí)的好辦法
- 有經(jīng)驗的開發(fā)者喜歡討論他們在做的事情
- 向有經(jīng)驗的開發(fā)者咨詢他們開始學(xué)習(xí)時是如何處理問題的
- 實習(xí)可以提供團隊工作機會餐屎,獲得真實反饋,也可以幫助你決定是否為某個工作做好了準(zhǔn)備
- 查看工作要求可以讓你評估下一階段的學(xué)習(xí)方向
- 面試...經(jīng)多了就簡單了
匯智網(wǎng)翻譯整理玩祟,轉(zhuǎn)載請標(biāo)明出處:Learn to code, the hard way