開發人員需要知道的東西雜談

鑑於經常看到很多傻傻的問題比如xx語言幹什麼用的,xxx語言是不是落伍了?(不過說實在的,這些問題初學者都會有.) 我在這裏說說開發人員應該知道的一些東西。但是這些只是我在平日裏看到和想到的。難免有所偏差,請見諒.

     軟件開發,是一個綜合性的活計。軟件開發,並不僅僅是編寫代碼.學會了用c這些編程語言進行編程只是第一步,一個最最基本要求。其他要的東西還多着呢。在 我看來,程序員大致可以分爲兩類.當一個工作任務分配到程序員身上時,一種程序員知道爲什麼要這樣去做.另外一種則知道怎麼去做完這個工作.
而這 個區別就大了.如果你知道爲什麼要這樣去實現,這個至少說明你能把握住你的任務在軟件工程裏面的位置.如果你只是僅僅知道怎麼去完成他.那只是說明你能做 完這個工作而已.想做好就不一定能行了.而第一種程序員一定能做好.做的最優.看看下面的條條,希望對大家都有所幫助.

第一要說的,編程的關鍵是什麼?


    編程不是實現了代碼就可以了.引用我的友人的一句話,“編程講究是一個整體的平衡性。”
對 於這個他是這樣解釋的。“平衡性,是軟件的很重要的部分,從平衡性的角度去考慮編程,就會抑制你想要用最新技術,最新系統等等一些想法。因爲從平衡性的角 度考慮,只要你的軟件有一個瓶頸出現,你的程序就是失敗。你首先要考慮的是怎麼消除程序中可能存在的一些瓶頸。在這個基礎上你纔有權利去考慮提高你程序的 性能”.就算你擁有最新的技術,最好系統,如果你的代碼不行。只要你的程序有性能瓶頸存在,等於什麼都沒有做。

    在這裏我想說的就是程序是人寫的。如果你的水平不行,再好的現成的技術也是用不起來的。就算用起來了,你可能沒有辦法說清楚,爲什麼這樣用?

第二要說的,怎麼編程?

     我想很多人看到這個問題,一定會在心裏把我罵的體無完膚的。心想這小子活膩了。罵也無妨。暫且聽我說。我說的怎麼編程不是要說怎麼寫詳細的代碼,而是你的 程序最終是怎麼形成的。我想寫到這裏又有人把我給陵遲了一次了。但實際上編寫代碼是在軟件的生產過程中佔有時間比較少的一塊。

我個人覺得要包含以下的幾個部分:

1。市場潛力分析 分析你要寫的軟件能不能賣出去,或者說我要編寫什麼樣的軟件?

2。同類產品競爭分析 看看你的同類產品的優缺點,設計你的軟件的賣點.(如果沒有賣點,就沒有必要繼續了)
3。軟件設計 寫出詳細的軟件流程,數據流程。主要算法。軟件架構等

4。編寫代碼 不用說了吧

5。bug測試和試運行

6。賣

    這些事,有的是市場的事,有的是系統分析員的事,還有的是編程的事。但是在很多小公司,本着小公司事必親恭的辦事原則。大家多瞭解一點是不會有錯的。

    舉個具體的例子來說。假如我要編寫一個共享軟件。我要怎麼做呢?

1。要好好想想我要寫的軟件有沒有“錢”途。時間在15天-30天左右。在這段時間裏面一定要好好的做一下市場考察.這個可是最關鍵的一步.

2。好,我已經決定要寫xxx軟件了。

3。在網上找幾個對xxx最有威脅的同類軟件,分析它們優缺點。要它們的優點,不要他們的缺點。設計出自己軟件的賣點.

4。根據前面分析的結果,大概的列出xxx軟件應該具有的功能表

5。寫出1.0版的基本功能表,寫出1.x的功能表。不要一次就做完全部的功能,這樣的話,你的軟件永遠都沒有出世的機會

6。選擇編程語言 (看看,編程語言到這裏纔出來)

7。上網找類似的源代碼,算法。RFC標準文檔。吃透.軟件代碼和算法的良好重用,會讓你事半功倍的.

8。根據你選定語言,算法,標準文檔,寫出xxx的詳細設計文檔。文檔一定要用,不然你的計劃性就不強.計劃性不強,隨意性就大.隨意性大了,軟件很容易失敗的.

9。按照設計文檔編寫代碼

10。測試和賣

第三,哪裏有資料,標準文檔

     代碼的世界是千變萬化的, 在開始一個新的項目之前,完全可以找一個類似功能的代碼來看看。這樣可以更好的改進你的程序。有時還可以加快進度。還有當新的技術出來時,你要看看相關的 文檔。雖然不要完全瞭解它的功能,好處。但是你至少要知道新的技術能用在什麼地方。怎麼用。配合什麼其他的技術用能更好的發揮它的作用。編寫軟件不是全部 的東西都是自己寫的。有很多的功能是一種標準,也許是標準算法。像圖形的,多媒體的,加密解密的算法。有的是一個標準的文件格式,像各種圖像文件,多媒體 文件。還有的是一種標準的約定。像email,telnet等常見的網絡工具。

所以你要知道你可以從哪裏找你要的資料。我把我知道的都寫在這裏

源代碼和技術資料站點
[url]http://www.vchelp.net/[/url] gb
[url]http://www.csdn.net/[/url] gb
[url]http://www.codeguru.com/[/url] en
[url]http://www.codetools.com/[/url] en
[url]http://www.dexv.com/[/url] en
msdn.microsoft.com en
[url]http://www.programmerheaven.com/[/url] en
[url]http://www.freshmeat.net/[/url] en
[url]http://www.sourceforge.net/[/url] en
www-900.ibm.com/developerWorks/ gb
論壇和標準,組織
[url]http://www.linuxaid.com.cn/[/url] gb
[url]http://www.linuxbyte.com/[/url] gb
[url]http://www.aka.org.cn/[/url] gb
[url]http://www.rfc.org/[/url] en gb
各種maillist,irc

第四,要掌握的工具和知識

    工具,可以讓你的工作更加的有效率和不易出錯。

    下面的工具也許你用過,也許你沒有用過。不過沒有關係的。同行的老鳥會教我們怎麼用的。(我想到哪個就寫哪個。沒有順序問題)

1。數據庫工具 建數據庫工具,代表 powerdesigner 數據庫分析工具。很多大型的數據庫都會帶的。

2。流程圖設計 代表 visio 2000 , smartdraw

3。case工具 代表 rose

4。代碼分析工具 代表 bounderchecker(for vc delphi),smartcheck(for vb) ....

5。編輯器 代表 vi,vic,Ultra Edit

6。源代碼管理 代表 vss ,cvs

7。編程工具,不要我多說了吧

8。其他的,我沒有用過的,但是也許在某個行業用的很多的工具。(廢話 :))

    知識的話,因爲每一個人的發展方向不一樣,所以大部分人的知識結構都不一樣。但是有幾點應該是一樣的。

1。英語能力
主 要的新的技術,文檔資料都是用英語來作爲首發的。如果要學到更好更新的知識,技巧。不懂點英語也是不行的。也不要指望有人給你翻譯出來。一般來說,這些資 料,看的懂的人不需要翻譯,看不懂的人沒有辦法翻譯。半懂不懂的人翻譯出來的文章我想你也不敢看。所以大部分的資料還是英語原文的。當然也有很多的人在翻 譯這些文章,但是對於這麼多的資料來說,翻譯過來的只是很小很小的一部分。求人不如求己。多學點英語沒有錯的。

2。設計能力
雖然 一般來說,正規的公司有系統分析員做設計(我猜的)。但是70%-80%的小公司,可就不一定了。知道一點軟件工程的知識,知道一些文檔設計工具怎麼用。 或者知道應該有哪些設計文檔。也是很有好處的。比較這些東西如果你學到了,就是你自己的了。而且這些可是加工資的好東西。很有錢途的。:)

3。語文寫作能力
作爲一個程序員,大部分時間是都是在寫代碼。但是代碼的註釋,各種文檔,測試報告,說明文檔,使用手冊編寫,這些都需要文字功底的。 還有用email,bbs,qq這些工具與人交流的時候,如果話都說不清楚,那交流就更談不上了。水平提高進步也就有點問題了。

4。學習能力
沒 有幾個人是全部學會了再去工作的。這個不是很現實。目前社會也不太允許這樣做。一邊工作一邊學習是很常見的。也許很多人是在工作之中才學會做某些事情的。 很多技能也是這樣會的。此外,很多新的項目的到來。很新的技術的到來都要求我們能適應新的工作環境,新的工作要求。如果沒有好好的學習是很容易被一個項目 踢掉的。呵呵。
另外有一點,當上司讓你做你不會的東西時,你要告訴他,你不會,但是會在XX天內把他搞定。不會沒有關係,會學習也是會上進的一種好表現。

5。知道自己要做什麼,要學什麼,要發展什麼。

    世界上軟件技術是多的像9個牛上的毛一樣多,也許還要多很多。如果我們什麼都要知道。哦,天哪,我不想活了。

    作爲一個軟件人員也好,作爲一個初學者也好。知道自己要往那個方向走是很重要的。不然很容易的就餓死在軟件技術迷宮裏的。最後只好不幹這一行了。這個可不太好。
一 般來說,作爲一個軟件人員,掌握一到兩個語言的開發能力就可以了。另外除非你是想做軟件技術的研發(這些工作最有錢,在大型的公司是最受歡迎)。如果不是 做軟件技術的研發,只是一般的應用程序編寫的話,不用太關注今天出來什麼新的技術,明天又出來什麼新的技術。這些東西只要知道就行了。知道有這麼回事就可 以了。以後有用的到的地方再去認真的關注也是不遲的。自己選擇一個發展的方向,努力的向前走。不要被各種各樣的新技術誘惑過去。說句實話,很多的所謂新技 術的怎麼怎麼好,怎麼怎麼優異,很多時候都是有商業行爲在裏面的。要自己會判斷才行。如果不能判斷怎麼辦,看下面的一條。

第六:知道的更多


     很多初學者最麻煩的事是怎麼在這麼多的軟件技術裏面選擇一種又好學,又有前途(錢途),又能做點什麼偉大的事情的技術來開拓軟件開發這個他們未知的領域。 對於這個麻煩的問題,很少有解。如果你能遇到一個很好的老師,那就是你的福氣,千萬要抓住這個機會。如果你不得不一人做出這個決定,那隻能是小心翼翼地來 了。不過一般來說學c和c++都是一個不錯的選擇。

    初學者的另外一個麻煩的問題是,當我選擇之後,在學習過程中出現的很多這個和 那個的新技術,新的變化。我該怎麼辦。這個也基本無解。只能是你自己慢慢慢慢積累。積累到你能理解這些新技術的出現是爲了什麼,這些新變化的發生是爲知道 的更多 ......,這些新變化的發生是爲了什麼之後。你就會不怕這些的新的東西。

    我一向堅持,如果我知道的更多,我的力量就會更大。我就更不會怕出現變化。如果因爲你的信息不足,而無法對某件事情進行判斷時,千萬不要強行進行判斷。對你沒有好處的。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章