最近听人谈起程序员的加班问题,忙到那么晚,真有那么多事情要做么?当然每个人遇到的情况不一样,给到的答案也是不一样的,这里针对个人所遇到的情况,谈谈对加班的一些看法。
任务量是不是很多?
答: 是的。因我们最近涉及到改版,将旧有的逻辑全部以新的格式重新书写;以及引入的新的框架、架构,有许多的东西要学,这样就无形中也增加了任务量。但这就是加班的主要理由吗?
核心问题-效率
结合个人在做任务开发时所遇到的问题以及所浪费的时间,思考了许久。发现真正的问题,是在做任务写代码时,是否是以较高的效率来完成并解决问题。但说起效率这一点,又是有些大的概念,具体以下几个方面谈起:
1. 分解任务,理清思路
- 我们在拿到任务时,不能草率对待,直接开始上手。而应该对过大的任务做一些任务分解,分解为一个个在一天内以小时为单位可以完成的任务。另外,对需要花时间调研的,也要将其分解为任务。
- 在每个任务的开发之前,一定要确保思路的清晰。如何保证,可以采取一些工具来帮助,例如,思维导图来帮助我们记录我们在完成任务时,需要考虑的细节点,其清晰的结构对我们任务的理解是极大好处的;若是当前的任务可以涉及到的逻辑比较复杂或者状态比较多的话,这是就得考虑使用UML建模工具,其中用来记录对象的状态变换的状态图,理清程序的逻辑的活动图,清晰对象交互的时序图则是我们常用且必不可少的。
- 万事开头难。可能在开始进行这些工作时,我们会不熟悉,而感觉比较麻烦,又或者画出的图带着些缺陷。但请确信,坚持下去并慢慢总结自己遇到的问题,会对我们开发或者做事会带来极大的便利的。毕竟,这时你要是做的很好了,就可以直接作为一份开发文档了,比起代码来说,不是容易理解多了吗?
2. 预留时间,以防踩坑
对若是对任务的完成把握性不大,可以多预估一点时间。但当我们的技能越来越熟练的时候,对任务的时间度把握性也会愈加的精准。
3. 及时饶坑,任务优先
在遇到问题的时候,若是在预定的时间内没得到解决的话,则必须要进行求助,或者将其先放置,完成其他任务优先。
4. 深入学习,防患未然
这样,下班之后的时间,我们便可以去充分地利用。对工作中所需要的技能点去做一些深入地学习。又或者对工作中没能得到解决的任务和困难点,做一些研究总结性的东西。又或者对知识点去进行系统性地学习。这里的时间,是我们提高和丰富自己的时候,需要充分地利用。
5. 番茄工作,劳逸结合
人的一天的工作精力是有限的,则需要对自己的精力进行一些规划。在自己高效地时间,尽可能地完成主要的工作。同时,也要进行工作一定的时间,休息几分钟,调整一下自己的状态。
总结
上面谈及的工作效率的一些点,是结合了自己的经验之谈,如有问题,欢迎指教讨论。另外,还有一些想表达的是,加班是相当不必要的,毕竟工作不能占了我们生活的全部。工作时间之余,应该是我们提高自己,提升并丰富自己生活的质量。