1. 程式人生 > >軟體開發過程中的一些感悟

軟體開發過程中的一些感悟

工作快四年了,從事開發工作也有兩三年了(頭一兩年從事設計工作),這期間有些感悟,寫下來以備以後回過頭來見證自己的成長。

對一個本科學的設計,畢業的時候對於計算機的知識瞭解甚少的人而言,靠著自學以及同事的幫助能夠從事軟體開發工作,我自己都感覺到不可思議。這期間不僅有自己奮鬥的辛酸,更有成長的快樂。下面說說我自己的一個學習方法,希望對某些人有些幫助。

剛開始的時候因為沒有基礎,所以在同事的推薦下看了一些基礎書籍(感覺譚浩強的書比較好,MFC深入淺出也相當不錯),做了一些基本的練習。萬丈高樓平地起,基礎知識很重要。其實到現在我還感覺我的基礎知識不是很好,所以還需要繼續學習。:)

看了一些基礎書籍做了些基本練習之後,我感覺學得很慢,後來就看了些學習視訊,因為看書需要一個字一個字地看,而且還需要邊做練習,而視訊的話可以坐在那裡聽作者怎麼講解如何演示功能的實現,如果簡單就可以不用自己動手了,如果感覺有必要可以跟著一起做。

後來,有一次看到一個同事在看電子書,我就告訴他我有學習視訊可以給他看,他回覆我說看視訊太慢,我都覺得不可思議。

現在,終於明白他的意思了,因為現在我也很少看視訊了,視訊上的東西講得比較細,有的東西我們已經知道如果再從頭到尾地聽作者講得話會比較浪費時間,而書本因為很多東西我們已經知道,不用一個字一個字地看,只需要著重看我們想了解的地方就行了,這樣看書確實比看視訊快。

一直都注重軟體功能的實現,慢慢發現學好了這些只能說學會了使用某一個工具,至於要使用這個工具做出一個什麼東西出來或者解決一個什麼問題,就需要我們的思維方式以及解決問題的能力了。

還有就是,現在網路這麼發達,很多問題都可以在網上找到答案,這得感謝那些樂於奉獻的人,為了向他們學習,我也開通了這個部落格。哈哈。

關於學習的幾點建議:

第一,興趣。興趣是最好的老師,只有我們感興趣了,才會願意去把一件事情做好。

第二,堅持。凡是貴在堅持,堅持了,成功才屬於我們。

第三,參與專案。很多東西想象的跟實際做起來是很不一樣的。想起來很容易,做起來卻不是那麼簡單的。一個很小的事情,如果不考慮清楚,就會出錯。而且,多參與專案,能使我們經驗更豐富,解決問題的能力更強。

第四,精益求精。實現功能的方法有很多,哪一種方法更好呢,多分析思考,不僅鍛鍊了我們的思維能力,而且增強了我們功能的健壯性和穩定性以及可移植性。

第五,善於總結。並不是說事情做完了就完了,而應該好好分析這件事情做完了有什麼收穫,遇到了什麼問題,是如何解決的,下次再做這樣的事情能不能做到更好。

第六,有個好老師。這個就得碰運氣了。當我們開始學習某些東西的時候,我們總是不能明白前面的路到底如何。如果有個人告訴我們前面很艱難,那麼我想多半人都不願意繼續前行了。而如果他告訴我們前面的道路一片光明,只要我們堅持前行,熬過了前面的那片黑暗,等待我們的就是寬廣的道路和美好的黎明,那麼我們肯定都願意咬咬牙繼續前行。

下面說說工作中的一些感悟,有點雜,都是想到哪說到哪。

軟體開發:

一個專案來了,首先分析其需求,然後分析其功能,將功能分模組化實現,最後測試

程式設計只是一個工具,想法才是最重要的

程式設計需要嚴謹的邏輯思維

專案經驗很重要,多參與專案,能使我們對問題有一個比較深刻的理解,這是任何教科書上都學不來的,技術功能的實現網上有參考資料,即使我們不會,也不用擔心,而對於專案的理解,則需要實際參與到專案中

讓專業的人做專業的事,每人負責一個或多個模組,盡力把其功能實現好介面做好,方便其他人使用也方便自己維護

變數和函式命名要反映其意義,名稱的定義能使人一目瞭然

需要別人呼叫的介面使用public,反之使用private

保證功能的可靠性

方便程式碼複用

函式呼叫

一個函式實現一個功能

函式需要返回值並且需要判斷返回值

軟體開發過程需要注意的幾個方面:

模組化設計

介面實現

平臺選擇

資料處理

通訊實現

介面效果

外掛實現

功能整合

測試

專案管理:

專案負責人對一個專案的管理具有相當重要的作用,協調其他人一起把專案完成好

每一個專案組都有一個組長,組長負責協調全域性性的工作,分配工作任務,整合模組,釋出軟體

一個專案來了,分配一個負責人(組長)和若干個組員

專案組成員一起討論客戶需求,解決方案,處理方式

然後由組長寫出文件,包括資料結構,資料處理方式,以及軟體操作方式

然後由組長分工,每個人需要完成的模組,需要完成的功能和效果

軟體介面設計師設計出介面美觀風格統一的介面,每個組員完成各自對應的模組

各個模組完成並且測試無誤後,提交給組長整合

組長整合後交給測試工程師按照文件一個功能一個功能地測試,有問題記錄下來報告給組長,由組長通知更改,沒有問題由組長髮布並且記下發布記錄

後續軟體升級維護由組長負責,組長安排具體人員實施,然後交由組長髮布

其他雜談:

人生的每個階段都有每個階段的成長和煩惱,工作也一樣

剛開始學走路,需要人扶著走,後來自己慢慢走,直到最後學會了跑

剛開始學說話,需要咿咿呀呀模仿,然後說詞語句子,一步一步才會溝通

剛開始我們注重技術的實現,後來才知道思維方式解決問題的能力更重要

小時候總覺得不理解父母

只是年幼的我們尚無法理解他們經過人生各種磨難後得出來的體會

長大後才知道他們是對的


很多父母望子成龍望女成鳳,希望他們一出生就能很聰明懂很多道理

他們的願望是好的,只是人的成長都需要一個過程


一直以來都非常重視技術實現的積累

慢慢才發現專案經驗的積累更重要

畢竟技術的實現可以隨時藉助於網路,而專案經驗則需要機遇

當一個人還處於扶牆而走的階段,考慮的是如何走得更穩更快

當一個人已經學會了走的時候,考慮的是如何更快更有效地到達目的地

這就是成長

(備註:由於能力經驗有限,這些只是自己個人的一些小感悟,如有不同的見解,可以提出來,但是請勿噴,謝謝!)