人生就是不斷充實自己的過程。編程更是如此,隨著全球化,物聯網化的發展,編程語言可以說每時每刻都在發生變化,編程書也在不斷跟新換代。想要在編程這列車上不下站,就需要不斷的充實自己的專業知識,芯學苑今天給大家推薦幾本軟件工程師應該讀的幾本書,希望可以讓你對編程有更深入的了解。
1.《人月神話:軟件工程論文集》(周年第二版) 作者:**Frederick Brooks, Jr.
這 是一本比較古老的書(它的第一版誕生于1975年!),本書在我的書架上還保存著一本,因為它所傳達的理念到現在任然適用。復雜的項目管理任然是一項很大的挑戰,本書不僅適用于軟件工程,在其他技術領域也同樣適用,比如微機處理器設計。事實上本書在很多編程暢銷書排行榜上穩居前列,同時很多大學也在用它作為教材使用。
2.《計算機程序設計藝術》 作者:Donald Knuth
理解為什么現代計算機程序代碼都是以這樣一種形式存在是每一個計算機科學家都應該學習的東西。這一整套書詳細的闡述了這方面的原因,它的信息量太大,以至于無法在一卷中覆蓋所有信息。因為Knuth在計算機程序設計方面具有至關重要的作用,所以在許多計算機課程中會涉及到他的理論。更重要的是,Kunth的理論影響了幾乎所有的現代技術領域,因為他幫助開發的許多算法能用于其他領域的研究,包括數據科學領域。
3.《算法導論》第三版 作者:Thomas Cormen, Charles Leiserson, Ronald Rivest, CliffordStein
許多以團隊所編寫的書會缺乏專注點而且會包含相互矛盾的觀點,但本書卻沒有這個問題。相反,本書詳細和全面的闡述了將算法應用于計算機科學和其他以數學為基礎的技術中的觀點。它對于算法的嚴謹性能夠讓你很好的理解為何一種算法適用于某種特定的方式。
4.《編碼:隱匿在計算機軟硬件背后的語言》作者:Charles Petzold
許多現代的程序員并不完全理解他們編寫的代碼與底層硬件之間的聯系。這是因為編譯器、類庫和其他工具將弱化了這層聯系使它變得不可見。但是那些設計語言、編譯器、類庫和其他工具的人通常對于代碼和底層硬件的關系有很好的理解,因為他們已經代勞了理解代碼的工作。這本書的目的就是用于闡述這層聯系。
5.《修改代碼的藝術》作者:Michael Feathers
在現實世界中,許多開發者在更新其他人所寫代碼花的時間遠遠超過編寫新代碼所花的時間。不幸的是,大多數學校和書籍的切入點都是從開發者編寫新代碼開始的。這本書可以幫助開發人員在舊代碼中產生更好的應用程序。本書還更進一步的幫助開發者在修改代碼時得到更深層的見解,通過這種方式能夠讓開發者再編寫新代碼時寫出很酷的程序。
6.《人件集:人性化的軟件開發》(第三版) 作者:Tom DeMarco,Timothy
我盡量在我的書中解釋應用程序在于人,而不在于軟件或者是硬件。當一個開發團隊過于沉浸于技術時,這個應用程序基本宣告失敗了。這本書主要討論人——關于如何管理團隊并充分利用成員的技能來創建能取悅用戶的應用程序。
7.《程序員修煉之道》 作者:Andrew Hunt ,David Thomas
是什么決定了一個程序員成為一名能使代碼變成魔法的藝術家,還是平庸的碼農?本書闡述了其中的差別。更重要的是,本書提供了大量實用的編程技巧,來幫你從一個碼農轉變為軟件大師。新鮮和有趣的寫作手法,讓本書非常易于閱讀。