系統(tǒng)程序員成長計劃

出版時間:2010-04  出版社:人民郵電出版社  作者:李先靜  頁數:272  字數:413000  
Tag標簽:無  

前言

在經歷過幾個大型的、失敗的項目之后,我終于認識到了:沒有什么比高素質的程序員更能決定項目的成功。無論采用什么開發(fā)過程,什么編程語言和開發(fā)工具,離開了高素質的程序員,都是白費力氣。毫無疑問,人是軟件開發(fā)中最重要的因素。但并非每個人都重要,也不是什么樣的人都重要,在軟件開發(fā)中,只有那些高素質的程序員和那些對項目有突出貢獻的人才是重要的。不過高素質的程序員并不多見,所以從我開始帶人起,就一直在思考團隊成員培養(yǎng)的問題。我做過很多嘗試,從小組內學習到整個部門一起上大課,最后又回到對個人做單獨的輔導;從通過Code Review(代碼評審)做現場教育到制定一個宏偉的培訓計劃,最后又回到一個樸素的培訓過程。其中遇到了很多問題,開始是培訓不夠系統(tǒng),效果不甚理想,后來又因為計劃過于“宏偉”而無法實施,等到最后形成一個樸素的、切實可行的培訓方案,已經經過了好幾年時間,直到去年,整個計劃才趨于完善。我把這個培訓計劃稱為系統(tǒng)程序員成長計劃,而這正是我在本書中所要介紹的。培訓內容不是來源于某本書,畢業(yè)八年來,我堅持不懈地閱讀有關書籍,所讀過的300多本不同類型的著作裝滿了家中的7個大儲物箱,而這些著作囊括了大部分經典的IT圖書。當然培訓的內容也不是全部源于書本,這幾年我在開發(fā)開源軟件的過程中所收獲的感悟和積累的經驗也融入其中。我的培訓計劃并不是要闡述什么高深的道理,相反,我這本書主要是針對應屆畢業(yè)生和業(yè)余愛好者寫的,目的就是為了讓初學者進階為一個專業(yè)的程序員。為什么把這個培訓計劃叫做“系統(tǒng)程序員成長計劃”,而不是“程序員成長計劃”呢?程序員的范圍太廣了,雖然軟件開發(fā)有很多相似之處,但是隔行如隔山,比如對于目前炙手可熱的Web開發(fā),我完全是外行。為了不造成“想什么都講一點,結果是什么都沒有講清楚”的尷尬,我得把培訓計劃限定在我熟悉的范圍之內。而所謂系統(tǒng)程序員,是指從事操作系統(tǒng)內核、DBMS、GuI系統(tǒng)、基礎函數庫、應用程序框架、編譯器和虛擬機等基礎軟件開發(fā)的程序員。

內容概要

本書以生動的語言和豐富的代碼示例,運用一些相對簡單的例子分析開發(fā)系統(tǒng)程序中可能遇到的各種問題。作者把數年的開發(fā)經驗和閱讀大量書籍的體會,結合他在培訓新員工過程中所積累的培養(yǎng)方法,融會貫通在這12章的內容中。書中介紹了鏈表、數組、棧、隊列和散列表等基礎數據結構,也介紹了并發(fā)、同步和內存管理等系統(tǒng)程序中常需注意的問題,還講解了文本處理器等具體應用程序的設計方法。   本書是初涉系統(tǒng)程序開發(fā)領域的人不可多得的一本參考書。書中體現的思想對于其他各種軟件開發(fā)人員、相關專業(yè)的在校學生以及軟件開發(fā)愛好者都有啟發(fā)意義。

作者簡介

李先靜,CSDN開源專家,有著十年Linux開發(fā)經驗、五年手機開發(fā)經驗。擅長嵌入式程序員培訓,軟件架構設計和技術寫作。近幾年負責Broncho Linux智能手機項目,致力于基于Linux的嵌入式系統(tǒng)的學習和研究。其CSDN博客連續(xù)三年被CSDN提名為最有價值的技術博客(MVB),他先后發(fā)表了近500篇技術類博文,博客文章被各大技術網站轉載。在《程序員》雜志上發(fā)表過多篇文章。

書籍目錄

第0章 背景知識 0.1 基礎知識 0.2 開發(fā)環(huán)境第1章 從雙向鏈表學習設計 1.1 走近專業(yè)程序員 1.2 誰動了你的隱私 1.3 Write once, run anywhere(WORA) 1.4 擁抱變化 1.5 Don't Repeat Yourself(DRY) 1.6 你的數據放在哪里第2章 寫得又快又好的秘訣 2.1 好與快的關系 2.2 代碼閱讀法 2.3 避免常見錯誤 2.4 自動測試 2.5 Save your work第3章 從動態(tài)數組學習設計 3.1 動態(tài)數組與雙向鏈表 3.2 排序 3.3 有序數組的兩個應用第4章 并發(fā)與同步 4.1 并發(fā) 4.2 同步 4.3 嵌套鎖與裝飾模式 4.4 讀寫鎖 4.5 無鎖數據結構第5章 組合的威力 5.1 隊列 5.2 ?!?.3 散列表第6章 算法與容器 6.1 容器 6.2 迭代器 6.3 動態(tài)綁定第7章 工程管理 7.1 Hello World 7.2 函數庫 7.3 應用程序第8章 內存管理 8.1 共享內存 8.2 線程局部存儲(TLS) 8.3 內存管理器 8.4 慣用手法 8.5 調試手段及原理第9章 從計算機的角度思考問題 9.1 變參函數的實現原理 9.2 誰在call我——backtrace的實現原理 9.3 Hello World不能不說的十大秘密第10章 文本處理 10.1 狀態(tài)機 10.2 Builder模式 10.3 管道過濾器模式第11章 分離用戶界面與內部實現 11.1 分層設計 11.2 MVC架構 11.3 外殼模式第12章 撰寫設計文檔附錄 C語言中接口定義的不同形式

章節(jié)摘錄

插圖:假想講給朋友聽據說在代碼評審時發(fā)現錯誤的,往往不是評審的人而是程序員自己。我也有很多這樣的經歷,在把自己遇到的情況講給別人聽的時候,往往是別人還沒有聽明白,自己已經發(fā)現里面存在的錯誤了。上大學時,我常常把自己寫的或者學到的東西講給隔壁寢室的一個同學聽,他說他從我這里學到了很多知識,其實我從講的過程中,也經常會發(fā)現一些問題,對提高自己的能力大有幫助。可惜并不是隨時都能找到好的聽眾,幸好我們有另外一個替代辦法。記得剛開始寫程序時看過一本書(忘記名字了),作者說他在寫程序時,常常把思路講給他的布娃娃聽。我沒有布娃娃當聽眾,總不至于讓我對著鼠標、鍵盤和顯示器講自己的思路吧,所以我會假想自己身邊有個朋友,把自己的思路講給“他”聽,同時也假想“他”來質疑我。話說回來,這種方法確實很有效,能夠讓自己的思路更清晰,據說一些大師也經常使用這種方法。這種代碼閱讀法會花掉你~些時間,但是可以省下更多調試時問,而且能夠提高代碼質量,可以說是名符其實的“寫得又快又好的秘訣”之一。至于讀幾遍合適,要根據情況而定,我個人覺得讀兩到三遍是最好的,花費的時間也不算多。在C語言中,內存錯誤是最為人詬病的。這些錯誤讓項目延期或者被取消,引發(fā)無數的安全問題,甚至出現人命關天的災難。拋開這些大道理不談,它們確實浪費了我們大量時間,這些錯誤引發(fā)的是隨機現象,即使有一些先進工具的幫助,為了找到重現的路徑,花上幾天時間也不足為怪。如果能夠在編寫代碼的時候避免這些錯誤,開發(fā)效率至少提高一倍以上,而且質量也可以提高幾倍。這里列舉一些常見的內存錯誤,供新手參考。內存泄露大家都知道,在堆上分配的內存,如果不再使用了,就應該把它釋放掉,以便后面其他地方可以重用。在C/C++中,內存管理器不會幫你自動回收不再使用的內存。如果你忘了釋放不再使用的內存,這些內存就不能被重用了,這就造成了內存泄露。把內存泄露列為首位,倒不是因為它會帶來多么嚴重的后果,而是因為它是最為常見的一類錯誤。一兩處內存泄露通常并不至于讓程序崩潰,也不會帶來邏輯上的錯誤,而且在進程退出時,系統(tǒng)會自動釋放所有與該進程相關的內存(共享內存除外),所以內存泄露的后果相對來說還是比較溫和的。但是,量變會導致質變,一旦內存泄露過多以至于耗盡內存,后續(xù)內存分配將會失敗,程序就可能因此而崩潰。

編輯推薦

《系統(tǒng)程序員:成長計劃》:結合代碼詳細講解程序開發(fā)方法匯集豐富的軟件開發(fā)思想CSDN專家全新力作在學習程序開發(fā)的過程中,你是否總是為自己遇到的一些問題頭疼不已,你是否還在為寫不出代碼而心急如焚?作為軟件開發(fā)人員,你是否時時為自己如何成為一名合格的程序員而困惑不已?沒關系,《系統(tǒng)程序員:成長計劃》將為你排憂解難。這是一本介紹系統(tǒng)程序開發(fā)方法的書。書中結合內容詳盡的代碼細致講述了不少底層程序開發(fā)基礎知識,并在逐步深入的過程中介紹了一些簡單實用的應用程序,最后還講述了一些軟件工程方面的內容,內容全面,語言生動,尤其適合初涉系統(tǒng)程序開發(fā)的人來讀,有利于他們成長為更加專業(yè)的程序員。雖然《系統(tǒng)程序員:成長計劃》以“系統(tǒng)程序員”為名,但書中所蘊含的軟件開發(fā)思想和方法也同樣適用于其他的軟件開發(fā)領域。各種軟件開發(fā)人員、相關專業(yè)的在校學生以及軟件開發(fā)愛好者也都不妨讀讀《系統(tǒng)程序員:成長計劃》,來分享作者多年來在學習和實踐中所總結的開發(fā)方法與所領悟的開發(fā)思想。

圖書封面

圖書標簽Tags

評論、評分、閱讀與下載


    系統(tǒng)程序員成長計劃 PDF格式下載


用戶評論 (總計41條)

 
 

  •   系統(tǒng)程序員,尤其 用C語言的,值得一看
  •   讓你成為一個真正的程序員的書。
  •   好書, 程序員提高必讀。
  •   這是一本一看就喜歡的數。尤其是喜歡c,喜歡linux的人。
  •   也是看博文過來的。。比博文上要稍微詳盡一些。。不過內容是一樣的。。還不錯了
  •   這本書是聽人介紹的,說是一本很好的書,雖然我沒能堅持看完,因為個人的原因,不過這本書確實能提高編程能力,這里面說的內容確實有一定的難度,能堅持按里面說的做的話,也許真的能成為這方面的高手的。。。。。。。。。。。
  •   書里面的聯系很多,而且都要自己上網找資料,不過如果能按照要求讀下來,絕對會和作者“吹”的一樣!
  •   知道這書的應該是科班較多,我是半路出家,在周工推薦看到,現在看到第三章,感覺還不錯,比較喜歡這種不斷穿插實踐的書,但因為半路出家,好多知識還得慢慢補,總之對與我這種初學編程的人,認為它很適合邊看邊練。
  •   內容充實,書很實用
  •   用手機拍的,還不錯。
  •   讀者群定位明確,論述簡明精要,沒有廢話,是一本人寫的書,寫給人看的書。
  •   在經過老師的推薦和自己的觀察,發(fā)現很適合我,內容淺顯易讀、引導思維,有助一個學者的學習。
  •   短短的篇幅介紹了很多諸如容器類等等的 思路和寫法,雖然篇幅不長但是還是對人蠻有啟發(fā)的。
  •   作者很用心的在寫這本書,這比較可貴。
  •   這本書對于我來說是很有幫助的,對于一般編程者來說會有很大提高。這書也是別人向我推薦的,我在此也向大家推薦!
  •   看完了才寫的評論,書本不錯,只是要求有比較好的基礎,還有些說得不是很詳細,進階必備
  •   按照作者的計劃進行,定能成才
  •   不過這些資料我在也正是華為的資料(作者是華為出來的),總之很強大,實踐的經驗之談,要想提高還是得要多實踐多提高
  •   書還來不及看,不過從封面上看,還是蠻好的
  •   編程不僅僅的功能正確,架構也要完美,才能提高容錯和擴展能力
  •   內容詳實,很值得買
  •   收藏的一本書,終于擁有。
  •   如果剛畢業(yè)是有這本書就好了
  •   有點小深度,適合慢慢鉆研
  •   里面講了些細節(jié),要仔細看
  •   還不錯 很喜歡 當當一直很給力!
  •   好書,值得看3遍!
  •   圖書館看過的,必須買?。?/li>
  •   對新人來說這是一本好書
  •   書不錯,適合初入程序員界的時候看。
  •   不錯,內容很全面,很有指導性
  •   這本書是一本計劃書,用來作為參考是不錯的
  •   還好吧,同學介紹的
  •   好書 自己還得在消化消化
  •   還沒有看,希望看后收獲頗多!
  •   有很多東西你試了就知道了
  •   不是抄的,有自己的東西
  •   讀書的關鍵在于思考。
  •   幫朋友買的,可以。
  •   正在看,不好評論......
  •   沒什么用的書,擱置了。
 

250萬本中文圖書簡介、評論、評分,PDF格式免費下載。 第一圖書網 手機版

京ICP備13047387號-7