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