1. 程式人生 > >一個優秀的.net程式設計師必須要學會的技能

一個優秀的.net程式設計師必須要學會的技能

          最近室友閒聊的時候告訴我,他在網上收集了做為一個java程式設計師必須要會的東西,他覺得自己要有個方向,否則一定會在平平凡凡的工作中,不思進取,最終渾渾噩噩。真是讓我猛然驚醒啊,做為一個底層的程式設計師,如何才能拼得過出來的大學精英和社會老手?學習一定必不可少。雖然自己有點懶,我先把這些記下,待日後儘量弄懂。

Web/WinForm/通吃,包括ASP.NET,WebService,Remoting,Thread,Serializable,ADO.NET等名稱空間
精通UML
精通DesignPatterns 23+N種模式:默寫各個模式UML圖,熟記程式碼實現方式,範例,以及.NET相關介面


精通CLR
VB.NET/C#通吃
精通OOP理念
精通DB設計與T-SQL,SQL2005就可以了
熟悉AJAX全套技術
通吃WPF/WCF/WF/LINQ
WEB 2.0理念,理解Blog/Wiki/RSS架構,SOA理念
精通資料結構/作業系統/安全加密
精通.NET設計規範
研究5套以上經典原始碼,例如:SharpDevelop,PetShop,DotNetNuke,SmartClient,NUnit,FotoVision,CSLA等等
熟悉DirectX程式設計模式
翻譯過1-2本技術書籍

軟體開發是一個跨度很大的技術工作,在語言方面,有C、C++、Java、Ruby等等等等;在環境方面,又分嵌入式、桌面系統、企業級、WEB、基礎系統,或是科學研究。但是,不管是什麼的情況,總是有一些通用的基本職業技能。

這些最基本的職業技能通常決定了一個程式設計師的級別,能否用好這些技能,直接關係到了程式設計師的職業生涯。很多程式新手也是因為缺少、達不到或是不熟悉在這些基本技能,所以,他們需要有老手帶,需要努力補齊這些技能。而高階程式設計師應該非常熟悉這些基本技能,而且有能力勝任並帶領其他經驗不足的程式設計師。

下面這些基本職業技術可以用來做為對一個程式設計師的評估,很明顯,下面的這些技能都可以用來做面試。雖然,還有很多非技術的因素,但對於評估一個程式設計師的技術能力來說,其應該是足夠的了。

下面是程式設計師所應該具備的基本職業技能:

閱讀程式碼 - 這個技能需要程式設計師能夠具備讀懂已經存在的程式碼的能力,這樣的能力可以讓程式設計師分析程式的行為,瞭解程式,這樣才能和開發團隊一起工作,繼承維護或是改進現有的程式。(相關閱讀:《閱讀優秀程式碼是提高開發人員修為的一種捷徑》)

編寫程式 - 編寫程式並不包括程式設計。不要以為程式設計是一件很簡單的事情,很多程式設計師都認為程式設計只需要懂得程式語言的語法,並把設計實現就可以了。但是這離編寫程式還遠遠不夠,使用什麼樣的編碼風格成為編寫程式設計師最需要具備的基本技能。能否使用非常良好的程式設計風格直接決寫了程式設計師的級別。

軟體設計 - 這一能力直接決定了需要吏用什麼樣的程式碼技術達到怎麼樣的功能,而系統架構設計直接決定了軟體的質量、效能和可維護性。並不是所有的程式在這一方面都非常優秀,但每個程式設計師都需要或多或少的明白和掌握這一基本技能。

熟悉軟體工程 - 每個程式設計師都應該明白軟體工程是什麼東西,都應該知道,需求分析、設計、編碼、測試、Release和維護這幾個階段。當然,幾乎所有的人都知道這些東西,但並不是每個人都很清楚這些東西。現在很多高階程式設計師都會混淆“需求規格說明書FS”和“概要設計HLD”。另外,程式設計師還需要知道一些軟體開發的方法/論,比如:敏捷開發或瀑布模型。

使用程式庫或框架 - 一個程式設計師需要學會使用已有的程式碼,無論是標論的程式庫,或是第三方的,還是自己公司內部的,都需要學會做。比如:C++中,需要學會使用STL、MFC、ATL、BOOST、AC、CPPUNIT等等。使用這些東西,可以讓你的工作事半功倍。

程式除錯 - 程式除錯是分析BUG和解決問題最直接的能力。沒有人能夠保證程式寫出來不用除錯就可以執行正常,也沒有人可以保證程式永遠不會出BUG。所以,熟練使用偵錯程式是一個程式設計師需要具備的基本技能。

使用IDE - 學會使用IDE工具也會讓你的工作事半功倍。比如,VC++、Emacs、Eclipse等等,並要知道這些IDE的長處和短處。

使用版本控制 - 一定要學會使用版本控制工具,什麼叫mainline/trunk,什麼叫tag,什麼叫branch,怎麼做patch,怎麼merge程式碼,怎麼reverse,怎麼利用版本控制工具維護不同版本的軟體。這是程式設計師需要明的的軟體配置管理中最重要的一塊。

單元測試 - 單元測試是每個程式都需要做的。很多單元測試也是需要編碼的。一定要學會在xUnit框架下進行單元測試。比如JUnit, NUnit, CppUnit等等。

重構程式碼 - 每個程式設計師都需要有最基本的能力去重構目前已有的程式碼,使程式碼達到最優但卻不能影響任何的已有的功能。有一本書叫《軟體的重構》,每個程式設計師都應該讀一下。

自動化編譯 - 程式設計師需要使用一個指令碼,其能自動化程式設計所有的工程和程式碼,這樣,整個開發團隊可以不停地整合程式碼,自動化測試,自動化部署,以及使用一些工具進行靜態程式碼分析或是自動化測試。

當然,還有很多的基本技術也是非常重要的,比如,與人的溝通能力,語言的表達能力,寫作能力,團隊協作能力,適應變化的能力,時間管理能力,多工處理能力,自我學習能力,故障處理能力,等等。這裡只是列舉了和技術相關的能力,這些是程式最最最基本的能力,只要是程式設計師就必需要有的能力。



相關推薦

一個優秀的.net程式設計師必須學會技能

          最近室友閒聊的時候告訴我,他在網上收集了做為一個java程式設計師必須要會的東西,他覺得自己要有個方向,否則一定會在平平凡凡的工作中,不思進取,最終渾渾噩噩。真是讓我猛然驚醒啊,做為一個底層的程式設計師,如何才能拼得過出來的大學精英和社會老手?學習一定必

所有 Python 程式設計師必須學會的「日誌」記錄。

本文字數:3840 字 閱讀本文大概需要:10 分鐘 寫在之前 在我們的現實生活中,「日誌記錄」其實是一件非常重要的事情,比如銀行的轉賬記錄,汽車的行車記錄儀記錄行駛過程中的一切,如果出現了什麼問題,我們可以通過「日誌記錄」來搞清楚到底發生了什麼事情。 除了在生活中,在日常的系統開發以及除錯等

所有 Python 程式設計師必須學會的「日誌」記錄

寫在之前 在我們的現實生活中,「日誌記錄」其實是一件非常重要的事情,比如銀行的轉賬記錄,汽車的行車記錄儀記錄行駛過程中的一切,如果出現了什麼問題,我們可以通過「日誌記錄」來搞清楚到底發生了什麼事情。 除了在生活中,在日常的系統開發以及除錯等過程中,記錄日誌同樣是一件很重要的事情。很多程式設計

一個優秀程式設計師應該具備哪些技能和修養?

李運華:這個問題就像“1千個人眼中有1千個哈姆雷特”一樣,每個人都有不同的看法。我認為一個優秀的程式設計師應該具備如下技能和修養: 首先是“快速學習能力”。這裡不是說一定要去快速去學習各種各樣的新技術,而是說當有需要時,能夠快速的學習。很多人開始學新的技術和技能時,一開始就

JAVA程式設計師,4年了,迷茫了,希望由前輩可以給指出一個技術路線5年左右程式設計師必須掌握的知識技能樹?

在程式界流行著一種預設的說法叫“黃金5年”,也就是一個程式設計師從入職的時候算起,前五年的選擇直接影響著整個職業生涯中的職業發展方向和薪資走向,如何走好這5年,徹底從一個剛入行的菜鳥蛻變成可以以不變應萬變的職業大牛,這是一個涉及到自身專業知識儲備和選擇的大難題,那麼,這五年裡,一個Java程式設計師

“備孕期”的Java程式設計師一定學會抽象

我相信,看到標題後的你一定很好奇,究竟什麼樣的Java程式設計師算是在“備孕期”呢?在我看來,“備孕期”主要指那些初入Java程式設計的新人,他們正下足功夫準備,以求在10個月後以高薪的姿態進入一家軟體公司——此時正是職業履歷的開端——比如說,簡歷上的自我介紹是:我從2018年10月24

一個優秀程式設計師該有的幾個好習慣

1. 看到下次還經常用的函式程式碼就會封裝,然後儲存; 注意這裡提到的,先封裝到一個類中,這樣就能避免每段程式碼都儲存到一個檔案中,下次使用時可以直接拷這個類使用; 2. 系統地學習的時候,多看業內大牛的部落格,這樣能大大提高學習的效率; 學習一流的大牛的部落格,只要肯花功夫,成為一個二流的業內人是沒問

程式設計師必須掌握的十大經典演算法

演算法一:快速排序演算法 快速排序是由東尼·霍爾所發展的一種排序演算法。在平均狀況下,排序 n 個專案要Ο(n log n)次比較。在最壞狀況下則需要Ο(n2)次比較,但這種狀況並不常見。事實上,快速排序通常明顯比其他Ο(n log n) 演算法更快,因為它的內部迴圈(inner loop

WeCode線上少兒程式設計|即使不做程式設計師學會程式設計師一樣去思考

“學習計算機思維”是我們常常會聽到的口號,那麼下一句呢?或許應該是“學會像程式設計師一樣思考”——如果計算機思維是一個知識庫,瞭解它是時代對人類的要求,那麼程式設計師就是應用這個知識庫去解決世間疑難雜症的人,對於正在學習計算機語言,但並不一定打算以寫程式碼為生的群體來說,學會了像程式設計師一樣思考,

怎麼才能成為一個優秀程式設計師

程式設計師進階之心法 學會讓自己慢下來 某個行業或者群體總是存在二八定律,群體中只有20%的人才能稱的上是優秀。如何成為程式設計師中的20%群體呢?學會讓自己的節奏慢下來,當每天面對的是排滿的需求和待修改的bug的時候,當遇到一個陌生的問題的時候,當發現身邊一個比一個優秀的時候,你是東拼

Java程式設計師必須了解的七個開源協議介紹

                1、Mozilla Public License MPL License,允許免費重發布、免費修改,但要求修改後的程式碼版權歸軟體的發起者。這種授權維護了商業軟體的利益,,它要求基於這種軟體得修改無償貢獻版權給該軟體。這樣,圍繞該軟體得所有程式碼得版權都集中在發起開發人得手中。

一個優秀程式設計師的邏輯運算能力是長期以來所形成的~是經歷過大量編碼的洗禮,是一個程式設計師是否優秀的標準

燕十八 公益PHP培訓 課堂地址:YY頻道88354001 學習社群:www.zixue.it                           字串函式 <?php     $str="hello";  echo "hello".strlen($str)."位元

優秀Java程式設計師必須瞭解的GC工作原理 侵立刪

一個優秀的Java程式設計師必須瞭解GC的工作原理、如何優化GC的效能、如何與GC進行有限的互動,因為有一些應用程式對效能要求較高,例如嵌入式系統、實時系統等,只有全面提升記憶體的管理效率 ,才能提高整個應用程式的效能。 一個優秀的Java程式設計師必須瞭解GC的工作原理、如何優化GC的效能、

資料庫的四種隔離級別,程式設計師必須了解的

資料庫提供了四種事務隔離級別, 不同的隔離級別採用不同的鎖類開來實現.  READ UNCOMMITTED(未提交讀) 幻想讀、不可重複讀和髒讀都允許。一個會話可以讀取其他事務未提交的更新結果,如

優秀Java程式設計師必須瞭解的GC工作原理

原文地址是:http://www.cnblogs.com/ckwblogs/p/5975921.html 一個優秀的Java程式設計師必須瞭解GC的工作原理、如何優化GC的效能、如何與GC進行有限的互動,因為有一些應用程式對效能要求較高,例如嵌入式系統、實時系統等,只有全面提升記憶體的管理效率 ,才能提高整

程式設計師在火車站候車室寫程式碼畫面曝光,網友:看髮量就是一個優秀程式設計師

國慶期間,許多在外打拼的人們紛紛奔向回家的路程,本該是歡聲笑語的一路,可是卻因為工作纏身而顯得有些不美好。比如下面這位,一名程式設計師網友正在火車站候車室候車,無意中看到一名同行在電腦上“奮筆疾書”,緊張地寫著程式碼,聽鍵盤的節奏估計是線上出現了bug,不然也不

如何成為一個優秀程式設計師

原文地址:http://www.blogjava.net/jalor/articles/299143.html 在看這份FAQ之前,你必須先讀完ESR的《如何成為一名黑客》(本文末尾附有中譯版),該文所講過的道理我不再重複。該文用很大的篇幅講什麼是黑客文化,雖然態度和信仰的

Android開發之程式設計師必須懂得Android的重要設計理念2(5.20更新版)

     上篇文章介紹了Android開發的設計理念的一部分,並沒有得到博友們的多大認可,只看到了一位博友在下面留言期待下一篇文章的發表,為了這小小的唯一支援,我決定繼續把後面的8個要點介紹一下,自己也潛心反省一下,自己的理解是不是太淺薄。 二、增加易用性     (6)一

如何成為一個優秀程式設計師(宋勁杉)

我們的老師每天都要應對報名者和學員提出的很多同樣的問題,以下是這類典型問題的彙總:嵌入式行業(或者IT業)有沒有前途?我聽說程式設計編到三十五 歲就沒人要了,一定要轉行找出路是嗎?做驅動開發和做應用開發哪個更有前途?我一開始看什麼書都看不懂,怎麼才能理出一個學習順序?諸如此類。這使我迫切 地感覺到,應

牛逼程式設計師必須掌握金字塔思維

不知道大家有沒有遇到過這樣讓人頭疼的情況:公司幾個部門的人圍在一起開會,各自從自己的角度出發,想要說服彼此,然而,兩個小時過去了,問題的解決方案卻沒有任何進展,資訊量很大,但是沒法判斷誰對誰錯,同一個問題,似乎是“公說公有理,婆說婆有理”。 其實這種情況就是因為**缺乏結構化思維**。一般來說,解決問題的思