如何捅破編程中「理論知識」和「實際應用」的窗戶紙?
來源:互聯網
上載者:User
你們是怎麼經曆「把理論應用於實踐」這個階段的呢?
我看著那些理論性的知識,比如庫啊資料結構之類的時候會產生「不知有什麼用」或者「可以用到哪裡啊?」的想法。
或者我有一個想法想要用python或其他語言實現的時候,我會不知道該用什麼知識解決……
回複內容:
才沒有什麼窗戶紙呢,都是承重牆。沒有你想的那麼容易。
沒有什麼想象中的窗戶紙。沒有捷徑。
不會就是不會,努力不夠唄。為什麼要打擊題主?高票的答主,別說得好像自己是一蹴而就或者天賦異稟一樣啊。今天你們站在高處,也是一個一個台階走上來的,上一個台階的時候,跟捅破窗戶紙恐怖沒有多大分別吧?
回到問題:“如何捅破編程中「理論知識」和「實際應用」的窗戶紙?”
既然題主讀書時“會產生「不知有什麼用」或者「可以用到哪裡啊?」的想法”,那麼我不知道你有沒有讀下去。如果沒有,我建議你第一件事就是壓住內心的想法,讀完,接受書本裡的知識。我接下來會假定你讀完了,掌握了一定的“理論知識”。
然後怎麼走向“實際應用”呢?四個字:循序漸進。
每本書裡都會有一些習題,比如“給出年月日,計算其為當年的第幾天?”之類的,是一種很實際應用的題目,好好寫代碼做一下。慢慢地你就做到“有一個背包,有許多不同大小的糖果,怎麼樣可以裝最多糖果”之類的問題了,非常的實用,你甚至可以發現這個代碼可以解決你一個月生活費只有800塊錢,要做的事情有 ABCDEDFGHIJKLMN 件不同代價的事,怎麼樣在有限的預算下讓生活過得更好的問題。也就是節流。
人生除了節流,還需要開源。就是做點別人肯給錢的事。一開始,你可以去論壇、去什麼外包網,看看,有一些一個人就能做完的小項目,接來做做。
然後你會覺得你有能夠完善這些小項目的更好的想法,你就開始自己進一步地完善它。恭喜你,已經跨上了這個台階,捅破了這層窗戶紙。如果你會有「這個理論不知道有毛用」的感受
換個老師吧人有從學者,遇不肯教,而雲‘必當先讀百遍’。言‘讀書百遍而義自見。’”多做多總結。
想做的很牛叉,最後還是要看天賦。很多編程上東西不是學會再去用,而是在用的過程中去學會。但是無論哪種方法吧,都有一定局限性,畢竟還是要結合起來,就像在兩個雞蛋上跳舞,踩破哪個都不行。Just捅。不知道資料結構,演算法怎麼用,這個簡單,把資料結構書每章後面的題目做一遍,或者至少看一遍可能是你看的書不對頭。比如黑皮書《資料結構與演算法》裡講棧的時候,舉了逆波蘭運算式的解析、函數傳參的例子,尾遞迴的消除等等。看了你就知道這資料結構、演算法是幹什麼的了。另外資料結構這種東西要多刷題,各oj上有大量好題,做得多了自然就有感覺了。
工程上多造輪子,多讀與自己水平相近的源碼,結合文檔和注釋去看,去模仿。學什麼就想著用它做個能用的東西。比如學Python,就先讀小的Python網站的代碼,去試著實現知乎的功能。學iOS就找別人寫的小demo,模仿著自己做一個,再慢慢加功能,做個微部落格戶端什麼的。然後學到新東西就試著去改進,去重構。
生命不息,造輪不止!我也問過我的老師類似的問題,老師的回答是:”敲個幾萬行代碼,什麼都懂啦!“。