「讀書筆記」《碼農翻身》——一本差點被書名耽誤的好書

寫在開頭

雙11期間,噹噹網買了一波書,一般我買技術書籍都會提前先在網上大概瀏覽下目錄和內容,再決定買不買紙質書,主要是為了防止自己買了後又覺得不感興趣,閒置在那,浪費錢。這次買書為了湊單,準備額外多買一本書,本想再來一本小說,作為床頭放鬆讀物,但是翻到了銷量前幾的《碼農翻身》,看了看副標題是:用故事給技術加點料。想了想就下單了,就權當是看小說順便複習下技術,安慰下自己焦慮的內心。

本來看見這書名,也沒對書的內容抱太大期望,結果拿到手發現還不錯。每天晚上看幾頁,很快就把它看完了。

只能說這本書的名字有點令人摸不著頭腦,我大膽猜測是作者對自己的內容充滿信心,知道大家看了後肯定想要關注他的公眾號,所以乾脆就用公眾號作為書的名字了。哈哈哈哈哈嗝。

聲明:不是廣告…我只是單純想寫筆記。

「讀書筆記」《碼農翻身》——一本差點被書名耽誤的好書

「讀書筆記」《碼農翻身》——一本差點被書名耽誤的好書

主觀評價

正面:

  • 把技術用故事包裝,首先讓大家瞭解為何要有這種技術,層層遞進,介紹該技術隨著時代的演變,讀完那些原來不熟悉的技術,的確有豁然開朗的感覺。
  • 勿在浮沙築高閣,本書就是希望大家對於基礎有所熟悉,有所瞭解。

負面:

  • 老少咸宜,沒有負面,硬要槓出來的話可能就是,大部分章節包括章節內小節沒有銜接,不過這一點作者也解釋過,希望大家把它當作一本工具書看待,閒下來隨手看幾章,不需要連續性。

主觀打個分:

8.5分

適合人群:

0.5-2年經驗的同學們。我覺得這本書其實並不適合0基礎的同學,有些概念和技術,是要自己實際有了一定開發經驗後,才能感悟到,否則就和教科書一樣有點枯燥,看完了也沒有太大收穫。

內容筆記

第一章 計算機的世界你不懂

本章節主講計算機的底層實現,也就是程序是怎麼跑在計算機上的。

包括了:

  • 計算機軟硬件的結構,以及他們互相是如何通信的:詳見“我是一塊硬盤”,“我是一個鍵盤”。
  • CPU是如何執行程序的,包括CPU執行代碼的邏輯,從內存調度程序,線程和進程的發展由來:詳見“我是一個進程/線程”,“CPU阿甘”,“從1加到100”,“繞不開的加法器”。
  • 網絡數據是如何傳輸的:詳見TCPIP,“搞清楚WebSocket”
  • 數據庫是怎麼產生的,為啥想在的數據庫要是關係模型:詳見“數據庫的奇妙之旅”。
  • 編程語言的發展史:“一個翻譯家族的發展史”。
  • 編程中的鎖:我們常說的共享變量鎖問題總結
  • 遞歸和尾遞歸:正常情況下,一個遞歸就會用一個棧幀,但是當遞歸調用是函數體中最後執行的語句,斌且返回值不屬於表達式的一部分時,這個遞歸就是尾遞歸。現代編譯器會優化這個代碼,複用棧幀。

Java帝國

本章描述了與Java有關生態的各種框架,概念。

  • Java Class:詳細介紹了虛擬機是如何處理Java代碼的
  • 持久化:Java處理數據存儲的方式
  • JDBC的誕生:為啥我們會有JDBC,以及JDBC是如何演變成現在這種設計的:簡單工程--》工廠方法
  • 宮廷內鬥:講了數據庫操作的事務以及分佈式事務
  • JSP:JSP是如何被淘汰的哈哈哈,還不是因為JS自己在瀏覽器實現了MVC!
  • 消息隊列:為啥我們會有消息隊列的需求,還不是為了解耦!後面還介紹了消息隊列的協議設計,我們都要遵守協議!
  • 動態代理:AOP相關
  • 註解:比XML更好用的東西,也講了我們怎麼去實現一個自定義註解
  • 泛型:搞不清泛型的同志們,可以看下。還有一些實際編碼中需要注意的細節。
  • 日誌系統:logback+slf4j萬歲
  • 序列化:JSON和XML當立,還有未來的趨勢,RPC中的序列化
  • 加鎖:和系統的鎖不完全相同,這裡的鎖是Java中處理數據時需要注意的問題。
  • Spring的本質:Spring的DI和AOP,用到了哪些設計模式?

浪潮之巔的Web

這一章每小節基本都是一個技術問題的歷史介紹,也是最像小說的一章,我就不每個小節都總結了,只寫我比較關注的幾個重點:

  • 機房夜話:SSO單點登錄的實現方式
  • 從密碼到token:OAuth 實現的三種方式!
  • 從SOA到微服務:前者做系統的集成,後者做系統的拆分
  • HTTPServer:從多進程,到select,到epoll,講述了服務器是如何逐步優化高併發訪問的。

代碼管理那些事

  • 不熟悉Git和SVN的同學,只想手動保存文件互相傳文件的同學,應該好好看看這章
  • 覺得Maven為何這麼難用的同學,也該看看沒有Maven的年代是多麼的痛苦。(其實我一直覺得Maven蠻難用的,看了之後覺得有點錯怪他了)
  • 單元測試:記住一句話,你不敢重構代碼,主要是因為你沒有寫單元測試!

我的編程語言簡史

作者講述了它使用的幾種語言,以及它們之間的關係,某個語言必然是有優於領一個語言的優點的。大家可以著重看下聲明式編程和命令式編程的區別,講得非常通俗易懂!

老司機的精進

作者對於職業生涯的一些總結感悟,看完之後,我覺得可以讓大家少走一些彎路,少踩一些坑!

後記

本文是我自己看書以來的筆記,內容雜亂,大家多擔待,就當我是在記流水賬好啦。

關注我

我是一名後端開發工程師。

主要關注後端開發,數據安全,爬蟲,物聯網,邊緣計算等方向,歡迎交流。

各大平臺都可以找到我

  • 微信公眾號:後端技術漫談
  • Github:@qqxx6661
  • CSDN:@Rude3Knife
  • 知乎:@Zhendong
  • 簡書:@蠻三刀把刀
  • 掘金:@蠻三刀把刀

原創博客主要內容

  • Java知識點複習全手冊
  • Leetcode算法題解析
  • 劍指offer算法題解析
  • SpringBoot菜鳥入門實戰系列
  • SpringCloud菜鳥入門實戰系列
  • 爬蟲相關技術文章
  • 後端開發相關技術文章
  • 逸聞趣事/好書分享/個人興趣

個人公眾號:後端技術漫談

「讀書筆記」《碼農翻身》——一本差點被書名耽誤的好書

如果文章對你有幫助,不妨收藏,投幣,轉發,在看起來~


分享到:


相關文章: