我也談?wù)?NET程序員工資低
我從2011年下半年預(yù)謀轉(zhuǎn)型,2012春季正式轉(zhuǎn)型到iOS,看了《經(jīng)過本人 6 年.net 工作經(jīng)驗(yàn)證明 .net 工資確實(shí)比 Java 低》這篇文章,一下子有很多感慨。
我不好意思算我干了多久了C#了,反正從VS2002開始接觸,從VS2003干起,來帝都混飯吃的時(shí)候用的VS2005,VS2010的時(shí)候離開.NET平臺,基本上都是小公司。回過頭來看看,有一種浪費(fèi)青春的感覺,因?yàn)楦蛇@些年C#,個(gè)人著實(shí)沒有什么進(jìn)步,走了很多彎路。當(dāng)然,我不否認(rèn)我資質(zhì)平庸,但是不能否認(rèn)的是.NET這個(gè)技術(shù)真是入門容易,提高卻很難。
有些無關(guān)緊要小事你會發(fā)現(xiàn)印象特別深刻,下面開始回憶往事和無節(jié)操吐槽。
我學(xué)C#的時(shí)候買一本叫《C#本質(zhì)論》的書,講的應(yīng)該是C#1.0吧,為什么我要提這本書呢?因?yàn)檫@本書講了很多語言細(xì)節(jié),一次我在公司,我給大家講obj as ClassType 和(ClassType)obj的區(qū)別的時(shí)候大家投來了真誠和贊許的目光,讓我得意了好一陣子。現(xiàn)在再看,這TMD不是基礎(chǔ)嘛。看了這本書的另一個(gè)好處是,一般筆試C#語言上問題,比如多態(tài),重載的問題之類基本沒問題了,有時(shí)候面試官還覺得我語言掌握的不錯。這本書貌似不是什么名著,后來也沒在系統(tǒng)的看過C#語言的書了。但是,我接觸到的很多C#程序員基礎(chǔ)差的令人發(fā)指,比如有一次一個(gè)ASP.NET頁面,測試的時(shí)候沒問題,但是上線的時(shí)候頁面經(jīng)常有詭異的錯誤,最后排查原來是把屬性全設(shè)置成static了,還有SQL語言都是直接拼接的,導(dǎo)致后來被SQL注入。
順便吐槽一下webform,用C#之前,我是寫PHP的,所以分的清前端后端,但是一些直接用webform的人來說,他們是分不清前端后端的,只會拖控件。一次一個(gè)朋友讓我去個(gè)小公司幫忙,看看能不能解決他們的問題。到了之后才知道,原來他們用嵌入了activex,activex上的某些操作會導(dǎo)致頁面刷新,所以treeview 控件一下子就失去狀態(tài)了,后來我試圖給他講POSTBACK,解釋為什么失去了狀態(tài),但是他一直糾結(jié)于為什么嵌入了這個(gè)控件treeview就不行了呢,以前是可以的,后來提議讓我給他完成這個(gè)功能,看他們迷惑的眼神,我只想趕快離開。
下面吐槽一下自己,很長一段時(shí)間我的SQL還是很差的,以前光研究什么NHibernate, linq to sql, entity framework。后來也是一次面試,考數(shù)據(jù)庫內(nèi)容的時(shí)候被鄙視了之后才看SQL SERVER 2008 INSIDE系列,先從那本SQL語言基礎(chǔ)看起,看了幾章就真心體會到自己以前的數(shù)據(jù)庫水平有多爛。
還有一段時(shí)間,很迷戀JAVA技術(shù),設(shè)計(jì)模式啊,框架啊,還都是工業(yè)標(biāo)準(zhǔn)啊,牛逼的要死。現(xiàn)在呢,websphere就是落后笨重的代名詞,這都是彎路。
所以在回到為什么.NET程序員工資低,其實(shí)最簡單了,因?yàn)樗讲粔颍瑸槭裁锤闪肆赀€是沒到月薪一萬以上,因?yàn)榇_實(shí)沒到那個(gè)水平,比如我吧,我把大部分時(shí)間浪費(fèi)在了學(xué)習(xí)各種框架的API上了,這有什么用呢?如果把六年的時(shí)間去研究數(shù)據(jù)庫,去研究前端技術(shù),那么在帝都,15K以上絕對不成問題。
其實(shí)糾結(jié)于.NET和JAVA程序員那個(gè)工資高的意義不大,因?yàn)镴AVA爛程序員也不少,他們也拿著不高的工資。而前面提到的文章的作者也不必糾結(jié),厚積薄發(fā),跳槽之后薪水翻翻的例子更是不計(jì)其數(shù),在帝都,.NET程序員的薪水還是給的起的,比如elong就是.NET的,據(jù)說都是15K以上都比較普通,每年至少13.8個(gè)月工資在加額外獎金,現(xiàn)在通脹了,不知道他們漲工資了沒有。JAVA也好,.NET也好,都不過是工具,不過一個(gè)是oracle牌,一個(gè)是微軟牌。決定木匠薪水的是手藝而不是用的什么牌子的錘子,換個(gè)牌子的錘子就不會干活了?即使微軟牌錘子倒閉了,你就當(dāng)不成木匠了?
但是,.NET相比JAVA,確實(shí)門檻低,門檻低的結(jié)果就是混進(jìn)來很多低水平程序員。大量低水平程序員在一起工作,如果想提高的話真的很難,要走很多彎路。這么多年來,微軟的技術(shù)都是只有微軟才用的好,就很說明問題。而微軟的技術(shù)為了降低門檻,經(jīng)常設(shè)計(jì)出非常復(fù)雜的框架,比如我前面吐槽的asp.net webform,入門很簡單,但是想掌握的話,真要費(fèi)一番功夫,但是等你掌握的時(shí)候,其實(shí)發(fā)現(xiàn)沒什么用,一般情況下,用不著自己實(shí)現(xiàn)一個(gè)webcontrol,而且設(shè)計(jì)一個(gè)好用通用的控件,還是很難的,還不如直接用PHP簡單靈活。后來推出MVC,算是浪子回頭了。
所以我勸.NET程序員不要把眼光局限于.NET平臺,而且不要人云亦云,一定自己嘗試,比如很多牛人都喜歡黑C++,我以前人云亦云,跟著黑C++,但是為了轉(zhuǎn)iOS,學(xué)了C++,發(fā)現(xiàn)根本不是那么回事,C++那么設(shè)計(jì)是有他的道理的,是權(quán)衡利弊的結(jié)果。我現(xiàn)在看C# vs JAVA的言論都覺得很沒意思,的確我認(rèn)為C#在語言上比JAVA好一點(diǎn),但是這點(diǎn)優(yōu)勢根本無法撼動JAVA的地位。還有就是少研究框架,少追新技術(shù),新技術(shù)的失敗率還是很高的,多研究一下本質(zhì)的東西,做B/S的比如前端技術(shù),HTTP,數(shù)據(jù)庫,說來慚愧,很長時(shí)間我都沒明白均衡負(fù)載是怎么玩的。
另外,少貼.NET的成功案例了吧,顯得特沒自信。
最后希望大家都加薪發(fā)財(cái)。