有哪些書值得一看?
需要綜合看待這個問題。
第一:學習的動力
興趣是最好的驅動力。記得上學時除了正常上課之外,周末時間都是在隔壁學校的機房度過。設定很多編程題目進行練習,當輸出正確之后,會把代碼打印出來進行再思考。
第二:學習基礎
邏輯是編程的基礎,而邏輯學是融入在數學課程之中的。說到這里,覺得邏輯教育領域沒有單獨教學還是挺可惜的。工作后又補充看了一些邏輯書籍。這里展示一本簡單參考。
第三:幾本經典語言書籍
c是典型的過程語言,由三種語句結構組成。分別是順序語句、判斷語句及循環語句組成。編程就是將這三種句型穿插使用。最好看機械工業出版社外文翻譯類書籍,一定物超所值。該出版社的品味還是值得信任的。
再就是數據結構,比如數組、鏈表、樹等等。這是屬于能力進階不可跨越的內容。前人的經驗總結,可以讓我們快速進步。
對操作系統也需要有基本的掌握,下面這本書剛在京東找時,發現封面搞得很時尚,比我買的那個版本炫多了。看這本書是要求搞明白什么是進程,什么是線程,什么是句柄等。如何使用系統內置的信號量(原子加減、鎖、互斥區等)來完成線程間數據同步等。
Stl標準庫有興趣也看看,只是臺灣人說話習慣有點差異,慢慢習慣吧
另外的一些經歷與建議:
在學校學習,講解到指針時真是云里霧里,遞歸更是沒有講解就期末考試了。
現在回想起來,指針真是c語言最大的敗筆之處。當初發明指針應該是考慮快速執行,現在計算機運算速度極快,這點開銷應該可以忽略不計了。商業軟件經常因為指針造成野地址~內存泄露等coredump問題。比如程序為了便于維護,通常會采用mvc結構。其中的數據類是需要對外隔離的,當外面使用時一般需要復制。此時數據類使用指針反而會比較麻煩。
遞歸是一個很好的編程技巧,在數據結構一書中一定會提到。只要掌握基本的語句調試技巧,死循環還是比較簡單被識別的。