天天看點

飛龍的程式員書單 – 程式設計語言

C

C程式設計語言

丢掉老譚的那本書吧,這本書才是最好的入門書。這本書兩百多頁,語言簡潔,但又覆寫到了C語言的每個方面。然而這本書不僅僅講解C語言,還附帶講解了二分查找、快速排序、二叉樹、哈希表這些重要的資料結構和算法。甚至為了解釋讓人頭疼的複雜聲明,寫了一個遞歸下降的parser。就算你不是拿此書入門的,也可以放在手頭當作參考書來用。

C和指針

可以說,選擇了C語言就選擇了指針,C語言和其它語言不同的一點就是,C語言避不開指針。這本書的确詳細講了高階指針的複雜邏輯,解釋了指針與數組和字元串的關系,但它又不是一本僅僅講指針的書。Pointer也可以了解為建議或者提示,書中也的确給了一些C語言程式設計的技巧和提示,這才是此書的本意。

C語言程式設計現代方法

C語言的文法相對簡單,是以書非常薄;然而,文法簡單就意味着你要手寫更多的代碼來實作本該由編譯器實作的特性,是以在實踐中用好C語言極其困難。這是一本相對較新的書。我推薦此書的原因是,它的重點是“現代”的C語言。此書強調現代的軟體開發,不再強調作坊式的手工優化。書中有大量的執行個體,關于如何在實踐中用好C語言,讓C語言在實際開發中發揮作用,而不是隻是停留在考試與刷題上面。

C++

C++最近處在一個不穩定的狀态,很多新的特性和标準庫設施的加入使得開發者需要重新熟悉和審視一些東西。現代的C++開發,要充分利用新的标準庫,盡可能摒棄繼承自C的糟粕。是以這方面的書務必要看最新的。

入門

C++ Primer

如果隻能選擇一本C++入門書,那麼絕對是它了。第五版根據C++11标準修訂,将STL、string和智能指針在相應的章節提前講解,并且一開始就預設使用vector和string,符合C++現代程式設計規範。

完美C++

傳說中的Absolute C++,其翻譯從第二版直接跨越到了第五版。我記憶尤其深刻的一句話就是,“掌握了變量的使用,就入門了程式設計”。如果你閱讀C++ Primer覺得吃力,不妨看看這本書。

進階

Effective 系列

所謂“最佳實踐”,就是前人在編寫代碼時過程中思考并總結出的一些東西。我們的時間有限,要想提升項目品質,就要讀effective系列的書。尤其是對于沒有什麼開發經驗的應屆生,不可不讀。

深入了解C++11

此書是C++标準委員會代表和IBM XL編譯器中國開發團隊共同撰寫,全面解析C++11新增特性。想要寫出符合現代C++規範的代碼,不可不了解C++11的新特性。

C++程式設計原理與實踐

這本書不羅列枯燥無味的概念和知識,相反,每個特性都用了簡短的例子來說明如何在實戰中使用。書中還給出了兩個綜合的示例,一個是使用詞法分析編寫一個解析表達式的電腦;另外一個是使用面向對象思想如何構造一個複雜的GUI程式。有趣的是,這本書毫無提及到指針,說明了指針在C++中其實不是必要的。但是總是把對象放在棧上也不友善,現在智能指針出來之後,我們完全可以繞過原生指針了。

參考

C++标準庫

此書第一版是2003年出版的,對應C++03,為了迎接C++11,13年來首次再版。由于标準庫加入了許多新的設施,此書也從800頁增加到了1100多頁。

C++程式設計語言

這本書更像是C++文法及特性的參考,拿來入門不太合适。适合放在手頭參閱。另外這本書已經有了國際中文版,gotop出版的。

Java

Java程式設計思想

Java是完全面向對象的,學習Java就要先入為主有對象的概念,這一點來說,這本書做的不錯。這本書不會過多提及語言特性,而是順帶講解面向對象的一些思想,引人深思。

Java核心技術 系列

這兩本書的特點是比較簡略,并帶有同C++的比較,便于C++程式員遷移。卷一除了基本文法之外,還講解了容器和并發這兩個現代程式設計語言中重要的概念。圖形程式設計部分可以跳讀。卷二雖然是進階特性,但是其中的io、檔案系統、正規表達式、網絡、jdbc也是日常程式設計中非常常用的元件,不可不看。個人認為這套書的組織比較混亂,如果把第二本的那三章重要的部分放進第一本,第一本的圖形程式設計放到第二版,會更好一點。

Effective java 深入了解Java虛拟機

要想多快好省編寫java程式,不可不了解jvm。

Java特種兵(上冊)

由于是進階書,這本書并不會詳細講解每一個知識點,而是對實際開發中常用的元件和一些坑做了梳理。另外此書還對程式設計中一些共性的問題,比如架構和實際開發的體會做了一些闡述。

寫給大忙人看的Java SE 8

由于java8推出之時,java核心技術沒有及時更新,這本書算是對java核心技術的很好的補充。

Java技術手冊

C#

C#入門經典 C# 進階程式設計 C# 圖解教程 精通 C#

别被書名吓到,這四本其實都是入門用的書籍。挑一本看就行了,或者你喜歡看MSDN的程式設計指南也可以。

深入了解C#

這本書是介紹c#新特性的書,按照曆史發展順序,從.net1.0到5.0對新特性做了解釋和使用示例。

CLR via C#

.net平台之于c#相當于jvm之于java,重要性不言而喻。此書是深入了解c#底層.net平台的最佳讀物。

這部分的書籍不做推薦,因為MSDN的

.net類庫參考

已經很翔實了,可以直接去翻閱。

Python

說實話,Python的免費教程很多,而且品質也不錯,涵蓋的範圍遠比書籍要寬,更新也比較及時。這裡我隻是把看過而且覺得不錯的書列出來。

Python核心程式設計 Python基礎教程 “笨辦法”學Python

這本書是開放的,在很多文檔站上都可以找到,比如

這裡

Effective Python