1. 程式人生 > >程式設計師必備技能

程式設計師必備技能

--必備技能--

熟練開發工具

做為一名程式設計師至少熟練掌握兩到三種開發工具的使用,這是程式設計師的立身之本,其中C/C++JAVA是重點推薦的開發工具,C/C++以其高效率和高度的靈活性成為開發工具中的利器,很多系統級的軟體還是用C/C編寫。而JAVA的跨平臺和與WEB很好的結合是JAVA的優勢所在,而JAVA即其相關的技術集JAVAOne很可能會成為未來的主流開發工具之一。其次,能掌握一種簡便的視覺化開發工具,如VBPowerBuilderDelphiCBuilder,則更好,這些開發工具減小了開發難度,並能夠強化程式設計師物件模型的概念。另外,需要掌握基本的指令碼語言,如shell

perl等,至少能讀懂這些指令碼程式碼。

熟知資料庫

為什麼資料庫是如此重要?作為程式設計師,他們自然有自己的理由:很多應用程式都是以資料庫的資料為中心,而資料庫的產品也有不少,其中關係型資料庫仍是主流形式,所以程式設計師至少熟練掌握一兩種資料庫,對關係型資料庫的關鍵元素要非常清楚,要熟練掌握SQL的基本語法。雖然很多資料庫產品提供了視覺化的資料庫管理工具,但SQL是基礎,是通用的資料庫操作方法。如果沒有機會接觸商業資料庫系統,可以使用免費的資料庫產品是一個不錯的選擇,如mySQLPostgres

瞭解作業系統

當前主流的作業系統是WindowsLinux/Unix,熟練地使用這些作業系統是必須的,

但只有這些還遠遠不夠。要想成為一個真正的程式設計高手,需要深入瞭解作業系統,瞭解它的記憶體管理機制、程序/執行緒排程、訊號、核心物件、系統呼叫、協議棧實現等。Linux作為開發原始碼的作業系統,是一個很好的學習平臺,Linux幾乎具備了所有現代作業系統的特徵。雖然Windows系統的核心實現機制的資料較少,但通過網際網路還是能獲取不少資料。

懂得網路協議TCP/IP

在網際網路如此普及的今天,如果您還沒有對網際網路的支撐協議TCP/IP協議棧有很好的掌握,就需要迅速補上這一課,網路技術已改變了軟體執行的模式,從最早的客戶/伺服器結構,到今天的WEBServices,再到未來的網格計算,這一切都離不開以

TCP/IP協議棧為基礎的網路協議支援,深入掌握TCP/IP協議是非常必要的。至少,需要了解ISO七層協議模型,IP/UDP/TCP/HTTP等常用協議的原理和三次握手機制。

明白DCOM/CORBA/XML/WEBServices存在的意義

隨著技術的發展,軟體與網路的無縫結合是必然趨勢,軟體系統的位置無關性是未來計算模式的重要特徵之一,DCOM/CORBA是當前兩大主流的分佈計算的中間平臺,DCOM是微軟COM(元件物件模型)的擴充套件,而CORBAOMG支援的規範。XML/WebServices重要性不言而喻,XML以其結構化的表示方法和超強的表達能力被喻為網際網路上的“世界語”,是分散式計算的基石之一。

不要將軟體工程與CMM分開

大型軟體系統的開發中,工程化的開發控制取代個人英雄主義,成為軟體系統成功的保證,一個程式設計高手並不一定是一個優秀的程式設計師,一個優秀的程式設計師是將出色的程式設計能力和

開發技巧同嚴格的軟體工程思想有機結合,程式設計只是軟體生命週期中的其中一環,優秀的程式設計師應該掌握軟體開發各個階段的基本技能,如市場分析,可行性分析,需求分析,結構設計,詳細設計,軟體測試等。

--素質要求--

需求理解能力

程式設計師要能正確理解任務單中描述的需求。在這裡要明確一點,程式設計師不僅僅要注意到軟體的功能需求,還應注意軟體的效能需求,要能正確評估自己的模組對整個專案中的影響及潛在的威脅,如果有著兩到三年專案經驗的熟練程式設計師對這一點沒有體會的話,只能說明他或許是認真工作過,但是沒有用心工作。

模組化思維能力

作為一個優秀的程式設計師,他的思想不能在侷限當前的工作任務裡面,要想想看自己寫的模組是否可以脫離當前系統存在,通過簡單的封裝在其他系統中或其他模組中直接使用。這樣做可以使程式碼能重複利用,減少重複的勞動,也能是系統結構越趨合理。模組化思維能力的提高是一個程式設計師的技術水平提高的一項重要指標。

團隊精神和協作能力

團隊精神和協作能力是作為一個程式設計師應具備的最基本的素質。軟體工程已經提了將近三十年了,當今的軟體開發已經不是程式設計了,而是工程。獨行俠可以寫一些程式也能賺錢發財,但是進入研發團隊,從事商業化和產品化的開發任務,就必須具備這種素質。可以毫不誇張的說這種素質是一個程式設計師乃至一個團隊的安身立命之本。

文件習慣

文件是一個軟體系統的生命力。一個公司的產品再好、技術含量再高,如果沒有缺乏文件,知識就沒有繼承,公司還是一個來料加工的軟體作坊。作為程式碼程式設計師,必須將30%的工作時間寫用於技術文件。沒有文件的程式設計師勢必會被淘汰。

規範化的程式碼編寫習慣

知名軟體公司的程式碼的變數命名、註釋格式,甚至巢狀中行縮排的長度和函式間的空行數字都有明確規定,良好的編寫習慣,不但有助於程式碼的移植和糾錯,也有助於不同技術人員之間的協作。

測試習慣

測試是軟體工程質量保證的重要環節,但是測試不僅僅是測試工程師的工作,而是每個程式設計師的一種基本職責。程式設計師要認識測試不僅是正常的程式除錯,而要是要進行有目的有針對性的異常呼叫測試,這一點要結合需求理解能力。

學習和總結的能力

程式設計師是很容易被淘汰的職業,所以要善於學習總結。