信息技術的發展時間雖然不長,但其爆炸式的發展速度使信息技術迅速覆蓋社會和人類生活的各個角落。程序員們是這場信息化浪潮的見證者之一,更是其中的主要參與者,這是時代賦予每個程序員的機會和責任。
信息技術的更新速度是驚人的,程序員的職業生涯則是一個要求不斷學習的過程,永遠不能固步自封。本人在工作期間曾看見過很多程序員只要有閑暇時間就瀏覽一些沒有太大作用的網頁,在網上聊天,打游戲,浪費了大量的時間,十分不可取。而另外一種情況是,IT技術的日新月異使很多程序員眼花繚亂,什么都想學,卻又不知從何學起,今天看看這個,明天學學那個,貪多不熟。
雖然IT技術發展迅速,但很多技術都是有規律可循,一些基本的概念、原理和方法還很通用,可以舉一反三。本人根據自己的體會和經驗,向那些剛剛踏入IT行業的新程序員們或正在迷茫的程序員們推薦程序員必須掌握的七種武器,有了這七種武器,雖不敢說笑傲江湖,但將自己立于不敗之地還是可以的。
第一種武器:開發工具
至少熟練掌握兩到三種開發工具的使用,這是程序員的立身之本,其中C/C++和JAVA是我重點推薦的開發工具,C/C++以其高效率和高度的靈活性成為開發工具中的利器,很多系統級的軟件還是用C/C++編寫。而JAVA的跨平臺和與WEB很好的結合是JAVA的優勢所在,而本人對SUN公司的“網絡即計算機”的概念相當欣賞,并相信JAVA即其相關的技術集JAVA One會成為未來的主流開發工具之一。其次,如果能掌握一種簡便的可視化開發工具,如VB,PowerBuilder,Delphi,C++ Builder,則更好,這些開發工具減小了開發難度,并能夠強化程序員對象模型的概念。另外,需要掌握基本的腳本語言,如shell,perl等,至少能讀懂這些腳本代碼。
第二種武器:數據庫
為什么數據庫是如此重要?很多應用程序都是以數據庫的數據為中心,而數據庫的產品也有不少,其中關系型數據庫仍是主流形式,所以程序員至少熟練掌握一兩種數據庫,對關系型數據庫的關鍵元素要非常清楚,要熟練掌握SQL的基本語法。雖然很多數據庫產品提供了可視化的數據庫管理工具,但SQL是基礎,是通用的數據庫操作方法。如果沒有機會接觸商業數據庫系統,可以使用免費的數據庫產品是一個不錯的選擇,如mySQL, Postgres等。
第三種武器:操作系統
當前主流的操作系統是Windows,Linux/Unix,熟練地使用這些操作系統是必須的,但只有這些還遠遠不夠。要想成為一個真正的編程高手,需要深入了解操作系統,了解它的內存管理機制、進程/線程調度、信號、內核對象、系統調用、協議棧實現等。Linux作為開發源碼的操作系統,是一個很好的學習平臺,Linux幾乎具備了所有現代操作系統的特征。雖然Windows系統的內核實現機制的資料較少,但通過互聯網還是能獲取不少資料。只有對操作系統有一定的了解后,你會發現自己上了一個新的臺階。
第四種武器:網絡協議TCP/IP
在互聯網如此普及的今天,如果您還沒有對互聯網的支撐協議TCP/IP協議棧有很好的掌握,就需要迅速補上這一課,網絡技術已改變了軟件運行的模式,從最早的客戶/服務器結構,到今天的WEB Services,再到未來的網格計算,這一切都離不開以TCP/IP協議棧為基礎的網絡協議支持,所以,深入掌握TCP/IP協議是非常必要的。至少,你需要了解ISO七層協議模型,IP/UDP/TCP/HTTP等常用協議的原理和三次握手機制。
第五種武器:DCOM/CORBA/XML/WEB Services
隨著技術的發展,軟件與網絡的無縫結合是必然趨勢,軟件系統的位置無關性是未來計算模式的重要特征之一,DCOM/CORBA是當前兩大主流的分布計算的中間件平臺,DCOM是微軟COM(組件對象模型)的擴展,而CORBA是OMG支持的規范。程序員需要做的不僅僅是利用商業的開發平臺來開發軟件,而是要理解這些技術的初衷,即為什么需要這項技術,如果你能理解了這一點,再回頭看這些技術的具體實現,就如庖丁解牛,迎刃而解。XML/WebServices重要性不言而喻,XML以其結構化的表示方法和超強的表達能力被喻為互聯網上的“世界語”,是分布計算的基石之一。
第六種武器:軟件工程與CMM
現代大型軟件系統的開發中,工程化的開發控制取代個人英雄主義,成為軟件系統成功的保證,一個編程高手并不一定是一個優秀的程序員,一個優秀的程序員是將出色的編程能力和開發技巧同嚴格的軟件工程思想有機結合,編程只是軟件生命周期中的其中一環,優秀的程序員應該掌握軟件開發各個階段的基本技能,如市場分析,可行性分析,需求分析,結構設計,詳細設計,軟件測試等。一句話可以概括我的看法:“創意無限,流程保證”。
第七種武器:強烈的好奇心
什么才是一個程序員的終極武器呢,那就是強烈的好奇心和學習精神。沒有比強烈的好奇心和學習精神更好的
軟件工程師考試(高級)大綱
一、考試說明
1.考試要求:
(1)理解軟件工程管理的概念和任務;
(2)理解軟件生存期過程;
(3)理解軟件工程標準;
(4)掌握需求分析、測試、維護基本技術;
(5)掌握軟件度量、軟件配置管理方法;
(6)理解軟件復用概念;
(7)理解軟件質量保證的手段;
(s)理解軟件項目對人員的需求;
(9)理解軟件知識產權的基本知識。
2.通過本級水平考試的合格人員具有從事軟件系統分析與工程系統分析員、工程管理員的實際工作能力和業務水平。
3.本級水平考試范圍包括三個模塊,即模塊1、模塊2和模塊3。題型為單項選擇題十多項選擇題十綜合題。每個模塊考試時間為90分鐘。
二、考試范圍
模塊1:軟件工程技術
1.1軟件生存期過程
1.1.1軟件工程過程和軟件生存期
1.1.2軟件生存期模型
1.1.3國際標準:ISO/IECI2207信息技術一軟件生存期過程
1.2軟件需求分析
1.2.1需求分析的任務
1.2.2需求分析過程
1.2.3需求的類型。
1.2.4需求分析的原則
1.2.5需求分析人員和用戶的責任
1.2.6需求文檔
1.2.7需求說明技術的選擇
1.3軟件復用技術
1.3.1軟件復用的概念
1.3.2軟件開發過程
1.3.3構件技術
1.3.4分層式體系結構
1.3.5實施軟件復用開發單位的組織結構
1.4軟件測試技術
1.4.1軟件測試的基本概念
1.4.2測試用例設計
●白盒測試
●黑盒測試
1.4.3性能測試
1.4.4軟件測試策略
1.4.5軟件測試工具
1.5軟件維護
1.5.1軟件維護的概念
1.5.2軟件維護活動
1.5.3軟件維護的實施
1.5.4軟件可維護性
1.5.5軟件再工程
1.6軟件工具與軟件開發環境
1.6.1軟件開發工具的分類、作用和功能
1.6.2軟件開發環境的概念
模塊2:軟件質量管理與軟件質量保證
2.1軟件質量
2.1.1什么是軟件質量
2.1.2軟件可靠性
2.1.3軟件質量問題的根源
2.1.4軟件產品質量與軟件過程質量
2.2軟件質量保證
2.2.1軟件質量保證的概念
2.2.2軟件質量保證體系
2.2.3質量保證的實施
2.2.4軟件質量設計
2.2.5軟件容錯技術
2.3軟件工程標準與軟件文檔
2.3.1什么是軟件工程標準
2.3.2軟件工程標準化的意義
2.3.3軟件工程標準的制訂與推行
2.3.4軟件工程標準的層次
2,3.5軟件工程國家標準
2.4ISO9000國際標準
2.4.1質量管理、質量認證與質量審核
2.4.2ISO9000標準概要
2.4.3ISO9000族標準構成
2.4.4質量體系
2.4.5ISO9001的主要內容
2.4.6ISO9000_3實施指南概要
2.5軟件過程能力評估CMM
2.5.1軟件過程評估的意義
2.5.2軟件過程能力成熟度分級及其關鍵過程域
2.5.3軟件過程評估的國際標準
2.6軟件度量
2.6.1軟件度量的概念
2.6.2功能點方法計算軟件的大小
2.6.3程序環路復雜度計算
2.6.4Halstead程序工作量計算
2.6.5程序風格度量
2.7軟件配置管理
2.7.1什么是軟件配置管理
2.7.2配置管理計劃的制訂
2.7.3變更管理
2.7.4版本管理和發行管理
模塊3:軟件工程管理
3.1軟件工程管理和軟件項目管理
3.1.1軟件工程管理的任務與意義
3.1.2軟件工程管理的范圍
3.1.3軟件文檔管理
3.1.4軟件成本估算
3.1.5軟件風險分析
3.1.6軟件項目進度計劃與監控
3.2軟件人員管理
3.2.1軟件開發組織結構
3.2.2軟件人員能力成熟度模型
3.2.3軟件工程師道德和職業活動規范
3.3軟件知識產權保護
3.3.1什么是知識產權
3.3.2計算機軟件著作權
3.3.3計算機軟件著作權登記管理
3.3.4計算機軟件著作權侵權與法律保護
3.3.5計算機軟件的商業秘密與反不正當競爭
-
軟件工程師
+關注
關注
8文章
218瀏覽量
21136
發布評論請先 登錄
相關推薦
評論