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