做了十年的程序员,为什么我没有加班
十年老码农,基本上没怎么加过班。所以很长一段时间听说程序员怎么怎么加班怎么怎么过劳,都以为是谣言。后来接触的朋友多了,才慢慢明白为什么我不加班,大概几个原因:
- 用的是.NET
- 非互联网行业
- 欧美外资企业
上述3个原因,第1个原因是根本原因,O(∩_∩)O哈哈~
很多同学觉得第3条才是根本原因。确实,有些用.NET的私营企业/互联网企业,一样加班;欧美外资企业即使用Java用PHP,一样不加班。但是,我想强调的是:为什么国内企业用.NET的越来越少,但欧美外资用.NET的却越来越多?
这些事,也只有我们这种老码农才知道了。简单的说,其实就四句话:
- 以前用.NET是要给微软交钱的
-
国内知识产权保护越来越严厉
- 欧美发达国家的人工很贵
- 现在.NET开源和跨平台了
具体点说,以前,我一定要强调以前,用.NET,尤其是ASP.NET,是要给微软一大笔钱的,包括但不限于:Windows Server要收费,MS Sql要收费,Visual Studio要收费……而且这些费用都不低!
但是,这笔钱对于国内企业来说都不是事儿。我还是要强调,是以前。我第一家公司,服务器都是盗版的,微软发律师函,直接扔垃圾桶里。但现在肯定不行了,不光是服务器,公司内部使用的Visual Studio,甚至Office,都有可能会被微软带工商过来查,查到了就惨了——只有你公司还有钱。
而互联网公司是不可能缺钱的,缺钱的都已经死掉了。所以,国内使用.NET的越来越少,尤其是互联网行业。贵啊!这些东西,真贵。Visual Studio每个开发人手一套,Windows Server动不动就是做集群,SQL server按CPU收费(记得)……全都是白花花的银子啊!用Java,或者PHP,配合MySql啥的,就完全没有这笔费用,多爽?
但是,注意这个但是,即使是在以前,.NET需要这么多额外费用的时候,一样很多欧美企业选择.NET,为什么?因为这些国家的人工太贵了。
.NET开发,就一个字:爽。一定要再加一个字,那就是:快。连起来:爽快!
不管是以前被鄙视的“拖控件”,还是现在大家都承认的“宇宙最强IDE”,都是这两个字的体现。对企业而言,就是节省了人工。体现在很多方面,比如.NET开发人员的工资会低一点,毕竟这门技术的门槛要低一点,最直观的就是windows server,图形化界面,肯定比Linux简单吧?也不一定需要养着几个大牛,用的是微软的产品,复杂的问题有微软提供的售后专家团队帮你搞定……
说白了,欧美这些企业家,宁愿把钱给微软,也不愿意给开发人员。这也是为什么传统企业愿意更愿意用.NET的原因之一,传统企业,是宁愿相信机器或者机构,而不愿意相信人(员工)的。微软是一家信得过的公司,.NET是她的产品(机器),开发人员不过是使用这个机器的人。哪个工厂会由工人来定机器,而且用一套没有生产厂家、没有质量检测报告、没有售后服务的三无产品(仔细想想,开源是不是这样的)?天方夜谭啊,简直是。
上面说的,都是些老黄历了。大概两三年前吧,我懒得查了,.NET宣布开源和跨平台——因为扛不住了。互联网企业就特么这么奇葩,颠覆了太多的东西。典型的,什么都可以不要钱。做出来的产品,你随便用,不收钱!百度google,QQ微信,各种乱七八糟的网站APP,不用你盗版,直接给你免费用!当然,免费的东西,你就不要太奢求质量了……所以,微软卖产品那一套,越来越尴尬了。
微软当然不能坐以待毙,最终宣布开源跨平台——其实就是免费。开源,代码(产品)你随便用;跨平台,Linux/iOS上面也可以跑。Visual Studio出社区版,MS Sql还扛着的,没有免费,但你完全可以用mysql……这下,应该是把之前交钱的那些企业给乐坏了!甚至我记得在.NET宣布这个消息的时候,很多人忍不住的问:这下JAVA是不是真的要死了?
当然Java没死,Android救了它。而且Java使用这么广泛的一门语言,像一个网友说的:就算你都死了,Java也不会死!——有点刻薄,但确实如此。
Java不会死,.NET也不会死,一个语言或者平台,最危险的时候,是它问世的那几年,要死,最有可能就死在那时候,.NET早已度过了这段时期。从2002年问世,.NET已经诞生16年了,旗下的C#,在Tiobe排行中,很早就占据了第5的位置,之后就没跌出过前7(我是这样记得的),查一下吧:
- 最意料之外的是,Java居然一直保持着下降趋势,呵呵。
- 其次是VB.NET的异军突起,居然在2018年开始超过了C#?
-
Javascript也让我有点意外,某乎上前端闹成了一锅粥,以为火得一塌糊涂,其实长期来看也就那样,没啥变化。
-
最意料之中的是,SQL无比的稳定,简直就是一条水平线。
- 其次是C++持续下滑,很好理解,桌面程序的时代已经越来越远了;PHP从2010开始也一直在走下坡路,当然是被ASP.NET和Java Web给挤的,而且它作为一个脚本语言,也越来越不适合越来越大规模的Web应用。
-
不能理解的是C,实际项目中这么可能有这么大的份额?我严重怀疑是因为大学计算机专业的课程设置。而且不明白为什么在2016年到2018年这两年间突然下滑。
大家可以去网站里看看,https://www.tiobe.com/tiobe-index/,还蛮有意思的。
一不小心跑题了,但我还是想说:考虑.NET平台的实力,至少应该把C#和VB.NET加在一起算才对,他们都是.NET平台下的语言。那么按2019年2月的统计,他们占了2.846%+7.095%=9.941%的份额,仅次于Java和C。考虑到MSDN良好的文档(所以不用使用搜索引擎),.NET非学院派的背景(很大大学教学使用的都是Java和C),这个成绩简直是牛逼到爆!
前面说的是企业为什么选择.NET,和加班啥关系呢?
你必须要明白,人力成本高,通常就意味着劳动法律健全。或者说对劳动者的保护更有力。我忘了那里看到的一个理论:如果没有劳动法的保护,工人的平均工资永远只能维持在“勉强活着”的水平。禁止加班,或者说加班要给加班费,是劳动法的基本要求。这些企业在这种法治环境下已经形成了习惯:让员工无偿加班是可耻的,更是违法的!
但对比中国的互联网企业,呵呵。前段时间,哪家公司,还有点名气的,现在名气更大了,居然在年会上公然要求“全面996”,“没时间陪家人就离婚”?在这一点上,很多互联网企业,还比不上一些传统企业,人家至少知道加班了要给加班费。当然,换个角度想想,互联网行业工资这么高,也可以算做“已经含了加班费”啦。
最后最后,大过节的,我都没想到,Java和.NET之争在园子里又火了一把。我已经来晚了,就提供一个视角:Java的工资真的比.NET高么?你算的是月薪还是时薪?996比965高个百分之十百分之二十真的那么有意思?另外,学Java就真的好找工作?Java的岗位需求和.NET相比,是3:1的比例,但学Java的同学和学.NET同学的比例呢?我估计30:1都不止吧?而且学Java的,多半都是科班生哟。你培训班毕业的,和他们去争,呵呵……
随便说说,大家自己考虑。反正飞哥的“源栈”就18张床位18张桌子,我是无所谓的,不可能这么大一个中国,18个愿意学.NET都没有。
+++++++++++++++++
最后,想招一个“半工半读”的软妹子,在“源栈”学习开发之余,能帮我干点杂活,大概就是招生(在QQ群里回答咨询)/行政(淘宝上买点东西啥的)/其他日常管理事项吧。可以视情况减免学费、提供津贴等,最好相貌清秀、温柔细心,别买个床垫搞成这样就行:
欢迎毛遂自荐或者推荐,有意的加QQ群:729600626(之前忘了说,只吹牛的加老码农-4这个群:716207562),有意向只参加“源栈”培训的,也可以加这个群。
文章欢迎转载,但别把我最后的招聘删了,^_^
+++++++++++++++++++
看评论有人对我“不理解C语言”有意见。我的意思是C语言在实际工作和项目中用得很少了。然后我查了一个51job,以上海为例:
C语言:2504个职位 (没有用“C”检索,因为会混入B2C、3C、C1……这些,严重失真)
对比C# 4120个职位,C++ 8454个职位,Java 14497个职位,确实非常非常少啊。