-
1 # IT人劉俊明
-
2 # 噴噴老師
動手,動手,動手,這是根本!
目標,目標,目標,這是途徑!
自己動手是最好的老師。對於初學程式設計的朋友來說,學習一門語言總是迫不及待地想一口氣全部學完,要麼是盯著書本里的內容幻想著自己在程式設計,要麼是看著影片裡的老師碼完了程式碼便以為自己也算是碼過了一遍,然後自信滿滿地表示“這門語言我學會了,不就是這個樣子嘛!”然而,當真的拋給他一個問題要他動手寫程式碼的時候,他就表現得捉襟見肘,坐立不安,如同熱鍋上的螞蟻一般。對於這樣的朋友我想說,如果你連敲敲鍵盤的習慣和勇氣都沒有,那這個程式設計你連門都還沒入。當然,萬事開頭難,很多朋友初學的時候,都是一邊照著書看,一邊把程式碼給寫了上去。說實話,這麼做其實真的挺好,因為最快的學習方式就是模仿,最好的情況是你在模仿的時候就能出現編譯錯誤,這樣能幫助你儘快地發現自己的語言使用問題。當你能夠熟練模仿著寫程式碼的時候,你就可以嘗試拋開範例,自己來解決書中提出的問題了。這一個過程可以幫助你將自己的思維透過程式碼的形式表達出來,更是在檢驗你是否真的明白了你所寫程式碼的含義。剛開始程式設計是如此,以後進入工作崗位更是如此,你的手動的越勤,你的腦子才能轉的越快,這時的動手就不再是機械式的重複性勞動,而是在腦海裡組織起所需的邏輯,然後透過自己的雙手展現出來。
你的目標決定了你的方向,你的目標決定了你的戰場,你的目標決定了你的優勢。程式設計涉及的領域五花八門,每一扇門裡涉及的花樣也是千奇百怪,如果總是盲目地看見這個也想學,看見那個也想練,你會很快發現,你的精力被過多地分散以至於自己本來的工作也出現了問題。所以,確定一個適合你的目標就顯得給外重要。對於初級程式設計師,可以以解決業務問題為短期目標,以瞭解框架原理為中期目標,以疏通整個專案的重點難點為長期目標這樣的方式來學習。也可以根據自己的實際情況確定相應的目標方向,畢竟這個世界上沒有最好的方法,只有最合適的方法。
回覆列表
作為一名從業多年的程式設計師,我來回答一下這個問題。
程式設計能力的提升大致上可以從兩個層面來理解,第一個層面是程式語言自身的運用熟練程度,包括程式語言API的熟悉程度,能否靈活運用程式語言賦予的各種特性等,這部分內容的難度並不大,主要是能否透過專案經驗的積累不斷拓展應用面。很多語言的應用面比較廣,需要不斷學習新的內容。比如Java語言在Web開發、安卓開發、大資料開發領域都有針對的API,需要透過專案來不斷積累。
另一個層面是對演算法和資料結構的理解及運用。這部分內容還是具有一定難度的,需要一個系統的學習過程。程式設計是演算法加資料結構的整合,演算法是程式設計的靈魂,所以說程式設計說到底就是個數學問題,這也是為什麼計算機專業非常注重數學基礎課的原因。這部分內容的學習要以演算法設計為基礎進行逐漸展開,從基礎的演算法知識開始,逐漸深入對演算法的理解和運用。
另外,演算法設計和資料結構的選擇要與應用場景密切結合,不同的開發場景對演算法有不同的要求,比如在大資料領域一定要注重速度(秒級響應),但是在科學計算領域則要更注重精確度。不同的應用場景要使用不同的設計模式,這同樣需要一個系統的學習過程,如果有人指導一下會節省大量的學習時間。
對於程式設計新人來說,一個比較好的辦法是讀Linux系統的原始碼,透過讀Linux系統的原始碼不僅能夠深入瞭解Linux系統的體系結構,更能瞭解很多系統級程式設計的實現思路。
如果有程式設計方面的問題,也可以諮詢我。