前言

PS. 本文只描述IT行业。

博客园果真人气比较高,我之前准备写个 "领域驱动系列",然后感觉大家不感兴趣,看来用的人不多,所以一直没动力续,但是昨天写了 [加班有罪] (http://www.cnblogs.com/cnblogsfans/p/4431160.html), 却收到了很多个赞,让我感到有点意外。

我今天看了很多评论,感觉很欣慰,大家其实对加班的看法和担忧其实都是正确的,但是很多人可能忽略了一些前提,如果盲目的下班就走,数着秒下班,那我写这篇文章就有罪了。

为什么加班是有罪的,[加班有罪] (http://www.cnblogs.com/cnblogsfans/p/4431160.html) 这篇文章已经做了较多的阐述,那么光说加班有罪是不够的,公司或者老板可以提倡不加班的文化,但是如何才能做到不加班?直接一刀切,到六点就赶大家走这样肯定是不够的,可能很多公司如果现在立马这么做,可能就倒闭了,员工可能还得找工作。

加班有罪的对立面也不一定是正确的

我们很多人想问题,可能是非黑即白,我们提倡不加班,但是我们要想如何不加班,如果我们技术水平低,别人1个小时做完的,你可能一天也做不完,如果你写的程序员出现了紧急的bug, 如果你上班时间在看电影,QQ等,你再不加班把任务做完,哪个公司敢用你? 我前篇文章说过,并没有说你一分钟都不能多待,比如每个月有8个小时的加班,我认为都是正常的。

如果你上班时间也没有好好干,那么不加班更有罪,因为你是上班时间休息了。

如何不加班?

我们实行敏捷很多年了,但是同样有很多人一说到敏捷,就只知道SCRUM, 没有抓住敏捷的本质。就算过程用SCRUM, 那么其实也就是一个管理层或者从上到下的东西,但是并没有对程序员每日的工作有多大的帮助。我们同样需要很多的工程实践,技术成长等来提高我们每天的工作效率和质量。

那么我认为从程序员的角度,如果你想理直气壮的准点走人,那么一下几点可供参考。

  • 工作时间要保证

    我个人觉得上班时间工作是天经地义的,可能有的人羡慕Google等有更宽松的时间,羡慕很多公司都不需要工作8小时,但是前提先想一想,我们是否有那些公司的工程师的能力和效率,如果没有,还是在上班时间好好工作,如果有,与其羡慕,不如赶紧加入你羡慕的公司,前提是人家要你。

  • 上班的时间要用来工作

    我们很多人上班时间一会儿刷下微博,一会儿看看微信,尤其是QQ闪个不停,还有号称是要学习的,加了一堆技术的群,美其名曰学习技术,我也加了些群看看,实际上发现基本都在里面灌水。原因很简单,有的时候问个问题,基本问问题的人描述不清,别人怎么回答? 问问题,你就不能上StackOverflow吗? 原因是自己只会用百度,好吧,我无话可说。

  • 进公司隐瞒自己技术水平

    现在IT行业有个怪圈,我觉得迟早得拨乱反正,本来作为一个程序员答答题,上机写写程序等是非常正常的,但是你要是这样来招人,很多人就很不乐意,说我没那么多时间,我只给公司请了2个小时假来面试,你看着他的简历应该是会的样子,这就极其考验面试官,很多时候越是写程序不行的,越是最比较厉害,尤其是看到概念比较多的。你还真不容易判断出他不行,但是一进来,你发现就完全不行,ASP.NET 你让写个HttpModule不会,MVC你让统一地方处理一下异常不会,你说做权限控制,他写不了一个Filter, 你说WCF 想扩展功能写个Behavior 他说我们用的时候就是顶一个接口标记Contract, 深入的没看过,总之各种不行。然后你布置个很简单的任务,就是说一个高级程序员必须会的,他得花时间再学习,然后才能有产出,你说怎么办?上班时间都在学习,你说活还干吗?

    针对上面的情况,一种方案是直接不用这个人,第二种就是要争取个人同意让他多干一会儿,不然你还得背上黄世仁的名,其他人看到你说的不加班是假的。

  • 降低自己的薪水,给自己留学习的时间

    我们有的时候,确实进来后,发现周围的人都比自己强,而自己的薪水也和他们差不多,如何衡量,就是如果你的薪水比市场其它公司要高不少,而且你进来后发现你比别人差不少,就证明你要多了,这样公司可能按同级别薪水的人要求你,你的产出肯定是比别人少,这样你想完成任务,就得加班,那么就到了我说的恶心循环,最好的方式就是主动降点薪水,然后留下班后的时间给自己学习,公司也不会对你要求太多。其实这样,你的收益更大。

  • 提高工作效率,改变工作方式
    我们很多人,做事方式和方法有问题,比如连需求都没搞清楚,就开始写代码,然后删了又删,改了又该,这样很简单的一个东西,必然要做很长时间。有的人代码写完后自己下次都要想很久才能知道啥意思,这就需要我们多改进自己的工作方式,多向效率高的程序员学习等。 同时有很多东西提高效率,比如你是否可以并行的做一些事情来提高效率,比如使用Resharper就可以大大提高效率,写单元测试可以避免你为了测一个方法每次都要把系统跑起来debug呢?持续集成可以帮助你把你修复bug更靠近你产生bug的时候等等。

  • 下班后多学习

    上篇文章我也提出了,不加班不代表下班后不学习,我招人的时候,经常问的一个问题,就是你如何提高自己技术水平,很多人回答了我一个无法反驳的答案就是:"通过做公司的项目学习",但是这是远远不够的,一般如果只是这样,除非你天赋异禀。我是不相信你这样就能够成为大牛的。 比如我们需要了解工程实践,了解新的技术,了解一切帮助提高质量和效率的东西,了解一切提高沟通和管理的书籍等。

当我谈 "加班有罪" 我在谈什么?的更多相关文章

  1. 2017云计算开源峰会 你是想听Linux谈开源还是想听OpenStack谈开源?

    2017年,善于把握机遇的企业们不是正在开源,就是走在去开源的路上-- 开源是不是就意味着免费? 开源企业就是要当"活雷锋"? 开源项目究竟如何运作?如何参与开源社区? 如何获得最 ...

  2. [Linux容器]当我们谈容器的时候,我们在谈什么

    Docker在当下很火,那么,当我们谈Docker,谈容器的时候,我们在谈什么? 或者说,你对Docker,对容器了解吗?容器,到底是怎么一回事儿? 这篇文章着重来讲一下Linux容器,为什么强调Li ...

  3. 浅谈async、await关键字 => 深谈async、await关键字

    前言 之前写过有关异步的文章,对这方面一直比较弱,感觉还是不太理解,于是会花点时间去好好学习这一块,我们由浅入深,文中若有叙述不稳妥之处,还请批评指正. 话题 (1)是不是将方法用async关键字标识 ...

  4. Dart Essentials(读书笔记)——这本书非常大篇幅都在谈AngularDart,Zones概念没谈到

    Dart Essentials 文件夹 1 Getting Started 2 Practical Dart 3 The Power of HTML5 with Dart 4 Developing a ...

  5. TODO:浅谈pm2基本工作原理

    TODO:浅谈pm2基本工作原理 要谈Node.js pm2的工作原理,需要先来了解撒旦(Satan)和上帝(God)的关系. 撒旦(Satan),主要指<圣经>中的堕天使(也称堕天使撒旦 ...

  6. 浅谈RecyclerView(完美替代ListView,GridView)

    Android RecyclerView 是Android5.0推出来的,导入support-v7包即可使用. 个人体验来说,RecyclerView绝对是一款功能强大的控件. 首先总结下Recycl ...

  7. 浅谈FloatingActionButton(悬浮按钮)

    一.介绍 这个类是继承自ImageView的,所以对于这个控件我们可以使用ImageView的所有属性 android.support.design.widget.FloatingActionButt ...

  8. iOS应用架构谈 开篇

    iOS应用架构谈 view层的组织和调用方案 iOS应用架构谈 网络层设计方案 iOS应用架构谈 动态部署方案 iOS应用架构谈 本地持久化方案 缘由 之前安居客iOS app的第二版架构大部分内容是 ...

  9. 转载淘宝UED响应十日谈

    响应式十日谈:楔子 响应式十日谈第一日:使用 rem 设置文字大小

随机推荐

  1. 3*n/2 - 2

    求区间范围最小值最大值 用分治法(Divide and Conquer)求n元数组最小元与最大元,当n=1时,不用比较,最大元和最小元都是这个数:当n=2时,一次比较就可以找出两个数据元素的最大元和最 ...

  2. 攻城狮在路上(陆)-- 提交运行MapReduce程序到hadoop集群运行

    此种方式不能直接在eclipse中调试代码. 首先需要在src下放置服务器上的hadoop配置文件:core-site.xml\yarn-site.xml\hdfs-site.xml\mapred-s ...

  3. 【转】SqlServer将没有log文件的数据库文件附加到服务器中

    原文链接: http://www.cnblogs.com/xdotnet/p/attach_sqlserver_database_file_without_log_files.html 原作者删除了原 ...

  4. android中 onResume()方法什么时候执行 ??(转)

    转自: onResume是在启动activity启动之后才能执行的,也就是恢复执行.程序正常启动:onCreate()->onStart()->onResume();正常退出:onPaus ...

  5. SQL Server中的Merge关键字

    本文转载地址:http://www.cnblogs.com/CareySon/archive/2012/03/07/2383690.html 简介 Merge关键字是一个神奇的DML关键字.它在SQL ...

  6. 浩瀚技术团队... 安卓智能POS移动PDA开单器 开单器 进销存系统 进销存系统

    浩瀚技术团队... 智能POS移动PDA开单器 开单器 进销存系统 进销存系统 点餐 会员管理 会员管理 深度解读 手机APP移动办公到底是什么? 快速打单POS·不仅仅是快那么简单!  

  7. LeetCode 389. Find the Difference

    Given two strings s and t which consist of only lowercase letters. String t is generated by random s ...

  8. solr 查询 实例分析

    solr索引查询接口:http://localhost:8080/solr/query 首先了解一下查询参数的含义. q Solr 中用来搜索的查询.可以通过追加一个分号和已索引且未进行断词的字段(下 ...

  9. 【Oracle】dba_jobs字段说明

    dba_jobs 1 字段(列) 数据类型 描述 JOB NUMBER 任务的唯一标示号 LOG_USER ) 提交任务的用户 PRIV_USER ) 赋予任务权限的用户 SCHEMA_USER ) ...

  10. [转] 前后端分离开发模式的 mock 平台预研

    引入 mock(模拟): 是在项目测试中,对项目外部或不容易获取的对象/接口,用一个虚拟的对象/接口来模拟,以便测试. 背景 前后端分离 前后端仅仅通过异步接口(AJAX/JSONP)来编程 前后端都 ...