一、軟體開發學習的初始,是源于實踐。這個實踐甚至無須是主動的興趣,也可以是由于必須完成作業而起的實踐。但是通過這樣的實踐,你必須做到的是掌味訓本的語法規律,并且真正的興趣不能受到破壞。
軟體開發的基本語法規律,只有非常簡單的幾個:賦值、條件分支、回圈、子程式的定義和呼叫。這是軟體最基本的建筑磚頭。
二、隨著實踐的深入,下一個重點就是表達,即把問題需求用軟體語言表達出來。這一能力的掌味訓讓你在很多方面受益。學會任何一種事物的標志就是你能夠用自己的語言來描述它。如果你掌握了軟體語言,你可以把它作為你自己的一種語言,用它來學習很多事物,而且用這種語言,你永遠少不了交流物件——計算機。
當你習慣了這種學習方法,你會發現用計算機語言可以表現極多的事物,是一個非常好用的學習工具。但這里須特別注意的是,它不是萬能的,仍然有很多領域無法用計算機語言來學習。
三、當你熟練了計算機語言的表達,下一步就是表達能力的提升。你會發現很多問題的共性,用某種相似的結構可以表現很多看似完全不同的事物。這就形成了一種抽象結構,稱為架構。這種觀察不同事物之間內在相似性的能力,會讓你更容易透過現象看到本質。
你漸漸會發現架構非常好用,熟悉少數幾種架構就可以方便地解決大量看似完全不同的問題。如果你發現自己有用架構來套問題的傾向,就必須切記不可削足適履。有時必須保持開放的心態才能看到問題之間細微但不可忽視的差別。
四、當你熟悉了用架構來解決問題之后,對業余選手來說,你軟體開發能力本身已經不再是瓶頸了。這時資訊和代碼資源的獲取能力決定了你的開發能力。找到現成的控制元件可以在十分鐘內解決問題,而全原創代碼解決同樣的問題可能得用一個月的時間。
資源無疑是有用的,但迷失在資源收集中也是很糟糕的。任何一種語言都有過時的那一天,在計算機語言發展的短暫歷史中,我們就已經看到了很多淘汰的(或頻臨淘汰的)語言。那些語言無不充滿精致的技巧,可以解決各種問題,但仍然不免被淘汰的命運。
我將這一步,稱作業余開發的終態。
uj5u.com熱心網友回復:
五、同樣,這也可以認為是專業開發的起點。為了進化到專業開發,有一些基礎知識是必備的,值得認真學習:《匯編語言》、《編譯原理》、《資料結構》、《作業系統》、《設計模式》。《匯編語言》告訴我們軟體的真相,它是軟體開發的地面。所有花里胡哨的軟體技巧,最終都必須落實到最基本的機器語言來執行:尋址、賦值、跳轉等等。而即使在機器語言這個最基本的層面,我們仍然會發現,不同的機器使用不同的機器語言,仍然是百家爭鳴的格局。
《編譯原理》告訴我們高級語言是如何落實到匯編語言去的,它是通往高級語言的階梯。同時編譯技術本身充滿了極具啟發的技巧,可以運用到各個行業領域的軟體開發之中。
《作業系統》描述了一個相對比較復雜的系統是怎樣規劃和設計的,這本身對于軟體設計有很多借鑒和參考的價值。同時作業系統是軟體運行的基本環境,了解這一環境有助于我們更深入地了解軟體的內在邏輯。
《資料結構》是高級語言的基本組織邏輯,高度概括了面向物件之前的所有軟體技巧的基本結構。即使在面向物件的時代,仍然具有普遍的實用性。
《設計模式》是面向物件時代的結構技巧匯總,更偏向于實踐而非理論,缺少大量復雜軟體實際開發經驗的人很難充分了解這些模式的含義和巧妙。認真學習它可以極大地提升我們的經驗量,開發出專業水準的程式。(可以將其比喻為中醫里的《傷寒論》)
uj5u.com熱心網友回復:
六、具體了專業開發的知識后,還應當適應基本的專業開發習慣。多人、多軟體開發、長周期,是專業軟體開發的標志。規范的注釋、源代碼的版本管理、測驗單元的使用,是必須適應的最基本的專業開發習慣。雖然從最終效率來看,是必不可少的,但專業開發做了很多看似無用的額外作業降低了從業者的興趣。從開發樂趣來看,專業開發的比業余開發少了很多。
uj5u.com熱心網友回復:
七、下一步的進化方向。純業余開發,可以向多語言進化,掌握不同的開發語言可以帶來更多樂趣和更多的適用方面,適合業余開發。
掌握高超軟體開發技巧,并且經驗豐富的專業開發者,可以向系統架構師進化。
對于軟體語言有足夠理解,并且喜歡深入學習領域知識的人,可以向需求分析師進化。
對于專業開發團隊合作領悟很深,并且喜歡負責的人,可以向專案經理進化。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/74563.html
標籤:非技術區
上一篇:DEPHI寫個瀏覽器
下一篇:請教MEMO里的字符分割
