2016年,你讀過的最好的IT技術書有哪幾本?
2016年已經悄然過去,過去的一年裡,你都讀過了哪些技術好書,可以推薦給我們嗎?讓大家沒事的時候在2017年補補課,學習學習。哈哈
今年讀的安全技術書籍不少,真正值得拿出來推薦的卻不多。
1.《漏洞戰爭》漏洞戰爭是今年的新書,我個人覺得也是今年新書中最值得看的一本。泉哥在書中分享了很多漏洞調試的經驗技巧,尤其能幫助新手有效的避坑,這種分享精神難能可貴。2.《程序員的自我修養》
這是本老書,但我最近才買來看。作者底層功底紮實,講起編譯、鏈接的原理來也是娓娓道來,好看又漲姿勢。缺點是絕大部分技術人員都沒有研究底層原理的需求,可能更適合底層安全人員去讀。
值得推薦的基本上就這兩本,最近還讀了一本《WebKit技術內幕》感覺還不錯,但是對瀏覽器技術不是特別熟悉不敢妄加評價。《統計學習方法》。這是我看過的講傳統機器學習模型講的最有邏輯的中文書!想學機器學習/數據分析/數據挖掘的,先看看這本書,再決定是不是要真的做這些。相比周志華的西瓜書,這本書的推導很詳細很有邏輯,對初學者很友好。
沒有讀完,還在讀,HTTP權威指南,感覺不錯,通過這本書,自己對http的理解有所加深,
2016年看了很多書,把比較不錯的總結一下
線路一- Go語言學習筆記 (豆瓣)(深入淺出得講解了go的運行原理)
- 自己動手寫Java虛擬機 (豆瓣)(結合java虛擬機規範 很清楚的理解了jvm的工作原理,同時也熟悉了go)
- Virtual Machines: Versatile Platforms for Systems and Processes(特別贊的一本虛擬機入門讀物)
垃圾回收的演算法與實現
- 演算法設計與分析基礎
- 演算法概論
- Android內核剖析
- Android系統源代碼情景分析
- Engineering a Compiler
- Advanced Compiler Design and Implementation
- TCP/IP Illustrated, Volume 1: The Protocols
- Unix Network Programming: Networking APIs: Sockets and XTI (Volume 1)
- Advanced Programming in the Unix Environment
作為一隻弱菜就不說最好了,只說去年看過的。
- An introduction to programming in go,這本寫的簡單易懂,雖然是英文版,但是把channel、並發什麼的講的也算是通俗易懂,對於初學者很友好,缺點就在於講的有點太淺了,絕大部分都在講語法如何使用。
- Effective Go,學Go的必讀文檔,不過寫的風格的話我不是很喜歡,希望今年再重讀一遍。
- 數學之美,吳軍寫的,感覺用很簡單的語言把數學講的so easy,去讀一下肯定不會錯的,尤其是很仔細的講了自然語言、分詞以及搜索的知識,如果對搜索感興趣可以拿來入門,講的很贊(看完給人的感覺是我也能直接寫出來一個小玩意,然而事實上是還欠缺很多,需要反覆去重新讀一些重點章節)。
- 推薦系統實踐,入職前leader讓我讀的,講的也挺易懂,沒什麼基礎不了解推薦系統的人也可以看得懂,能明白推薦究竟是怎麼回事。
- 代碼大全,這本書就不用解釋了吧,程序員必讀。前邊很多偏軟體工程的內容,通讀了一遍沒有仔細去領悟,希望今年再仔細讀一遍。(前後端都應該看的書)
還有一些其他的只讀了一部分的,比如docker的,shell的,go web,rest api設計,mysql,redis和mongo什麼的,這裡就不做總結了,希望2017年可以多看一些技術書,最重要的是希望能夠真的從中領悟一些東西。共勉~
前言: 這裡推薦的圖書都是適合零基礎入門學慣用的, 從Python入門選手的角度推薦.
回答一個問題: 到底&- 我把這本書排第二而不是排第一是有原因的, 這本書不適合你直接入手, 而適合你在學習一些基本語法之後進一步深入理解這些語法.舉個例子, 可能在看完第一本書之後你知道列表可以索引, 你會使用基本的索引, 而學習手冊則會告訴你能索引的不是列表, 而是Sequence這個type, 而列表屬於這個, 字元串也屬於這個, 還有好多. 這就是深入理解的意思.
- 這本書不只講語法,而且還講這個語法是什麼時候引入的,為了解決什麼問題, 與之前語法相比有什麼優勢, 這是縱向比較, 而且還會橫向比較, 相似的用途的語法還有那些. 這些你需要全懂嗎? 最根本的問題是讀書應該把書讀完嗎??
- 我們讀書應該是帶有目的性的, 帶著問題閱讀, 而不是為了把書讀完, 把知識點學完. 書就放在那裡, 每個人的需要不同, 按需閱讀, 感興趣可以接著讀, 但是不能因為這本書給了你太多知識而說這本書不適合初學者. 這本書對我來說就像新華字典, 我是初學者, 這本書也永遠是我的入門書.
- 至於為什麼要回答這個問題可以去評論區圍觀一下, 大家有觀點也可以提出來.
1. 《Python編程 從入門到實踐》 [美]埃里克·馬瑟斯, 袁國忠【摘要 書評 試讀】圖書
我的入門圖書,第一次看就嘆為神書.畢竟我沒基礎自學,這本書入門不可多得的好書.在美國亞馬遜和中國亞馬遜排名都是第一.
3. 《Data Structures and Algorithms in Python》 Michael T. Goodrich, Roberto Tamassia, Michael H. Goldwasser【摘要 書評 試讀】圖書
這本書沒有中文版, 英文閱讀有障礙的可以參考下面那本國內的課本. 用Python寫數據結構的就那麼幾本書,這本書我排第一. 這本書不只講數據結構和演算法,前兩章還講解Python的基本語法和OOP,如果想用Python學數據結構,這本書基本可以滿足從零開始學習的同學.同時這本書圖片比較多,很好理解,不需要太多的數學推理,與下一本國內的課本形成鮮明對比.4. 《面向CS2013計算機專業規劃教材·數據結構與演算法:Python語言描述》 裘宗燕【摘要 書評 試讀】圖書
這本書注重數學推理, 非科班的我看的欲仙欲死, 科班的同學首選.5. 《Linux命令行大全》 紹茨 (William E.Shotts), 郭光偉, 郝記生【摘要 書評 試讀】圖書
我的命令行入門圖書,也是一本神書,看完前半部分基本滿足一般需求了, 許多細節都有講解.6. 《圖靈程序設計叢書:SQL基礎教程(附光碟)》 MICK, 孫淼, 羅勇【摘要 書評 試讀】圖書SQL入門圖書,正在讀,簡單易懂.7. 《圖靈程序設計叢書:圖解HTTP》 上野宣, 於均良【摘要 書評 試讀】圖書
科普級圖書, 看完有個整體印象,然後再看其他專業點的書不容易迷路.8. 《HTTP權威指南》 吉爾利 (David Gourley), Brian Totty, Marjorie Sayer, Sailu Reddy, 等, 陳涓, 趙振平【摘要 書評 試讀】圖書上本書的進階版, 需要細嚼慢咽.9. 《Selenium 2自動化測試實戰:基於Python語言》 蟲師【摘要 書評 試讀】圖書還是入門級的圖書, 寫爬蟲的時候看過.
10. 《Python網路數據採集》 米切爾 (Ryan Mitchell), 陶俊傑, 陳小莉【摘要 書評 試讀】圖書我的爬蟲入門書,感觸有點深. 這本書是大部分人推薦的爬蟲科普級圖書, 也可能是新手接觸的第一本爬蟲書,有幾點需要注意:1. 這只是一本科普書, 看完, 學完並不代表你學會了爬蟲.2. 看這本書的目的是了解爬蟲的整個系統,規劃以後學習的路徑, 了解以後需要學習的庫和框架.3. 基於第二點,第一次看不要糾結於細節, 比如說正則表達式, Beautifulsoup等,你只需要知道這些以後需要學習, 而且會有專門的圖書介紹. 沒必要在書中死扣細節不放. 畢竟篇幅限制,沒辦法把一些東西向零基礎的學習者解釋清楚.15. 《程序是怎樣跑起來的》 [日]矢澤久雄, 李逢俊【摘要 書評 試讀】圖書
看完前兩章, 感嘆道:為什麼這本書不是我的第一本計算機專業書.16. 《網路是怎樣連接的》 [日]戶根勤, 周自恆【摘要 書評 試讀】圖書日本人寫的科普書就是通俗易懂作為一個計算機本科生在2016年讀的一些書:
《離散數學及其應用》
超級豪華大寶典。除了微積分之外,一個計算機本科生需要學的數學知識都涉及到了,並且還有更多內容。包括了演算法,形式語言,密碼學,概率論等等,炒雞大熔爐。建議人手一本來墊顯示器。《CSAPP》
這本書也很有名了,講的內容從底層到高層。但這本書真的好難啊,特別是關於彙編語言那章,100頁就講完彙編了,肝到我心塞。《計算機組成與設計 硬體/軟體介面》
這本書也是關於體系結構的。可以與CSAPP互相參閱,難度比CSAPP低一些。《計算理論導引》
從這個書名可能看不出要學的內容,這本書其實有三個主題:形式語言與自動機、可計算性、複雜性。我主要是看第一部分,為將來學編譯原理做鋪墊。特點是簡單,例題多並且由淺入深。《演算法導論》
講解清晰,簡潔。這本書真的沒大家說的那麼難,還是能看懂的。(注,我沒有看數學證明,沒有看課後習題,並且在看這本書之前還學過一些基礎的數據結構與演算法)《演算法設計與分析基礎》這本書比算導更容易點,可以一起看,互相參閱。特點是簡單,封面超漂亮,是我見過最好看的計算機類書籍,少女心十足。大數據日知錄
值得分享的:
雲計算網路珠璣 講的挺好的,有傳統網路有新興網路技術,最近又從圖書館借來回味下wireshark協議分析的藝術 第一次有連續看完一本書的衝動,雖然我沒這麼做CDN技術詳解 蕾葆華寫的,挺不錯的
強叔侃牆。 這個可能挺小眾,講防火牆的,知識點很受用,案例頗多。很有意思的一本書。python 核心編程 剛開始學覺得不好,看完廖雪峰的教程回來看後來發現其實還行。
python cookbook 剛買正在看,感覺很好。linux高性能伺服器編程。 網編基礎,加深linux 和操作系統的理解,io模型,並發等等鳥哥私房菜。 linux 運維最佳實踐。 大型網站架構與設計,李智慧 一個網站的方方面面,十分值得分享,圖書館借了兩次,前幾天在微信讀書上看了一次。Fluent Python
《SRE:Google運維解密》
2016 讀過幾本,但是有一些還沒讀完只能說讀了自己想知道的部分吧!
總結幾本感覺比較好的:1.《Head First 設計模式》
Head First的書一直是我比較喜歡的。從最早的《Head First Java》到《Head First ServletJsp》 再到 《Head First Python》最後到去年看的《Head First 設計模式》 我成了Head First的忠實粉絲。Head First的書特別在於簡單、有趣。看它的書就跟看漫畫書一樣但是卻又能在愉快的氣氛中學習到一項技術、思想的核心。雖然它講Java不如《Thinking in Java》透徹,講設計模式也是點到為止。但是卻比其他很多大塊頭的書更能讓你懂得每個設計模式是為解決什麼問題產生,理解出工廠模式、抽象工廠、簡單工廠的區別,理解出裝飾模式在一個應用上的可伸縮性……如果你還沒學過設計模式,並且想學,並且你時長受不了那種又枯燥又無聊的大擺公式、理論的書籍,我推薦先看看《Head First 設計模式》 。
很多人學完設計模式,代碼顯得臃腫,生硬。相反我認為《Head First 設計模式》恰是教你怎樣用設計模式來簡化自己的代碼。
2. 《Wireshark 網路分析就這麼簡單》
這本是年底看的,三天看完。很薄的一本書,但是蘊藏的知識卻非常的深厚。還記得作者書中的一句話「本書本著多一道公式會少一半讀者的原則,關於這個演算法這裡就不闡述了。」整本書文筆幽默,廢話不多,但是卻能通過這本書來理解清楚網路,特別是TCP的原理。這本書主要是教你用Wireshark,但是我覺得Wireshark只是一個附帶品,整數最大的價值在於通過Wireshark讓我們開清整個網路的機制。記得大二的時候通過《計算機網路自頂向下方法》學習網路的時候,看到TCP那邊的TCP窗口、重傳的演算法時簡直是一頭霧水,苦讀幾個晚上還理解不太清楚。沒想到看這本書,兩三頁卻能將TCP的這個難點講的這麼透徹。3.《寫給大忙人的Java se8》
Java8相比Java 7還是挺多變化的,薄薄的一本書,讓我迅速可以寫最新的、最酷炫的Java8。Ps. 公司還不讓用Java8,學了只能自己業餘爽爽。 /(ㄒoㄒ)/~~4.《Java並發編程實戰》
這本書應該算去年看的書最有營養價值的吧,還需要來年多翻一翻。在看這本書前我對並發編程的概念還僅僅是局限在使用一些並發容器、簡單的用synchronized、Lock等,並不理解怎樣來編寫並發程序才能寫出安全、高效的代碼。整本書很系統的講解了Java並發編程的原理、技巧。作為Java程序員人手一本,讀過就知道。書中有一個講緩存設計的案例,個人感覺設計的相當優美!Ps.這本書什麼都好就是翻譯的有點坑,可以配合英文原本看。
5.《Java性能權威指南》
這本書比較全面的闡述了Java性能調優的技巧。從JIT到GC優化再到JDBC、Java EE等等,整本書對於Java的優化無處不入。通過這本書以後當程序出現性能瓶頸的時候可以明確該選擇什麼調優方式,來最大化的提升性能。PS.這本書翻譯的也有點生硬、枯燥算是比較坑的一點吧。
6.《恰如其分的軟體架構》
比較全面的說了什麼是軟體架構以及現在比較流行的一些軟體架構。這本書據說是挺好的,我硬著頭皮看下來還是學習到不多,可能經驗不夠。來年再看吧!---
這幾本書躺在我的書架上,所以就這幾本書說一說,其他的有想到再補充。最後曬下出租房的小書架~
《Ruby元編程(第2版)》 Paolo Perrotta, 廖志剛【摘要 書評 試讀】圖書 看了這本書之後從Python黨投入了Ruby的懷抱,這本充滿了magic的語言,各種神奇的法術,彷彿開啟了新世界的大門。
《彙編語言(第3版)》 王爽【摘要 書評 試讀】圖書 這本書可以培養一些底層的思維習慣,讓你認識到計算機的本質是簡單和樸素的。作者的教學方式也很好,真正的循循善誘,循序漸進;不可多得的好書。
《加密與解密(第3版)》 段鋼【摘要 書評 試讀】圖書 看雪論壇的精華之作,雖然名字叫加密與解密,但實際上講了很多軟體安全的基本知識,比如軟體調試,逆向分析,加密脫殼等;值得一讀。
《垃圾回收的演算法與實現》 [日]中村成洋 相川光, 丁靈【摘要 書評 試讀】圖書 關於垃圾回收的一切,看完這本書你就完全明白了。
-----回答完了之後看了題主的自我介紹,原來是來知乎釣魚的。。我上鉤了~_~ 翻過的書挺多的,覺得收穫比較大的就上面幾本了。C++:
C++ template深度探索C++對象模型深入理解計算機系統
編譯: 自製編譯器Data flow analysis: theory and practice編譯器設計Advanced compiler design and implementation垃圾回收的演算法與實現垃圾回收演算法手冊The compiler design handbookGetting Started with LLVM Core LibrariesCompiler design Analysis and Transform還有大量的優化方面的論文1 知乎 陳碩大牛的 伺服器多線程編程muduo
輸的好不好可能更多的在於適合不適合 尤其是技術書籍
如果你已經具有C++基礎 對野指針和內存泄漏有自己的心得和疑惑
如果你已經具有網路編程基礎 對實戰伺服器有著進一步了解的想法
這本書真的不錯
2 深入應用c++11代碼優化與工程級應用
這本書其實是在看第一本遇到坎,然後學習C++11 買的。
結果坑不一定比第一本淺,後來又轉去學習了c++ template(真是閑的)
兩本啃完 有種神功大成的感覺,然並卵。
只能說基礎有了 還是需要在實戰中繼續磨鍊 但是這兩本書是C++伺服器實戰的入門卷
上個圖
3 Redis 設計與實現(第一版) Redis源代碼分析
學習下其中的數據結構代碼和一些問題的解決思路
4Game Programming Patterns 遊戲編程模式
3 4 都是在看電子版
5 大型網站技術架構 核心原理與案例分析
學習了網路 伺服器 NOSQL 後,很自然的就想了解實戰中會遇到哪些問題,又是如何解決的。這本書對分散式文件 分散式資料庫 緩存 自動化 冗餘 等等方方面面都做了介紹.值得一讀。
6 演算法 第4版
無論是實踐中遇到瓶頸還是想深入學習,代碼解決問題的本質思路。最後都會回到演算法和數據結構與操作系統上。2016我還是以學習演算法為主
7 垃圾回收的演算法與實現
學習C++ 用了智能指針管理內存後,想了解下其他語言的回收策略。而且也涉及到演算法。
可以說,這本書的學習想法是內存管理與演算法學習計劃結合後產生的分枝學習計劃.學習中
2016年 《Functional Programming in Scala》 中文版終於出版,感謝 @hongjiang 。
16年是我從一個Java菜鳥到可以稱得上是一個Java工程師的一年, 這一年看了很多書. 很爽!
以下書籍排名不分先後!
1. Java並發編程實戰
這本書感覺比較學術性一些. 裡面提到了的happen before, 安全發布這些東西對於剛接觸java並發編程的人不好理解.
對於並發編程和分散式方面的東西, 我比較推薦一個網站 並發編程網 - ifeve.com , 由阿里的大牛方騰飛維護, 主要是翻譯一些很不錯的文章以及文檔. 同時維護者方騰飛寫的 Java並發編程的藝術也是本好書, 條目清晰, 結合源碼進行講解, 內存模型, 線程, 鎖, 並發容器,框架, 原子類, 並發工具類, 線程池等分類講解, 逐漸遞進. 相對於Java並發編程實戰比較接地氣一些.
2. 重構--改善既有代碼的設計
雖然這本書有一定的年歲了, 那年Java還叫Java 2, 不過裡面提到的代碼的壞味道: 重複代碼, 過長函數, 過大的類, 過長參數列, 職責發散, 多餘的類等等. 以及如何解決這些問題的建議和方法對於現在的Java乃至C, C++, Python等語言都是有幫助的. 這本書不僅僅是在教我們如何重構, 更是在教我們如何寫出清晰簡潔, 容易擴展, 減少修改的代碼.
3. Spring 3.X企業應用開發實戰
這本書是國人所寫, 雖然已經出版快5年了, 可是很多東西都還適用( 有一些因為外部框架版本升級, 可能略有編程). 我感覺這本書應該是在基於Spring做Java Web開發中, 不管是廣度, 深度, 易於學習等方面做的非常好的一本書. IoC和AOP的思想, Spring容器原理, 裝配過程以及使用, Spring AOP的使用, Spring對事務的實現, 對資料庫訪問的封裝, 與資料庫框架的集成. Spring與任務調度框架的集成, Spring MVC等重要的內容都深入淺出講解了.
4. 從Paxos到Zookeeper--分散式一致性的原理與實踐
也是國人所寫, 作者倪超在畢業兩年在阿里就寫出了這樣的書..簡直佩服.
16年上半年快畢業的時候無意接觸了Zookeeper, 作為一個剛入門的java程序員, 接觸這個框架, 真的覺得很神奇, 它是如何保證多個節點數據一致性的(雖然是最終一致性), 是如何選出主節點的, 是如何應對節點故障的, 又是如何故障恢復的, 是如何同步數據的, 是如何應對網路故障的, 是如何實現watcher機制的? 它又有什麼用途, 什麼公司在用?
這些問題在這本書里都有詳細解答!
5. Effective Java 第二版
這本書和前面的重構一書同屬於代碼規範系列. 如果用大白話來講就是 "Java編程你必須知道的78點". . 每一點都相對較為獨立, 看起來也比較方便. 我覺得這書適合反覆的看, 很早就看過, 其實並沒有太多感覺, 後來使用谷歌的Guava庫, 就發現, 其實裡面很多都是在遵循Effective Java里的觀點, 比如提供大量不可變的集合, 很多對象的構造都使用的是builder模式, 提供ToStringHelper類和 ComparisonChain類, 提供Predictions靜態方法等. 同時使用Guava也是對Effective Java的一個實踐--熟悉並使用常用類庫. 反覆閱讀這本書, 在自己的代碼中遵照其規範. 多多使用Guava~
6. 資料庫系統概念 第六版
作為一個半路出家的渣渣程序員..基礎並不是那麼好, 多看看教科書還是有好處的. 其中關係型資料庫的數學基礎, 記錄存儲結構, 索引結構, 資料庫查詢的過程, 事務過程, 並發控制原理等等, 感觸比較深. 這本書其實沒看完, 如果有機會的話, 可以好好的多看幾遍.
未完....
@董偉明 董偉明編寫的 &
馮諾依曼的《101頁報告》
開個玩笑。前端方面,你不知道的javascript,javascript語言精粹,javascript框架設計。後端方面,flask web開發,細說php。遊戲相關,計算機圖像學webgl自頂向下,unity3d遊戲開發,webgl基礎教程。科研相關,周志華的機器學習,李航的統計學習方法,還有機器學習實戰,集體編程智慧,推薦系統實戰。當然還有bengio的deep learning。其他書也看了好多,不過大多收穫不大,或者看了一遍就沒再細讀,其實這一年各種頂會的論文反倒是看的最多的。
推薦閱讀:
※如何正確地總結 2016 前端技術?
※Mary Meeker 發布的《2016 年互聯網趨勢報告》中都有哪些亮點?
※2016 年的藝術界有何值得留意之處?
※2016年互聯網找工作到底有多難?
※2016 年,醫學領域出現了哪些極具發展潛力的研究方向?