程序员,我们都是夜归人【转】

【转】http://www.aboutyun.com/thread-18453-1-1.html

音响随机播放着音乐,偶然跳出一首《都是夜归人》的乐曲,让我不禁想起程序员这个群体,夜归人也是不少的啊。恩,我这里说的「夜归」正是指的加班,进入这个行业,成为程序员谁没加过班呢,所以我们都是夜归人啊。

加班是一个行业竞争激烈的表现,回想下读中学时虽不加班却要加课,因为高考的竞争很激烈啊。加班也是一个行业兴旺的表现,你看产能过剩的行业连工都不开了,哪里还需要加班。这些是加班的行业宏观原因,那么于个人微观来说,为什么需要加班呢?

1、能力不足

新入行的程序员加班的最多,很大一个原因是能力是不足以满足工作的需要,这里说的是整体的比例而言,不针对个体。我刚毕业工作时也是天天加班的,原因正是发现为了应对工作,需要学习的东西太多,边学边做,效率也不够高,自然无法闲庭信步,只能加班加点。

大学里专业上的东西学得宽,学得泛,而且离工作实际需要还存在一道从理论到实践之间的鸿沟。所以对于刚入行的程序员就需要短期内快速地跨越这道鸿沟,不得已加班加点的学和做,一旦跨越过后后面还需要经常的加班原因可能就出在其他方面了。

应对能力不足导致的加班,除了自己认了还能埋怨谁呢,同一所学校同一个专业同一届毕业的学生,能力强弱有时也是相差也很悬殊。我承认大学里也是放松了自己,曾经埋下的坑,后来也是慢慢自己来填的,努力要趁早啊。

2、环境制约

这里指工作环境的一些制约因素,比如:早年我在客户现场做项目,客户都是朝九晚五制,他们白天经常要过来和你讨论碰到的一些问题或需求,有时还要接接维护项目的技术支持电话,渐渐就发现在客户上班的朝九晚五期间基本就没法专心的写程序。所以当时我开发一般都放在晚上 6 点到 10 点之间,十点半是末班车再回去。

另外一种情况是,以前做传统企业应用,要全国各地四处出差,而系统上线和数据割接什么的也只能在半夜三更来做。从夜深人静到天空泛白,在卖豆浆包子的早餐车旁和来上班的人群短暂相聚,再交错而过,走回公司的出租屋,倒头便睡。

一次一个省级的大系统做全面割接,这样的日子持续了将近一个月,让我不禁开始思考起了这样工作和生活着的意义。这就是环境的现实,要么去适应当前的环境,要么去改变环境,这二者皆不易,还有第三条路就是换个环境,然后我便换了个。

3、公司制度

我理解加班很多时候来自一种需要,而这种需要可能来自很多方面的原因,但如果有公司把加班作为一项制度固化下来,那真是再糟糕不过了。

我以前曾有同事呆过一家把加班作为一种长期制度的公司,从周一到周四每晚都是固定加班到晚 9 点后,周末则临时决定是否加班。这咋一看比起如今的 「996」的强度是不如的,但有些公司的 996 可能是按需的并非一项固定制度。让你有事没事都必须呆到晚上 9 点后,而且公司内部网络控制严格的连外网都访问不了,当时 iPhone 尚未诞生,移动互联网不知为何物,这样的加班真是无聊透顶。

十年过去,似乎这样愚蠢的公司制度还是不少。近期听闻一朋友所在的成都某游戏公司也差不多,虽然没有明确规定加班是公司制度,但考核员工绩效的主要标准就是看考勤表的工作时长。这样的潜规则比明制度更可恶,不过上有政策下有对策,住公司附近的员工 6 点一下班就闪人,晚上十一、二点后再到公司打卡。

有的公司,加班是一种制度;有的公司,不加班是一种福利。确实有在招聘宣传上看到把不加班当作一种福利来宣传的公司。如果你不幸处在把加班当作制度的公司,我的建议是离开也请趁早啊。

4、进度压力

因项目进度压力导致的加班看起来似乎合理,但不合理的地方是为何进度总有压力?这取决于项目的上线或交付时间点是如何确定的?有些是 Boss 头脑一热胸脯一拍就定下了,这类 Deadline 相对来说还有可转圜的余地,另外一类则更难转圜。

我曾参与浙江电信的一个项目,当时它刚接手了联通 CDMA 的业务和用户并在建设 3G 网络。它在浙江卫视先打了广告明确在某月某日开始营业接受 3G 业务放号。之后它们才对后台的支撑系统招标建设,这基本就确定了严格的系统上线 Deadline 且几无转圜余地。

知乎上有个问题:程序员如何不加班?最高票的回答是:换个好的项目经理来控制进度,给每个人安排合适的任务。可见很多程序员都认为加班是因为进度控制和任务安排不合理导致的,而进度管理正是软件工程的难点之一,这个问题真的只是换个好的项目经理就能有解了?

进度问题本质是一个时间估算问题,一群程序员组成一个团队一起做一个项目,项目经理拆解了任务,每个程序员就需要对任务做一个工作量估算。这里重要的不是你需要做得有多快,重要的是你对自己的工作能力和工作量有个合理地估计。也就是给你一个任务,你要知道如果你用正常工作时间大概会花多久,而不是拍脑袋捶胸脯打保票下决心说要不吃不喝不眠不休保证完成任务。只有团队中每个人都能正确的估计时间,才能让团队的进度合理。但是能做到正确估计时间的,不论对程序员还是项目经理都是极难的。

在我没开始写作前,看到像本篇这样长度的文章总以为作者可能灵感一闪,一挥而就,快则个把小时,慢则至多两小时。毕竟当年我们高考语文时两小时不仅要做完所有题目,还要写篇作文,所以会觉得两小时已是至多了。等我自己开始真正持续写作后,才发现自己的估算错的离谱。

像这样一篇文章,两三千字,先不说创作,只说打完这些字你能估算准确自己需要多少时间么?(这里默默估算十秒)我们看下国际通用打字速度等级划分:

  • 学手 10-30 字/分钟
  • 聊手 30-60 字/分钟
  • 录手 60-90 字/分钟
  • 锐手 90-120 字/分钟
  • 高手 120-150 字/分钟
  • 专业 150-240 字/分钟

我 2000 年开始用 QQ 打字聊天,打字经验 16 年,用拼音输入法,实际速度也就是聊手水平,平均 50 字/分钟。而未经刻意训练的大部分人可能都是这个水平而已,所以一篇三千字的文章光把它输入成文字按这个速度就需要一小时,而实际的构思创作时间一般是这个好几倍。如果写的还是技术文章,我通常还爱画技术图示(一图胜千言啊),画图还需要额外的时间。所以这样一篇文章 3、4 小时算快得,5、6 小时很正常,7、8 小时也不坏。

你看自己的估算都如此不靠谱,所以一些项目经理才会把程序员的估算粗暴的乘以二或三,这样估算下来的项目进度你觉得能靠谱嘛,换个好的项目经理就能靠谱了?在埋怨项目进度不合理前,程序员需要先把自己写程序的时间估算准确了,有效的方式是通过「时间记录法」持续记录和跟踪自己的时间消耗,这真得可以有效地提高自己对时间的敏感度和估算准确度。

5、个人爱好

真的有人爱好加班么?我想没有,也许爱好的是其他,只是表象体现在了加班上,加的虽然是班,过的却是自己的人生。这点我想你们懂的。
<ignore_js_op>

加班对某些公司可能是一种制度,对个人可能是一种态度;不加班对某些公司可能是一种福利,对个人可能是一种能力。

时间: 2024-10-14 18:04:20

程序员,我们都是夜归人【转】的相关文章

《1024伐木累》-程序员相亲都做了什么?

谁说IT不懂爱|爆笑呆萌伐木累 情感上的孤独,事业上的沉醉,往往会让我们陷入两难. 对于爱情,我们勇敢的说是,对于结果,我们又会勇敢的面对. 当一个程序小白,努力去工作,向全世界宣称:我要奋斗的时候,心声告诉他,这只是对感情在逃避... 无论如何,让自己忙起来,总会好过一些,毕竟我们还是要生活. 昨天都过去了,那明天还会更难吗? 加班?算什么狗屁事儿. 1.相亲 耗仔,程序员的通病吗? 2.命名空间 对方的存在,就是一个BUG 3.入行的原因 DO...DO...DO个鸟啊 4.硬件问题 小公司

杰出程序员永远都不会说的几句话

作为一名软件工程师和一个有着12年经验的项目组领导人,我有很多机会和那些非常有才华的程序员做交流.通过沟通,我发现了一个很有意思的现象,那就是下面这些话几乎从来没有从这些令人膜拜的程序员嘴中说出来过. “我习惯于使用______,但我不知道它是如何工作” 杰出的程序员源于自己的好奇心和不断的探索,这样才掌握了一项项非凡的技能.他们会仔仔细细研究事物运作的原理,即使这些信息可能永远也不会派上用场.目前我们还不知道这种深入挖掘是一种选择意识还是强迫行为,但是这似乎已经成为了所谓人才的特质. “___

这几款软件程序员应该都遇到过

巧妇难为无米之炊,再牛逼的程序员也离不开编码软件来协助,那么刚入行的程序小白的疑问来了:优秀程序员的电脑里面都安装了啥呢?别着急,今天为你彻底扒拉扒拉程序大牛装机必备的软件.需要提前说明的是,我只提供介绍简介,不提供使用教程,使用教程建议到各自的官网上面学习. Navicat数据库管理工具 Navicat作为全球领先的数据库管理工具,是装机必备的软件,没有之一.为什么说它是装机必备呢?我最爱它的是操作界面,友好的简直是不要不要的!Navicat几乎所有的程序员都在用,它的专长不仅在于对数据库的管

据说,年薪百万的程序员,都是这么开悟的---笑一笑十年少

<编程之道>出自美国一位资深的程序设计师 Geoffrey James 之手. 相传作者早起打太极拳的时候,突然开悟,悟到了编程之道. 本文章我自己整理的番外篇,哈哈哈,有点儿无节操. 1.1 程序员见禅师:我学了 hello world 和水仙花数,想自己开发个操作系统,希望大师指点. 禅师笑而不语,抓来一只鸡,在鸡腿上缠根线,他一拉线,鸡立即跌倒,鸡挣扎起来继续走,禅师又一拉,鸡又跌倒,如此反复八次之多. 程序员若有所悟:"大师您是让百折不挠,再接再厉?" 禅师一笑:&

做程序员一般都需要什么学历?大厂招不招低学历?你想知道的都在这里了

我做编程已经有几年了,能不能做程序员和学历没有太直接的关系,但不意味着学习编程什么门槛也没有. 如果高中以下学历学习编程会相当相当费劲,毕竟和别的行业相比编程的门槛还是比较高,有多少人觉得对编程感兴趣,然后心头一热就呼呼买了很多书,开始学起来觉得特别过瘾,然后遇到难的地方就开始犯难,遇到的次数多了就开始退缩或者干脆把书本搁置起来,甚至下次再看看到书本的时候已经是半年之后打扫卫生时. 这里建议如果你只是对编程感兴趣,想学习一下,刚开始去看一些视频,逛一些技术论坛,了解一下.买书自学,除非你有很强的

JAVA程序员为何都在转大数据呢?原来如此

首先JAVA的精密,强大,拥有其它语言不可替代的性能和可维护性,早已经是成为最受欢迎的编程语言之一,很多人想进入IT行业,首选的第一门语言就是JAVA.但是,在未来10年肯定是大数据的天下,人工智能的爆发,将会有大量企业会进入大数据领域,而从JAVA程序员转JAVA大数据就会有天然的优势,因为目前大数据的架构基本都是用JAVA语言完成,未来10年,JAVA大数据的需求量会越来越大. 现在学习JAVA的小伙伴,如果想以后不被淘汰,将来势必会进军大数据行列,根据目前的行业动态,JAVA程序员由于发展

月薪过万的程序员,都掌握了什么编程语言?

写给想要入行IT业的朋友,职业选择的背后,更多是抉择而不是选择,选错一件衣服可以重来,而选错一个行业,选错一个岗位所面对的结果,是非常让人痛苦的. 那么对于一个想要入行IT的新人,怎样选择一个前景好的编程语言十分很重要! IT为什么吃香,看这里就明白了 既然为的是满足职业发展,那一定是跟公司的需求相关,我们按照公司的逻辑来看分为四个大类: 想法层:产品经理.UI设计.策划: 实现层:Web前端.PHP.Java.C++.iOS.Android.Python: 维护层:Linux运维.Web安全.

任何优秀的程序员, 都有早逝的风险

本文取材于<程序员健康指南>主要由于我最近眼睛干涩,背部疼痛,所以进行了一些研究,并分享出来,原书pdf版本在文末 关于健康的文章其实只需要看一篇即可,看多了反而太杂无法坚持,本文去掉了书中的一些比较麻烦的方法,并提供一些有帮助的软件,方法不会太复杂,只要有一颗希望健康的心即可 目录 问题 习惯 散步 站着 身体部位疼痛 眼部疼痛 头部疼痛 背部 or 手腕疼痛 总结 & 资源 问题 首先,有以下问题,如果看这篇文章你中了其中一条,那么你已经有亚健康的风险了 爬完一层楼梯,你是否会喘不

看看我们的程序员平常都爱看些什么好书?

今天组内开会,大家顺便花了20分钟一起讨论了我们程序员业余时间一般看了那些自己印象比较深刻的好书.一方面可以通过讨论了解有哪些好书可以帮助我们当前的工作:另外一方面,其实有的时候,通过了解员工平常读什么书,就可以了解这位员工平常的兴趣爱好,这对一些新加入的员工了解老员工的兴趣爱好从而快速融入当前的Team中还是有一些帮助的(因为能找到共同的话题):而且对于我们项目管理者来说,这些兴趣爱好也可以成为我们工作中沟通的基石.大家在管理团队的时候,可以试试这个方法.下面是我们讨论的结果,我记录了下来,仅