作為一個從業(yè)10年的IT老兵,個人覺得軟件開發(fā)這個概念太過龐大,它既涉及到很多行業(yè)領域,又能包含各種具體的開發(fā)技術,面面俱到的描述會讓人無所適從而且其實也不可行。個人建議學習軟件開發(fā)不用著急馬上入手學習編程語言,應從計算機原理開始,由底層上上層,循序漸進,由硬件到軟件。雖然所花的時間會長一點,但會學的比較扎實透徹。
軟件開發(fā)需要學的技術

計算機原理的學習

首先最好學習下計算機背景知識,包括計算機發(fā)展歷史,二進制計算原理??傊畯目破战嵌热娴牧私庥嬎銠C的含義。這塊的資料很容易在網(wǎng)絡上獲取。其次學習下計算機的硬件知識,包括CPU,內(nèi)存,輸入輸入設備,搞清楚這些設備的用途,有條件的話可以跑跑電腦城,自行配置組裝一臺計算機,這是有好處的。學習以上的內(nèi)容原因在于再高級的計算機語言,都要通過控制硬件來實現(xiàn)。先熟悉硬件,了解計算機的運行機制,才會對軟件設計有扎實的理解。

 

選擇一門編程語言

在眾多的計算機編程語言中,選擇一門語言進行入門學習。建議選一門相對“低級”的語言,比如C語言,它其實是一種介于高級語言和低級語言之間的語言,它有控制硬件的能力,可以通過指針直接操作計算機內(nèi)存。學習好C語言可以讓你透徹的理解計算機原理,也會對變量,數(shù)組,內(nèi)存存儲等這些基本概念有本質(zhì)的理解,這些是其他語言所不能帶給你的。一般來說,熟練掌握C語言后,學習其他語言會比較容易。另外,C語言得入門書很多,比如譚浩強版本得就比較經(jīng)典。

軟件開發(fā)需要學的技術

比技術本身更重要的是習慣的培養(yǎng)

最后,編程要一開始就養(yǎng)成良好的習慣,例如變量命名,書寫格式都要有規(guī)范。剛開始看似會浪費時間,但習慣養(yǎng)成后,以后就輕松了。此外,要重視架構,架構即設計模式,它本身也是軟件工程中的一個重要組成。編寫一個程序的時候不能只顧完成功能即可,一定要思考軟件能不能分個模塊,能不能層次化,方便以后擴展。比如完成一個特定功能有好幾種算法,那能不能設計成工廠模式,方便以后擴展算法,這樣做,看似代碼復雜化了,但是其內(nèi)涵就要比普通做法提升了很多。所以設計模式其實就是編程思維的一種重要表現(xiàn)形式。

總之,不管哪個行業(yè),不要被五花八門的具體技術所困擾,選擇原理性的,基礎性的技術去學習,并且堅持實踐。長此以往,才能舉一反三,觸類旁通。