1. 程式人生 > >(如數據結構算法題)編程不是難在處理問題的思路,而在用代碼將思路描述出來。

(如數據結構算法題)編程不是難在處理問題的思路,而在用代碼將思路描述出來。

思維 正常 一次 cte -- 習慣 加減 想要 not

初學編程總覺得好簡單,不就是加減乘除,或者什麽,思路太簡單了,就這樣這樣做就可以了,代碼就不用寫了,反正這麽簡單。

其實難就難在,如何用代碼這種語言將你的思路書寫下來。

寫代碼會受到很多的限制,你想要這樣幹,但你要如何讓機器這樣幹。

  編程所要做的唯一一件事就是:拆分。

  拆分一整個件事成為一個個步驟---->流程圖。

  拆分流程圖中每一個步驟成為更詳細的、具體的----->一條條代碼。

  所以流程圖是人腦中的大邏輯框架,不畫出這個大框架,則會在更細節的代碼中迷失。

由於拆分出來的一個個細節步驟(每條代碼)太過於細碎,人很容易犯錯,有時候很容易想當然,於是就會跳過或略過一些步驟,導致機器執行not as expected.

思考的時候就要把每個細節都拆分出來,想好每一步細節之後,每個細節要與代碼對應好。

像C這種面向過程的語言,有時候調試經常是調整一些代碼的先後執行順序,代碼就正常運行了,這就是在思考細節的時候想當然造成的,沒思考清楚就跑去寫代碼,導致代碼的邏輯越來越混亂。

依靠調試來解決問題是很不好的習慣,會給你的思維漏洞提供借口,你思維的縝密性難以提高,you will always take your mistakes for granted,你想反正還有調試呢怕什麽,但是調試的效果遠不如你一次吧框架想清楚,不會把代碼邏輯搞得亂七八糟。

  

(如數據結構算法題)編程不是難在處理問題的思路,而在用代碼將思路描述出來。