程員修煉之路:
主要講解作爲一個職業程序員如何成長,關於方法路,關於如何交流,如何選擇工具,打磨工具,更新知識,少量關於debug和算法複雜度相關的知識。
比較令人印象深刻的是在bug面前不要先想“”這不可能“, “”這是可能別人的代碼引入的錯誤”,或者在項目deadline面前出現bug比較恐慌,人爲的恐慌無助於問題的解決,應專注於問題的解決。應該透過表面對錯誤之前的代碼進行Tracking,找出可能的問題。
最可怕的一類的bug叫做Hessanburg bug,你debug的過程會對bug影像,這類bug多半是因爲編譯未明確定義的行爲做成,類似i = i++; i = ++i; 你不知道到底實際上編譯器是如何處理的。
關於代碼的安全方面基本與華爲可信要求差不多,不要用fget之類的危險函數,strcpy不要定義str(A, A+3)這種,不安全。但是這本書推薦在發佈版本的代碼中採用assert,我們不推薦的原因是如果斷定不會出現這種情況,那麼release版本assert會降低運行速度。
深入理解計算機系統
這本書基本上是講計算機程序運行的原理,不是操作系統原理
1、程序的機構和執行 信號和程序的表示和處理 處理器架構和存儲結構 優化程序性能
2、在系統上運行程序 程序鏈接 和 內存管理 以及異常控制流
3、程序間的交互通信 主要說系統IO 網絡編程 以及併發編程(進程線程信號傳遞)