作為一個(gè)軟件開發(fā)者,其實(shí)我們的工作內(nèi)容遠(yuǎn)遠(yuǎn)不止寫代碼這么簡(jiǎn)單。要想在此基礎(chǔ)上進(jìn)階,還需要做很多事情,比如項(xiàng)目管理、需求整理、代碼優(yōu)化、預(yù)言項(xiàng)目、團(tuán)隊(duì)協(xié)作、深入淺出傳達(dá)項(xiàng)目、解決難題等等。
這里我把這個(gè)進(jìn)階的過程分為4個(gè)階段,入門級(jí)、中級(jí)、熟練級(jí)、技術(shù)帶頭人,并且推薦一些書,供大家參考。
1第一級(jí) 入門級(jí)
這個(gè)階段需要會(huì)利用某種語(yǔ)言的基本功能,能夠編寫類、子程序、循環(huán)和條件語(yǔ)?,會(huì)使用語(yǔ)言的許多特性。
熟練軟件開發(fā)的工具和技巧,并且可以介紹出如何處?細(xì)節(jié)問題等等,這個(gè)階段有兩本書可以參考。
代碼大全(第2版)
《代碼大全》即 Code Complete,是一本完整的軟件構(gòu)建手冊(cè),涵蓋了軟件質(zhì)量、編程思想等軟件構(gòu)建過程中的所包含的幾乎所有細(xì)節(jié),并詳細(xì)論述了很多緊跟潮流的新技術(shù)、高層次觀點(diǎn)以及通用的概念等等。
本書包含有豐富且典型的程序示例,不管你是初學(xué)者還是編程,都是很適合去研讀的,如果想要繼續(xù)深入理解成為高手,本書包含的編程技巧以及編程思想更是對(duì)我們大有裨益。
總的來(lái)說(shuō),無(wú)論是什么背景的讀者,閱讀這本書都有助于在更短的時(shí)間內(nèi)、更容易地寫出更好的程序。
編程珠璣
本書的內(nèi)容是圍繞程序設(shè)計(jì)人員面對(duì)的一系列實(shí)際問題展開的,授人以魚不如授人以漁,所以作者用這種超強(qiáng)的洞察力來(lái)教會(huì)我們要在實(shí)際中解決問題,這對(duì)我們至關(guān)重要。
通過一些精心設(shè)計(jì)的實(shí)用程序,在設(shè)計(jì)技巧及基本設(shè)計(jì)原理上進(jìn)行了透徹的描述,生動(dòng)有趣,可以使我們?cè)诿髦锌鞓穼W(xué)習(xí),并且在復(fù)雜的編程問題中有清晰而完備的解決思路。
編程珠璣多年來(lái)都很受歡迎,可以說(shuō)排在程序員愛讀的計(jì)算機(jī)圖書的前列,不枉珠璣兩字,書中濃縮了史上眾大師們?cè)谔剿鹘鉀Q方案中發(fā)生的軼事、走過的彎路和不斷精益求精的歷程。
其本質(zhì)可總結(jié)為:如何正確選擇和高效地實(shí)現(xiàn)算法,并透徹闡述和總結(jié)了許多獨(dú)特而精妙的設(shè)計(jì)原則、思考和解決問題的方法以及實(shí)用程序設(shè)計(jì)技巧。
本書的代碼示例均以C/C++語(yǔ)言編寫,并且在解答之后都留有一些問題,使我們可以舉一反三,繼續(xù)探索其中的妙處,拓展我們的思維。
2第二級(jí) 中級(jí)
這個(gè)階段能利?多種語(yǔ)言的基本功能,并能夠得心應(yīng)手地使用至少一種語(yǔ)言。
而且還需要關(guān)注軟件構(gòu)造、管?、需求、設(shè)計(jì)及其他軟件話題等等,這個(gè)階段有兩本書可以參考。
UML和模式應(yīng)用(原書第3版)
《UML和模式應(yīng)用(原書第3版)》吸收了大量OOA,D的精華思想和現(xiàn)代實(shí)踐方法,是一本經(jīng)典的面向?qū)ο蠓治鲈O(shè)計(jì)技術(shù)的入門書。
本書將面向?qū)ο蟮母拍?、過程、方法、原則結(jié)合個(gè)人的實(shí)踐并以實(shí)例為證,將軟件的架構(gòu)、設(shè)計(jì)、實(shí)現(xiàn)整個(gè)過程娓娓道來(lái),敘述清晰精準(zhǔn),使人受益匪淺。
并且本書適用范圍廣泛,從初學(xué)者到有一定對(duì)象技術(shù)知識(shí)學(xué)習(xí)者、希望進(jìn)一步提高開發(fā)水平的中級(jí)讀者,甚至是資深的專業(yè)人員,都是很有幫助的。
軟件需求
《軟件需求》這本經(jīng)典名著介紹的需求工程最佳實(shí)踐、工具和技術(shù),使讀者可以提升需求引導(dǎo)、捕獲、開發(fā)、管理和分析能力,不僅僅是軟件本身,而且經(jīng)過工程實(shí)、實(shí)例和洞見。
軟件需求和工程實(shí)踐結(jié)合,在盡可能減少成本、增強(qiáng)維護(hù)性和避免返工的同時(shí),交付定位更準(zhǔn)確、質(zhì)量更優(yōu)良的軟件產(chǎn)品以及服務(wù)。
3第三級(jí) 熟練級(jí)
這個(gè)階段一般需要對(duì)語(yǔ)言或環(huán)境或兩者兼具有著專業(yè)技能,或者對(duì)Java EE如數(shù)家珍,或者對(duì)Linux系統(tǒng)了?如指掌,很多程序員通常無(wú)法超越這個(gè)層次。
重構(gòu)Refactoring
《重構(gòu):改善既有代碼的設(shè)計(jì)》為面向?qū)ο筌浖_發(fā)所做的貢獻(xiàn),難以衡量,本書中解釋了重構(gòu)的原理和最佳實(shí)踐方式,并指出何時(shí)何地你應(yīng)該開始挖掘你的代碼以求改善。
本書的核心是一份完整的重構(gòu)名錄,其中每一項(xiàng)都介紹一種經(jīng)過實(shí)證的代碼變換手法的動(dòng)機(jī)和技術(shù),某些項(xiàng)目看起來(lái)可能很淺顯,但不要掉以輕心,因?yàn)槔斫膺@類技術(shù)正是有條不紊地進(jìn)行重構(gòu)的關(guān)鍵。
設(shè)計(jì)模式Design Patterns
這本書結(jié)合設(shè)計(jì)實(shí)作例從面向?qū)ο蟮脑O(shè)計(jì)中精選出23個(gè)設(shè)計(jì)模式,總結(jié)了面向?qū)ο笤O(shè)計(jì)中最有價(jià)值的經(jīng)驗(yàn),并且用簡(jiǎn)潔可復(fù)用的形式表達(dá)出來(lái)。
書中涉及的設(shè)計(jì)模式并不描述新的或未經(jīng)證實(shí)的設(shè)計(jì),只收錄了那些在不同系統(tǒng)中多次使用過的成功設(shè)計(jì),并且分類描述了一組設(shè)計(jì)良好、表達(dá)清楚的軟件設(shè)計(jì)模式,這些模式在實(shí)用環(huán)境下特別有用。
4第四級(jí) 技術(shù)帶頭?人級(jí)
這個(gè)階段需要具有熟練級(jí)的專業(yè)才學(xué),善于?解需求,擅長(zhǎng)設(shè)計(jì)架構(gòu),不為機(jī)?寫代碼,而為人寫代碼,代碼質(zhì)量高,優(yōu)雅,簡(jiǎn)潔,易?解。