回覆列表
  • 1 # 大師草堂

    根據個人經驗和親身體會,只要有一定的學習能力和充裕的學習時間,學習軟體開發其實不需要多麼昂貴的學費。你可以透過瀏覽網上課程、看書並親自動手實踐,完全可以成為某一領域的程式設計高手,甚至可以獨立承擔一個頂目的開發。

    最近兩年,計算機程式設計已經列入了小學課本,這就說明計算機程式設計並不是很複雜的東西,只要從最簡單的程式開發語言學習開始,按照教程一步一步的練習,人人都能掌握。興趣是最大的老師,如果要想精通軟體開發、程式設計,首先要培養起學習的興趣。

    關於計算機語言學習,筆者的起步算是比較晚的了,高中的時候只接觸過計算機一些最基本的東西,大學時才有了C/C++面向物件程式設計的課程。十多年過去,目前Python已經是應用開發領域最熱的計算機程式開發語言,web、網路爬蟲、人工智慧、應用程式開發Python無所不能。Python語法簡單也很適合作為初學者的入門首選, 以前初學程式設計的都從vb開始,vb雖然也簡單,而且是圖形化介面設計,雖然容易上手,但是以後的用處不大。

    因為Python是開源的,隨便搜尋一下就有很多資源,首先按照教程內容安裝整合開發環境,目前windows 7以上版本才可以安裝,便可以開始程式設計學習了,首先要熟記基本的語法和函式的使用,更要理解。

    熟練掌握了一門計算機語言之後,可以看一下演算法與資料結構的方面的內容,程式就是演算法和資料結構的總和。我們在對一件事情進行程式設計處理的時候,首先是抽象出一件事情的所具有的資料結構,定義變數,資料結構型別。然後就是思考用哪一種演算法實現會有更高的效率。

    掌握基本的語法、資料型別、資料結構之後,就可以進一步學習Python已有的一些程式功能包的使用,比如關於網路程式設計、圖形介面、web爬蟲、資料分析等方面程式包的使用。

    掌握了計算機程式設計之後,以後在工作遇到的一些問題,就可以想一想是不是可以編一段程式來解決問題,這樣的話學習的動力更強,帶著解決問題的目的去學習,是不會感覺到枯燥的。現實生活中的一些事情,有些簡單重複的工作是非常容易透過程式設計解決的,可以大大提高工作的效率。

    除了Python以外,C/C++,JAVA也是主流的計算機程式設計語言,C/C++在介面設計方面的比較複雜,特別是visual studio 的windows介面庫使用起來相當複雜,推薦學習qtcreator工具進行C/C++方面的介面開發,Java也是面向物件設計語言,跟C++類似,不過Java本身有幾個版本針對不同的應用環境。

    不要擔心駕馭不了那些複雜的程式碼。有個很好的學習網站,github,上面有很多開放原始碼的軟體專案,如果自己要做的專案恰好跟上面某個專案相似,那就簡單了,frok到自己賬號下面,或者直接下載到本機上,開啟專案直接新增修改,不用自己再造輪子了,軟體開發發展到目前這個階段,很多功能模組都由聰明智慧的前輩們做好了,拿來主義就行。

    所以,在程式設計學習中,那些通用的標準庫就是由偉大的前輩們貢獻出來的常用的演算法和資料結構、函式的集合,深入瞭解掌握他們,才會應用自如。

    很早以前的軟體工程師和程式設計師開發程式是很辛苦的,需要很深的硬體知識,需要使用機器碼、組合語言編寫,深奧難懂,程式碼可讀性很差,隨著高階計算機程式設計語言的出現,程式設計已經是相當輕鬆和有趣的事情,只需要大概知道計算機工作原理就行,現在編寫程式就像是搭積木一樣需要什麼功能模組一塊一塊的找出來使他們正常執行就行了。

    筆者原本對軟體開發的興趣不大,現在也沒有興趣。筆者學習程式設計和軟體開發是迫不得已。因為筆者十多年的交易生涯出現了發展瓶頸,筆者認為目前火熱的人工智慧可以解決筆者面臨的問題,於是重新撿起十多年只是接觸過的程式設計課程,開始了筆者的軟體開發之旅。

    筆者是研究交易的,所以開發的軟體屬於行業應用,具體分屬金融交易工具類別吧。行業開發需要閱讀相關方面提供的api說明和開發文件,就是應用程式開發介面,筆者這個專案就是對交易平臺提供的交易介面程式設計。目前已經實現了完整的程式化交易模型,正在逐步深入人工智慧方面。該程式化自動交易軟體透過實現上期技術的綜合交易平臺介面,採用C++面向物件程式設計技術,利用QT做為介面設計工具,這裡不得不介紹一下qt,因為這個工具太好使了,如果是採用Windows的介面庫,不知道要複雜好多倍,Windows的 mfc庫我估計是世界上最難學的圖形介面庫了,因為其基於Windows的控制代碼訊息機制,呼叫起來相當麻煩,筆者也就沒有深入學習了。有qt這種圖形介面化的簡單易用的工具,幹嘛要花時間去啃Windows這塊硬骨頭。

    在確定要開發一個軟體專案之前,首先確定開發的目標。然後再分析資料結構,確定採用哪些演算法,使用什麼工具庫。筆者的這個專案,就是要開發一款用於計算機程式化自動交易的無人值守的交易系統,對於交易來說,系統設計的目標當然是追求穩定豐厚的交易利潤,做到低迴撤,高勝率,高盈虧比,經過幾個月的測試執行,筆者感到還是很欣慰的,基本上達到了筆者當初的設計目標,後續的話會繼續最佳化測試,是軟體更智慧化。

    在軟體開發的學習上,我還是強調學以致用,需要用什麼就學什麼,這樣才會避免枯燥和無聊。

  • 中秋節和大豐收的關聯?
  • 曾經崇拜的人,後來認為他並不值得崇拜是怎樣的體驗?