標籤:

如何訓練自己的編程思路

最近一個周末班的學員,問黃哥你在講解編程思路訓練時,如何想到這個思路的。

首先要解決一個問題,學習編程是學習啥?是純學習語法嗎?

不是,是要學習計算思維,編程思路。

何為計算思維:nn計算思維(Computational Thinking)概念的提出是計算機學科發展的自然產物。nn第一次明確使用這一概念的是美國卡內基·梅隆大學周以真(Jeannette M. Wing)教授。nn計算思維是運用計算機科學的基礎概念去求解問題、設計系統和理解人類的行為;nn計算思維最根本的內容,即其本質是抽象和自動化。nn何為編程思路,望文生義,思路,思考的道路,方向也。n就是說,從哪裡下手,從哪裡著手解決問題。n其實就是計算思維的具體體現,用語法來表達解決問題的方法、演算法。n

沒有人天生會編程,計算機科學家總結了很多解決問題的方法(也就是演算法),現在學習編程,不是

從頭自己發明演算法,不是重新造輪子,站在巨人的肩膀上,學習計算機科學家總結出來的解決方法,利用

這些成熟的演算法,組合和微創新來解決自己的問題。

編程思路是訓練出來的(自我訓練或者跟著別人學習)。

黃哥python培訓,黃哥提醒大家解決問題時,要將任務切分,n大問題化解為小問題,其中有的小問題,已經有成熟的解決方案,直接拿來用,n剩下不會求解的小問題,那麼就集中解決它。nn訓練就是要學習成熟的解決問題的方法:if 語句用來做分支判斷,n循環用來解決反覆運算的問題。n窮舉法、遞推、遞歸、排序、n回溯等等(如果需要當專業程序員,需要學習數據結構和演算法,n設計模式等等,需要學的東西很多很多。n但首先要解決的一個問題是自己能寫代碼解決一般問題。)n訓練函數抽象,類抽象解決問題。nn如對有序數組,查找特定數值,沒有經過訓練,初學者,直接用循環遍歷。n如果經過二分法演算法的訓練,下次碰到這樣的問題,就用二分法求解。nn做習題,要像開發項目的流程一樣n(需求->需求分析->設計->編碼->測試->交付等),n拿到一個習題,還沒有進行分析,就匆匆忙忙敲代碼,n這個學習方法,是不好的學習方法。n先要分析清楚題目(所謂的需求分析,何為需求分析,請自己搜索),n再設計,用那種數據類型(數據結構)n來組織或保存數據,用何種演算法來計算效率最高,n用面向過程,還是面向對象的編程範式,還是用函數式編程等等。n設計後,再編寫代碼,最後寫測試。n(也可以採用軟體開發過程中的應用方法,測試驅動開發等)n

很多基礎的東西,對於程序員來說,認為是順理成章的事,但對於初學者有一個習慣的過程。

1、有超級小白學員問黃哥,計數循環為何要從1起。n 當時感覺很訝異,為啥有這樣的問題,n 這就是上面說的對於程序員來說,認為是順理成章的事,n 但對於初學者有一個習慣的過程。n 計數循環從1起是為了方便,大家從兒時數數,扳手指也是從1開始啊。n 如果從負100,開始計數,不是不可以,不方便啊。nn 2、對於這樣的問題。n python list中放二個變數,有初學者也不理解和習慣。n list 這個數據類型(或者說數據結構)中,可以放python任意對象。n python 中變數是對象的引用,當然也可以放變數。n computer = "剪刀"n people = "石頭"n guess_lst = [computer, people] n 相當於 guess_lst = ["剪刀", "石頭"]nn 3、看這個程序員認為理所當然的事情。n 跟黃哥學python序列文章之python方法鏈(method chaining)n https://zhuanlan.zhihu.com/p/20931492nn 4、多敲代碼,多訓練,才能找到感覺。n 不敲代碼,不知道會犯變數名前後敲錯了。n 不敲代碼,不知道會犯縮進錯誤。n 不敲代碼,不知道如何看python報錯信息快速排除錯誤。n ......................n

總結 (沒有人天生就有編程思路,編程思路是經過一定訓練後,養成的!)

黃哥python培訓,黃哥提醒大家如何才有思路,只有先經過訓練常見的演算法,n會分解問題,會做需求分析,慢慢訓練,才會養成自覺的思路。n沒有人一出生會編程,只有經過訓練,才會學會編程。n很多牛逼程序員用vim,敲的啪啪響,一會兒一屏幕代碼,n為啥那麼熟練使用vim,習慣成自然。n當你訓練多了以後,學會一定的套路(解決問題的方法),n養成獨立思考的習慣,假以時日,自然就有思路了。n養成獨立思考的習慣,養成切分問題,養成大問題化解小問題,n養成套用學過的演算法,才會有思路。n簡單的判斷、循環都不會寫,就想玩django,何來的思路?n萬丈高樓從地起,希望大家腳踏實地實地的從基礎訓練起,n先達到獨立寫代碼解決一般的問題,再談項目。n見過盲目上號稱牛逼項目的培訓班出來的程序員,n沒有學會獨立寫代碼解決一般的問題的能力,開發項目時如狗咬刺蝟無從下手。n

共勉!

黃哥寫於2016-5-22 早晨 北京

諮詢qq:1465376564

點擊黃哥python培訓試看視頻播放地址

216小時學會Python

article/hours_216.md at master · pythonpeixun/article · GitHub

本人qq 不提供非學員答疑服務,需要一對一答疑請到值乎提問

推薦閱讀:

TAG:Python |