本文轉載自公衆號「讀芯術」(ID:AI_Discovery)。java
實際的代碼教學永遠也不會中止。我講授Java已七年有餘,一路上本身踩過見學生掉過的坑積累起來可挖穿地心,我敢說我瞭解編碼學習的一百種錯誤方法,固然啦,正確方法也知道很多。程序員
開啓開發人員的職業生涯有多種方式,但有的時候人們會產生一種幻覺——即「條條大路通編碼,條條大路皆爲佳」。就我我的經驗而言,並不是全部方式都是佳策。本文將分享有關學習編程的無效方法,並介紹更好的替代方法。面試
1. 急於求成編程
當你急切想取得成就時,就會意圖一個猛子完成全部事情。好比,打開幾個網頁,開始學習一些Java,而後學習一些PHP,而後簡要了解JS框架。一天下來,自認爲對編程瞭解了不少,但事實並不是如此。框架
次日早上是醒來再看看,是否是忽然意識到昨天學習的內容幾乎忘得一乾二淨了,幾個小時的學習彷佛毫無成果。ide
學習新知識的訣竅在於:專一於某件事物。若是學習Java,就只學習Java,至少在最初的幾個月要保持這種策略。以後,在學習其餘技術並在實際項目中綜合運用這些技術時,其中的益處就顯現出來了。工具
2. 跳過基礎知識學習
在能夠立刻開始寫第一本小說時,誰會在意簡單的字母怎麼寫?若是「下一件大事」就在前面等着,爲何還要花時間學習有關類或繼承的任何知識?因此就放心大膽地跳過乏味的基礎知識吧。編碼
冷靜一下!基礎不牢,地動山搖,學習基礎知識是將來職業的基石。若是不認真地夯實基礎,將來必將深受其害實際。工做中可沒有時間讓你鞏固基本知識,如今就是一點一點學習基礎知識的最佳時刻。spa
圖源:unsplash
3. 偶爾學習
按期學習就是記憶的運做方式:必須重複屢次才能真正掌握一種技能。若是沒有進一步的運用,努力培養的技能將再次從記憶中消失。這就是爲何三天打魚兩天曬網註定了你會直接走向失敗,天天學習30分鐘的編程比每隔星期一練習三個小時要好。
4. 獨自學習編碼
「我以爲編碼就是鍵入正確的行。我爲何還須要其餘人?」筆者經常在建議學生在學習中與別人交流時聽到這樣的反問。想象一下本身躲在顯示器後面,在孤獨和沉默中編寫出天才代碼……嗨,仍是別幻想了吧!無論軟件開發人員多麼內斂,這項工做也是須要團隊合做的,你也不例外。
在學習的道路上,他人的幫助也十分重要。誰知道會不會在這條路上會遇到將來的同事或上司呢?
那麼,能夠到哪尋求幫助呢?能夠加入程序員論壇、專業社區等等,好比能夠加入CodeGym、Stack Overflow、Reddit等論壇(例如r\learnprogramming、r\java和r\learnjava等subreddit)。和他人談論學習和工做,尋求幫助,也幫助別人,並從中得到一些靈感。這不只會提升專業技能,也能夠提高你的軟技能。
5. 只看書和視頻,且重複如此
讀的編程書籍越多,就越能成爲一個好的程序員?並不是如此。即便理論是一個生動的卡通片的形式呈現,也要明白「紙上得來終覺淺,絕知此事要躬行」。能夠嘗試一些編碼挑戰平臺,玩玩遊戲,邊作邊學。如下是一些在線編碼平臺:
Gitconnected:Gitconnected社區裏面有不少學習編程的教程資源。全部的資料都是由軟件工程師和開發人員篩選過的,因此能夠說是滿滿乾貨。在這個社區,成員們相互學習相互交流,以找到最佳的解決方案來完成任務。
CodeGym:CodeGym是一個結構化的Java課程,結合了講座和實操任務。在這個平臺上,你能夠從初學者開始作任務,一步步提高本身。整個課程創建在一個遊戲和故事敘述的探索中,這讓整個學習過程變得更有趣了。
Coderbyte:這個資源平臺是一個競賽向和通關向的平臺。其中有入門課程,也有一個難度等級明確的大型競賽庫,還有求職面試的準備工具。
Codechef:Codechef是一個友好競爭的地方,其中有初級課程和月度挑戰。想不想看看本身的名字成爲頂級賽手之一!
6. 沒有學着去解決問題
來看看一下Java學習者常犯的錯誤。首先,他們真的只學習簡單的編碼,但不會持續地學習「跟着我重複」的教程。建立軟件不只僅是寫一行又一行的代碼,而是爲了能爲人們帶來些許便利,幫人們解決問題。
你必須開始使用編碼解決問題,而不只僅是胡亂使用編碼。在工做中不可能碰到像「寫50行Java代碼」這樣的任務,而一般會是這樣:「咱們須要這個東西這樣工做,你能作到嗎?」
7. 不肯定代碼是否有效
在一個虛幻的世界裏,開發人員能憑空寫出完美的代碼,而代碼也奇蹟般地奏效了。但在現實世界中,事情要更爲複雜。你爲一些應用程序的功能寫了一遍又一遍的代碼,而後一次次出bug了,這個應用程序就是沒法運行。
你真的不知道出什麼問題了嗎,是一次一個錯誤仍是一次好幾個錯誤?如今必須從頭檢查一切。其實另有上策——在進入下一環節以前對項目的每一個部分進行兩到三次檢查,代碼不出錯的概率就更高了。
8. 永不認可本身寫的代碼糟糕
圖源:unsplash
小白們很難意識到本身犯了錯誤,當天天或每一行代碼中都有大量錯誤時,這就更難意識到了。
但自欺欺人會讓狀況更糟。因此面對現實吧:寫出糟糕代碼是不可避免的階段,你須要時不時地重寫,這也是提高過程的一部分。好好檢查代碼,若是說有什麼是須要改變的,那就去改代碼吧。
9. 不讓經驗人士檢查代碼
在學習演奏樂器時,人們幾乎拒絕讓別人看到本身笨拙的手指動做。寫代碼也是如此——在代碼無可挑剔以前,咱們不想展現給任何人。開發小白不會去尋求幫助,還會拒絕尋求建議,能夠想象其學習之路也所以變得更加漫長和艱難。
你應該向前輩徵求對本身代碼的意見。能夠去專業社區和論壇(如Stack Overflow、CodeProject或CodeGym論壇),若是是學生更方便,能夠去找導師,或者和同伴討論。這樣,對於解決同一個問題,你會獲得不一樣的見解,還會學得更好更快,由於能從經驗豐富的開發人員那裏得到知識。
這很大程度上也能促進一個良好的後效應:繼續把本身的知識分享給其餘開發小白,這是至關有益的。
圖源:unsplash
學習編程確實須要耗費時間和精力。可是沒必要重蹈他人的覆轍而讓學習過程複雜化。若是隻停留在理論階段,拒絕他人幫助,沒有找到合適的解決問題方法,那麼成爲專業人士將須要很長一段時間。
記住,最糟糕的事情是從不開始學習,或是在第一次失敗後就輕言放棄,錯誤和失敗只是學習過程的一部分。最重要的是要按期學習,持續努力,你必定會有所收穫。
【責任編輯:趙寧寧 TEL:(010)68476606】