花別人一半時間學好編程!聰明人是怎麼作到的?

大多數學習者一樣碰到過相同的障礙,可是,一旦克服了這些壁壘,那麼好處立馬就來:程序員

更享受學習經歷進步編程

更快碰到難題更執着,不輕言放棄異步

寫代碼時更獨立編程語言

那麼,這些障礙到底是什麼呢,咱們又該如何攻克它們? 異步編程


 

一、目的不明確

在談及壁壘以前,我想先着重說明學習動機的重要性。不要只是爲了編程而學編程,也不要由於據說它很酷,很划得來就來學編程。學習

你得由於要解決問題而學習編程,你得由於想要自動化和改善生活而學習編程,你得由於想要構建應用程序以造福社會來學習編程。編碼

若是你只是喜歡編程,並但願以此做爲職業的話,那麼在以後的學習過程當中,你可能會有一種強烈的衝動想要放棄。這一般發生在事情變得艱難,學習體驗變得痛苦的狀況下。這時你會告訴本身,你不喜歡編程了,編程操做不適合你,以爲本身天生就成不了程序員。spa

所以,您應該考慮爲完成項目設定目標。若是您正在考慮一個項目,或者想解決一個更高的問題,您能夠對本身說:「目前這可能不是一種使人愉快的體驗,可是我真的想解決這個更大的問題,因此我將繼續推進本身並克服這一障礙。」3d


 

二、糾結學習什麼

不少人問:「我應該首先學習哪一種編程語言?」。之因此存在此問題,是由於他們不知道爲何要學習編碼。調試

一旦肯定了要從事的項目,就很容易弄清楚以哪一種編程語言開始:

若是要構建iOS應用,請使用Objective C或Swift。

若是要構建Android應用程序,請使用Java或Kotlin。

若是要構建Web應用程序,請使用JavaScript。

現在,您實際上可使用JavaScript來構建任何類型的項目,從簡單的Web和移動應用程序到高級硬件項目。人們在大多數行業中使用它,例如:音樂,醫療,遊戲,時尚。

若是仍然不肯定要選擇哪一種語言,甚至能夠向程序員尋求建議。一旦知道了要構建的項目,程序員就能夠輕鬆推薦一種技術供您使用。

還請記住,語言是一通百通的,你能夠輕鬆從一門語言轉移到其餘語言。


 

三、不去思考地編碼

最好的狀況是您解決了任務而且工做正常。而後人們一般會開始處理下一個任務。若是這樣作,您將浪費學習的機會。

我鼓勵您用如下問題挑戰本身:

個人代碼可能會失敗嗎?即便如今沒有失敗,是否有任何應用程序狀態可能致使其中斷?

個人代碼夠乾淨嗎?對於其餘開發人員,甚至對我本身,是否容易理解和更改?未來,您可能須要解決此代碼中的隱藏問題,或根據其餘產品規格對其進行更改。

個人方法是最好的方法嗎?我還可使用其餘替代方法?每一個替代方案的優缺點是什麼?值得以其餘方式解決任務嗎?

該模塊如何與其餘模塊交互?它會以一種很差的方式影響他們中的任何一個嗎?能夠容易地被其餘模塊使用嗎?


 

四、你不知道如何完成任務

你不知道從哪裏開始嗎?您可能會想嘗試隨機的東西,或者從您不理解的其餘地方複製代碼。但這沒有幫助。即便您複製有效的代碼也不行。由於未來您將要執行相似的任務時,您也將沒法解決該任務。

若是要正確解決任務,則必須首先肯定爲何會卡住。如下是一些可能的緣由:

您不太瞭解該理論。語言語法庫或API的工做方式,或特定方法或類的工做方式編程範例(例如:異步編程)系統的工做方式(例如:HTTP請求是Web開發中必須瞭解的關鍵內容)在這種狀況下,只要再讀一遍該理論,或者在仍然沒有意義的狀況下找人向您解釋。

任務太大,須要分解成較小的任務。您不明白任務在問什麼,由於您讀得太快而且忽略了看起來很熟悉但實際上並不熟悉的概念。

五、不知道如何調試

這是編程中最多見的問題。即便對於具備多年經驗的程序員也是如此。解決方案不起做用的緣由極可能是代碼中的錯誤。

您如何解決?經過調試代碼。這是您做爲程序員能夠學習的最重要的技能之一。這不是您隨便作的事情,也不是靠幸運的猜想作的事情。您能夠採起特定的步驟來查找代碼中的錯誤。有整本書專門教這個技能。

不幸的是,這是許多新程序員失去動力並放棄的地方。不多有課程解釋調試的重要性。若是您不知道如何正確執行操做,那麼它彷佛勢不可擋。

許多人擔憂他們花太多時間調試代碼。這很正常,在編程的頭幾年,您必須爲此作好準備。

更好的是,您須要學習如何喜歡調試。將其視爲解決您的誤解並提升編程能力的機會。每當您解決錯誤時,都要問本身一個問題:「爲何我首先犯了這個錯誤?我如何防止本身未來出現這種狀況?」。

保留編程日誌是一個好主意,您能夠在其中寫下全部發現的錯誤。您將快速看到模式並從中學習。


 

六、不知道如何獲取幫助

在學習編碼或調試代碼時,您將查閱許多材料:書籍,課程,教程,導師,開發人員社區。

例如:在您花了10個小時解決問題後,最後有人爲您提供瞭解決方案後,很容易採用該解決方案,慶祝並跳到下一個任務。不要那樣作!相反,您須要進行一些元認知:

考慮一下您之前的思考過程。問問本身本身作錯了什麼,以及能夠作得更好的特定解決方案。

請對方告訴您他們本身的思考過程。她/他如何解決的?從中學到東西,下次本身應用。您沒法找出人們如何提出解決方案。您只能採起解決方案,並但願能理解它們。可是您永遠不會知道這些解決方案背後的思考過程。


 

七、理論和實踐沒法結合

一旦選擇了一個技術棧,就很容易上手並學習理論。互聯網上有大量的免費和付費課程。

咱們的大多數學生實際上都瞭解該理論,而且能夠解釋某些代碼是如何工做的。該理論只是一組有限的概念。若是他/她真的願意,任何人均可以在幾天內記住它。那是什麼問題呢?

學生面臨的最大問題其實是將理論應用於解決問題和編寫新代碼。這意味着差距其實是技能差距。

好比游泳,你能夠閱讀關於技術的各類信息,而且能夠像專業教練同樣向某人解釋它。可是應用這一理論須要大量的實踐,努力和錯誤,不然下水後你只會喝水。

我知道不少人看了不少編程書籍,也看了不少網上的教程,可是依然寫很差代碼,那就是他們眼高手低,寫基本的代碼都能bug百出。咱們必定要養成用鍵盤思考的習慣,才思泉涌,代碼行雲流水,須要的是不斷地實踐。

最後送上我最喜歡的一句話,實踐是檢驗真理的惟一標準。


 

最後,若是你也想成爲程序員,想要快速掌握編程,趕忙加入學習企鵝圈子

裏面有資深專業軟件開發工程師,在線解答你的全部疑惑~編程語言入門「so easy」

編程學習書籍:


 

編程學習視頻:

相關文章
相關標籤/搜索