Java老師告訴你:程序員小白常犯的錯誤及規避之道
本文轉載自公眾號“讀芯術”(ID:AI_Discovery)。
實際的代碼教學永遠也不會停止。我講授Java已七年有余,一路上自己踩過見學生掉過的坑積累起來可挖穿地心,我敢說我了解編碼學習的一百種錯誤方法,當然啦,正確方法也知道不少。
開啟開發人員的職業生涯有多種方式,但有的時候人們會產生一種幻覺——即“條條大路通編碼,條條大路皆為佳”。就我個人經驗而言,并非所有方式都是佳策。本文將分享有關學習編程的無效方法,并介紹更好的替代方法。
1. 急于求成
當你急切想取得成就時,就會意圖一個猛子完成所有事情。比如,打開幾個網頁,開始學習一些Java,然后學習一些PHP,然后簡要了解JS框架。一天下來,自認為對編程了解了很多,但事實并非如此。
第二天早上是醒來再看看,是不是突然意識到昨天學習的內容幾乎忘得一干二凈了,幾個小時的學習似乎毫無成果。
學習新知識的訣竅在于:專注于某件事物。如果學習Java,就只學習Java,至少在最初的幾個月要保持這種策略。之后,在學習其他技術并在實際項目中綜合運用這些技術時,其中的益處就顯現出來了。
2. 跳過基礎知識
在可以馬上開始寫第一本小說時,誰會在乎簡單的字母怎么寫?如果“下一件大事”就在前面等著,為什么還要花時間學習有關類或繼承的任何知識?所以就放心大膽地跳過乏味的基礎知識吧。
冷靜一下!基礎不牢,地動山搖,學習基礎知識是未來職業的基石。如果不認真地夯實基礎,未來必將深受其害實際。工作中可沒有時間讓你鞏固基本知識,現在就是一點一點學習基礎知識的最佳時刻。
圖源: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
學習編程確實需要耗費時間和精力。但是不必重蹈他人的覆轍而讓學習過程復雜化。如果只停留在理論階段,拒絕他人幫助,沒有找到合適的解決問題方法,那么成為專業人士將需要很長一段時間。
記住,最糟糕的事情是從不開始學習,或是在第一次失敗后就輕言放棄,錯誤和失敗只是學習過程的一部分。最重要的是要定期學習,持續努力,你一定會有所收獲。