⭐⭐⭐ Spring Boot 项目实战 ⭐⭐⭐ Spring Cloud 项目实战
《Dubbo 实现原理与源码解析 —— 精品合集》 《Netty 实现原理与源码解析 —— 精品合集》
《Spring 实现原理与源码解析 —— 精品合集》 《MyBatis 实现原理与源码解析 —— 精品合集》
《Spring MVC 实现原理与源码解析 —— 精品合集》 《数据库实体设计合集》
《Spring Boot 实现原理与源码解析 —— 精品合集》 《Java 面试题 + Java 学习指南》

摘要: 原创出处 zhihu.com/question/461572685/answer/2716600673 「莫也」欢迎转载,保留摘要,谢谢!


🙂🙂🙂关注**微信公众号:【芋道源码】**有福利:

  1. RocketMQ / MyCAT / Sharding-JDBC 所有源码分析文章列表
  2. RocketMQ / MyCAT / Sharding-JDBC 中文注释源码 GitHub 地址
  3. 您对于源码的疑问每条留言将得到认真回复。甚至不知道如何读源码也可以请教噢
  4. 新的源码解析文章实时收到通知。每周更新一篇左右
  5. 认真的源码交流微信群。

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

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

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

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

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

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

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

需要开通正版JetBrains全家桶的可以联系我,56元一年,正版授权,官网可查有效期,有需要的加我微信:poxiaozhiai6,备注:118。

如果说技术更新快是让程序员吃苦受累的客观、合理的因素,那其他方面就一言难尽了。

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

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

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

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

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

如果你上级曾经也是程序员(像我一样),不表示他就一定更理解你,而是更可能让他占领道德高地,他的口头禅是:“这个怎么需要半年?我当年做程序员只需要三月哦。”但程序员永远没机会见识过往的神迹,最终不得不承认:技术型领导未必更真懂,但一定更能吹。

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

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

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

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

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

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

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

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

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

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

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

我见过的一些程序员,在城中村租了一间小屋,屋内只有一块电脑屏幕大小的窗口,窗口对着的还是另一栋楼墙壁,住在里面的人难见天日,昏暗压抑,劳累一天回到家面对的是密不透风的空间。我身边不少程序员在这样的环境产生情绪问题,有的甚至得了抑郁症。所以,我经常和程序员说:尽可能让自己住好一些、舒服一些,这很重要,家里也是你放松的一个环境,环境好了心情也好,也能好好休息了,身体能照顾好了,工作效率自然高了,何乐而不为呢?

我也建议程序员一定注意养护自己的眼睛,钱赚没赚到且不说,千万别把眼睛折腾出一堆毛病再后悔,鲜活的例子就在你们眼前,不敢玩手机不是因为不想玩,是因为眼睛不允许,看久了就开始出现眼干、眼疲劳,别像我一样每天不挪窝的盯着电脑,适当的时侯起来溜达溜达,看看窗外,让眼睛放松一下,也可以使用海露玻璃酸钠滴眼液给眼睛补水,缓解预防眼睛不舒服的情况,而且海露采用COMOD系统瓶身,让液体不回流,所以不含防腐剂也能使用长达12周,这个设计狠狠抓住了我这个技术男。

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

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

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

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

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

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

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

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

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

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

此外,**团队负责人还可以考虑以公司或自己名义送些实用的小礼物,比如我上面提到的海露玻璃酸钠滴眼液,**它不同于普通眼药水,而是人工泪液,即使我平时打球,戴隐形眼镜也可直接滴,能缓解预防佩戴时眼睛可能出现的干涩、疲劳、异物感,真正做到温和护眼,而且干眼症也能用!

像这样比较贴心的小礼物,每个程序员都可能用得着,钱花的不多,但人性温暖就这样“润物细无声”地体现在细节中。

文章目录
  1. 1. 1、行业发展快,程序员需要与时俱进,不断更新技术池。
  2. 2. 2、相对很多工种,编程工作不容易量化。
  3. 3. 3、除此以外,开发计划和效率,还往往成为不同软件公司间的攀比。
  4. 4. 4、继续吐槽程序员的累。