1. 程式人生 > >對計算機專業有用的書籍

對計算機專業有用的書籍

1、書店購買,可以慢慢尋找內容合適自己的,選中拿著結賬走人,這種感覺是網購無法代替的。但價格很貴, 一般不建議新華書店買,原價不打折,打折也幾乎沒太可能是計算機書,VIP會員也不打折。
2、網上購買,可以書店選好了網上買。
3、電子書,買個Kindle,價格也就在800左右,800塊錢對計算機書來說,也可能就幾本而已。然後就是網上下載PDF看,有些書的PDF不一定可以下載到,下載不到的可以去買盜版的PDF,估計很多人不知道吧,你到www.szdnet.org.cn(深圳文獻港)去搜索你想看的書,如果有“試讀”連結,你就可以去淘寶找人幫你下載(就搜尋“深圳文獻港”),也就2塊錢一本吧(有些店家會按頁數算錢,這個瞎扯的)。一般來說,出版了半年以上的書都可以下載到,是掃描版的哈。

0x02 預備書籍
《如何閱讀一本書》:這本書我沒看紙質書,是下載的,所以沒照片。如果要買紙質版本的,去搜索吧,作者是莫提默•J.艾德勒。不要被書名雷到,裡面講了閱讀各種書的方法,其中提到一點:看懂了,並不表示你會了,你能把你的理解口述一遍出來嗎?想想,學習作業系統原理或者一個漏洞的時候,看完別人的書或者文章,可以再閉書口述出自己的理解嗎?或者看完一本語言書,你能寫個爬蟲之類的東西出來嗎。
《專注力》:這本我也看的電子版,看這本書是因為看《暗時間》裡提到的,作者是埃倫•蘭格。這本書不是講如何提高專注力的,而是講人們為何失去了專注力,當你學會了一個知識,卻不能靈活使用。
《暗時間》:還是看的電子書,一本前半部分心理學,中間夾點數學,後面講點演算法的書。

《番茄時鐘工作法》:
簡單好用的時間管理方法,我自己看書的時候,就喜歡用番茄時鐘法來看書。當你看完這本書的時候,你會發現,裡面所有講的跟作業系統裡程序管理機制相差不大:)
《集異壁》:藝術,數學,計算機為一體的神書,我推薦大家看,但不推薦不想深入理解計算機和數學中一些思想的人看:)
0x03 基礎書籍
來吧,英語,《我的第一本英語語法書》:
惡補下英語是很必要的,關於它好處,就不多說了,這本書講得很細,網上有pdf版。
《程式設計師的數學》
裡面涉及的數學點基本上是中學的內容,不過作者是從程式設計師角度去寫的,對曾經成績不好的的夥伴來說可以好好補下。
《離散數學及其應用》:
一口氣看完不太可能,裡面的集合、邏輯、條件命題、演算法等等很有必要好好看看,作者寫得很易懂,並且例題很多,例題的答案可以去網上下(原作者只提供了題號是奇數的答案,不過網上已經能下載到奇偶中文版的答案了)

不過在讀這些的時候,最好有點代數基礎,代數基礎可以去網易公開課裡看可汗學院的代數內容,可汗學院的公益學習視訊很贊,不僅免費,而且講得特別細,數學是從1+1開始講的!絕對不要認為作者侮辱廣大的智商,看完之後可以把你學校的東西忘記了。
0x04 計算機基礎書
掌握兩三門程式語言吧,必備的C語言,再學一門指令碼語言,我推薦python。不懂C語言,很難觸控到系統底層或者偏向底層的東西;掌握Python嘛,日常工作就很方便了,搞安全的,無論是除錯漏洞,還是寫exp。
《C語言程式設計:一本全面的C語言入門教程》:
http://dwz.cn/QJY9o
什麼?C語言看譚浩強的C語言書?呵呵,那本只會你寫程式碼,還不會程式設計,並且水平還很一般。這本書是我高一的時候看的,現在市面上已經有很多比較好的C書了,並且這本書已經絕版了,不過網上可以下載到PDF。
《C程式設計語言》:這本書我看的電子版的,作者是克尼漢,不是譚浩強。這本書的文字非常精煉,沒有廢話,但卻切中了關鍵知識點,入門的話,估計看這本有點吃力,稍微有點點基礎再看吧。
《Python學習手冊》:最新版的第四版已經出了,我看的第三版,第四版比第三版厚太多了。。這本書是細緻剖析python語言,幫助讀者真正理解透Python,而不是講標準庫的,想學習庫,可以看《Python核心程式設計》,也是很讚的。我想說的是,這本書裡講面向物件講得非常好,講了Python面向物件的工作方式,比如繼承類的工作原理之類的,比那些瞎扯淡的面向物件書好多了——什麼人是一個類,男人是一個物件,女人也是一個物件這些高度抽象的。
如果你習慣了Python寫點程式碼,《python參考手冊》可以說是手頭必備的。兩本python書一起學習後,做做知道創宇的面試題,爬蟲 http://dwz.cn/QJY9u,強烈推薦大家做:)
嗯,不過想提高程式設計技藝的,繼續往下看:
《程式設計方法》:網上流傳著電子版的,中文名《如何設計程式 程式設計和計算引論》,建議下電子版來看,書的英文名是《how to design programs》,我是下載後列印看的
這本書介紹了程式設計的很多思想,剛入門的童鞋想提高程式設計能力可以看看,不過作者用的Scheme語言描述的(lisp的一種),其實這本書就是Scheme的入門書了。。。
《程式碼整潔之道》:你還在寫屎一樣的程式碼嗎?過兩天就看不懂了?或者一個函式完成了所有功能?或者還在跟著你大學老師用a、b、c做變數名?看看吧。這本書我是大學時在圖書館借來看的,所以沒有照片。最瘋狂的是,我當時在寫一個webapp,看完之後,就把寫了一半的程式碼全部刪了重頭寫的,因為我無法忍受自己糟糕的程式碼風格:)
當然,如果當時我看了這本書——《重構》,我可能不會刪掉,而是用《重構》中的思想,努力把程式碼變漂亮:)
雖然《重構》是用java描述的,並且版本還很老,卻思想不過時,不需要java基礎,同樣可以用到php之類的語言上:)
《程式設計匠藝》:這本我還是看的pdf,你還老在寫容易出錯的程式碼嗎?或者你對某個cms寫的exp,老出錯,url不打 http://開頭程式要崩潰;網路不通暢程式也要崩潰;少給程式帶個引數,也崩潰了。推薦好好看看吧,學習下防禦程式設計的思想。
《正則指引》:想學會繞過WAF規則之類的同學可以看看,正則表示式入門的書,書中正則主要以python來示範的
《深入PHP 面向物件、模式與實踐》:想以php為主,學習下設計模式和入門面向物件,或者原始碼審計的時候,想摸清楚人家程式碼的整體架構,絕對要看看啊。
PHP,我覺得就看看官方文件,再看看這本書,就夠了:)
《組合語言》:王爽的,嗯,雖然不是講32位的,想學彙編的還是看看吧。
《資料結構C語言版》:這本書很老了,早就買不到了。裡面對每個資料結構都有完整的程式碼,雖然裡面部分C語方面的有錯誤,但作為入門書還是值得看一看,網上搜索“《資料結構C語言版》中國鐵道出版社”可以下載到。
還想更進一步提高的,來學演算法吧:)
《程式語言的奧妙:演算法解讀》:這本書表面看上去真像小學生的讀本。。。呵呵。。。但適合沒基礎的人看。如果覺得買這本面子上過不去,就下pdf吧,網上有。
《演算法概論》:說學演算法,看《演算法導論》?還是《計算機程式設計的藝術》?呵呵呵。。你能看懂,估計我推薦的很多書你也不用參考了,反正我是看不懂的,並且這兩本書的行文風格完全是參考書風格,很多地方不太好讀懂,看看演算法概論吧。《演算法之道》也是本類似的書,看上去有點zip(《演算法概論》+《演算法導論》)(壓縮)的感覺,並且加入了一些哲學方面的,而我文化程度不高,並沒領悟到裡面很多哲學的含義
0x05 網路入門
如果你還不會劃分ip網段,不能區分路由器和交換機,不知道家用的“路由器”是交換機+路由器為一體的,不知道為何開通2M的寬頻,下載速度卻沒有2M,可以看看這些書,作為一名網管出身的程式設計師,推薦幾本網路方面的書還是可以的。
《TCP/IP指南》:學TCP/IP協議,很多人直接就說《tcp/ip詳解》三卷看完了就可以了,我覺得這是瞎扯:1、第一卷還好,不是特別難,只是沒ipv6,當然最新版的《tcp ip詳解》已經有ipv6內容了,不過還沒出中文版;2、卷2是講tcp/ip棧的原始碼實現,你又不做協議方面的專家,看這本幹嘛?我到現在都沒看完,一個是太厚了,二個是看完了也對我目前用處不大,看看理論,理解下就行了:)3、卷3主要是應用層上的協議,這本書很多東西比較老啦:)
所以推薦看看《TCP IP指南》,純理論的,估計要看懂,得花大半年的時間了,我看完第一卷花了四個月,當時剛上大一,再加上哥打小就沒聽課的習慣,所以基本上從早看到晚,因為當時感覺理解不太透徹,書很大部分看了兩遍,基本上大一上學期完了,才看完:)大一下學期的時候,開設了CCNA課程,一直開設到大二上期,感覺很一般,因為自認為對TCP/IP協議棧理論方面掌握不錯了,就沒聽過課,上課就啃其他書去了,基本上當時思科線上考試都90+的分數,還不錯,然後我以為這輩子註定當網管了,就買了本《CCNA學習指南》,準備先過了CCNA去當網管,搞點windows/linux安全維護還不錯的,當時因為有了比較紮實的理論基礎,這本書我兩週就拿下了,之後又在圖書館借了《堆疊攻擊 八層網路安全防禦》,還看了《黑客大曝光》等等,tcp ip協議安全方面的過了一遍吧,真的就準備投身網管了,直到知道創宇在成都有了公司,汗,果斷放棄網管,半路出家當起了python碼農,所以就有了上面推薦一大堆程式設計書。
所以網路方面想入門的,可以看看《CCNA學習指南》和tcp ip指南。
0x06 Windows方面的
Windows我就只推薦《深入解析Windows作業系統》、潘愛民的《Windows核心原理與實現》和《軟體除錯》了,這三本書對Windows底層學習都很好的,我當時的學習曲線是,看《深入解析Windows作業系統》,某些知識點想細緻的就看的《Windows核心原理與實現》,想跟接近系統點的,就跟著《軟體除錯》走。很多年不搞windows了,就不多說了,已經沒那個資格了。。。。
另外,我就看過《rootkits》、《天書夜讀》、《windows系統程式設計》、《惡意軟體分析訣竅與工具箱》之類的,還有一些就不想說了,Windows的說多了一把淚啊。。。。
0x07 Linux方面的
當時學校白天要斷電,而我的筆記本裝Linux,它的電源管理沒Windows那麼好,加上用的Ubuntu,沒有做過核心方面的單獨編譯以及優化的,耗電非常快,所以學習Linux就買了本《鳥哥的私房菜》
其實Linux看線上的電子書就可以了,鳥哥私房菜也有pdf的,而且相對書來說可能更新一點:)
shell程式設計推薦《LINUX SHELL指令碼攻略》,我看的pdf,就沒圖了。
===========ps:後面的我真的不想再上傳圖了,累死了,早飯都沒吃,很餓。
0x08 補充點底層知識
《深入理解計算機系統》:這本國外經典的教材,真心推薦看一遍,看了前200多頁,也能算反彙編入門了:)
《作業系統精髓》:學作業系統原理,多看這本書吧,裡面對比了多個作業系統的各方面實現機制,比如Linux和Windows。
如果想實際學下作業系統,可以看:
《linux核心設計藝術》:用的linux0.11版的核心,92年版的,但那時候linux已經有了作業系統各方面了,這本書我還沒看完,但圖文並茂,理解起來也很輕鬆。這本書最近才出了新版本。
《30天自制作業系統》:去年夏天出的本書,小日本寫的,沒有傳統的那些亂七八糟作業系統理論,很隨性的實現,而且還實現了圖形介面。作者講解也是從一步步解決問題入手的,值得一看
《理解Unix程序》:關於程序方面的程式設計可以看看,書很薄,圖靈社群有pdf賣,作者用的ruby語言描述的。
0x09 終於到安全方面的書了
我覺得安全方面的書不用買太多,特別是那些啥黑客入門的千萬不要買,國內網路安全已經發展了10多年了,網上有很多不錯的社群和資訊站經常更新新東西,比如freebuf,買幾本墊底下基礎知識就ok了:)
想學習偏向快取溢位和應用安全的,除了要學習系統底層方面的,之前已經介紹了部分書了,下來來實際操作的:
《黑客之道》:主要是Linux平臺的溢位吧,這本書還是老了,但內容依舊值得學習,自己下載pdf吧:)
《0day安全》:王清寫的第一版陪我度過了512地震。。。這本書真的被我翻爛了。。第二版修復了第一版很多錯誤,並且加入了許多繞過保護機制的內容。
《0day》:愛無言兄弟寫的,個人覺得這就是你以前雜誌稿子的合集,不過還是值得學習應用層,還是值得看:)
《安全漏洞追蹤》:書很老,但這本書對我影響蠻大的,看了這書,才真正把安全意識帶入到實際開發中,這書是我在圖書館借的,當時手抄了絕大部分精華內容:)
黑客方面綜合的書:
《灰帽黑客》:去年出了新版,老版本時,我可是餓了好久肚子,用生活費買的:)書裡面涉及很多,滲透到漏洞分析
《黑客大曝光》:真正值得看的就這一本了,夥伴們:)最近出了新版了。
《web前端黑客》:餘弦的書,國內第一本專注前端方面的書,必須贊一個,我個人比較喜歡看專注某一個方面的書。
《白帽子講Web安全》:刺的書,web安全方面涉及很多,不過總體有點偏向企業級的
《黑客攻防技術寶典:Web實戰篇》:書名太難聽了,裡面羅列的很多讓我反而更覺得這書給搞安全開發的人看更合適:)
《sql注入攻擊與防禦》:一本專注講sql注入的,又是一本專注的書,現在看來都還是很不錯,有很多技巧:)
web方面看看《web前端黑客》、《白帽子講Web安全》和《黑客攻防技術寶典:Web實戰篇》作為基礎知識墊底就夠啦,網上每天到處都是漏洞公佈的,多看看那些,多分析下效果更好的:)
以上書的圖就不上了,我覺得來張合照也不錯,下面,來張我半年前的書的合照吧(現在還要再多一列),然後結束本次的推薦,寫那麼多真的很累,今天就隨便寫了幾本,以後有機會再寫吧。。。