为什么说程序员是一个极度劳累的工作?

点击关注公众号,Java干货及时送达6a4625e1824ef1ce26870ce061c583d2.png

推荐阅读:

学习 Spring Cloud 微服务的最佳姿势!

Spring Cloud 2022 正式发布!


来源:zhihu.com/question/461572685/answer/2716600673


人人知道程序员工作时间长、劳动强度大,每天996,累得像狗狗溜着回家。程序员怎么变成这幅模样?让我这个前资深程序员,后来的研发管理者从头掰扯掰扯。

1、行业发展快,程序员需要与时俱进,不断更新技术池。

就拿我来说吧,30年前入坑程序员,做嵌入式开发,产品是一种掌上型游戏机,刚入行还是用汇编语言,不到一年系统环境升级,就改用C语言开发了。

再过一年,掌上游戏机不流行了,我换了一家公司,去开发企业数据库,之后又做ERP(企业资源计划),先用FoxPro(古早数据库语言),再用Visual Basic,勉强整成那个年代的架构师,互联网时代来了,又去学网络时代流行起来的Java。

7f43f4543c61fec132b5b58921f57cbf.jpeg

虽然多年不编程,Java书籍仍留存,记录的是程序员学习常态。

每次转型都像打仗,没有几家公司会对你说“慢慢学,不着急”。 记得我学Java才一个礼拜,就被逼得要在工作中实操。每次转型都在怀疑自己好像换了一份工作,又是从头开始的日子,脑子和身体大换血的过程。

我精通的最后一门开发语言就是Java,当然不是编程技术到此不发展了,而是我之后就出坑了,年纪大了扛不住了,做了技术管理,回望坑内苦逼的程序员兄弟,我对你们说:“加油!”

如果说技术更新 快是让程序员吃苦受累的客观、合理的因素,那其他方面就一言难尽了。另外,如果你近期准备面试跳槽,建议在Java面试库小程序在线刷题,涵盖 2000+ 道 Java 面试题,几乎覆盖了所有主流技术面试题。

2、相对很多工种,编程工作不容易量化。

工程施工项目可以有施工定额,一个项目需要多少工时一套定额就能算出来,但软件项目却不是这么回事。

虽然在成熟规范的技术管理里(比如高级别软件成熟度模型),也提倡积累历史开发数据,逐渐实现对开发工作的量化,但是实际能做到的国内公司不太多。这样就导致开发计划往往是拍脑袋决定的事情,不同的公司只是看拍谁的脑袋。

问题往往始于最初的估算,程序员一项任务需要多少时间和人力?讨论成了菜市场式的讨价还价,各个变身谈判专家。某项需时半年的任务,老板给你开价“三个月”,你说这绝对不可能,老板说“那四个月,就这样定了”。

有时老板摆出乐于沟通的姿态,“你估摸多长时间?”程序员老实回复“四个月。”老板不失时机祭出拼多多式一刀:“三个月。”于是程序员学乖,虽要四个月却留有余地:“这得半年吧?”老板直接对折:“只给你三个月”。

如果你上级曾经也是程序员(像我一样),不表示他就一定更理解你,而是更可能让他占领道德高地,他的口头禅是:

“这个怎么需要半年?我当年做程序员只需要三月哦。”但程序员永远没机会见识过往的神迹,最终不得不承认:技术型领导未必更真懂,但一定更能吹。

就这样,科学合理的工作计划都做不到,理想和现实间的缝隙,就通通让程序员用他们的血汗去填充。

3、除此以外,开发计划和效率,还往往成为不同软件公司间的攀比。

比如,你的领导对你说:“某某公司做这个,只需三人两月,你也应该做到。”

然而每家公司的基础都不一样,通用的类库和框架,代码资源的可重用,代码自动化生成程度.......都直接影响开发效率,现实是很多公司还没给程序员插上翅膀,就恨不得赶着他们飞起来。

脱离现实条件,追求技术的新潮,是程序员面临“一将无能,累死三军”的另一种风险。

多年前,我在一研发部开发一个SaaS平台,时间紧任务重,已经很难保证按时交付,上线前几天,熬了好几个大夜,眼就没离开过电脑,技术总监忽然听说应用服务器新出了一个大版本,就要求一定要上这个版本。

结果因为运行环境改变,上线那天所有模块几乎都不能正常运行,全部程序员被发动去修改代码,从周六早上9点折腾到周日下午,也就是说周末连轴转,干了两个白天加一个通宵没合眼,熬夜爆肝的后果就是喜提一周医院,就这系统依然错误频出。

这几年坦白说也熬了不少毛病,失眠,都是家常便饭,眼睛这个度数就不用说了,每年稳固增长吧,盯久电脑就开始眼花,真是硬生生熬出一身老年病。

我早期带开发团队获得的公司奖杯,大家一起拔萝卜,队尾那条狗是说程序员累得像狗吗?

5a176ad1f11adccf8454e0271e601ade.jpeg

在工作中, 程序员往往是一个比较被动的角色,能决定的事情不多,但各方的要求和压力却向他们集中,这是他们“艰难苦恨繁霜鬓”的重要原因,超负荷工作成为家常便饭。

这种情况,我给程序员一个忠告:一定要对自己好。

我见过的一些程序员,在城中村租了一间小屋,屋内只有一块电脑屏幕大小的窗口,窗口对着的还是另一栋楼墙壁,住在里面的人难见天日,昏暗压抑,劳累一天回到家面对的是密不透风的空间。我身边不少程序员在这样的环境产生情绪问题,有的甚至得了抑郁症。

所以,我经常和程序员说:尽可能让自己住好一些、舒服一些,这很重要,家里也是你放松的一个环境,环境好了心情也好,也能好好休息了,身体能照顾好了,工作效率自然高了,何乐而不为呢?23 种设计模式实战(很全)分享给你。

4、继续吐槽程序员的累。

开发总是追不上变化,这是万年老话题了。客户需求在变,老板要求在变,产品设计在变,你如果抱怨怎么老在变,产品经理(以及各种经理)对你翻白眼:“你程序不怎么样啊,不能顺应我的变化。”

你变就变吧,可就是你家的装修改了需求、改了方案,也得加时间,加钱吧,可到了程序员这里,怎么只剩下加班?工作量是一个方面,其余的就得考验你身体能不能扛得住了,超负荷工作后闭上眼满脑子也都是程序代码,不是睡不睡的好的问题,是你能不能睡得着?眼睛能不能好好休息以后,第二天再面对电脑的问题

现在的公司,开发周期往往重设计、轻编程,按照三三制分配,需求设计用三分之一时间,编程用三分之一时间,测试修改用三分之一时间。如此分配本来有一定的合理性,但前提是你的需求设计得在你那边的三分之一搞定,可实际往往是过了你的三分之一,需求设计仍然在调整、填充,侵蚀的是程序员的这三分之一,timeline还不能动,美其名曰“倒推”,能不把程序员逼得吐血吗?

这些年流行敏捷开发、迭代开发,可什么好东西到最后都可能变样。最初是三个月迭代一次(即三个月一个开发阶段),后来是两个月、一个月、两周......

原本敏捷开发不太强调加班,只注重交付前的阶段努力冲刺一下,比如三个月开发的周期就是最后那两周,但现在两周一次迭代,很多公司就要求两周都要冲刺,两周过后又两周,加班结束再加班,成了常态和习惯。

按照合理的开发规范,一个迭代周期内不能随便更改已确定的需求,但实际却照改不误,“极限编程”(某种编程模式)成了生生把编程人累到极限。

我本人在IT、互联网做了二十几年,当程序员、做研发管理大约各占一半时间,前十多年做程序员,后十多年做技术部门负责人。程序员的那段时间,累是真累,但也给我留下了充实难忘的经历。

由程序员成为管理者,过往的工作也许让我有一点优势:这不一定是对技术的了解,更多是对人的了解,了解程序员的苦和累。带着这样的同理心,其实有助于带领一个团队。

我个人的体会,程序员是一个比较单纯的群体,你只要给予他们信任和关怀,往往能够得到他们的响应和回报。 在工作生活中结束后,经常看到团队负责人带着程序员们一起聚餐、旅行,这都是不错的相处。在工作中,积极肯定他们的成果,让大家带着调整好的状态和心情工作,再适当给他们时间和空间,把工作和生活分开来,也可以设立一些关怀鼓励活动,定期组织体检,爱眼日知识竞赛,或者午休一小时不用眼等等好好放松。

End

Spring 旗下最牛逼的国产项目!

23 种设计模式实战(很全)

Spring Boot 3.0 正式发布,王炸!!

Spring Cloud Alibaba 最新重磅发布!

Nacos 2.2 正式发布,这次更新太炸了!

7d88fff3afec0268816a8f16fd73eaa3.jpeg

048c944095aca2b141b688aca46c1bb7.gif

Spring Cloud 微服务最新课程!

猜你喜欢

转载自blog.csdn.net/youanyyou/article/details/128795913