基本技能
技能描述
閱讀**
這個技能需要程式設計師能夠具備讀懂已經存在的**的能力,這樣的能力可以讓程式設計師分析程式的行為,了解程式,這樣才能和開發團隊一起工作,繼承維護或是改進現有的程式。
編寫程式
編寫程式並不包括程式設計。不要以為程式設計是一件很簡單的事情,很多程式設計師都認為程式設計只需要懂得程式語言的語法,並把設計實現就可以了。但是這離編寫程式還遠遠不夠,使用什麼樣的編碼風格成為編寫程式設計師最需要具備的基本技能。能否使用非常良好的程式設計風格直接決寫了程式設計師的級別。
軟體設計
這一能力直接決定了需要吏用什麼樣的**技術達到怎麼樣的功能,而系統架構設計直接決定了軟體的質量、效能和可維護性。並不是所有的程式在這一方面都非常優秀,但每個程式設計師都需要或多或少的明白和掌握這一基本技能。
熟悉軟體工程
每個程式設計師都應該明白軟體工程是什麼東西,都應該知道,需求分析,設計,編碼,測試,release和維護這幾個階段。當然,幾乎所有的人都知道這些東西,但並不是每個人都很清楚這些東西。現在很多高階程式設計師都會混淆「需求規格說明書fs」和「概要設計hld」。另外,程式設計師還需要知道一些軟體開發的方**,比如:敏捷開發或瀑布模型。
使用程式庫或框架
乙個程式設計師需要學會使用已有的**,無論是標論的程式庫,或是第三方的,還是自己公司內部的,都需要學會做。比如:c++中,需要學會使用stl,mfc,atl,boost,ace,cppunit等等。使用這些東西,可以讓你的工作事半功倍。
程式除錯
程式除錯是分析bug和解決問題最直接的能力。沒有人能夠保證程式寫出來不用除錯就可以執行正常,也沒有人可以保證程式永遠不會出bug。所以,熟練使用偵錯程式是乙個程式設計師需要具備的基本技能。
使用ide
學會使用ide工具也會讓你的工作事半功倍。比如,vc++,emacs,eclipse等等,並要知道這些ide的長處和短處。
使用版本控制
一定要學會使用版本控制工具,什麼叫mainline/trunk,什麼叫tag,什麼叫branch,怎麼做patch,怎麼merge**,怎麼reverse,怎麼利用版本控制工具維護不同版本的軟體。這是程式設計師需要明的的軟體配置管理中最重要的一塊。
單元測試
單元測試是每個程式都需要做的。很多單元測試也是需要編碼的。一定要學會在xunit框架下進行單元測試。比如junit, nunit, cppunit等等。
重構**
每個程式設計師都需要有最基本的能力去重構目前已有的**,使**達到最優但卻不能影響任何的已有的功能。有一本書叫《軟體的重構》,每個程式設計師都應該讀一下。
自動化編譯
程式設計師需要使用乙個指令碼,其能自動化程式設計所有的工程和**,這樣,整個開發團隊可以不停地整合**,自動化測試,自動化部署,以及使用一些工具進行靜態**分析或是自動化測試。
當然,還有很多的基本技術也是非常重要的,比如,與人的溝通能力,語言的表達能力,寫作能力,團隊協作能力,適應變化的能力,時間管理能力,多工處理能力,自我學習能力,故障處理能力,等等,等等,這裡只是列舉了和技術相關的能力,這些是程式最最最基本的能力,只要是程式設計師就必需要有的能力。
優秀程式設計師應該具備哪些素質
前面一些文章或多或少地談及了優秀程式設計師一些素質,但是不系統,其實這個話題也是我常常思考的話題。中國人常常喜歡用十來表現事物,例如 十大關係 十大明星 十大新聞 十大技術 等等。這可能與十全十美有關 也可能便於記憶有關吧 整數容易記憶 作為優秀程式設計師應該具備的素質,我也隨俗定乙個十大素質吧。一...
PHP程式設計師應具備的7種能力
乙個優秀php程式設計師應具備什麼樣的能力,才能更好的完成工作,才會有更好的發展方向呢?下面7種能力希望對您有所幫助。一,php能力 1,了解階段,您能寫一些 因為那是在手冊和google的幫助下,您才完成的。變數亂定義,n多函式不知道,做起事來很慢,想到什麼寫什麼,寫的比較亂,後期維護很麻煩。2,...
php程式設計師應具備的7種能力
乙個優秀php程式設計師應具備什麼樣的能力,才能更好的完成工作,才會有更好的發展方向呢?下面7種能力希望對您有所幫助。一,php能力 1,了解階段,您能寫一些 因為那是在手冊和google的幫助下,您才完成的。變數亂定義,n多函式不知道,做起事來很慢,想到什麼寫什麼,寫的比較亂,後期維護很麻煩。2,...