初學程式設計丨應該如何培養自己的程式設計思維?技術大牛告訴你這麼做
首先我們要明白一點,我們學習程式設計到底在學習什麼?並不是單純的只是學某個語言的語法,而是程式設計思維。只有掌握了正當的程式設計思維,我們才能真正去應對這個語言所出現的問題。才能把這個語言相關的程式設計題用程式碼實現出來,用計算機程式設計思維去思考問題,而不是在學習死知識。如果你贊同我這個說法的話,我們接著往下看。
思考問題的方式,方向,解決問題的方法,也就是說應該從哪裡入手,從哪裡著手去解決問題。
每個人都是從零基礎開始接觸程式設計的,很多技術大牛總結了很多經驗、解決問題的方式。而現在作為一個程式設計初學者,我們不需要重新造輪子。我們只需要跟隨前輩們腳步,避免重複去走他們已經走過的彎路,也可以說我們現在做的一切都是站在巨人的肩膀來進行的。學習前輩們的經驗和解決問題的方式,然後結合自身來解決自己的問題,最終融會貫通為自己所用。
建議大家,解決問題的時候,首先要把問題分解。大化小,很多小問題已經有了非常成熟的解決方案,搜尋引擎可以解決大部分問題,我們直接拿來用就可以了,並且記住這種解決問題的方案。而剩下解決不了的小問題,我們在進行針對性解決,每一個小問題解決後,一整塊大問題就隨之解決。
程式設計思維的訓練就是要學習成熟的解決問題的方法:比如if 語句用來做分支判斷,迴圈用來解決反覆運算的問題。窮舉法、遞推、遞迴、排序、回溯等等(如果需要當專業程式設計師,需要學習資料結構和演算法,設計模式等等,需要學的東西很多很多。但首先要解決的一個問題是自己能寫程式碼解決一般問題。)
訓練函式抽象,類抽象解決問題。如對有序陣列,查詢特定數值,沒有經過訓練,初學者,直接用迴圈遍歷。如果經過二分法演算法的訓練,下次碰到這樣的問題,就用二分法求解。
做習題,要像開發專案的流程一樣
(需求->需求分析->設計->編碼->測試->交付等)
拿到一個習題,還沒有進行分析,就馬上敲程式碼,這個學習方式,是不好的學習方式。
首先分析題目,再設計,用哪種資料型別(資料結構)來組織或儲存資料,用何種演算法來計算效率最高,用面向過程,還是面向物件的程式設計正規化,還是用函數語言程式設計等等。設計後,再編寫程式碼,最後寫測試。
只有先經過訓練常見的演算法,分解問題,會做需求分析,慢慢訓練,才會養成自己的思路。沒有人一出生會程式設計,只有經過訓練,才會學會程式設計。很多牛逼程式設計師用vim,敲的啪啪響,一會兒一螢幕程式碼,為啥那麼熟練使用vim,習慣成自然。當你訓練多了以後,學會一定的套路(解決問題的方法),養成獨立思考的習慣,假以時日,自然就有思路了。
養成獨立思考的習慣,養成切分問題,養成大問題化解小問題,養成套用學過的演算法,才會有思路。簡單的判斷、迴圈都不會寫,就想玩django,何來的思路?
萬丈高樓從地起,希望大家腳踏實地實地的從基礎訓練起,先達到獨立寫程式碼解決一般的問題,再談專案。
自學C/C 程式設計難度很大,不妨和一些志同道合的小夥伴一起學習成長!