不少剛剛進入大學,或者是預備進入大學計算機專業的同窗,本身剛剛接觸C語言和數據結構知識,在老師佈置某些項目做業的時候就感受一臉懵逼,感受完成項目做業感受好難,可是又好奇那些項目是怎麼完成的,思惟會很混亂,因此就想看看別人一些邏輯清楚的代碼,本身慢慢照着敲!那麼這樣作,對本身編程能力的提升有用嗎?程序員
固然,對於一些不會作又不肯意找方法的同窗,甚至於問同窗要一份交上去的那種,本文可能就對你沒有幫助了。編程
就像咱們剛剛說的,找別人邏輯清晰的代碼,照着去敲,而後慢慢默寫直至記下來,這種方式到底有沒有效果呢?微信
先說結論,在沒有搞懂原理的狀況下,效果是有(確定比不作的好),可是實際上效果就頗有限了。數據結構
大學時期數據結構的大做業,你以爲難,除了語言自己掌握不熟,更關鍵的應該是對b+樹、二叉樹甚至鏈表等數據結構的理解實現上遇到了障礙,兩個問題咱們依次討論吧。學習
首先,就語言而言,任何一門語言,你要精通很難,但其實只要努力一點,達到夠用仍是很容易的。以個人經驗而言,提升語言能力最簡單的辦法就是看書和刷題。大學的教材《C語言程序設計》《C Primer Plus》就是很好的入門書籍,讀完以後還推薦《C專家編程》,頗有意思的一本書。在看書的同時,也能夠在各個刷題網站從易到難刷一些編程題,這裏推薦ZOJ(http://acm.zju.edu.cn/public/)、POJ(http://poj.org/)和LeetCode(https://leetcode.com/)。網站
其次,就數據結構自己,我記得教材其實寫得很詳細,每種數據結構不只有配圖,都有給出部分代碼或者僞代碼,若是仍是有些不太理解,建議直接google百度(或者bilibili,笑),有網友們更通俗的圖文或者視頻講解。很是不建議在沒有搞懂原理的狀況下就去直接肝源碼,好比一個B+樹,若是你沒有搞清楚結構原理,你看代碼很難理解它的子節點爲什麼這樣分配;這和體檢時背視力表差異不大(雖然這事我也幹過,笑)。google
有了這兩個前提,其實你就已經可以自主完成做業了,不過,我反而建議你此時能夠先閱讀一下一些優秀的源代碼,這個時候你就能在理解的基礎上,看到別人是怎麼以更清晰的思路或者更巧妙的設計實現功能的。此時,至於大做業,想必你也就有了十足的把握。spa
數據結構如此,其實在工業界,各類工做也都如此。不理解設計思路,直接看代碼、每每會忽視一些關鍵的設計,致使實現和修改的時候出現問題。入職的時候師傅一直向我強調「理解至上」,我想再加上師傅沒說但一直身體力行的下半句「勤奮輔之」——「理解至上、勤奮輔之」,應該能夠做爲學習和工做的座右銘,與你共勉。設計
想提高你的編程能力,成爲一個強大的程序員找到一份好工做嗎?不妨和一些志同道合的小夥伴一塊兒學習成長!code
C語言C++編程學習交流圈子,【點擊進入】微信公衆號:C語言編程學習基地
有一些源碼和資料分享,歡迎轉行也學習編程的夥伴,和你們一塊兒交流成長會比本身琢磨更快哦!
原文連接:https://www.zhihu.com/question/387940895/answer/1349932032