軟件開發(fā)是一個對綜合能力要求很高的工種,盡管國內(nèi)已經(jīng)有上百萬的程序員了,但是真正符合標(biāo)準(zhǔn)程序員的數(shù)量又要削減一部分,軟件開發(fā)的分類非常多,只是看編程語言的種類就能感覺到,目前全球的編程語言種類超過500種了,真正納入主流的編程語言也就是十幾種,很多人都會疑惑如何選擇一種適合自己的編程語言,歸根到底編程語言屬于工具般的存在。
必看書籍主要和軟件開發(fā)要達(dá)到什么程度有一定的關(guān)系,軟件開發(fā)層次主要從三個層面入手。針對初級程序員來講需要對計算機(jī)的工作原理有一定的了解,但是在實際工作中很多人對于計算機(jī)不是很了解的情況下,通過自學(xué)或者培訓(xùn)直接開始編寫相關(guān)的代碼工作,很多人已經(jīng)寫了幾年的代碼對于計算機(jī)的工作原理,都不是很清楚當(dāng)然從日常的工作中可能是涉及到不是很多,但從標(biāo)準(zhǔn)程序員的角度考慮還是把計算機(jī)底子夯實堅固,所以有關(guān)計算原理的書籍是軟件編程的必備。
了解完計算機(jī)的工作原理之后再去學(xué)習(xí)編程基本功,像常見的算法以及數(shù)據(jù)結(jié)構(gòu),這些都是編程最基礎(chǔ),很多人做了多年的編程代碼編寫,都不覺得算法在其中起到什么作用,掌握算法是一個標(biāo)準(zhǔn)程序員的基礎(chǔ),所以有關(guān)算法的是學(xué)習(xí)軟件開發(fā)必備的書籍,比較經(jīng)典的算法導(dǎo)論看的算是比較多,其實在學(xué)習(xí)算法之前建議學(xué)習(xí)下數(shù)據(jù)結(jié)構(gòu),這是基本數(shù)據(jù)抽象模型的基礎(chǔ),特別是面向?qū)ο缶幊淘谶@方面用的比較多,里面提到的隊列,鏈表,二叉樹等等概念都是編程中經(jīng)常遇到的概念,往往先去掌握數(shù)據(jù)機(jī)構(gòu)再去考慮學(xué)習(xí)算法概念,能夠起到循序漸進(jìn)的作用。
在掌握了計算機(jī)工作原理以及常見的編程基礎(chǔ)之后,就要參與具體軟件編程實戰(zhàn)中去,實踐的過程中必然遇到框架或者編程思想方面的概念,而這些概念最好是在實踐中提煉出來,任何軟件都需要框架來支撐,在實際項目中未必是每個人都有機(jī)會去設(shè)計框架,但是框架在實際中隨處可見,有些優(yōu)秀的框架慢慢演化成一種編程的標(biāo)準(zhǔn),像常見的一些框架都是這么一點點積累出來的,就拿java語言來講在最初階段很簡單的功能都需要從頭開始開始寫代碼,隨著這門編程語言的逐漸普及,于是大量的優(yōu)秀開源代碼就流傳出來,慢慢的用的最多就提煉成標(biāo)準(zhǔn),供初學(xué)的程序員來學(xué)習(xí),逐漸大量優(yōu)秀編程庫越積累越多,編程變得越來越簡單。
對于編程思想和框架的學(xué)習(xí)不建議純正理論的學(xué)習(xí),在學(xué)校或者初學(xué)階段了解一些軟件編程的流程以及設(shè)計模式,真正學(xué)習(xí)起來還需要在實踐中,實踐中自己總結(jié)出來,然后再去網(wǎng)絡(luò)搜下自己相關(guān)的框架知識或者買這類的編程思想書籍,慢慢提煉出來這才屬于真正意義編程框架的學(xué)習(xí)。編程思想類的書籍在市面上實在太多,但是標(biāo)準(zhǔn)的軟件框架學(xué)習(xí)種類比較多,特別java類以及分布式編程類的書籍特別多,這種要根據(jù)個人的實際情況來操作了,希望能幫到你。