學習軟體開發的正確姿勢

曹化宇發表於2018-08-15

軟體開發的生活是非常精彩的,也許您還覺得有點酷,不過,真正深入學習軟體開發的方方面面是非常辛苦的。如果有人告訴你軟體開發很簡單,可能的情況是他會寫一些小程式、他是軟體開發培訓機構的、他對軟體開發一無所知、……

在這裡,我要告訴大家的是:雖然軟體開發的學習和工作過程很辛苦,但是,只要有正確的態度和方法,就可以少走一些彎路,更多地停留在軟體開發精彩的一面。

第一式,該吃就吃,該睡就睡。良好的生活習慣是保證身體健康的重要保證,相信我,軟體開發不僅是腦力勞動,更是體力活兒。

第二式,該玩就玩。無論是說走就走的旅行、或者做一些感覺是在浪費時間的事情,這都無所謂,保持愉快的心情、樂觀的態度才是最重要的,而靈感往往就是在不經意間突然出現的,有時還會嚇我一跳。

第三式,明確目標。這也是我稱之為“目標驅動法”的表現之一,也就是定下自己的學習和工作目標,並努力實現。關於這一點,有一個關鍵的問題就是,你的目標一定要是“小目標”,我們不需要 “虛”、“大”、 “空”的目標,這種目標往往不易或不可能實現,比如:我要做出Windows這樣的系統,我要做出XX爭霸這樣的遊戲、……,如果是這樣,建議還是洗洗睡吧!我們要定一些力所能及,並且是在不太長的時間內可以實現的目標,比如:學習一門程式語言、做出一款自己和小夥伴們可以使用的小軟體、……。

第四式,瞭解學習軟體開發的一般性步驟。軟體開發,大家最直接的感覺就是在寫程式碼,是的,學習一種程式語言是軟體開發的第一步,就像學習日語後去日本會更好的交流、學習英語後去美國和英國等地方會更好交流一樣。當逐漸掌握某種程式語言後,就可以結合開發資源來實現一些軟體功能,這樣就可以開發一些真正有用的軟體了。接下來就是提高階段,可以根據實際的需要進一步學習相關的開發技術和方法,並從更高、更廣的角度來了解軟體開發的各個方面。

第五式,瞭解實現目標所需要的技術和方法。軟體都有其開發和執行的特定環境,所以,瞭解不同平臺的開發技術、方法和工具是開始學習軟體開發的第一步。這裡有幾種典型的軟體開發方向供大家參考。(1)Windows平臺,大家可以學習如何在.NET Framework架構下開發單機應用軟體或Web應用(網站型別的應用),此時,可以選擇C#或Visual Basic.NET程式語言、.NET Framework類庫開發資源、並瞭解一些基本的設計模式等。(2)Apple軟體環境。無論是iOS、macOS等軟體生態圈,首選的程式語言還是Objective-C,而Swift還遠遠達不到代替Objective-C的程度。此外,在iOS和macOS系統下,都有一些常用的開發資源,如Foundation、Sprite Kit等。(3)移動平臺的開發。無可爭議,iOS和Android雙雄是移動平臺的霸主,iOS平臺的開發已包含在Apple平臺的技術線路中,而Android應用的開發,更多地是在使用Java程式語言和大量的Android開發庫,現在,大家可以使用Android Studio整合開發環境,這可比早期的Android開發者幸福多了。(4)跨平臺的傳說。廣告中的跨平臺是,編寫一次程式碼,在所有(支援)的平臺上都可以執行,我們不妨先相信一下。很多技術都聲稱是跨平臺的,如Java、PHP、MySQL及其衍生版本、Unity、Python等,甚至微軟的ASP.NET Core也開始玩起了跨平臺;不過,這些跨平臺技術玩的效果如何,相信只有玩過的人才知道。(5)系統軟體和嵌入式裝置開發,包括作業系統、驅動程式、各類智慧裝置等,玩這類開發時,組合語言、C、C++等程式語言是必不可少的,同時,開發者必須瞭解所支援硬體的特性,軟、硬結合,是不是很有挑戰性!(6)遊戲開發,主要的遊戲平臺包括Windows、XBox、PlayStation、iOS、macOS、Android等,可以使用一些跨平臺的工具進行開發工作,也可以使用特定平臺的技術,如Windowxs中的DirectX、iOS和macOS中的Sprite Kit等。

第六式,超越寫程式碼階段。當可以寫出一些實用的小軟體後,大家可以發現,軟體開發並不只是寫寫程式碼這麼簡單的。比如,做一個網站時,需要大量美工方面的工作,在個人或小團隊專案中,P個圖這種事也得自己來做;對於資料驅動的應用(這都大資料時代了,是吧),熟練掌握一、兩種資料庫的應用也是開發者必不可少的技能。這樣的可能還很多,相信大家在實踐中會逐步瞭解到,軟體開發者就是N項全能呀!不過,全能冠軍可不好當!

第七式,做專案。紙上談兵容易,但真的將多種軟體開發技術和方法融匯貫通並不是一件容易的事。所以,建議大家做一個真正的專案試試手,專注於專案本身,包括業務操作、開發技術和方法,其它的都不是事兒!

第八式,理解軟體的本質。如果說系統級軟體在裝置與裝置之間、裝置與使用者之間搭起了友誼之橋,那麼,應用軟體就是使用者工作的延伸,其最高境界就是使用者在不知不覺之間就使用它愉快的完成工作。

第九式,無招勝有招。這是小說裡的武學最高境界,但無招的前提是你已經熟練掌握足夠多的招數,在對敵時,可以根據對手特點快、準、狠地使用最合適的招數。在軟體開發過程中,開發者不應被技術限制了想像力,能夠正確理解使用者的工作本質,並通過合理的技術、方法和工具實現軟體功能,這就是軟體開發者的無招勝有招。

第十式,一定要玩的開心。如果不喜歡軟體開發,一切都是在浪費時間,所以,在軟體開發學習和工作過程中,一定要玩的開心!如果不開心,果斷玩點別的,比如讀一些書和文章!哈哈!這個主意不錯!

軟體開發十式,這是我的想法,那麼,您是怎麼想的呢?

CHY軟體小屋原創作品,謝謝!

相關文章