这两天博客园上关于“程序员工资低”的讨论挺多的,让我不禁想起一句话“拉不出屎来怪地球没引力”。
那些抱怨“做.Net工作三年了月薪才6千,我的同学做Java现在都一万二”的哥们,你问问自己“我会什么,人家会什么”:人家使用struts做mvc模式开发已经轻车熟路的时候,你还在为GridView控件的一堆事件的触发顺序而头疼;人家已经研究IOC、AOP应用的缺点的时候,你还在为会找到一个好用的三层架构代码生成器而沾沾自喜;人家已经在研究Redis、Ngix、Memcached等技术进行大型网站架构,你还在纠结为什么Session总是丢失。如果这样你和别人工资一样高,那才没天理呢。
对于一个软件工程师来讲,工资高低和你用啥语言关系不大,而是和自己的技术有关,而技术又决定你进入什么样的公司、做什么样的项目,在什么样的公司、做什么样的项目则又决定了你的成长空间。为了避免有人说我给传智播客打广告,我这里不说我那一大把专科毕业就拿到不错Offer的学生,也不说那些名校毕业进入BAT的神人,我随便拿我的两个前同事举例。
同事A大学毕业进入我的第二家公司,进入后就进入公司的一个基于.Net技术的银行项目,小伙子技术研究的比较深入,简直是技术狂人,没有他解决不了的技术难题,很快就成为技术骨干,三年后就成了部门经理,现在已经成为在北京有车有房一族了,月薪还用说吗。而同事和他一起进入公司的一个他的同学,对待技术的态度一直是“凑合能实现就行,研究那东西有什么用”,在公司干了一年就辞职了,前阵子我问他的近况,他现在在一家出版社维护他们的ERP,月薪6K,每天就是改改界面、改改Bug,他说“真没劲,入错行了”。
同事B是一家市属二本院校的毕业生,毕业前就兼职做项目,毕业后靠自己的技术进入国内最大的一个OA系统公司,基于.Net技术开发,他们开发的是大型的OA系统,分布式、负载均衡、高并发、大型企业组织架构、自制工作流引擎、二次开发平台等等项目中都有涉及到,工作一年后月薪1万;而我认识的另外一个同样他们学校毕业的C,毕业后进入一家专门靠给水利系统做软件系统的公司,老板靠关系赚发了,而他整天做的就是做各种各样的增删改查,最多加一个“导出为Excel”,工作了两年了,现在还是月薪5K。
这样的例子我相信大家都能举出很多来。其实任何一个行业都是有混得好的也有混的差的,混的差的肯定欠缺很多混得好的人所欠缺的素养。混的差的人如果自甘平庸也就算了,因为平庸也是一种很难得的生活态度,但如果又在那里婆婆妈妈的抱怨就属于“拉不出屎来怪地球没引力”了。
因为.Net入门门槛低,用来快速进行简单的管理系统的开发特别简单,所以很多小型项目都使用.Net开发,而这些项目很显然开不出高工资出来,这就造成了貌似“.Net工资低”的假象。其实用.Net开发大、复杂、有钱项目的公司也有很多,你技术不精进不去那能怨.Net吗? 你可能会说“Java大公司比.Net多”,那你学Java去呀,我就不信.Net研究不深入的人Java就能研究的深入了,我相信很多人当初选择.Net不是因为多么喜欢.Net,而是因为.Net"入门简单",人要对自己的选择负责。
每次看到有人抱怨“做.Net没前途、做.Net工资低”我就又不得不想起我的第一门深入研究的语言:Delphi。Delphi当年给程序员的感觉就和现在的.Net一样“不用懂太多东西,拖拖控件、设设属性、绑定一下,写几个Onclick就搞定”。我大四在学校兼职用Delphi做了一个呼叫中心的项目,和我同一个项目组的一个哥们也属于对技术不求甚解类型的,遇到难题从网上搜一段代码放上去能搞定就行,他说“能解决问题就行了呗,管他什么原理呢”。而我(画外音:老杨又开始吹牛了)不甘于只会拖拖控件,我则研究Com、网络编程、多线程、Win32 API、CGI等这些技术,而且学习面向对象、设计模式等语言深入的东西,大学毕业的时候Delphi已经没落了,工作机会远没有Java、.Net的多,但是我什么都不担心,因为Delphi研究的很深入,我自学了10多天Java,就拿到了金蝶的Java工程师的Offer,工作后因为项目的需要又陆续用了Python、.Net、PHP等语言,一直到现在在传智播客专心做.Net教学,而收入嘛,你猜!而那位“能解决问题就行了呗”的哥们现在据说在济南开个小饭馆,您千万不要说“开饭馆比写程序赚钱多了”,您是看励志故事看多了,您是对餐饮业没了解,大部分开饭馆的只能维持养家糊口的水平,这个我以后有机会还会写单独的博客分析的。
当年Delphi在衰落过程中,也有很多人在抱怨“Delphi没前途”,我认识的一些当年用Delphi拖拖TADOConnection、TADOQuery做各种管理系统的程序猿已经在行业内杳无音讯。其实Delphi开发深入的话不比C++简单,据了解一些当年的Delphi牛人现在仍然在使用着和Delphi类似的底层技术在用着汇编、C/C++、.Net进行者各种高端大气上档次的项目。
如果你在不厌其烦的修改着动软生成的代码,那么就不要说.Net没意思,因为有人在开发着自己的代码生成器;如果你在开发着一个三十多人访问的OA系统,那么就不要抱怨.Net工资高,因为有人在开发着上万人访问、跨多国访问的集团办公系统。当别人在讨论着ORM有哪些缺点的时候,你说“Hibernate太难用了,没啥用,发明Hibernate的人是因为他自己不懂SQL才发明的ORM这种东西”,我只能说“呵呵!”