史蒂芬斯與演算法導論之思
休息在家,有空拜讀了史蒂芬斯先生的六本傳世之作Advanced Programming in the Unix Environment、Unix Network Programming和TCP/IP Illustrated,還有就是MIT出版的Introduction to Algorithm。經歷了一年碼農的洗禮,對於這幾本每本都厚達900多頁的書籍,終於能有能力去挑戰,也感到十分高興和激動。
隨著時代的發展,程式設計技術逐步大眾化,同時語言開發工具也開始逐步自動化,智慧化。越來越完善的資料,越來越豐富的開原始碼,讓每一個人似乎都能輕易地學習。無論在什麼領域,安卓、iOS、安全、前端,彷彿都有前人為我們準備的一系列框架。比如安全工具的Metasploit、sqlmap、nmap,比如機器學習的tensorflow,又比如前端的Node.js、Vue.js、Bootstrap。
於是一股思潮便孕育而生:工具比原理更重要,框架比底層更重要。的確,工具框架是顯而易見的,是可以立馬使用的,立竿見影的。而原理和底層又是如此艱澀難懂。
現在那麼多公眾號和部落格都在近乎瘋傳著Python和AI。給出的理由就是:年薪很高。記得大二之時,Android同樣如此。現在呢?React Native也是。2017年5月,谷歌宣佈Kotlin作為一級安卓開發語言,於是一夜之間所有與Android有關的公眾號都在打雞血的推送著Kotlin,持續了近兩個月。而AlphaGo以來,更是長篇累牘的吹著人工智慧。
熱門,誰知道斗轉星移、瞬息萬變的網際網路,那些具體領域是否會一直熱門下去?安卓很火,我莞爾一笑:也就是幾年前,彷彿就是昨天,塞班也很火。去年的O2O帶動了移動端,也吸引著資本進入移動端開發。結果O2O倒閉潮開始,Android與iOS也逐漸飽和。
當我逐步入門,特別是學習JPEG的一個庫的時候才驚訝的發現。設計了JPEG的組織只是給出瞭解析方式和壓縮方式,而並未給出相關解析程式碼。不由得感慨:一流公司制定標準、二流公司實現標準、三流公司應用標準。有一些人跑過來問我:大哥,為啥有那麼多輪子,我們還要學資料結構自己造呢?我回答他:您可以跑到國務院去,問總理為什麼美國有了全球定位系統,而我們還要自己弄個北斗導航呢?
如今,開源也有20年的歷史。正是有了這一場運動,讓大多數人能夠參與到程式設計的樂趣當中。而史蒂芬斯等人對標準化Unix作業系統的貢獻,遠大於實現。正是有了這些前輩的努力,我們才有標準化的工具,才能讓每一臺電腦都能享受到網際網路的樂趣。也或許是我們走得太順,以至於覺得我們現在可以不需要那麼辛苦,忘記了來時的路。
開源確實很美好,但是反問一句:最核心的是否開源?谷歌公司曾用三篇論文開啟Web 2.0。但是不好意思,這三篇所及的系統至今未開源。
願在這浮躁的世界,能有一顆平靜的心,不追求所謂的熱點,而是堅持半衰期長的知識。因為只要計算機行業一日還在,史蒂芬斯的書籍、演算法導論、系統結構、資料結構等理論只會愈發重要和夯實,而且數學和英語都將是基本實力,更不會因為年齡而退化,反而會愈久彌香,像一罈老酒會因為時間的變長而愈發醇香。基礎學科的重要性和對人成長的意義,只有學得深入之後才能慢慢體會到。
相關文章
- 演算法隨筆——數論之莫比烏斯反演演算法
- 思維導圖與UML之ContentProviderIDE
- 《演算法導論》演算法
- 分享一個好東西:計算機專業導論之思維與系統計算機
- 演算法導論學習之五:快速排序演算法排序
- 演算法導論學習之六:歸併排序演算法排序
- 演算法基礎思維導圖演算法
- 演算法導論-堆排序演算法排序
- 演算法導論-快速排序演算法排序
- 《系統化思維導論》譯者序
- 從零開書學演算法(導論)之歸併排序演算法排序
- javaSE之物件導向思維導圖總結Java物件
- 演算法導論-第6章演算法
- 演算法導論FFT程式碼演算法FFT
- 演算法導論學習之補漏:高精度冪運算演算法
- 演算法導論第三十一(31)章數論演算法演算法
- 再論: 馬斯洛引導的WEB2.0網路革命Web
- 學演算法要讀《演算法導論》嗎?演算法
- 【MySQL】資料安全性討論思維導圖MySql
- 《演算法導論》學習筆記演算法筆記
- iOS面試準備之思維導圖iOS面試
- 《圖論》——最短路徑 Dijkstra演算法(戴克斯特拉演算法)圖論演算法
- 演算法導論學習之補漏:斐波那契數列演算法
- 【演算法導論】24.1 Bellman-Ford 演算法演算法
- 英語思維與物件導向分析思維的關係物件
- IT架構之IT架構模型——思維導圖架構模型
- FP-Growth演算法全解析:理論基礎與實戰指導演算法
- 讀天才與演算法:人腦與AI的數學思維筆記25_湧現理論演算法AI筆記
- [原創]專案管理知識體系指南之 1專案管理引論思維導圖專案管理
- 團隊動力之群體思維理論
- 資料結構與演算法——克魯斯卡爾(Kruskal)演算法資料結構演算法
- 計算機導論與物理層計算機
- 演算法導論第二章思考題演算法
- 演算法導論第二章筆記演算法筆記
- 演算法導論第二章練習演算法
- 演算法導論 3.2-7 共軛數演算法
- 演算法導論_第七章_快速排序演算法排序
- IT架構之IT架構標準——思維導圖架構