1. 程式人生 > >如何提高編程能力?

如何提高編程能力?

基礎知識 很慢 title 課程 tle itl 困難 把手 毅力

其實很多人學編程都會遇到困難,我覺得其中一個根本原因是他們沒搞明白學編程到底是學什麽。
編程不是一種知識,而是一門手藝。 我們從小到大的學習都是學習知識,流程一般是課前看書預習,上課聽講,下課做作業,然後復習考試。但是學手藝可不是這麽學的。 我們先拿遊泳舉例,遊泳不是知識,而是技能,也可以算門手藝吧。需要預習嗎?需要上課聽講嗎?不需要,因為兩歲小孩都能學會遊泳,他們連話都不太會說呢,怎麽可能聽課預習呢。遊泳是通過在水裏的練習,教練手把手地傳授動作,一點一點提高熟練度學會的。 我們再來看看彈琴,學鋼琴一定要有鋼琴,音樂基礎知識也是老師在練琴間隙傳授的,並且一定會結合練習,另外練琴時間是很重要的,必須保證一定的練習量,有些理想遠大的琴童練琴時間可以用慘無人道喪心病狂來形容。 千萬別把編程看作知識,計算機科學是知識,但是編程是手藝。既然是手藝就要用學手藝的思路去學習。 以動手練習為主,看書學習為輔,甚至極端點,初學的時候除了看必要的文檔都可以不看書,等有了一定編程基礎後再去看書,看完書立刻動手編程去驗證書上的理論知識。練習一定要循序漸進,把手藝分解成幾個簡單的動作,反復練習直到熟練,然後再把基本動作組合起來練習直到熟練。拿C語言舉例,比如從認真寫好一個Hello world開始,然後去熟悉 if for while 等基本關鍵字,然後熟悉字符串操作,內存操作,練習查找 排序 二叉樹等基本算法數據結構,然後學習一個小型Framework。。。。找個師傅,手藝的一大特點就是自學是很慢的,而且容易走彎路,而有人手把手教要快得多,手藝有很多細節,實際操作經驗,需要去體會感受的東西,這些細節書上基本不會有。堅持做大量的練習,以代碼行數為例,每年50000行左右是比較一般的練習量,有毅力的話可以挑戰10萬行。(有人說代碼行數不代表什麽,行數多不見得程序就對,寫得好的程序代碼很少blablabla,滾,去跟朗朗說去,告訴他其實不用練那麽長時間琴。) 回憶下自己當年是怎麽學會騎自行車,學會遊泳,學會打籃球的,按照那個思路去學編程,而不是用你學大學課程的思路去學編程。 記住,編程是手藝,不是知識。 ======最後再強調下,對編程能力本質最好的比喻就是彈琴。但是有了編程能力還不能算優秀的程序員,優秀的程序員是作曲家,他們不僅能想出優美的旋律,並且能彈奏出來,就像優秀的程序員不僅能想出優美的算法架構,而且能把它變成可執行代碼。你很難想像作曲的人不會任何樂器。
很多人的問題是想當作曲家卻不肯下功夫去練琴。 打個預防針,估計有人會舉出反例說我就知道某某某作曲家不會樂器(其實真的有)。我要說的是,等你成了公認的著名作曲家之後再說自己不會樂器,那你牛逼。在成名之前就這麽說那是煞筆。

來自為知筆記(Wiz)

如何提高編程能力?