1. 程式人生 > >【轉載】我是如何學習軟件開發的

【轉載】我是如何學習軟件開發的

地方 驗證 .net 是不是 語言 自然 汽車 開始學習 深入

首先是看書。相信有很多不願意看書的朋友,他們的理由主要是“沒錢、沒時間、有網絡”。好吧,前兩個一定是站不住腳的,一個月花一百元買書,每天看三十分鐘,周末每天看兩個小時,應該不是什麽難事,主要是你願不願意了,對吧?至於網絡的情況,大家也許認為在網絡上什麽都有,還需要看書嗎?那我們就討論一下要看書的理由。

我們學習一項開發技術,例如一種新的編程語言,我相信只在網絡上看資料是不夠的,一種技術是一個完整的體系,如果沒有系統的學習,是不可能深入地掌握的,此時,看書就是一個很好的選擇,一本書可以系統地介紹一種技術,對於初學者來說,完整的、系統的學習是非常重要的,這有助於我們打下堅實的基礎

,所以,一定要看書。

實踐。在這裏,實踐不只是實現書中或網絡上的示例,更不是隨便粘貼代碼來進行開發。實踐應該是實戰演練,即使是沒有人出資購買我們的軟件,也應該全身心地去做一個或多個項目,把這個項目當成藝術品一樣精雕細琢,讓項目的設計越來越合理、越來越完美。在這一過程中,我們才會對開發技術和方法有著更深入的理解。

思考。我們知道,實現一個軟件功能會有很多技術和方法可以使用,問題是,我們應該選擇哪一種?書中或網絡中的示例是不是合理呢?是不是適合我們的項目呢?此時,敢於提出質疑、敢於挑戰權威、敢於嘗試自己的方法。這些就要求我們需要多多思考,並用實踐來驗證一切,來驗證自己或他人的錯誤和不足,這就是軟件開發,是一項創造性的工作,如果沒有質疑、沒有創新,何來的發展呢?

當我們在一種環境下的開發技能有了很大的提高時,我們要做的就是進一步的學習,廣泛了解各種技術和方法學。軟件開發不僅僅是編寫代碼,而軟件架構師也不是高高在上,作為一名軟件開發者,即使我們現在的工作用不上,我們也要從更高、更廣的層面來學習和理解軟件的開發;學習更多的知識,拓展更廣的知識面,對於我們自身的發展和進步,無論是事業上的,還是個人修養上的,都是一種促進。

也許你想知道我都學習了些什麽,那麽,我就列出來吧。首先,介紹一下自己這些都學習了些什麽開發技術。我是從1995年開始學習軟件開發的,當時是BASIC和C、C++為主,還學習了FoxPro(說實話,當時真不明白數據庫幹什麽用的)。很快,Windows當道,窗口開發很自然的選擇了Visual Basic,逐漸對軟件開發有了新的認識。再後來,就基本完全是自學了。學習面很廣,相信很多朋友都不會相信,這些內容包括:Visual Basic.NET、C#、Java、PHP、HTML、CSS、JavaScript、Objective-C、Swift、Sprite Kit、Access、SQL Server、MySQL、設計模式、人機交互、軟件架構、設計心理學、……

如果說我對上這些內容都非常地精通,你一定不會相信,實際上,我自己也不會相信!^-^。很多的內容實際上只是感興趣,去了解一下,但是,我這是不專註嗎?我想不是!

就從編程語言方面談談吧。這是軟件實現的基礎,無論開發什麽軟件,我們需要編碼來實現。再看看流行的一些編程語言,VB、C#、Java、Objective-C、PHP、JavaScript、……。從編程語言層面上講,它們有多大的區別呢?基本的概念都差不多,實際上,我經常會將不同編程語言的特點和優勢應用到不同類型的軟件開發中,收獲還是非常大的。舉個簡單的例子,當我最初接觸設計模式時,相關的書籍使用的是C++或Java,而我就可以通過對這些語言的了解,很自然的通過C#來實現。

除了開發技術,我還對科技、汽車、軍事、歷史等領域感興趣,這對軟件開發沒有幫助嗎?當然不是,在寫技術類文章或書籍時,我可以把示例做的更生動,比如模擬戰爭遊戲,這樣一來,可讀性、趣味性不是更好了嗎?

所以,作為一名軟件開發者,眼中不能只有代碼,多看看書,多學習各方面的知識,對我們來說是幸福的,是快樂的,是可以幫助我更好的成長的。

希望我的經歷和感受對初學者有些幫助,不對的地方也請大家多多批評指正,讓我們共同進步吧!

【轉載】我是如何學習軟件開發的