對(duì)于剛開始進(jìn)入IT的新人來說,“必備技能”往往意味著一個(gè)長(zhǎng)長(zhǎng)的、標(biāo)有重要度的學(xué)習(xí)列表,但是過長(zhǎng)的列表通常會(huì)導(dǎo)致新人不知如何開始學(xué)習(xí),壓力倍增。IT培訓(xùn)網(wǎng)列舉出最重要的幾個(gè)技能,也期望通過此列表能給新人一個(gè)比較明確的學(xué)習(xí)重點(diǎn)和路徑。
深入學(xué)習(xí)一門編程語(yǔ)言
沒有掌握任何一門編程語(yǔ)言,就不可能成為一名編程人員。
許多程序員試圖在學(xué)習(xí)之初一次學(xué)習(xí)幾種編程語(yǔ)言,以便應(yīng)對(duì)他們第一份軟件開發(fā)工作的需要。雖然我認(rèn)為開發(fā)人員最終會(huì)學(xué)習(xí)多種編程語(yǔ)言,但建議不要在開始時(shí)這樣做。
因?yàn)橥瑫r(shí)學(xué)習(xí)多種語(yǔ)言只會(huì)導(dǎo)致混亂,也會(huì)分散學(xué)習(xí)其它技能的精力。相反,我建議深入的學(xué)習(xí)一種編程語(yǔ)言,這樣也會(huì)對(duì)使用這種語(yǔ)言編寫代碼感到非常有自信。
如何組織代碼?
新手程序員在完成編程語(yǔ)言的學(xué)習(xí)之后,或者最好在學(xué)習(xí)編程語(yǔ)言的同時(shí),需要掌握的是如何正確的組織代碼。
通過Steven McConnell所著的《Code Complete》,可以幫助學(xué)習(xí)這個(gè)寶貴的技能。
組織代碼意味著編寫良好的、清晰可理解的、不需要大量注釋的代碼,因?yàn)榇a本身是可自注釋的。許多軟件開發(fā)人員究其整個(gè)職業(yè)生涯都不曾具備這樣的技巧,但是這個(gè)技能卻是判斷一個(gè)軟件開發(fā)人員的技術(shù)和能力的首要標(biāo)準(zhǔn)。良好的代碼結(jié)構(gòu)代表的不僅僅是完成了編碼工作,而是對(duì)編碼事業(yè)的熱衷奉獻(xiàn)。
對(duì)于新手程序員來說,簡(jiǎn)潔清晰且含義明確的代碼,能讓你輕松地通過面試。
提升代碼結(jié)構(gòu)已經(jīng)成為了軟件開發(fā)的重要部分,但是提升的過程卻是十分嚴(yán)格的。在這個(gè)過程中,雖然不需要編寫新的代碼,但是卻需要和團(tuán)隊(duì)成員一起花費(fèi)大量時(shí)間來維護(hù)現(xiàn)有的代碼。
測(cè)試
現(xiàn)在,很多的軟件項(xiàng)目都采用了所謂的敏捷流程,軟件開發(fā)人員和測(cè)試人員合作的更加密切。代碼質(zhì)量成為了整個(gè)開發(fā)團(tuán)隊(duì)的責(zé)任,所以開發(fā)人員也需要對(duì)測(cè)試知識(shí)有一定了解。
對(duì)于開發(fā)人員來說,至少應(yīng)該熟悉以下的基本術(shù)語(yǔ):
- 白盒測(cè)試
- 黑盒測(cè)試
- 單元測(cè)試
- 邊界條件
- 測(cè)試自動(dòng)化
- 驗(yàn)收測(cè)試
開發(fā)平臺(tái)與相關(guān)技術(shù)
應(yīng)該至少對(duì)一個(gè)開發(fā)平臺(tái)以及與之相關(guān)的技術(shù)或框架有一定的經(jīng)驗(yàn)。
平臺(tái)通常意味著操作系統(tǒng)(OS),但它也適用于與操作系統(tǒng)類似的其他抽象系統(tǒng)。例如,你可能是專注于Mac或Windows操作系統(tǒng)的Mac開發(fā)人員或Windows開發(fā)人員,同時(shí)你也可以是專注于特定Web平臺(tái)的Web開發(fā)人員。
具備某個(gè)特定平臺(tái)的專業(yè)知識(shí),不僅僅意味著需要熟悉平臺(tái)本身,還需要掌握開發(fā)平臺(tái)常用的開發(fā)工具、模式和通用框架。
數(shù)據(jù)庫(kù)基礎(chǔ)知識(shí)
目前, 主要有兩種數(shù)據(jù)庫(kù)技術(shù):關(guān)系數(shù)據(jù)庫(kù)和文檔數(shù)據(jù)庫(kù)。
現(xiàn)在的開發(fā)人員應(yīng)該很熟悉關(guān)系數(shù)據(jù)庫(kù),但同時(shí)也應(yīng)該對(duì)文檔數(shù)據(jù)庫(kù)有所了解。
在軟件開發(fā)中,數(shù)據(jù)庫(kù)通常用于存儲(chǔ)應(yīng)用程序的數(shù)據(jù)。
對(duì)于數(shù)據(jù)庫(kù),開發(fā)人員至少應(yīng)該了解以下方面:
- 數(shù)據(jù)庫(kù)的工作原理
- 如何執(zhí)行基本查詢來獲取數(shù)據(jù)
- 如何插入、更新和刪除數(shù)據(jù)
- 如何添加數(shù)據(jù)集
源代碼管理
管理源代碼是任何軟件開發(fā)項(xiàng)目不可或缺的組成部分。在使用源代碼之前,應(yīng)該有一個(gè)網(wǎng)絡(luò)來共享項(xiàng)目的所有文件。
源代碼管理工具最基本的功能,是保留軟件項(xiàng)目中對(duì)文件所做更改的歷史記錄。它還允許多個(gè)開發(fā)人員同時(shí)處理相同的代碼, 并將這些處理代碼融合在一起。
所有的開發(fā)人員都應(yīng)該知道如何使用源代碼管理工具,以便能夠檢查代碼并從多個(gè)來源融合代碼。
構(gòu)建和部署
目前,大多數(shù)軟件開發(fā)項(xiàng)目都有一些自動(dòng)化的構(gòu)建和部署系統(tǒng)。同時(shí)也有許多不同的軟件應(yīng)用程序,來幫助團(tuán)隊(duì)自動(dòng)化構(gòu)建和部署任務(wù)。
構(gòu)建
當(dāng)你編寫代碼并將其合入到源代碼管理系統(tǒng)中后,你想通過一些方法了解你合入的代碼是否運(yùn)行的很好,這就需要進(jìn)行構(gòu)建。構(gòu)建會(huì)編譯系統(tǒng)中的所有代碼,并確保沒有編譯錯(cuò)誤。一個(gè)復(fù)雜的構(gòu)建系統(tǒng)還可以運(yùn)行單元測(cè)試和用戶測(cè)試,或者代碼質(zhì)量檢查,并提供一些有關(guān)代碼庫(kù)當(dāng)前狀態(tài)的報(bào)告。
部署
部署系統(tǒng)負(fù)責(zé)將代碼部署到產(chǎn)品機(jī)器上,或者將其部署到某種測(cè)試環(huán)境中。
雖然開發(fā)人員不一定要成為部署方面的專家,但是了解系統(tǒng)的基礎(chǔ)知識(shí)以及構(gòu)建和部署代碼的過程也是非常的重要。
調(diào)試
對(duì)于軟件開發(fā)人員來說,經(jīng)常會(huì)花費(fèi)90%左右的時(shí)間,來弄清楚自己的代碼為什么不起作用了。不論你從事任何語(yǔ)言的代碼開發(fā),代碼調(diào)試都是開發(fā)過程中不可缺少的一部分。
所以開發(fā)人員應(yīng)該下定決心,認(rèn)真的學(xué)習(xí)如何做到高效的調(diào)試代碼。
方法論
一些軟件開發(fā)團(tuán)隊(duì)在編寫代碼并完成他們的項(xiàng)目時(shí),都遵循著一些方法論。所以開發(fā)人員至少應(yīng)該熟悉諸多最常見的軟件開發(fā)方法論中的基本幾種,這里要說的就是瀑布開發(fā)和敏捷開發(fā)。
盡管本文中列舉的軟件開發(fā)人員應(yīng)該了解的知識(shí)很多,其中很多知識(shí)也許正是你所不了解,但是請(qǐng)不要沮喪。我們要做的就是認(rèn)真的補(bǔ)充這些知識(shí),不斷的提高自己。
評(píng)論
查看更多