我从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的成功案例了吧,显得特没自信。

最后希望大家都加薪发财。

我也谈谈.NET程序员工资低的更多相关文章

  1. 为什么你作为一个.NET的程序员工资那么低?

    最近看到很多抱怨贴,也许有一定的道理,但是你想过没,为什么大部分.NET程序员工资相对低?我个人是这么看的: 大批半罐子水的程序员,永远被局限在.NET的原始的小圈圈里.前端不会(你放弃了一项很重要的 ...

  2. 为什么你作为一个.NET的程序员工资那么低?(转)

    最近看到很多抱怨贴,也许有一定的道理,但是你想过没,为什么大部分.NET程序员工资相对低?我个人是这么看的: 大批半罐子水的程序员,永远被局限在.NET的原始的小圈圈里.前端不会(你放弃了一项很重要的 ...

  3. 谈谈Java程序员进阶的那些知识和方向

    谈谈Java程序员进阶的那些知识和方向 记得前段时间看过一篇文章谈到一种程序员叫野生程序员,战斗力极强,可以搞定一切问题,但是通常看问题抓不到本质,或者说是google/baidu/stackover ...

  4. Kotlin 喧嚣过后,谈谈 Java 程序员未来的出路

    http://blog.jobbole.com/111422 Java 生态圈 Java 的生态环境开放.自由,在Sun/Oracle.Google.Apache.Eclipse基金会等各大厂商,还有 ...

  5. 2020年9月程序员工资统计,平均14459元!你给程序员拖后腿了吗?https://jq.qq.com/?_wv=1027&k=JMPndqoM

    2020年9月全国招收程序员362409人.2020年9月全国程序员平均工资14459元,工资中位数12500元,其中95%的人的工资介于5250元到35000元. 工资与上个月持平,但是岗位有所增加 ...

  6. 【转】这些编程语言程序员工资最高!Java才第四

    原文网址:http://tech.hexun.com/2016-07-18/185009761.html 在众多行业中,程序员属于高薪职业.无论是在国外还是国内,程序员的薪金水平普遍高于其他行业的工作 ...

  7. Stack Overflow大揭密:哪一种程序员工资最高?

    Stackoverflow在程序员之间可以說是无人不知无人不晓,甚至常有人开玩笑说:“如果stackoverflow倒闭了,全世界代码的产出率将下降一半以上”或许听起来有点夸张,但是不难想像这个网站在 ...

  8. 9大行为导致Java程序员薪资过低, 你有几个?

    Java程序员薪水有高有低,有的人一个月可能拿30K.50K,有的人可能只有2K.3K.同样有五年工作经验的Java程序员,可能一个人每月拿20K,一个拿5K.是什么因素导致了这种差异?本文整理导致J ...

  9. [Mac A]为什么国外程序员爱用 Mac?

    from http://www.vpsee.com/2009/06/why-programmers-love-mac/ Mac 在国外很受欢迎,尤其是在 设计/web开发/IT 人员圈子里.普通用户喜 ...

随机推荐

  1. xpath的层级与逻辑定位

    xpath的层级与逻辑定位: 之前我们是通过class和id,name,如果我们所需要的元素没有class,id,name这样的元素,怎么定位呢 1.在不使用xpath情况下:元素没有属性值得时候怎么 ...

  2. 开始一个Android的appium实例

      1.查看Android的应用包名和activity的方法   (网上有很多种方法,这里应用的是查看日志的方法) CMD中输入>adb logcat -c                   ...

  3. 命名空间出错 namespace Web.Skin.@default

    namespace Web.Skin.default会报错 因为default是关键字/保留字,所以需要在前面加@符号; namespace Web.Skin.@default

  4. SpringMVC中ApplicationContext中的配置文件的问题(No bean named 'sessionFactory' is defined 已解决)

    在一个SpringMVC项目中, 连着两天不管怎么搞都是一直在报错, 报的最多的就是一个 Servlet.service() for servlet [springDispatcherServlet] ...

  5. cmd命令 从C盘转到D盘

        点开始 点运行.输入 CMD 回车.进入DOS提示符状态下.输入 cd\ 回车 表示进入 c:\> 也就是C盘根目录下.输入d: 回车 是进入D盘当前目录,并不一定是根目录.然后cd\ ...

  6. mongo通信协议

    先是一个包头: struct MsgHeader { int32 messageLength; // total message size, including this int32 requestI ...

  7. python之列表【list】

    这里介绍下列表的功能 #切片:列表[a:b],从下标为a开始,到下标为(b-1)的元素 # name = [0,1,2,3,4,5,6,7,8,9] # print(name[1:6]) # # 结果 ...

  8. C#中如何创建xml文件 增、删、改、查 xml节点信息

    XML:Extensible Markup Language(可扩展标记语言)的缩写,是用来定义其它语言的一种元语言,其前身是SGML(Standard Generalized Markup Lang ...

  9. 41-json.decoder.JSONDecodeError: Invalid control character at: line 6894 column 12 (char 186418)

    在使用python中将单词本的单词用正则匹配成字典后,以json存储,仪json读入,但是一直报错: 原因是: 正则处理后的数据有的出了点问题,导致一个字典的 有多个相同的键!!!,则肯定会报错啊!! ...

  10. JSP页面中的EL表达式介绍

    1.什么是EL? Expression Language(表达式语言) 2.EL的功能 替代JSP页面中数据访问时的复杂编码. 3.EL的特点 自动转换类型 使用简单 4.EL表达式的语法 ${EL ...