前言
轉眼間,距離《碼農翻身》的出版已經過了5 年時間,很多讀者催問:“什麼時候出《碼農翻身2》?我已經等不及了!”“疫情都結束了,《碼農翻身2》在哪兒?”……現在《碼農翻身2》終於來了,之所以拖了這麼長的時間,主要是因為中間“插播”了另外一本書——《半小時漫畫計算機》,該書使用純漫畫的方式來講解計算機基礎知識,這對我來說是一個全新的嘗試,花費了我不少的時間和精力。
近幾年來,我一直在微信公眾號“碼農翻身”上堅持輸出原創技術文章,慢慢地,竟然積累了近1000篇,可見堅持的力量是非常驚人的。
有一次,我參加一個同學組織的聚會,並在聚會上無意中提起了自己正在運營的微信公眾號“碼農翻身”,有幾個我並不認識的朋友搜索並關注了該公眾號以後就驚呼:“哇,這麼多我的好友都在關注啊!”可見公眾號的讀者越來越多,影響力也越來越大。
熟悉我的朋友應該知道,我不太喜歡追熱點寫文章,因為熱點過後很快就“煙消雲散”了,我更喜歡寫那些穩定的、不容易過時的知識。
《碼農翻身》主要關注的是計算機的底層,比如進程、線程、硬盤、鍵盤、TCP/IP、Socket、HTTPS、數據庫原理、Web服務器原理等。
本書則把焦點稍微向上移了一點兒,關注了一些中間層及以上的內容,比如負載均衡、雙機熱備、數據復制、緩存、分布式ID等。但是我在選擇相關技術的時候,依然會把穩定的、不容易過時的技術作為重要標準。
我也不喜歡那種上來就講解技術細節、安裝步驟、配置方法的枯燥文章,因為讀者看了之後往往一頭霧水,也不知道為什麼有這個東西,解決了什麼問題。所以,本書會盡量避免講解技術細節,而是會采用故事的方式來講解技術本質。
還是那句話,Why有時候比How重要得多,懂得Why以後,再去看How,就猶如開啟了“上帝視角”,一切都變得簡單起來。
本書特色
我記得自己在高中暑假時閱讀金庸的武俠小說,被曲折的故事情節吸引,沉迷其中,閱讀速度極快,隻要三四天就能讀完一部,雖然主要是走馬觀花,但足見故事的魅力。
所以,我在寫文章的時候也有意把枯燥乏味的技術包裝一下,變成好玩有趣的故事,在故事中讓主人公不斷遇到問題,不斷制造懸念,吸引大家看下去,不知不覺就把技術掌握了。
從《碼農翻身》到《碼農翻身2》,這種采用故事的方式講解技術的風格一直延續下來,也受到了大量讀者的熱烈歡迎。
本書和《碼農翻身》一樣,每個章節都是獨立的,讀者不用從頭到尾閱讀,完全可以查看目錄,挑選自己喜歡的章節去閱讀。
讀者對像
這不是一本編程的入門書,剛開始學習編程的“純小白”讀起來會比較喫力,讀後可能會失望,但是稍有編程基礎的讀者讀起來會非常過癮,讀後會產生一種“原來如此”的感覺。
比如,對於“C語言:春節回老家過年,我發現隻有我沒有對像”這一節,如果你沒有學過面向對像的相關知識,就可能無法透徹理解其中的一些“梗”,但是有一定基礎的讀者就能心領神會。再比如,對於“編程語言的巔峰”這一節,如果你對基本的數組、條件分支、函數都不了解,就無法領略彙編語言的厲害之處。
雖然本書側重於服務器端的知識,偏向後端編程,似乎更適合後端程序員,但是它並沒有講解技術細節,而是主要講解技術原理,所以對前端程序員來說,也是一個了解後端編程的好機會。
另外,本書也不是一本參考書,它的目的不是希望大家看完以後照搬,而是希望幫助大家理解一些技術的本質。