關於開發者的技術水平到底該如何定義,到底乙個人的技術水平應該定位在高、中、低的標準是什麼呢?很多人覺得這是乙個仁者見仁的問題,有人覺得根據公司的那個員工等級判斷。答案是肯定不是,從純開發技術的角度來分析。很多人覺得自己一門語言精通了就去學其他語言了,美其名曰集大成者,這樣的工作十幾年卻是初級水平的技術人員也不少。
下面我來講講我的認知,c#這門技術到底學到什麼程度可以進入到什麼級別。
我常說c#的入門技術是委託、事件、訊息。只有當你可以純熟運用這三個技能的時候,才剛剛入門,此時c#的大門才算正式為你開啟。很多人在學了一些語法編寫一些專案後就覺得c#精通了,其實你們還沒入門呢(對日開發的居多)
1, comom language runtime :初級人員無視他,中級人員起碼要知道他,高階人員多數要會使用其中一些應用比如security,架構師要理解原理。
2, .netframework :這裡有許多框架,會的越多越好。
3, base class library :這裡都是基本語法你會了多少呢,想成為高手一定要全部學會,乙個都不能丟。
4, runtime infrastructure library:這裡內容初級開發者不用了解,進入中級就要開始一點點吸收了,想到高階要全部消化,是全部哦。
5, framework calss library:這裡都是基本應用,初級程式設計師肯能都會接觸一些,中級就會了解和運用一些,高階就要全部會用。
6, core concepts:這裡的內容同上。
7, core features,core objects,cli language,dlr略過。。。
8, desktop:cui了解就行,gui要深入了解,另外這裡的涉及到了xaml語言,這個要學會。
9, web:這裡涉及的框架sharpoint如果工作沒涉及不去了解也是可以的,但asp.net是必會的,其中的mvc就算工作沒應用也要學會。asp.net runtime是高階高手的乙個路障,了解的越多越好。silverlight的話,會xaml基本就能用,如果工作需要精通。
10, soa:這也是個必會的東西,而且至少要精乙個。
11, open web inte***ce for .net:要了解,會使用,如果工作需要,要精通。
12, sdk:要了解,會基本使用。
13, development:這個基本沒有人能全會,但工具這個要熟練使用,畢竟工具會的越多越好,但不是技術加分。
14, platforms:這個基本很難有人全精,但多少要了解,工作用過的要精通。
15, productivity:起碼nuget要會用。
16, build:高階人員要了解原理。
17, testing:至少要會使用1個,其他的要了解。
19, framework tool:這裡有些是必會的,有些會用就行,但最好全部了解,需要的時候學習用法。
20, data:這裡內容作為高階人員是必會的,如果其中的orm可以用ef作為跳板深入研究(這裡的水很深)。
21, conponents:中級以後難免要接觸這些,了解的越多進步的越多。
看到這裡是不是那些以為c#很簡單的同學就很吃驚啦啊,那些自以為自己是大神的是不是發現,原來自己不過才是剛入門的小菜鳥啦,那些以為自己c#精通的外包達人們,是不是開啟後一臉陌生的感覺呀。其實,c#並不比其他語言簡單,水深的狠,哪那麼容易精通。
這些還只是c#,作為乙個程式設計師,還要有其他必備的知識,比如html和css你得會,js你得會,別說你知道標籤是什麼意思就說自己會了,起碼div+css切圖玩的起來才算會。資料庫你得會,資料庫水很深,別輕易說自己有初級dba的水平,那些傳說中每天備份表資料的初級dba可是連入門都沒有呢,不要和他們比;作為高階開發人員,起碼儲存過程要信手拈來把,起碼要有解決過大資料死鎖的經驗吧。如果業餘愛好再豐富一點的人,ps基本使用也要會把,falsh也要了解吧,3dmax是不是也可以玩玩啊,程式設計師也要有美感嘛。此外,程式設計師要會寫文件,解決方案可是基本技能,高階點的概要設計也是文件嘛。另外高階程式設計師難免還得寫點ppt吧。
除了這些,還有一些要了解的東西,比如作業系統呀,硬體呀,軟體工具等等,因為不一定什麼時候你面對著一些效能bug,就需要他們的知識才能解決,或者解釋。
上面這些都是純技術,是虛擬社會,回到現實世界,由於一些人是由初級程式設計師,尤甚者未入門的程式設計師,直接跳級到了架構師,或者高階程式設計師,從而引發**世界的混亂,而這樣的人才之所以成功,除了自身年齡和口才外,和那些非技術人才的力捧也是主因之一。不過呢,話說回來,我們是商業社會,有些專案能用即可,有些專案拖延到爛尾也是必要的,所以口才的重要性,並不比技術低。乙個技術沒入門的架構師並不比乙個真才實學的架構差,即便他們其他技能也是零,因為我相信存在即是合理。
我對DDD的認知(一)
ddd,全名 domain driven design,中文名 領域驅動設計。分層的架構方式是我們常用的,這裡的分層是說n layer,指的是邏輯的分層,目的是分離職責。常用的是三層 表現層,業務邏輯層,資料訪問層。ddd把原來經典三層 表現層,業務邏輯層,資料訪問層 中的業務邏輯層又細分為兩層 應...
我對DDD的認知(一)
ddd,全名 domain driven design,中文名 領域驅動設計。分層的架構方式是我們常用的,這裡的分層是說n layer,指的是邏輯的分層,目的是分離職責。常用的是三層 表現層,業務邏輯層,資料訪問層。ddd把原來經典三層 表現層,業務邏輯層,資料訪問層 中的業務邏輯層又細分為兩層 應...
我對DDD的認知(一)
ddd,全名 domain driven design,中文名 領域驅動設計。分層的架構方式是我們常用的,這裡的分層是說n layer,指的是邏輯的分層,目的是分離職責。常用的是三層 表現層,業務邏輯層,資料訪問層。ddd把原來經典三層 表現層,業務邏輯層,資料訪問層 中的業務邏輯層又細分為兩層 應...