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

出版時(shí)間:2010-04  出版社:人民郵電出版社  作者:李先靜  頁數(shù):272  字?jǐn)?shù):413000  
Tag標(biāo)簽:無  

前言

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

內(nèi)容概要

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

作者簡(jiǎn)介

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

書籍目錄

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

章節(jié)摘錄

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

編輯推薦

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

圖書封面

圖書標(biāo)簽Tags

評(píng)論、評(píng)分、閱讀與下載


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


用戶評(píng)論 (總計(jì)41條)

 
 

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

250萬本中文圖書簡(jiǎn)介、評(píng)論、評(píng)分,PDF格式免費(fèi)下載。 第一圖書網(wǎng) 手機(jī)版

京ICP備13047387號(hào)-7