忘了名字的書,
《C語言程序設計》(老譚版)
《高質量程序設計》
《C陷阱與缺陷》
《C專家編程》
《程序員成長計劃》
《UNIX環境高級編程》
《深入理解計算機系統》
《代碼大全》
《編程精粹》
《重構》(在讀)
按照自己的閱讀順序羅列了以上書籍,
基本都全部看完的(重構是正在看,已經看了三分之一)。
第零本,忘記名字的書,當時就是按照書中的代碼,敲到VC中,看執行結果。這樣做了兩個多月(下晚自習后去,大一強制自習)。雖然現在看,當時這樣做效率很低。有時候敲代碼都會敲錯,但這個過程教會了自己如何敲程序,如何找到程序中的錯誤。同時提高了自己敲代碼的速度。
第一本《C語言程序設計》(老譚版)是自己當時為了準備考二級時,看的。后來上C語言課時,也對應學校的教材一起翻翻。對于這本書,應該說就是入門的。據說這個上邊,關于一些東西講的有些問題,但是沒有去求證過,不得而知。
第二本書是《高質量程序設計》(林銳博士),據說這本書最后的附錄中的測試題,有可能出現在應屆生的招聘筆試題中,這個可以確認。當時自己畢業時,參加的一個筆試中,就有從哪些題中選出來的,幾乎沒有變動。這本書,讓自己知道了C還有哪些入門后不知道的東西,印象深的是,變量命名,以及預編譯,程序優化等一些技巧。由于這本書是講c/C++,所以只看了一部分,關于c++部分沒有看。
這兩本書,都已經送人。
第三本是《C陷阱與缺陷》,閱讀時對里邊很多地方印象很深,對自己以后程序設計,起到了一些潛移默化的作用。一本薄薄的100多頁的書,不到兩天就讀完了,后來也陸陸續續回頭看過一些。
第四本是《C專家編程》,這本書第一次沒怎么看懂,,懵懵懂懂。應該說是第一次看的時候,找不出問題。不知道自己哪里不了解,需要了解哪里。以至于就泛泛看看。后來看了《深入理解計算機系統》,又回頭將里邊關于函數調用,連接等看了看,發現有理解了很多。后來在實際工作中,遇到指針與數組訪問時間的困惑,以及指針數組的異同,又在這本書中找到了答案。這本書,適合通讀一邊后,有困惑的時候回頭看看。每一次都會有不一樣的收獲。
第五本是《程序員成長計劃》,在自己剛開始實習的時候通過這本書了解了,Linux下編程的一些知識。對于初入編程的人,有很大的幫助。能教會我們很多平時想不到的用法。能夠從應用的角度,理解C的編程思想。這里邊了解C的回調函數,函數指針,隔離變化,以及使用面向對象的思想編寫C程序,介紹了makefile的一些基礎東西。講的都挺實用的。
第六本是《UNIX環境高級編程》,在看完《程序員成長計劃》后,發現對于Linux編程環境還不是很了解,于是看是看這本書。這本書讓自己了解到,C程序在類UNIX環境中,執行的過程。從最初加載code到memory,到C程序的內存分布,code,bss,data,以及庫在內存中的放置的位置,解決了很長時間困擾的問題。同時了解了很多在UNIX下的系統調用,了解了多線程以及使用。還有就是關于一些標準,對于Linux下編程感覺有必要了解下。
第七本書是《深入理解計算機系統》,這本書讓自己對于計算機系統有一個頓悟式的理解。解決了很多以前長期困擾的問題:為什么需要cache;內存溢出為什么可能會導致程序崩潰;函數是如何調用的;malloc了一塊內存,在系統是如何保存大小,以及釋放時怎么獲取大小;為什么需要多核;如何優化多線程下的代碼。如果是用C,如果要理解計算機系統組成,這本書是很值得推薦的。
第八本書《代碼大全》,這本書是讓我們從一個代碼寫給自己看的成長為一個代碼寫給大家看的一本書。這本書,以程序構建為主線,實現可讀性,降低程序復雜度為目標。展示了如何寫出易讀代碼 ,如何降低復雜度,以讓別人更容易閱讀,理解,與維護我們的代碼。對于步入工作,或者提高程序規范性而言這個本書,是首選。讓我們從一個門外漢的角度,看一些專業的編程者,是如何進行他們的工作的。這本書更優秀的一點是,它推薦了很多書,通過閱讀這本書,我們就會知道接下來我們將要看什么書。
第九本書是《編程精粹》,這本書就是通過《代碼大全》的推薦發現的。有人稱這本書是“被遺忘的珍珠”。這本書,確實是一本能夠幫助我們提高編程質量的書。借助于作者在Mircosoft時office系列的工作,總結了如何編寫高質量程序的經驗。很多總結都是很實用的,避免了我們自己再去通過無數的實踐去總結,也就變相的幫助了我們節省了很多成本(時間,精力,還有心情)。
第十本是《重構》,這本書也是《代碼大全》推薦的。對于這本書,在編程階段的優勢還沒有感觸很深,但是對于維護代碼已經是獲益匪淺。通過書中的一些方法,將程序變得更易閱讀更易理解,也更易于維護。書中的一些總結,也能幫助我們在編程過程中,逐步改變代碼質量。
由于自己是電子方面專業,對于計算機一些書的了解是通過同學介紹的,在初期想看關于C更深入的書,但是無從得知。在網上能找到的就是《C陷阱與缺陷》,《C專家編程》,《C和指針》當時似乎沒有加C的就不是應該看得。。
因此,錯過了《深入理解計算機系統》,錯過了《代碼大全》,兩本十分優秀的書。直到工作中,才慢慢體會到他們的益出。這兩本書,讓我明白了什么是程序,如何寫程序,深入語言編程,而不是在語言上編程。
從以上羅列的書籍中,發現自己更多的是對于C的工程應用,并沒有深入很多人說的算法內容,這里之所以沒有提到關于算法的書,因為對于自己專業就有很多理論的東西去琢磨。對于C會先考慮應用與專業的結合。
《代碼大全》定義的專業程序員:
第一級:入門級,入門者會利用某語言的基本功能,編寫類,子程序,循環和條件語句,會使用語言的許多特性。
第二級:中級,中級的程序員已經度過入門期,能利用多種語言的基本功能,并會得心應手地使用至少一種語言。
第三級:熟練級,熟練級的程序員對語言或環境有著專業技能。
第四級:技術帶頭人,技術帶頭人具有第三級的專業才學,并明白編程工作中只有15%用來和計算機交互,其余都是與人打交道的。
當然每一個人,都有自己的成長環境,總會有當時的理解與不理解。在學習中沒有彎路與捷徑,只有收獲的多少。這個過程是一個學會學習的過程。在以后的學習中,也會獲益更多。
附:
幾篇讀書筆記:
[http://blog.csdn.net/tietao/article/details/9798877](http://blog.csdn.net/tietao/article/details/9798877)
[《編程精粹》思之代碼與產品](http://blog.csdn.net/tietao/article/details/9798877)
[http://blog.csdn.net/tietao/article/details/9798791](http://blog.csdn.net/tietao/article/details/9798791)
[《代碼大全》筆記](http://blog.csdn.net/tietao/article/details/9798791)
[http://blog.csdn.net/tietao/article/details/8457299](http://blog.csdn.net/tietao/article/details/8457299)
[Out-of-Bounds Memory References and Buffer Overflow](http://blog.csdn.net/tietao/article/details/8457299)
[http://blog.csdn.net/tietao/article/details/8172411](http://blog.csdn.net/tietao/article/details/8172411)
[誤解程序運行(從單片機到開始)](http://blog.csdn.net/tietao/article/details/8172411)
[http://blog.csdn.net/tietao/article/details/8712973](http://blog.csdn.net/tietao/article/details/8712973)
《大數據時代》之后
[http://blog.csdn.net/tietao/article/details/8623401](http://blog.csdn.net/tietao/article/details/8623401)
將要到來的三大技術革命與聯系
- 前言
- 讀《Linux內核設計與實現》我想到了這些書
- 夢想的啟航,那些年,那些書
- C++和Windows平臺的一些書籍
- java一路走來
- 《Android入門之旅》
- 致我們終將逝去的青春-PHP篇
- 多讀書,讀好書
- 這些年,那些我們一起讀過的代碼
- C++碼農要讀的經典
- 閱讀IT類圖書,能夠收獲什么
- 讀完《大數據時代》的一點兒心得
- 這些日子我讀過的《java編程思想》
- 關于C,看過的一些書
- Android系統深度游
- 《《內存和性能優化》》給我帶來的!
- 「書評」SAP內存計算——HANA
- 書籍記錄了我技術的成長歷程
- 那一年讀過的技術經典書
- 【時間規劃】C/C++發展之路--讀書
- UNIX 環境高級編程之我見
- 游戲開發圖書推薦--我讀過的技術經典圖書
- 自己動手寫操作系統-經典書籍
- 游戲升級之路
- 《SQL Server 2005開發技術大全》分享一本書
- 書,永遠的朋友
- 學生時代的書單
- 追求技術之路 - 那些陪伴我的書籍
- 經典書籍--好書很多,重要的是有個目標,有個規劃
- android系統深入開發
- 這些年一路相伴的書
- 從零開始學
- 這些年我讀過的技術經典圖書(附電子版下載地址)
- 書--益友--從不孤單
- 給自己時間沉淀下來
- 那些支持我學習與工作的良師益友
- 文章千古事、得失寸心知
- 從Linux 驅動到游戲可視化轉行要讀的書
- 那些年,我們一起讀過的《JAVA與模式》
- 往事不堪回首 -- 多讀書
- 我程序人生的啟蒙書
- 一個不喜歡讀書的Javaer的讀書單
- 一本書,讓我走上編程之路
- 程序員讀書的五重天
- 大學那會兒,我讀過的技術經典圖書
- C語言高手進階的三碟小菜和一盤大餐