程序員
程序員(英文Programmer)是從事程序開發、程序維護的專業人員。通常將程序員分爲程序設計人員和程序編碼人員,但二者的界限並不很是清楚,特別是在中國。軟件從業人員分爲
初級程序員、中級程序員、高級程序員(現爲軟件設計師)、
系統分析員,
系統架構師,
測試工程師六大類。
一、對項目經理負責,負責軟件項目的詳細設計、編碼和內部測試的組織實施,對小型軟件項目兼任
系統分析工做,完成分配項目的實施和
技術支持工做。
二、協助
項目經理和相關人員同客戶進行溝通,保持良好的客戶關係。
三、參與需求調研、項目可行性分析、技術可行性分析和
需求分析。
四、熟悉並熟練掌握交付軟件部開發的軟件項目的相關軟件技術。
五、負責向項目經理及時反饋軟件開發中的狀況,並根據實際狀況提出改進建議。
六、參與軟件開發和維護過程當中重大技術問題的解決,參與軟件首次安裝調試、數據割接、用戶培訓和項目推廣。
七、負責相關技術文檔的擬訂。
八、負責對業務領域內的技術發展動態進行分析研究。
程序員考試介紹
軟考程序員考試屬於計算機
軟件水平考試(簡稱軟考)中的一個初級計算機職稱考試。對於軟考程序員考試並沒有學歷及資歷條件限制,更不管年齡、專業與資歷。一年可報考軟考程序員考試兩次,但一次考試只能報考一種資格,所以報考了程序員考試則沒法再報考軟考其餘級別或科目的考試。同時軟考程序員考試採用筆試形式,考試實行全國統一大綱、統一試題、統一時間、統一標準、統一證書的考試方式。
程序員考試目標
經過本考試的合格人員能根據軟件開發項目管理和
軟件工程的要求,按照程序設計規格說明書編制並調試程序,寫出程序的相應文檔,產生符合標準規範的、實現設計要求的、能正確可靠運行的程序;具備助理工程師(或技術員)的實際工做能力和業務水平。
一、CVEQC認證持有者已經經過了中國職業教育資格認證指導中心組織的培訓和相應的考試,具備相應的專業技能和知識。
二、CVEQC證書可做爲勞動者崗前培訓、在職培訓、提升培訓、繼續教育的培訓認證;也是勞動者「先培訓、後就業,先培訓、後上崗」的憑證。
三、CVEQC證書是中國職業教育資格認證指導中心頒發的專業技能證書。標有證書序列號、證書編號、培訓者及證書持有者身份證號碼,並蓋有全國職業教育管理委員會、中國職業教育資格認證指導中心的證書專用章。
四、 證書證實參加培訓及證書持有者具備系統地接受崗位技能培訓的經歷,證書在全國範圍內有效。
程序員報考條件
凡遵照
中華人民共和國憲法和各項法律,恪守職業道德,具備必定計算機技術應用能力的人員,都可根據本人狀況報名參加相應專業類別、級別的考試。
程序員考試要求
(1)掌握數據及其轉換、數據的機內表示、算術和邏輯運算,以及相關的應用數學基礎知識;
(2)理解計算機的組成以及各主要部件的性能指標;
(3)掌握操做系統、程序設計語言的基礎知識;
(4)熟練掌握計算機經常使用辦公軟件的基本操做方法;
(5)熟練掌握基本數據結構和經常使用算法;
(6)熟練掌握C程序設計語言,以及C++、Java、Visual Basic中的一種程序設計語言;
(7)熟悉數據庫、網絡和多媒體的基礎知識;
(8)掌握軟件工程的基礎知識,瞭解軟件過程基本知識、軟件開發項目管理的常識;
(9)瞭解經常使用信息技術標準、安全性,以及有關法律、法規的基本知識;
(10)瞭解信息化、計算機應用的基礎知識;
(11)正確閱讀和理解計算機領域的簡單英文資料。
程序員相關書籍
不少程序員響應,他們在推薦時也寫下本身的評語。 之前就有國內網友介紹這個程序員書單,不過都是推薦數 Top 9的書。
其實除了前9本以外,推薦數前30左右的書籍都算經典,筆者整理編譯這個問答貼,同時摘譯部分推薦人的評語。
下面就按照各本書的推薦數排列。
世界上第一位程序員是英國著名詩人
喬治·戈登·拜倫的女兒AdaLovelace,曾設計了巴貝奇分析機上解
伯努利方程的一個程序。她甚至還創建了循環和子程序的概念。因爲其在程序設計上的開創性工做,AdaLovelace被稱爲世界上第一位程序員。美國國防部開發的ADA語言就是爲記念這位世界上的第一位程序員而命名的。
計算機科學發展到今天(21世紀初期),程序員從事的人羣不少,分工也不相同,從大的方面能夠分爲如下幾類:asp程序員、web前端開發程序員、delphi程序員、php程序員、powerbuilder程序員、C程序員、linux程序員、net程序員、vb程序員、java程序員、javascript程序員、C++程序員、Python程序員、ABAP程序員、android程序員、iOS程序員。
由
CSDN、《程序員》主辦的2007年開發者大調查2007年末已收到15000多份有效問卷,已是中國調查樣本最多的開發者調查。在此次調查中,詳細的分析了樣本空間的分佈情況,發
程序員
如今龐大數目的有效問卷的參與者中有70%也就是接近一萬一千名的參與調查者是IT的全職人員,14%的參與者是有過開發工做經驗的學生,從這樣的分佈就能夠看出來IT從業人員對專業知識的需求是巨大而迫切的,CSDN做爲專業的軟件開發技術
門戶網站,已是你們獲取這些技術知識的主要手段。
1、選擇
數據庫技術和互聯網技術的人數總和佔到了總人數的一半
2007年火熱的SOA和
動態語言各佔13%和12%。其實這幾大塊技術分佈他們之間都是有必定的聯繫的,互聯網的發展近兩年呈爆炸式的增加態勢,中國的網民總數已經超過了1.4億這樣一個巨大的數字。
企業中業務的複雜程度愈來愈高,商業競爭不斷增長企業的IT系統,使企業的商業數據呈幾何數量級不斷增加,在後臺海量的數據中數據的管理由以前的單一型數據變
程序員
成了多緯度的複雜數據,因此能夠同時管理關係型數據庫和XML數據的混合型數據庫已經成爲主流。
面對企業不斷增長新的IT信息系統,整合已經迫在眉睫,SOA成爲必然的趨勢,企業對人才的需求從單一型技術人才、業務人才跳躍到了業務技術的複合型人才,此次的開發人員大調查令《程序員》雜誌的調查者看到了這些技術焦點背後千絲萬縷的關聯。
2、幾乎一半
的.NET用戶不參與開源項目RedHat+Ubuntu佔有率超過70%
應用到.NET平臺上的開源項目,「大量使用」的比例數僅爲8.68%,尚不足一成;「少許應用」的開發者人數比例爲42.78%。
程序員
「基本不用」的比例高達48.54%,與前兩者之和幾乎不相上下。
雖然
開源的出現和發展,讓軟件沒有壟斷的將來日漸明朗;雖然
開源運動通過多年的高速發展,如今已經彙集了至關的力量,開源的自由和給予理念逐漸深刻到了企業的技術核心層面。但微軟以
商業軟件爲生,畢竟在微軟技術領域中,開源項目一般都被看做是二等公民。不少開源項目對.NET社區產生了巨大的推進做用,
微軟公司很難提供任何實質性質的支持。
Linux版本
使用「RedHatFedora」關鍵詞在百度網頁中搜索獲得7,090,000條結果,RedHatFedora在調查中佔據Linux版本的
半壁江山符合整個Linux版本的分佈狀況。
排在第二位的是
Ubuntu,受支持數佔到總數的23.92%;第三位的是SuSE佔9.09%,接下來是Debian,使用率爲5.92%。在這裏面使人期待的中國本土Linux的讓人大失所望。使用率僅佔5.16%,幾乎只
程序員
有RedHatFedora的十分之一。
3、揭示八成技術人員
數據庫選型標準SQLServer用戶接近50%
使用率佔據榜首的數據庫產品是微軟的
SQLServer,比例數達到了47.92%。與其他全部的數據庫之和分庭抗衡,大有一覽衆山小之勢。
從調查獲得的使用率來看,MySQL仍處於對MSSQLServer
可望不可即的階段。調查顯示,MySQL的使用數爲1651,佔總數的13.80%,不過排名第三。
使用率排在第二位的是
Oracle,比例達到24.21%。在前有SQLServer,後有MySQL的狀況下,Oracle仍能達到四分之一的佔有率,發展勢頭不可謂不強勁。
雖然Orcale數據庫的價格比SQLServer數據庫要高,但Oracle採用開放的策略目標,可在全部主流平臺上運行。並且有開發者認爲Oracle的
安全認證是得到最高認證級別的ISO標準認證,所以安全性高於SQLServer。
排在第四位的是Access——5.59%;接着是DB2UDB,佔總數的2.75%;至於FoxPro、Informix、PostgreSQL、Sybase得票數均僅在一百左右,還有待進一步的發展。
4、
中國程序員最愛的智能手機平臺Linux+Java超過Symbian
「開源Linux對於衆多開發者的吸引力是巨大的,可是,這僅僅是針對於技術開發人員來講的,而對於普通消費者就不是如此了。」在衆多開發者心中,主要是對Linux的青睞。從調查結果中也能夠直接反應這樣的現象。有專家對此評論說:Linux+Java的模式,應該是應用最多的模式。
程序員
針對此問題行業的專家有本身的觀點:「如今Wince和Symbian發展很快,而且隨着手機硬件方面性能的提升,不少政府部門和企業在採購時,不少會考慮Dopod這樣的手機,或者價格便Wince和Symbian都主要使用
c++開發,正是
嵌入式開發的潮流。」
不一樣人羣對於收集智能操做系統的觀點是不一樣的,對於開發者角度,他們更加青睞於微軟和
開源Linux的產品,而普通大衆他們比較喜歡Wince和Symbian。
5、七成程序員不肯意選擇
門戶網站
獲取開源信息,而更關注SourceForge等
30%的技術人員從門戶網站獲取開源技術信息,剩下的70%的技術人員都是從專業的開源社區和開源廠商的技術網站上獲取信息,包括有SourceForge、LinuxToday、
OpenOffice和IBMdW等。
在這70%當中,比例佔有絕對優點的就是SourceForge了,這裏是
開源軟件的開發者進行開發管理的集中式場所,也是全球最大開源軟件開發平臺和倉庫。而LinuxToday裏面會有記錄不少很新的Linux業界大事,新聞以及出版信息。因此,對
開源技術感興趣的程序員們,沒必要再爲如何獲取開源信息而苦惱了,快加入到這70%的人羣中來吧。
互聯網的發展已經成爲你們獲取信息最主要的渠道之一,網民上網的習慣也從開始的上爲數很少的幾個
門戶網站發生了變化,大而全的門戶網站並不能知足專業領域人員的信息需求,從2004年開始陸續出現了大量的各個領域垂直細分的內容網站,一方面有長尾理論的理論支持,另外一方面廠商也創建了相應產品的技術內容網站,但願能彙集一批專一於這個領域專業人士,作好他們的
定向營銷。
作細分領域內容的網站對門戶已經形成了必定的威脅,這些網站的專業性高,用戶的粘性相對也比較高,若是細分領域的內容網站能將本身的服務有所提高,就如同SourceForge同樣,那麼將來
門戶網站的路就變得更加崎嶇了。
6、Java
開發框架:6%的JSF欲撼動21%的Struts
程序員
JSF如今比較有優點的是對Ajax的集成,這一點走在了其餘框架的前面。將來兩年,JSF與Struts將展開JavaWeb框架的最終戰爭。 通過數年的「框架大戰」,Java界的各類框架找到了本身應有的位置。Spring+Hibernate+Struts已成爲Java開發的主流體系。在這個體系中,Spring+Hibernate的地位應該說短時間內是難以撼動了。除了新興的JbossSeam做爲挑戰者以外,幾乎難有勁敵。
JavaB/S編程中從來戰火最激烈的其實還在Web層,框架的數量最多,爭議最大。一切由Struts而起,而Struts最終也坐穩了第一個時代的王座。在技術層面,Struts1.x已經被無數人抱怨過、批評過,但終於仍是穩坐王位,這充分說明了習慣的力量。「穩定壓倒一切」,這句話在IT技術領域仍舊適用。
詳細的分析了Java開發框架的使用情況,發現主要使用的開發框架JSP佔26%,Struts佔21%,Hibernate佔17%,SpringMVC佔11%,EJB佔7%,JSF佔6%,SpringWebFlow和POJO各佔4%,其它佔4%。就這一調查數據,不難看出,Spring+Hibernate+Struts的優點地位仍是至關的明顯。
Struts和Hibernate幾乎已經成了JavaEE應用的常規配置,21%的開發者用到Struts,用到Hibernate的開發者也有17%;在一個成熟的技術平臺上,各個項目的技術方案會在很大程度上趨同——由於全部未知領域都已經被探明,各類問題都有對應的最佳實踐,
架構師們能夠參考的成功案例愈來愈多。就拿JavaEE來講,架構師們須要考慮的問題比之三年前已經簡單多了,這就是成熟的價值。
有專家評論:「其實IT應用技術,什麼新鮮玩意並不難學,難的是標準化和規範化。
程序員
每一個程序員都有本身的思路和習慣,寫出來的代碼天然是五花八門。Java何以成爲編程界的佔重要地位,很重要的一點在於Java的規範化。這種規範化很高的語言適用於多人合做的大型項目,便於溝通和理解,也就便於集成和維護。 Java世界爲何會框架橫飛,說到底仍是規範化的須要。純JSP和Struts寫Web誰快,擺明了是JSP。那爲何用Struts?緣由在於100我的寫出來的JSP,有100種寫法;而100我的寫出來的Struts,基本類似。Struts之成功,正緣於其在JavaWeb層的規範化方面所作出的貢獻。
然而長江後浪推前浪,Struts1.x的技術缺陷畢竟是隱患。Sun力推JSF,打算一雪Web層框架缺失之恥。將來兩年,JSF與Struts將展開JavaWeb框架的最終戰爭。
JSP通過幾年風雨洗禮依然把持頭把交椅,看來全部的框架表示層都離不開JSP而存在,而做爲JSP的手足兄弟JSF也是僅次Spring以後又一個後起之秀。
現在JbossSeam在2009年以後就退出了歷史舞臺,JSF在國內使用者也寥寥無幾了,而大紅大紫的SSH框架也被Spring+SpringMVC+Mybaties主流所代替了。
7、C++
開發環境
格局難打破75%的開發人員首選VS系列
1998年
Borland公司推出的C++Builder這一當年全新的32位Windows開發工
程序員
具,繼承了Delphi使用簡便、功能強大、效率高的特色,而且結合了C++語言幾乎全部優勢。因此開始C++Builder迅速風靡。 它的主要競爭對象——
Microsoft開發的VisualC++也是不甘示弱,迅速出擊,突出了Visual可視化強的特色,加上Platform、SDK部分以及Microsoft產品與
Windows的自然默契,逐漸成爲了技術人員的首選。隨着VisualC++版本的不斷升級,以及功能、風格等諸多緣由,BCB漸現頹勢,許多Builder使用者也開始轉而使用Visual了。
在2007年CSDN、《程序員》主辦的開發者大調查中,詳細的分析了C++方面你們主要使用什麼IDE的情況,在目前已收到的15000多份有效
問卷中,發現主要使用VS系列的佔了75%,BorlandC++Builder/CBuilderX只佔6%,EclipseCDT佔6%,DevC++佔2%,其餘IDE佔3%,不使用
IDE佔8%。對於.NET開發,VisualC++2005有了一套新的語法;新的
優化技術,可以使程序的速度最高提升30%;同時新的編譯模式,可保證在Microsoft.NETFramework之上生成徹底聽從CLI(CommonLanguageInfrastructure)的可驗證代碼;新的
interop模式,可提供本地與
託管代碼的無縫融合。
相對於前兩個版本,新
編譯器還包括了一個加強版本的
緩衝區安全檢查選項,
程序員
並且對C++程序廣泛使用的庫,也有新的注重安全的版本。VisualC++2005對基於IntelItanium和AMD64的64位平臺,提供了對OpenMP標準的支持,而且修正了一些混合DLL
加載的問題,對DoubleP/Invoke的性能問題,提供了自動運行時消除。 相比之下,C++Builder2007英文版2008年6月初上市。從CodeGear大中華區
技術總監李維的
博客,看到CodeGear對C++Builder2007的期待。雖說對同一件事情,每一個人都有本身的視角,已有五年C++方面學習和開發經驗的賴勇浩說道:「BCB正江河日下,2007版本的推出也沒法力挽狂瀾。雖然如今C++Builder已經歸於CodeGear,但人們仍是習慣性地與Borland聯繫上。
如今的Microsoft及VC勢頭強勁,產品也具備很高的質量性,CodeGear在C++和.Net領域至少三五年內會繼續望其項背。因此推出CB2007,更多的是基於版本延續。」
高級程序員做爲計算機技術與軟件專業技術資格(水平)考試中的一科,是國家人事部和信息產業部對中國計算機與軟件專業技術人員進行的職業資格和專業技術資格認定。
程序員
「幹得比驢累,吃得比豬差,起得比雞早,睡得比狗晚,看上去比誰都好,五年後比誰都老。不少程序員都曾這樣感慨和抱怨過本身的生活狀態。」
亞健康狀態是人體處於健康和疾病之間的過渡階段,在身體上、心理上沒有疾病,但主觀上卻有許多不適的症狀表現和心理體驗。
位於調查結果第二位的是「很虛弱」——149,比例爲19.81%。很虛弱的健康指數低於亞健康,已接近生病和透支狀態,他們的健康已經被亮出了
黃牌。
每一個人的理解不同,可是「糟透了」這樣的詞若是用來形容程序員健康的話,相信大多數人都絕對認同「你已經病了」這樣的理解。使人不敢相信的是,居然有8.24%的程序員用這個詞來形容本身的健康狀態!
9、.NET全面進入2.0時代,AJAX風頭正勁
「在Java領域,JDK8.0是當之無愧的主流平臺,但JDK1.7仍保有一半以上的佔有量。總的來講,Java族羣顯然不像.NET族羣那樣追新。從另外一個方面看,這也說明
Java平臺的成熟,和.NET平臺的迅速發展。」
調查結果中「很是健康」的票數低得可憐——40,即便算上「沒感受」,兩者之和也不過9.04%,幾乎跟「糟透了」持平。若是將「很是健康」和「沒感受」一塊兒算爲健康的話,處於
亞健康狀態的程序員是健康狀態的7倍,自認爲「很虛弱」的程序員數目是處於健康狀態的2.2倍!
根據2007年的調查數據分析,在.NET領域,.NETFramework2.0的採用量已全面超越.NETFramework1.1,成爲.NET平臺的首選框架。2006年調查結果,1.1和2.0的採用量基本持平,而2007年2.0的採用量則高達1.1的三倍之多。.NETFramework1.1已經是
明日黃花,微軟的更新,
程序員
換代策略能夠說是成功的。
B/S已經成爲中國軟件業廣泛接受的
軟件結構。在表現層,AJAX技術採用量有較大提高,有將近一半的Web應用採用了AJAX技術,仍採用純HTML+少許腳本的Web應用中,也有四分之三打算轉向採用AJAX技術。反觀微軟和Adobe力推的新一代RIA平臺,則響應者尚少。分別只有1/20和1/10的人願意選用SilverLight和Flash/Flex做爲Web表現層技術。
通常的程序員都有四年的在專業領域的學習,須要一個在程序領域的學士學位得到者,不管是數學方面的仍是工程方面的都是能夠的。
大約有20%的人在這一領域的計算機科學和
工程學擁有更高的學位。還有很小一部分程序員是自學的,儘管一些專業性的學校或者綜合大學能夠提供,可是也須要一些別的途徑來提供相關的人才。儘管學歷是比較重要的,可是公司常常把重點放在應聘者的工做經驗上,不少剛從大學畢業的大學生雖然有引人注目的
學位證書,可是他們找不到工做是由於他們缺少經驗。一個程序員雖然沒有正規的學歷,可是若是一我的擁有程序設計的深厚知識背景或者豐富的工做經驗的話,那麼他的機會要比有學歷的應屆畢業生大得多。因此要儘可能抓住有用的工做和實習機會,這樣的話在畢業後你就會發現,多實習讓你有更多的經驗,在找工做的時候就有更多的機會。
對於職業程序員,另一個重要的方面就是,程序員須要不斷提高本身的業務技術,他的技術必須一直保持在一個較高的水平,而且要不斷髮展,程序員也要尋找貿易的機會,要參加研討會,在週刊上發表文章和接受職業教育,這些使程序員在本身的領域中分級或者不斷並排前進。
熟練開發工具
作爲一名程序員至少熟練掌握兩到三種
開發工具的使用,這是程序員的立身之本,其中C/C++和JAVA是重點推薦的開發工具,C/C++以其高效率和高度的靈活性成爲開發工具中的利器,不少系統級的軟件仍是用C/C++編寫。而JAVA的跨平臺和與WEB很好的結合是JAVA的優點所在,而JAVA即其相關的技術集JAVAOne極可能會成爲將來的主流開發工具之一。其次,能掌握一種簡便的可視化開發工具,如VB,PowerBuilder,Delphi,CBuilder,則更好,這些開發工具減少了開發難度,並可以強化程序員對象模型的概念。另外,須要掌握基本的
腳本語言,如shell,perl等,至少能讀懂這些腳本代碼。
熟知數據庫
爲何數據庫是如此重要?做爲程序員,他們天然有本身的理由:不少應用程序都是以數據庫的數據爲中心,而數據庫的產品也有很多,其中關係型數據庫還是主流形式,因此程序員至少熟練掌握一兩種數據庫,對關係型數據庫的關鍵元素要很是清楚,要熟練掌握
SQL的基本語法。雖然不少數據庫產品提供了可視化的
數據庫管理工具,但SQL是基礎,是通用的數據庫操做方法。若是沒有機會接觸商業
數據庫系統,能夠使用免費的數據庫產品是一個不錯的選擇,如mySQL,Postgres等。
瞭解操做系統
當前主流的操做系統是
Windows,Linux/
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(
組件對象模型)的擴展,而
CORBA是OMG支持的規範。XML/WebServices重要性不言而喻,
XML以其結構化的表示方法和超強的表達能力被喻爲互聯網上的「
世界語」,是
分佈式計算的基石之一。
不要將軟件工程與CMM分開
大型軟件系統的開發中,工程化的開發控制取代
我的英雄主義,成爲軟件系統成功的保證,一個編程高手並不必定是一個優秀的程序員,一個優秀的程序員是將出色的編程能力和開發技巧同嚴格的
軟件工程思想有機結合,編程只是軟件
生命週期中的其中一環,優秀的程序員應該掌握軟件開發各個階段的基本技能,如市場分析,可行性分析,需求分析,結構設計,詳細設計,
軟件測試等。
需求理解能力
程序員要能正確理解任務單中描述的需求。在這裏要明確一點,程序員不只僅要注意到軟件的功能需求,還應注意軟件的性能需求,要能正確評估本身的模塊對整個項目中的影響及潛在的威脅,若是有着兩到三年項目經驗的熟練程序員對這一點沒有體會的話,只能說明他或許是認真工做過,可是沒有用心工做。
模塊化思惟能力
做爲一個優秀的程序員,他的思想不能侷限在當前的工做任務裏面,要想一想看本身寫的模塊是否能夠脫離當前系統存在,經過簡單的封裝在其餘系統中或其餘模塊中直接使用。這樣作能夠使代碼能重複利用,減小重複的勞動,也能使系統結構越趨合理。模塊化思惟能力的提升是一個程序員的技術水平提升的一項重要指標。
團隊精神和協做能力
團隊精神和協做能力是做爲一個程序員應具有的最基本的素質。
軟件工程已經提了將近三十年了,當今的軟件開發已經不是編程了,而是工程。獨行俠能夠寫一些程序也能賺錢發財,可是進入研發團隊,從事商業化和產品化的開發任務,就必須具有這種素質。能夠絕不誇張的說這種素質是一個程序員乃至一個團隊的安身立命之本。
文檔習慣
文檔是一個軟件系統的生命力。一個公司的產品再好、技術含量再高,若是缺少文檔,知識就沒有繼承,公司仍是一個來料加工的軟件做坊。做爲代碼程序員,必須將30%的工做時間用於寫技術文檔。沒有文檔的程序員勢必會被淘汰。
規範化的代碼編寫習慣
知名軟件公司的代碼的變量命名、註釋格式,甚至嵌套中行縮進的長度和函數間的空行數字都有明確規定,良好的編寫習慣,不但有助於代碼的移植和糾錯,也有助於不一樣技術人員之間的協做。
測試習慣
測試是軟件工程質量保證的重要環節,可是測試不只僅是測試工程師的工做,而是每一個程序員的一種基本職責。程序員要認識測試不只是正常的程序調試,而要是要進行有目的有針對性的異常調用測試,這一點要結合需求理解能力。
學習和總結的能力
程序員是很容易被淘汰的職業,因此要善於學習總結。許多程序員喜歡盲目追求一些編碼的小技巧,這樣的技術人員不管學了多少語言,代碼寫起來多熟練,只能說他是一名熟練的代碼民工(
碼農),他永遠都不會有質的提升。一個善於學習的程序員會常常總結本身的技術水平,對本身的技術層面要有良好的定位,這樣纔能有目的地提升本身。這樣才能逐步提升,從程序員升級爲
軟件設計師、
系統分析員。
擁有強烈的好奇心
什麼纔是一個程序員的終極武器呢,那就是強烈的好奇心和學習精神。沒有比強烈的好奇心和學習精神更好的武器了,它是程序員們永攀高峯的源泉和動力所在。
老虎、Bill、本身,中國程序員的困境也來自三個方面
困境之一:
老虎的威脅。程序員要面對的餓老虎實在很多,好比說老闆,好象就是程序員的
天敵,什麼「不懂技術卻指手畫腳」、什麼「獲得與付出不至關」彷佛是程序員最多見的牢騷,這個問題不可能獲得真正的解決。
困境之二:
Bill的競爭。通常說來中國的程序員大都是吃「青春飯」的,大部分程序員的
黃金時代是20~35歲。到了35歲左右,一批又一批年輕程序員會給你帶來巨大的競爭壓力。首先因爲軟件行業的飛速發展,不少本身之前學的東西逐漸升級換代,而許多程序員因爲長期於工做,學習新知識的效率必然降低。其次本身幹了幾年,薪水要求天然就高了,而年輕程序員工資又低、幹活又快,固然會成爲老闆的首選;第三,35歲基本都已經成家了,要支撐家庭的生活負擔,幾乎連從頭再來的勇氣都不會有了。中國的老話說「
長江後浪推前浪,前浪死在沙灘上」,這個歷史的規律在軟件開發行業體現的尤爲明顯和殘酷,不少程序員必然要面對的結果就是降薪乃至失業。
困境之三:
自個人實力。都知道人最難打敗的是本身,因此自我也就是程序員須要超越的最大障礙。大多程序員都把
系統分析員和
項目經理做爲本身的職業目標,但這些目標的達成,須要我的素質、市場機遇等多個方面的條件,太多的程序員就是在高不成、低不就的狀態中蹉跎了歲月。對於系統分析員,特別須要如下幾方面的素質:
客戶需求分析能力、系統架構與設計能力、
模塊分解設計能力、項目
流程控制能力、項目風險評估能力等,而對於項目經理則更注重項目管理方面的能力如團隊組織能力、溝通協調能力、分析問題解決問題的能力以及良好的職業道德等,而這些素質和能力每每只能依靠程序員我的的學習和努力。看到愈來愈多的程序員開始學習項目管理的課程,真的有點爲他們擔憂,由於如今的
項目管理培訓只能停留在理論和考證的程度,既沒有素質方面的訓練,又缺乏實際軟件開發項目的案例,學習的結果遠遠不能達到預期的效果。
從經濟學的層面上來看,軟件人才也是勞動力商品中的一種,是由價值規律決定的,有需求才會有市場,纔會有人願意爲他們支付更高的工資。當前,包括中國在內,全球都在爭奪IT人才,當IT人才的社會總需求大於總供給時,不可避免就會出現人才升值的現象。
確認經過審查方案的目標,輸入數據,分析師,監事,和客戶的輸出要求的項目要求。
安排項目要求在編程序列分析要求;準備工做流程圖和使用計算機知識的能力,題材,編程語言和邏輯圖。
編碼工做流程的信息轉換成計算機語言的項目要求。
經過輸入編碼信息的計算機程序。
確認程序操做進行測試,修改程序序列和/或代碼。
準備寫操做指令供用戶參考。
保持歷史記錄,經過記錄方案的制定和修訂。
維護客戶的信息和保護保密的業務。
技能/資格:通常的編程技巧,分析信息,解決問題,軟件算法設計,軟件性能優化,注重細節,軟件設計,軟件調試,軟件開發基礎,軟件文檔,軟件測試。程序員其實分爲不少種,你們開發的語言可能不盡相同,可是都是有他們的共同點。