⑴ 程序员现状,看看来自二三线城市程序员的真实感受
2022年3月,乌鲁木齐市,95年26岁Java后端程序员。
我先后在乌鲁木齐市两家互联网公司工作过,通过自己努力的思考,总结出了一些对程序员现状的看法,供大家分享和参考。以下内容全部属实。
很多人会觉得程序员是高薪行业,并且有人会说朝九晚五双休,工作清闲还有业余时间去做其他事情。
我来揭晓真实答案。真实答案和上述情况基本完全相反。
真实情况我的城市,程序员的薪资算不上高薪行业,不是行业平均薪资不高,而是这里很多中小企业都会考虑降低用工成本,在招聘的时候用各种方式打压你的薪资。
这种方式尤其对新入行的程序员特别奏效。因为企业打压你工资的方式有很多种,而新入行的程序员根本就没有与企业谈判的资本。或许你入行时技术功底扎实,开发水平相对较高,又或者你学历很好,综合能力很强。但是企业依旧会以你没有工作经验,以及试用期,或者说培养你都需要付出成本,找人带你教你等等一系列举措,让你哑口无言只好接受企业的用工要求。没有能跟企业谈薪资的能力。企业最后会以一个较低的薪资利用你为企业创造更大的价值。
而处于新手阶段和试用期的你,想要获得企业的青睐获得转正的机会,会更好的去工作提升以及转正。这样你会在试用期努力工作,为企业创造效益。这个时候大多数程序员都会想,薪资低一些活多一些累一些也无所谓,因为这时候在锻炼提高自己的工作能力,对自己其实也有很大好处。企业也同样利用员工这个心里,不停的激励你去工作。而企业只是付出了很小的成本,利用新人的你去做了很多又苦又累的活,而你还不自知。这样企业很开心啊,而你除了努力付出工作和锻炼,钱却没有收获进口袋里。
你以为你能力锻炼了就会对应的拿到较高的薪水的时候。但是你别忘了,小企业把程序员当码农并且降低用工成本的核心思想并不会因为你的技术提升而发生改变。
企业依旧会以招最少的人用最低的成本让员工干最多的活去运行,并且项目大人员少,这样上线前一个就有理由让你加班,并且告知你是不可避免,去要求你加班工作。我自己的真实经历是连续加班一个月,并且在每天正常下班之后还需要额外加班5-6个小时,工作日连续五天加班后,周末再额外加班一天的强度去工作。基本就是一天工作14个小时一周工作6天,这么个强度。而且企业并不会在乎你是不很累,加班不会付加班费,而是以加班可以调休的方式安慰你。然而你想想这种小公司,并且开发人员企业不配备很多的情况下,怎么会让你调休。调休是需要上级领导项目负责人到经理,一系列人的签字的。可想而知,调休说是有,基本想想就可以,不会让你想休就休的,哪怕加班很累,第二天还是要上班。因为你不干就没人干,但是公司项目需要上线。而且你的工作每天都有人监工,你就负责干活就好,让你做什么就做什么。这样你还会觉得程序员薪资很高吗?
现在企业都知道招年轻人,刚入行的新人最好。因为他们没有太多经验,好对付,便宜而且干活又卖力。哪怕有几个不上进的水平差一点的,也会有人监督你把每天的任务完成。怎么说企业都不亏,所以企业能用新人和年轻人为何还会选择你要求薪水高的人呢。你以为你技术上去了,可以跟企业要高薪的时候(其实也不高,就月薪过万而已),以你的技术可以拿到月薪过万的时候。企业依旧可以通过各种方式降低用工成本,或者压根就不录用你。比如试用期只给你80%薪水,哪怕企业知道你经验很丰富,也利用试用期少给钱让你多干活快速熟悉并进入开发。会以工作年限限制你的薪水,你说你水平高怎么证明,其实就是企业不愿意承认和付出更高的成本而已。哪怕你技术很牛学历很好,一样会面对这样的问题。等真到一定的工作年限的时候,你会发现头发和精力和兴趣都会少很多。你再去跟企业谈薪,你还会发现企业还有方式降低用工成本。你有家庭吗,你能加班吗,对你提更高的技术要求等等。虽然总的来说薪资会有一定上升,你想要拿到一个满意的薪资很难,因为你满意企业就会不满意,企业不会为了照顾你,而降低自己的企业的效益。
这就是现在绝大多数程序员现状。付出很多,承受很大的压力,赚取来一点辛苦钱。而且现在程序员绝大多数都会有35岁危机。这行业想要做好是有一定门槛的,还要有抗压能力和很强的学习能力,理解业务的能力。现在你还觉得程序员这份工作好干吗,高薪吗?那些年薪几十万的都是一线大厂的少数人。中国绝大多数行情,程序员就是底层的码农而已。付出这么多,收入稍微比普通职业高了那么一点而已。一样会面对买房买车的压力。谁也没比谁好多少。没有太多业余时间发展爱好,接触更多事物,压力大。绝大多数时间在跟计算机打交道。每天面对电脑的时间很久,一坐就是一天。
我这两天也是刚离职,因为企业不招人进来,就五六个人干一个项目,还加班。当你去面试的时候一大堆企业要招你,但是能给你满意薪水的企业的数量直接就大打折扣了。
当然企业不给你满意的薪水,也不代表你不好,这只是畸形商业模式下的企业招人的方式而已。你要相信自己其实比很多人要优秀。
否则企业会让你怀疑人生的。在一个没有装修过的小房间当码农的感觉亲自体会一下就明白了。就像不被企业在乎的流水线工人埋头苦干。
遇到这种情况程序员们一定要坚持自己薪资的底线,不要让企业或者根本不懂技术的hr 轻易的压低你的薪资。而你却选择默默接受。虽然我们是打工人,但是面对这样的企业也要坚持自己的原则,去进行双向的选择。并且为自己以后的发展做好规划。
希望程序员们都能找到一家满意的公司,去发展。人生只有一次,不只是工作,一定要按自己喜欢的方式去活。
这就是来自二三线程序员的真实现状。你们怎么看呢?欢迎在评论区留下你的看法。
⑵ 游戏程序员的基本要求
1 ,C游戏程序员现状
中国C程序员100%都是自学的。因为中国几乎没有象样的C培训机构。大家都知道社会培训是赚钱为主要目的。能在那里成才是个大运气。也不象JAVA有SUN公司一手推行。中国大学教育里也根本没有C教学。关于C/C基础课的知识,只是让学生入门。但对于实际的C软件工程应用,大学课本知识实践意义不大。最重要的是,大学里没有合格的C老师。编程是门技术,叫手艺也行。而大学是搞科研的,多的是科学家,靠出PAPER教科凭职称为生。并不是技术员。没有10万行以上代码经验和成功软件项目经验的人,很难教出中高级C程序员。
游戏制作业对C程序员的要求是比较高的。比一般行业软件高很多。因为任何一个MMO都是个中大型软件项目。日使用人次达到几十万上百万,同时使用人数几十万在线的大型网络多人交互软件,集成了超过十几项专业领域编程技术的软件,想不大都不行。
另外,中高级C程序员能力一般都很强。因为都是自学成才,这需要较高智商,很强的自学能力,解决问题能力,和克服困难的毅力。但是这种人才在游戏行业里人数并不多。抛开凤毛麟角具备整体大型软件架构能力的高级人才不谈。能够承担独立模块开发,具备独立解决问题的能力,写出在空间,性能,可维护性等几个方面达到要求的C程序员,也是很难找到的。而具备这些能力,同时又具备一些专业领域技术的人(图形引擎,网络引擎,等),更加稀少。
所以,即便是大游戏公司,对于C游戏程序员的需求,也是永远不能够得到满足。而已经在公司工作的C程序员,不经过短则3个月,长达1年的锻炼,也无法真正胜任独当一面的C游戏程序开发工作。
2 ,MMO游戏开发对C游戏程序员要求
前面提到,所有MMO游戏都是中大型软件。软件占用空间,稳定性,性能,可维护性等各项衡量软件质量的指标,对MMO游戏软件的要求都非常严格。远大于普通行业软件。这种规模和银行系统类似。而客户端和软件逻辑比一般的商业软件又要复杂很多倍。这就要求软件编写人员具备较高的程序编写素质。
游戏软件中,解决好软件工程部分,只是项目的1/3。另外两部分是策划和美术/音频。从经验来看,需求变更对于MMO游戏软件,不是偶然事件,而是一种MMO游戏软件开发的基本属性。游戏软件投入大,周期长,风险高。MMO市场变化也大,交互电子游戏发展迅速。游戏软件必须面对外界变动。又因为开发周期长,所以软件需求变动成为了软件开发的一种基本属性。犹如复杂性是软件工程的一项基本属性一样。
这导致游戏软件的开发充满了不确定性。交互娱乐不同于商业应用。娱乐是属于理性和感性之间的领域。而C开发面对就是0和1的二元世界逻辑。这两个领域存在着不可调和的矛盾。这种情况,对C游戏程序员提出了更高的要求。
首先,基本C知识,C/C运用技能,必须极其扎实。并不是游戏软件开发用到什么平时书本上很难得到的知识点或者技能点。游戏C开发的知识体系和技能体系,利用现有C书籍就可以满足。比如《CLANGUAGE》《C PRIMER》《EFFECT C》《MORE EFFECT C》等。但是在开始游戏编程之前,把这些书本吃透并且实践熟练的人,非常难遇到。当然能够真做到这点的人,已经是个中高级C程序员了。我曾经遇到过一个,毕业工作不久就去了GOOGLE
其次郑腊,对于面向对象的深入理解。是非常重要的。熟练掌握C/C语法,编程技巧,只是满足了C游戏程序员一部分要求。而面向对象观念的深刻理解,会为大型C项目开发带来翻天覆地的喊裂滑变化。有时候,在一个10人以上并行开发的C游戏项目中,面向对象方法会成为救命稻草。《设计模式》以及《设计模式解析》相关的书籍,也是必修课。
最后,好技术人员的本质是自大的。这属于正常。但是如果这种习性影响了自身继续提高和团队合作。以及影响了其成为技术管理者和项目技术核心时,那么这种技术人员的自身价值会大打折扣。如果早日越过自命不凡这一关,扩大眼界,继续在综合素质上提高。在技术管理能力,源宽架构能力上提高,其自身价值才会继续增长。落到实处,就是待遇和身家增长。
由于游戏开发的本质是团队开发。任何时候,只有对一个团队有价值的技术人员,其本身的价值才有可能得以体现。
3 ,成长和技术发展路线
一般技术人员发展有几个阶段
1 ,具备独立开发局部功能的能力
比如为某个UI编写逻辑接口函数。为某个LOGIN对话框编写自绘制控件等。
2 ,具备独立开发和攻关某个功能模块的能力
比如为游戏增加一个小型逻辑功能模块。
3 ,具备独立设计并开发某个系统的能力
比如设计和开发AUTOPATCH 系统
4 ,具备解决技术难题,设计架构的能力
比如开发网络同步仿真系统,开发一个中大型游戏制作工具
5 ,具备整体架构,管理,协调其他人共同开发一个大系统的能力
客户端主程,服务器主程,引擎主程等
6 ,技术director
制定技术发展方向,技术团队建立,技术管理等
在迈向每个阶段的过程中,伴随的都是巨大的工作量和工程压力。有时候是跨越1年的失败等等。在公司项目不成功时转换单位,重新开始,或者继续做为核心团队留在公司继续从新的机会做起,都是好的办法。但关键是吸取经验教训,尽量多学多练。并且结合自身长处发展。当然,游戏制作人员,最好还是依靠一个核心团队。成为核心团队的一员。
能够达到第三档的程序,已经是公司不可缺少的人才了。但往往程序员自身对自己的认识,和公司对其的认识,有时候会有差异。我碰到过一些人,脑子好用,写东西很快。各种技术都有涉猎。但总是不放心让他独立开发设计某个系统。哪怕是相对独立的工具。也会被搞得一塌糊涂。要后面人不停擦屁股。可自己还觉着自己水平很高。这种人浮躁,眼高手低,不愿意细致周全的做好一件完整的事。所以就可以看到他不停的跳来跳去,可在新公司的职位也没有见多么提高。公司非常重视交给一个程序员一件事,他是否能完整,考虑周全的把事情做完。哪怕时间长一点,也不能不做完。这会给工程带来致命的后果。
⑶ 中国的程序员数量是否已经饱和或者过剩
程序员的数量是否已经饱和或者过剩?
任何一个行业,基本都是呈现金字塔结构。处于低端的人很多,越往上人才越少,很多大厂还不是喊着招不到人。
1、未来IT行业会持续发展,C端近几年内用人需求会缩减,B端和高级产品端会加强,对人才技术会有更高的要求,高端技术人才的春天来了。
2、初级人员的确会更内卷。
3、35岁现象短期内不会得到改变或者缓解,会变成各行业普遍现象。35岁会变成一个分割线,变成贫富分化线。
4、油条岗位会变少,低端业务码农,未来堪忧。