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