为什么说程序员是一个极度劳累的工作?
Posted 程序员大咖
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么说程序员是一个极度劳累的工作?相关的知识,希望对你有一定的参考价值。
👇👇关注后回复 “进群” ,拉你进程序员交流群👇👇
来源:zhihu.com/question/461572685/answer/2716600673
1、行业发展快,程序员需要与时俱进,不断更新技术池。
2、相对很多工种,编程工作不容易量化。
3、除此以外,开发计划和效率,还往往成为不同软件公司间的攀比。
4、继续吐槽程序员的累。
人人知道程序员工作时间长、劳动强度大,每天996,累得像狗狗溜着回家。程序员怎么变成这幅模样?让我这个前资深程序员,后来的研发管理者从头掰扯掰扯。
1、行业发展快,程序员需要与时俱进,不断更新技术池。
就拿我来说吧,30年前入坑程序员,做嵌入式开发,产品是一种掌上型游戏机,刚入行还是用汇编语言,不到一年系统环境升级,就改用C语言开发了。
再过一年,掌上游戏机不流行了,我换了一家公司,去开发企业数据库,之后又做ERP(企业资源计划),先用FoxPro(古早数据库语言),再用Visual Basic,勉强整成那个年代的架构师,互联网时代来了,又去学网络时代流行起来的Java。
虽然多年不编程,Java书籍仍留存,记录的是程序员学习常态。
每次转型都像打仗,没有几家公司会对你说“慢慢学,不着急”。 记得我学Java才一个礼拜,就被逼得要在工作中实操。每次转型都在怀疑自己好像换了一份工作,又是从头开始的日子,脑子和身体大换血的过程。
我精通的最后一门开发语言就是Java,当然不是编程技术到此不发展了,而是我之后就出坑了,年纪大了扛不住了,做了技术管理,回望坑内苦逼的程序员兄弟,我对你们说:“加油!”
如果说技术更新 快是让程序员吃苦受累的客观、合理的因素,那其他方面就一言难尽了。
2、相对很多工种,编程工作不容易量化。
工程施工项目可以有施工定额,一个项目需要多少工时一套定额就能算出来,但软件项目却不是这么回事。
虽然在成熟规范的技术管理里(比如高级别软件成熟度模型),也提倡积累历史开发数据,逐渐实现对开发工作的量化,但是实际能做到的国内公司不太多。这样就导致开发计划往往是拍脑袋决定的事情,不同的公司只是看拍谁的脑袋。
问题往往始于最初的估算,程序员一项任务需要多少时间和人力?讨论成了菜市场式的讨价还价,各个变身谈判专家。某项需时半年的任务,老板给你开价“三个月”,你说这绝对不可能,老板说“那四个月,就这样定了”。
有时老板摆出乐于沟通的姿态,“你估摸多长时间?”程序员老实回复“四个月。”老板不失时机祭出拼多多式一刀:“三个月。”于是程序员学乖,虽要四个月却留有余地:“这得半年吧?”老板直接对折:“只给你三个月”。
如果你上级曾经也是程序员(像我一样),不表示他就一定更理解你,而是更可能让他占领道德高地,他的口头禅是:“这个怎么需要半年?我当年做程序员只需要三月哦。”但程序员永远没机会见识过往的神迹,最终不得不承认:技术型领导未必更真懂,但一定更能吹。
就这样,科学合理的工作计划都做不到,理想和现实间的缝隙,就通通让程序员用他们的血汗去填充。
3、除此以外,开发计划和效率,还往往成为不同软件公司间的攀比。
比如,你的领导对你说:“某某公司做这个,只需三人两月,你也应该做到。”
然而每家公司的基础都不一样,通用的类库和框架,代码资源的可重用,代码自动化生成程度.......都直接影响开发效率,现实是很多公司还没给程序员插上翅膀,就恨不得赶着他们飞起来。
脱离现实条件,追求技术的新潮,是程序员面临“一将无能,累死三军”的另一种风险。
多年前,我在一研发部开发一个SaaS平台,时间紧任务重,已经很难保证按时交付,上线前几天,熬了好几个大夜,眼就没离开过电脑,技术总监忽然听说应用服务器新出了一个大版本,就要求一定要上这个版本。
结果因为运行环境改变,上线那天所有模块几乎都不能正常运行,全部程序员被发动去修改代码,从周六早上9点折腾到周日下午,也就是说周末连轴转,干了两个白天加一个通宵没合眼,熬夜爆肝的后果就是喜提一周医院,就这系统依然错误频出。
这几年坦白说也熬了不少毛病,失眠,都是家常便饭,眼睛这个度数就不用说了,每年稳固增长吧,盯久电脑就开始眼花,真是硬生生熬出一身老年病。
我早期带开发团队获得的公司奖杯,大家一起拔萝卜,队尾那条狗是说程序员累得像狗吗?
在工作中,程序员往往是一个比较被动的角色,能决定的事情不多,但各方的要求和压力却向他们集中,这是他们“艰难苦恨繁霜鬓”的重要原因,超负荷工作成为家常便饭。
这种情况,我给程序员一个忠告:一定要对自己好。
我见过的一些程序员,在城中村租了一间小屋,屋内只有一块电脑屏幕大小的窗口,窗口对着的还是另一栋楼墙壁,住在里面的人难见天日,昏暗压抑,劳累一天回到家面对的是密不透风的空间。我身边不少程序员在这样的环境产生情绪问题,有的甚至得了抑郁症。所以,我经常和程序员说:尽可能让自己住好一些、舒服一些,这很重要,家里也是你放松的一个环境,环境好了心情也好,也能好好休息了,身体能照顾好了,工作效率自然高了,何乐而不为呢?
我也建议程序员一定注意养护自己的眼睛,钱赚没赚到且不说,千万别把眼睛折腾出一堆毛病再后悔,鲜活的例子就在你们眼前,不敢玩手机不是因为不想玩,是因为眼睛不允许,看久了就开始出现眼干、眼疲劳,别像我一样每天不挪窝的盯着电脑,适当的时侯起来溜达溜达,看看窗外,让眼睛放松一下,也可以使用海露玻璃酸钠滴眼液给眼睛补水,缓解预防眼睛不舒服的情况,而且海露采用COMOD系统瓶身,让液体不回流,所以不含防腐剂也能使用长达12周,这个设计狠狠抓住了我这个技术男。
4、继续吐槽程序员的累。
开发总是追不上变化,这是万年老话题了。客户需求在变,老板要求在变,产品设计在变,你如果抱怨怎么老在变,产品经理(以及各种经理)对你翻白眼:“你程序不怎么样啊,不能顺应我的变化。”
你变就变吧,可就是你家的装修改了需求、改了方案,也得加时间,加钱吧,可到了程序员这里,怎么只剩下加班?工作量是一个方面,其余的就得考验你身体能不能扛得住了,超负荷工作后闭上眼满脑子也都是程序代码,不是睡不睡的好的问题,是你能不能睡得着?眼睛能不能好好休息以后,第二天再面对电脑的问题
现在的公司,开发周期往往重设计、轻编程,按照三三制分配,需求设计用三分之一时间,编程用三分之一时间,测试修改用三分之一时间。如此分配本来有一定的合理性,但前提是你的需求设计得在你那边的三分之一搞定,可实际往往是过了你的三分之一,需求设计仍然在调整、填充,侵蚀的是程序员的这三分之一,timeline还不能动,美其名曰“倒推”,能不把程序员逼得吐血吗?
这些年流行敏捷开发、迭代开发,可什么好东西到最后都可能变样。最初是三个月迭代一次(即三个月一个开发阶段),后来是两个月、一个月、两周......
原本敏捷开发不太强调加班,只注重交付前的阶段努力冲刺一下,比如三个月开发的周期就是最后那两周,但现在两周一次迭代,很多公司就要求两周都要冲刺,两周过后又两周,加班结束再加班,成了常态和习惯。
按照合理的开发规范,一个迭代周期内不能随便更改已确定的需求,但实际却照改不误,“极限编程”(某种编程模式)成了生生把编程人累到极限。
我本人在IT、互联网做了二十几年,当程序员、做研发管理大约各占一半时间,前十多年做程序员,后十多年做技术部门负责人。程序员的那段时间,累是真累,但也给我留下了充实难忘的经历。
由程序员成为管理者,过往的工作也许让我有一点优势:这不一定是对技术的了解,更多是对人的了解,了解程序员的苦和累。带着这样的同理心,其实有助于带领一个团队。
我个人的体会,程序员是一个比较单纯的群体,你只要给予他们信任和关怀,往往能够得到他们的响应和回报。 在工作生活中结束后,经常看到团队负责人带着程序员们一起聚餐、旅行,这都是不错的相处。在工作中,积极肯定他们的成果,让大家带着调整好的状态和心情工作,再适当给他们时间和空间,把工作和生活分开来,也可以设立一些关怀鼓励活动,定期组织体检,爱眼日知识竞赛,或者午休一小时不用眼等等好好放松。
此外,团队负责人还可以考虑以公司或自己名义送些实用的小礼物,比如我上面提到的海露玻璃酸钠滴眼液, 它不同于普通眼药水,而是人工泪液,即使我平时打球,戴隐形眼镜也可直接滴,能缓解预防佩戴时眼睛可能出现的干涩、疲劳、异物感,真正做到温和护眼,而且干眼症也能用!
像这样比较贴心的小礼物,每个程序员都可能用得着,钱花的不多,但人性温暖就这样“润物细无声”地体现在细节中。
-End-
最近有一些小伙伴,让我帮忙找一些 面试题 资料,于是我翻遍了收藏的 5T 资料后,汇总整理出来,可以说是程序员面试必备!所有资料都整理到网盘了,欢迎下载!
点击👆卡片,关注后回复【面试题
】即可获取
在看点这里好文分享给更多人↓↓
以上是关于为什么说程序员是一个极度劳累的工作?的主要内容,如果未能解决你的问题,请参考以下文章