你讀過哪些深入淺出的(技術)書籍?
"深入淺出"在這個問題里我更關心的是淺出,即是作者真正站在讀者角度寫出來的書籍。易讀有趣第一位,同時也希望是有一定專業水準的書籍,但並不強求高大全。比如
《彙編語言》(王爽著) 就是我心目中這樣一本書。這類書的存在是有意義的,特別是對於初學者來說。技術打上括弧,是指prefer技術書,但不限於技術方面的書。
哈哈,終於找到一個我能回答的了。
首先聲明,本人是計算機專業的學生,深受一些專業書籍枯燥無味的毒害。廢話不多說,上圖!
作者深入淺出,從最初的繼電器開始一步步的闡述了最開始由繼電器組成的計算機是怎麼一步步發展到現在的擁有圖形化界面的個人PC。繼續上圖!
這是作者講解邏輯門,看到這裡,媽媽再也不用擔心我的數電了!
我能告訴你們這就是最原始的內存條嗎???沒錯,作者從最開始的邏輯門,一步步的引導我們怎麼拼湊一個內存條!!!就是這麼強大!
二戰時期,美國人拼湊了一台有半個足球場大的計算機,沒錯,你也可以做到!
後面主要介紹了 機器語言到彙編語言再到c語言的發展歷程,看到這裡,頓時感覺編程變得有趣生動了許多誒。。。
沒錯這本書就是老少皆宜的《code》,如果你還在被枯燥無味的計算機原理書籍所折磨,不妨看看這本書吧,保准讓你有一種想用邏輯門自己搭建一台計算機的衝動!
Linux C編程一站式學習
我在群里安利過這本書了head first全系列, 畢竟名字就叫深入淺出
《計算機的心智-操作系統之哲學原理》
鄙人苦逼程序員一個,操作系統一直屬於領域內比較難啃的一塊骨頭。讀過William Stallings的《操作系統精髓與設計原理》也讀過西爾伯查茨的《Operating System Concepts》。這兩本都屬於操作系統界的巨著了吧,講系統原理講的很透徹,但難免枯燥乏味,無法吊起一個人的胃口,不適合初學者,更談不上深入淺出。
直到我發現了這本書,計算機的心智-操作系統之哲學原理,聽名字就很帥有沒有,整本書好像一本科幻小說,把計算機比作是一個人,而操作系統就是他的心智。站在操作系統的角度上寫了為什麼我會死鎖,為什麼我會藍屏。比如說,操作系統為什麼會藍屏,因為在一些特殊情況下,操作系統會面臨兩個選擇,而作為一個計算機,她怎麼可能替他的主人,也就是你,做決定呢,於是它就會藍屏,告訴你她遇到了不能解決的問題,而這個問題需要你的幫助,手動重啟。咳咳,上面一段是我根據書的內容總結的,並不是原書內容,原書還是比較嚴肅的。
雖然說這本書講的比較生動,而且看起來也比較薄,但是,關於操作系統的各種老生常談的問題確是一個不少,樣樣俱全。各種CPU調度演算法,鎖和同步的概念,進程管理,內存管理,I/O管理,文件系統。等等等等。
所以,我推薦這本書作為操作系統的入門讀物,不僅僅是因為它講的原理淺顯易懂,更重要的是,它可以引起你的興趣,讓你對操作系統感興趣,站在你面前的變成了一個欲遮還羞的大美女,而不再是那個冷冰冰的田字界面。最後節選書中一些片段給大家看:
講操作系統所扮演的角色,類比魔幻家和管理者,魔幻家在於把複雜的東西用一種很簡單的形式展現在你面前,而管理者在於把各類資源統一管理,按需發放
講內核態和用戶態,類比人類生活中貴族和平民的概念
書中也不乏各種專業原理的講解
最後一章總結操作系統的設計原則,一共10條,我認為每一條都可奉為軟體設計界的聖經
先寫到這吧,看客們如果有興趣,我可以多截一些內容給大家參考,或者你可以親自去看一看,因為這本書真的很薄,看到書的時候我覺得你肯定不敢相信這是一本計算機方面的書,更不敢相信這是寫操作系統的。
國外電子通信系列教材《模擬電子技術》
國外電子通信系列教材黑魔書《高速數字設計》作者:Howard Johnson
===================================
再強烈推薦一本:國外電子通信系列教材《實用電子元器件與電路基礎》,電子入門不二之選。
裡面解讀運放時,把運放比作一套液壓結構,淺顯易懂!
==================================
《電子學》中的三極體人給我留下深刻印象
&< Learn XX the hard way&>系列.
不要被名字嚇到,中文名翻譯很得當&<笨辦法學XX&>,比Deitel&
推薦幾本硬體方面的吧
《晶體管電路設計》[日]鈴木雅臣
當年模電雖然學的還不錯,但是實際上我還是不知道怎麼設計一個簡單的放大電路,僅僅是會做題而已。這本書是從實際出發,最後再回到理論,可以說是深入淺出了。
《開關電源設計》[美]Abraham I. Pressman
《開關電源中的磁性元件》[中]趙修科
這兩本得合起來看,上面那本對電路拓撲的原理以及環路設計講的很細緻,可惜就是磁性元件部分講的含糊不清讓人摸不著頭腦。
下面這本從理論出發,磁性元件設計的舉例非常清晰明了,粗略看完一遍,就算是照貓畫虎都能整出一個還算不錯的變壓器來。
《運算放大器穩定性分析》[美]Burr-Brown
這書的意義不僅限於運放的環路分析,甚至可以當作自控理論的入門書。
大二的時候覺得自控甚是無聊(主要是不知道可以拿來幹嘛),這本書算是給了我一個警鐘。
深入理解計算機系統
CSAPP
哈哈哈哈哈哈。我也來回答了。
我當然要安利王爽老師的《彙編語言》。這本書並不能面面俱到,相比高大全的入門書籍,這本書內容實在是太少了!
但是實在是快速入門的好書。而且作者放低身段的在前言中沒有裝逼,而是
告訴你,「歡迎讀這本書,不過你要讀這本書,一定要按照我的順序讀,一定要
做完習題才能繼續讀,一定要做了實驗才能繼續」。然後每次遇到實驗都會提醒
你真是不好意思亂跳呢。
-------------------------------------------------------------------------------------------------------
2016.3.1 update:王爽老師的彙編語言是講8086體系結構的,當時我們課剛好是在講8086,其實現在覺得CSAPP里的理念很對,大多數人需要的是能看懂彙編而不一定能寫彙編,而且是INTEL的80X86彙編,所以我覺得學習彙編比較好的材料是CSAPP講彙編的章節,把作業做了,然後去做那個拆炸彈的lab,會極大加深你對函數堆棧的理解,這是非常有用的,如果你要去看OS代碼的·話。
傳送門:csapp 配套lab CS:APP3e, Bryant and O"Hallaron
傳送門:sjtu ics課程,homework and solutions: http://ipads.se.sjtu.edu.cn/courses/ics/2014/schedule.shtml
-------------------------------------------------------------------------------------------------------
另外一本書是《操作系統之哲學原理》。
雖然這本書毀譽參半(聽說和現代操作系統這本書有千絲萬縷的瓜葛),雖然聽說作者似乎總是把線程和進程說錯。但是我還是隨便翻了翻這本書。然而超出我的預期的是,我明白了一些我們教材(operating system concepts)只告訴了我們是什麼,但卻沒告訴我們為什麼的東西。所以雖然這本書有許多錯,我還是覺得,這波不虧咯。
sicp
feynman"s lecture on physics
數學花園漫遊記
how to design programm(htdp)
計算機組成 結構化方法
the little scheme
編碼的奧秘
。。。想到了再補充。正準備看完把書丟了,出門在外帶一大堆書真是作死啊。
–––––
–––––
信號完整性與pcb設計
實用電子元器件與電路基礎
feynman"s lecture on computation
新概念英語
費曼QED
2016-03-01更新:醉了,十位票數比不上個位的,這反對票好像很多啊。
~~~~~~~~~~~~~~~~~~~~~~~~~~~以下是正文~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
這問題雖然是去年(2015年)3月提出來的,卻激發了我回答的慾望。我決定在下面列一下自己認為深入淺出的書單。我相信各位看官關心的是是否深入淺出而不是答主有沒有仔細看過,我承認很多書我都沒認真看的。
首先拿出鎮樓之寶:《如何閱讀一本書》。
這是一本無關任何技術的書籍,但卻非常非常重要。或者說,這本書教的技術就是閱讀一本書。
書中提到了四種閱讀方式:基礎閱讀、檢視閱讀、分析閱讀和主題閱讀。基礎閱讀即是小學生都會的閱讀,懂得基本的詞語,語法,句型等。檢視閱讀是粗讀,分析閱讀即細讀,最後的主題閱讀是指在檢視閱讀的基礎下,從書中找出你想知道的信息。主題閱讀是最高的境界,也是遇到問題後去查資料最該用的閱讀方式。
好,這裡不多寫,只想告訴大家,掌握了正確的閱讀方法,閱讀技術書籍效率會提高很多。
=========================書單分割線===============================
每一本技術書籍我簡單分類為實踐性書籍和理論思想性書籍。實踐性書籍主要告訴讀者怎麼做,主要解決「how to do」的問題;理論性書籍主要告訴讀者為什麼要這樣做,解決「why to do」的疑惑;當然還有一個「what」,兩類書籍都會涉及到的概念性知識。
《編碼》
類別:理論
主題:闡述了最底層的計算機原理及相關歷史。
適合人群:電子、計算機、嵌入式等初學者及非專業人士。
簡評:電子/計算機專業必讀的一本書,我認為這本書應該出現在專業導論課上。從高中生皆知的繼電器出發,講到了二進位、邏輯開關、門電路,解釋清楚這些問題後,又進一步的講解了加法器,觸發器。前面這些講解都是從繼電器的角度來看,最後轉換為門電路符號,到了存儲器章節,就已經完全是使用數電中的門電路符號了。第18章才開始講解晶體管,這個個時候晶體管的開關概念已經不難理解了。第19章微處理器,微機原理就是這麼回事。
《深入理解計算機系統(原書第2版)》
類別:理論
主題:重點闡述計算機系統的概念和實現細節。
適合人群:計算機、電子、嵌入式等學生和從業者。
簡評:本書放出來是因為經典,可能不夠淺出,但的確深入,時隔幾年再看一遍又會有不一樣的收穫。下面引用我在豆瓣寫的附註:如同本書在「譯者序」那裡寫的,這本書是以程序員的角度來介紹計算機系統,主要內容是計算機體系結構與編譯器和操作系統的交互,強調對計算機系統的概念理解。本書為程序員描述計算機系統的實現細節,目的是幫助程序員銜接計算機系統各個領域的知識,為程序員構造一個概念性的框架,能寫出更高效、可移植,健壯的程序。
C語言:
《C程序設計語言》
類別:基礎理論+實踐
主題:入門書籍,打好C語言基礎。
適合人群:計算機、電子、嵌入式等初學者。
簡評:也是因為經典。入門C語言的不二選擇,我閱讀本書之前已經有了一定的C語言基礎了,所以買了本英文版的,閱讀是慢了一點,可我是原汁原味地閱讀,而且本書已經寫的足夠循序漸進,由淺入深了。說句題外話,也許是因為認真閱讀了該書的英文版,我現在閱讀C語言的英文技術文章都非常順利了。對了,我英語才剛過四級。
《征服C指針》
類別:理論
主題:講解C語言中最大的難點——指針。
適合人群:學習C語言的人群。
簡評:請問數組和指針有什麼區別?什麼時候數組和指針是等價的?為什麼數組從0開始?指針和內存地址有什麼關係?int (*func_p)(double)是什麼個東東?又如何正確又快速的解讀一個指針聲明?char const *src不能修改的是src還是*src?這些問題的答案都可以在本書中找到。指針難嗎?不難!
題外話:當然還有很多講解C語言的書,例如經常被人提及的《C Primer Plus》,以及其他的《C專家編程》、林銳的《高質量 C++/C 編程指南》等,這些是寫得很好,但我覺得不夠貼近讀者,所以這裡就簡單的給它們掛個名。
Linux:
《鳥哥的Linux私房菜.基礎學習篇(第三版)》
類別:基礎實踐
主題:入門書籍,學好Linux環境下的操作。
適合人群:計算機、嵌入式等學生和從業者。
簡評:我就是看這本書入門Linux的,只要一步一步按照書中的步驟來學習,學會Linux幾乎不是什麼難事,至少在虛擬機下安裝Linux,在Linux的Shell下編程,以及使用vi不在話下了。
《Linux就是這個范兒 (豆瓣)》
類別:重理論輕實踐
主題:闡述Linux背後的哲學。
適合人群:計算機、嵌入式等學生和從業者。
簡評:初學者也可以讀這本書,但與鳥哥的書相對,這本書重點不是在於對Linux的實踐操作,而是Linux背後的哲學,著重告訴讀者為什麼要這樣做,如果說鳥哥的書是「知其然」,這本書就是「知其所以然」。而且作者把書本寫得特別有文藝范兒,處處都用到了武功名詞,詼諧幽默。但是切記,本書重點是Linux後面的哲學——讀者可以像看小說一樣輕鬆閱讀——而不是教讀者怎麼解決Linux的疑難雜症。
嵌入式:
《新概念51單片機C語言教程》
類別:基礎實踐
主題:入門書籍,打好51單片機C編程的基礎。
適合人群:單片機初學者。
簡評:首先聲明我沒有讀過這本書,放出來是因為這本書口碑不錯,符合題主的深入淺出要求。初學51的新手可以通過此書快速入門,根據書中內容及相關開發板就能學習到如何用51單片機操作各種外設。作者是郭天祥。
《嵌入式Linux應用開發完全手冊》
類別:實踐
主題:主要講解嵌入式Linux開發的基礎。
適合人群:有一定基礎的嵌入式開發者。
簡評:51單片機入門有《新概念》,嵌入式Linux入門有《嵌入式》。學習ARM+Linux求資料的時候總會被推薦去看韋東山的視頻或書籍,是的,這本書的作者就是韋東山。不過說真的,我不建議只有C語言基礎和51單片機基礎的人馬上閱讀這本書自學,我認為讀者需要如下基礎才能順利閱讀:C語言,Linux基礎(包括Linux下配置和編程),Makefile,其他單片機上使用GPIO、IIC和UART、中斷的經驗等。當有了一定基礎的讀者看這本書,才會覺得韋東山寫得很不錯了。
類別:理論
主題:進階書籍,有嵌入式系統的開發流程、項目管理和嵌入式技術概念等內容。
適合人群:嵌入式、計算機、電子等學生和從業者。
簡評:全書分為三個領域:第1、3、4、17、18、19章屬於嵌入式系統概論與開發流程;第2、15、16屬於項目管理與軟體工程;剩下的11章節屬於嵌入式開發技術內容。如果只對技術領域有興趣可以只看剩下的章節。本書最重要的是傳達嵌入式開發的思想。下面引用豆瓣上面對本書的描述:
本書用平易樸實的語言,以一個完整的嵌入式系統的開發流程為架構,通過一位「菜鳥」工程師與項目經理的詼諧對話,故事性地帶出嵌入式系統概念及開發要素,並點出要成為一名稱職的嵌入式系統工程師,在實際工作中所必須具備的各項知識及技能。
唯一不足的是本書很多技術名詞都用了英文,雖然表達是準確了,但對英文不好的讀者來說是一大障礙。
以上都是嵌入式領域裡比較基礎又深入淺出的書籍,下面推薦一些比較深的技術,如果讀者具備了一定的基礎,讀起來就很爽快。下面書籍榮獲提名獎:
《匠人手記》
類別:理論+實踐
主題:進階書籍,重點闡述單片機編程的基礎、思路與技巧。
適合人群:單片機相關的工程師。
簡評:2008年出版的書籍,現在(2016年)的單片機工程師可能對第三部分的設計案例沒有興趣了。不過前面兩部分還是值得一看,尤其是第二部分的經驗技巧,至少是做了十幾年的老工程師的經驗總結,比如軟體濾波演算法,單鍵多擊檢測程序。當然,正如本書前言寫道:「也許她可以讓你領悟一些東西,提高某一方面的功力,但是她無助於為您實現一個短期的功利目標。」
《嵌入式系統軟體設計中的常用演算法》
類別:理論+實踐
主題:演算法書籍。
適合人群:想在單片機上解決演算法難題的工程師或學生。
簡評:很高深的一本書,但是卻能讓學生知道我們大學所學到的高數是如何在單片機/嵌入式晶元里實現的,演算法包括:線性方程、積分、PID、數字濾波、數理統計、數據壓縮、編碼檢錯與糾錯等。尤其是PID,我建議學習PID的時候可以好好參考這本書的資料和常式。
電子類:
《實用電子元器件與電路基礎》
類別:基礎理論
主題:電子元器件和實用電路的參考工具書。
適合人群:電子、嵌入式等學生和從業者。
簡評:這是一本工具書,它可以單獨閱讀,也可以在遇到問題的時候作為查資料的手冊。書中的理論知識偏重於實踐應用的理論,能幫助電子、單片機/嵌入式的從業者打好紮實的基礎。例如電阻、電容、二極體、晶體管的基礎概念,基本的電源電路、數字電路、濾波電路等。
《圖表細說元器件及實用電路》
類別:理論+實踐
主題:電子元器件的基礎知識。
適合人群,電子類學生和從業者。
簡評:胡斌寫的書,實際上可以說是有一個系列的,我這裡僅拿出一本。有些書出版時間是08年甚至06年的,不過閱讀時不會沒有收穫,比如這本書幾乎用各一篇章講解了電容的隔直通交特性、儲能特性和電容兩端不能突變的特性,其分析幾乎細得不能再細了,非常適合電子類學生和從業者閱讀。
PS:元器件特性的分析在前一本書《實用》是寫得不夠詳細的。
網路相關:
《圖解TCP/IP : 第5版》
類別:基礎理論
主題:描述了TCP/IP的基本知識。
適合人群:計算機、網路、嵌入式等初學者。
簡評:我不知道有沒有初學者一上來就看《TCP/IP詳解》的,不論是別人推薦還是自己的興趣,我就想問一句,看懂了多少?如果我要推薦初學者一本學習TCP/IP的書籍,非《圖解TCP/IP》不可。書中講解的是最基礎的網路知識,比如數據鏈路(MAC)、IP協議(IPv4)、TCP與UDP、路由協議、應用協議(HTTP、FTP和SSH等)等。至少我是從這本書終於理解了NAT這個技術。當然,等有了一定基礎或需要,再去閱讀《TCP/IP詳解》。
《HTTP權威指南》
類別:基礎理論
主題:「為所有希望理解 HTTP 和 Web 底層結構的人編寫的。」——前言
適合人群:計算機系學生、互聯網技術人員及感興趣的人等。
簡評:前言是這麼寫的:「本書中, 我們會將 HTTP 中一些互相關聯且常被誤解的規則梳理清楚, 並編寫了一系列基於各種主題的章節介紹 HTTP 各方面的特性。 縱觀全書, 我們對HTTP「為什麼」這樣做進行了詳細的解釋,而不僅僅停留在它是「怎麼做」的。 」我是不是應該說,要了解HTTP相關的技術,沒有比這本書更好了。
移動開發:
由於我本人並不是專職做移動開發的,接觸也不深,所以下面就簡單列舉一下:
Android:以深入淺出這個標準來看,首推《第一行代碼》,雖然我未讀過。只是口碑不錯所以拿了出來,豆瓣評分是8.7(截至2016-02-27),有更多興趣可以去豆瓣看看評論。同類型的還有一本《瘋狂Android講義》,豆瓣評論是7.4(截至2016-02-27),似乎比《第一行代碼》差了一點。
iOS:由於工作需要,我快速瀏覽過兩本iOS開發的書籍。《Objective-C基礎教程》和《iOS開發指南 從零基礎到App Store上架(第3版)》。前者我主要用來學習Object-C語言,後者主要用來學習iOS開發環境的技巧。不知道是不是因為我有了一定的基礎了,閱讀這兩本書感覺是挺輕鬆的。
==========================總結================================
寫到這裡突然發現似乎沒得舉例了,原來能讓讀者感覺讀起來特別爽快的書是非常少的,大多數書籍還是晦澀難懂。對了,其實我應該再推薦一本關於演算法的書籍(推薦《啊哈!演算法》?我沒看過),可惜這方面我看得不多,所以也就沒有寫。前端技術也一樣(只看過《深入淺出JavaScript》),我並不是做這方面的也沒寫。
總之,以上列出的書籍大多是和嵌入式相關的,以後有機會再補充。《大江戶四十八手》
可惜沒有對象來配合一起練習,我又不想NEW一個,以下誠徵……
《編碼》
《CSAPP》
《啊哈演算法》
《大話數據結構》
以上兩本看完可以看CLRS作為演算法和數據結構的進階
《彙編語言 王爽》
物理方面
《外星人學物理》匈牙利高中物理教材
量子力學科普
《量子物理史話 上帝擲骰子嗎》
數學方面 微積分
《微積分之屠龍寶刀》
《微積分之倚天寶劍》
想到再更新
補圖,回家找到了這本書
不知道這個算不算...微積分之倚天寶劍,微積分之屠龍寶刀
↓部分截圖
1. 作者比較老 電子學 (豆瓣)
2. 作者有經驗 實用數字信號處理 (豆瓣)
3. 作者未完成就先去了 概率論沉思錄 (豆瓣)
第三本大概是我讀過的構思有特點的書;如果一個人能從邏輯學出發發展出一套描述可能性的理論,那真是很不錯啊。:)
《你好,放大器》 作者:楊建國
======================================================================
貼一段前言:
讓人魂牽夢繞的東西,都具備三個特點:有難度、能實現、你喜歡。下棋、足球、打遊戲…… 追你心儀的對象,但凡你能說得出來的,本都如此。
趁著年輕,為自己找個興趣所在吧,最好,它還能養家糊口。
放大器,就具備前兩個前兩個特點 。這本書,只想讓你喜歡它。
……
好吧……很高興認識你。
你好 ,放大器 。
《數學之美》 吳軍
我來增加兩本,等到晚上寫,占坑先。
1.paul zarchan的fundermentals of kalman filtering,此書劍走偏鋒,無公式推導,只是用平實的語言教會你在工程中如何運用,實乃扛鼎之作。別的書一般是講卡爾曼濾波的概率推導或者其他數學推導來入手,此書直接將如何編程。
2.Introductory Functional Analysis with Applications By Erwin Kreyszig
有兩種泛函分析課本,這本和其他。這本確實是很容易看懂的,其他的泛函分析課本工科學生看起來難度都太高了。
推薦閱讀:
※數字信號在物理層傳輸時,本質上是數字信號還是模擬信號,為什麼?
※tcp重傳機制 對端滑動窗口一直為0時如何處理?
※為什麼TCP4次揮手時等待為2MSL?
※在計算機領域中,有哪些令你拍案叫絕的思想?
※乙太網與互聯網有什麼區別?