作为一个软(ku)件(bi)工(de)程(ma)师(nong),你有没有觉得做什么事都没时间?没时间学习新东西,没时间去回顾、整理原来写的烂代码,没时间写单元测试,没时间给接管你项目的家伙写文档,没时间思考,没时间喘气,没!时!间!
额……如果你肯花点时间看看这篇文章,我相信你会明白应该把时间花在哪。
我曾以为成为一个技术大牛的唯一途径是玩命地学习与工作。这个想法差点毁了我。身体越来越差,和家人与朋友越来越疏远,很快我就撑不住了。后来我开始反思,发现自己的时间安排极为不合理,并逐渐悟出了下面这5个道理,这才让自己从那种高压状态中解脱出来。
不要因为怕自己落伍而去学习新东西
一个优秀的开发者始终在学习,这一点毋庸置疑。诚然,旧的技术终会被淘汰。但是新的技术终有一天会变成旧的。因此,没有必要一味地去追求最新的技术。
平均每37秒就会诞生一个新的标准或框架,你不可能把它们都学会。很多新技术、框架或者新特性对你来说都不是必需的,你没必要非得了解它们。真正有价值的技术需要经过社区和市场一段时间的打磨才能出现。IT公司通常都会重点培养适合于自己的技术,没有哪个公司会一拍脑门让自己的代码去适配某个全新的框架。因此你也不用太担心因为某些新技术而被裁员。你需要关注的是这三类知识,按照优先级排列如下:
(1)基础。基础是重中之重。当你掌握一门基础知识后,你可以快速掌握其相关的技术。比如如果你非常熟悉JavaScript,那么基于JavaScript的任何框架都难不倒你。如果你掌握了面向对象编程,那么你可以快速掌握一门新的面向对象的语言。深入学习基础能够大幅提高你的学习效率。
(2)你常用技术的最新版本。你平常用得最多的技术才是你的铁饭碗。如果它们出了新的版本,那么你有必要花时间去学习一下。
(3)大公司推崇的技术。如果一个非常知名的公司(如谷歌、脸书和微软)发布了一个新的技术并不断地对它进行维护,那么这个技术就值得你去关注。曾经社区里有成百上千个非常火的JavaScript框架,结果Angular和React的出现瞬间抢走了他们的风头。
好好规划你的学习时间,每天安排一段时间来学习。这段时间不一定很长,哪怕只有25分钟也能使你有所成长。
写出高效的代码比一般的代码要花更多的时间
当你运行完程序并发现功能实现的时候,你感觉工作已经完成了,实则不然。实现一个新的功能除了编写新的代码以外,还包括对该功能相关的其他部分已有代码的调整与优化。当你发现你的一部分时间花在完善代码的设计上了,那么从长远角度来看你遇到的错误会更少一些。
要想减少你的代码的错误并优化设计,你需要注意以下两点:
(1)先准备好测试环境,然后再开发。先将测试功能配置好,然后再编写符合测试标准的代码。这样既可以减少bug的产生还能优化你的代码思路,因为你在编写代码的时候就严格遵守更加合理和规范的标准。这会使你的代码变得简洁、高效。
(2)迭代完成你的工作而不是一步到位。在你的代码实现需求之前不要花时间去完善它。你永远也不可能使你的代码处于完美的状态。你优先要做的就是让你的代码完成指定的功能。通常情况开发者会犯这两个错误:要么花了太多时间思考而没有充足的时间去实现,要么没有在设计最初的方案上花足够的时间。遵循Kent Beck说得这句话:
“先让它生效,再让它正确地工作,最后再让它更高效”。
7*24小时的工作不会让你成为佼佼者,合理的时间安排才是最重要的
这个经验源于我自身的教训。我曾经为了让老板和客户满意而疯狂地工作。我害怕说“不”,不想让其他人失望。我尽我所能去完成工作,曾经大量摄入咖啡因通宵地工作,困了就直接睡在我的办公桌上。
起初我是全公司的楷模。我得到老板的赏识并感觉风光无限,前途一片光明。这种并不长久的过度表现使其他人对我产生了过高的期待,很快我就撑不住了。结果我的身子垮了,经常生病,耽误了工作。公司的人变得不再信任我。
后来我渐渐明白真正的佼佼者是那些一直可靠的人。他们保证的事一定会做到。要想成为那样的人就必须认真规划自己的时间。
你必须牢牢把握自己时间的控制权,在约定好的期限即将到达的时候高质量地完成你的工作。要想做到这一点起初会很难,因为你需要对超出你能力范围的任务说不。
刚开始,你的老板和客户可能不太会在意你。但是一旦你建立起靠谱、可信的名声后,一切就都不一样了。随着时间的推移,其他开发者都会渐渐显露疲态,变得不再那么可靠,而你则会脱颖而出,成为团队里的佼佼者。我就是这样成为了行业翘楚。我很好地协调了自己的时间并调整他人对自己的期望值,因此建立起了高质量和高实效的好名声。
不是所有的付出都会有回报
花时间也是一种投资。和其他的投资一样,你非常期待投资会有回报,希望在回本的基础上有所收益。
我之前曾提到“先让它生效,再让它正确地工作,最后再让它更高效”这句话。但是不要误解,这里的“正确”不代表完美,“高效”不代表追求极致。“正确”意味着你的代码能够准确地实现功能并易于维护。“高效”意味着不影响用户体验。最关键的一点是你的应用要让用户感觉很快。
因此,不要纠结于优化一个基本上不用的函数,也不要为了仅节省几毫秒而去修改一个已经比眨眼(大约300毫秒)还要快的功能。不要因为你学了一个新的技术或方法就把你之前写的功能正确、结构完整的代码推翻重写。
按照时间表去工作可以使你更加高效
起初我很难理解这一点。你不将你的精力全部投入到工作中也能做到高效?恩,这是真的。Allison Gabriel是弗吉尼亚联邦大学的管理学教授助理,主要研究工作需求和员工动机。她认为:“很多研究表明人的认知能力是有限的,当你不断地去耗费你的能力时,你并不能达到最佳的工作状态。当你被自己榨干时,你的效率会大幅下降。”
永远不要在压力非常大的时候工作,尤其是你非常疲劳、情绪不好的时候。这些不安因素都会让你分心,从身心两方面对你造成不良影响,降低你的工作效率。
人脑的自控能力好比是一种资源,当你进行自我控制时,这个资源会被消耗一部分。如果你的自控能力被大量消耗的话你就不能集中注意力,自然就不能高效地工作了。
不论你是否乐意,你的身心都需要一个休息的时间。因此在每天的时间表里都要安排休息的时间。严格按照时间表的休息时间去休息,不多也不少,这样可以让你在充分休息的同时不感到内疚。指定明确的休息时间可以让你以更加自如的心态去工作,因为你知道你有休息的时间而不是无休止的工作下去。
结语
了解了这五个经验,相信你已经明白了应该如何安排自己的时间。合理地安排你的学习、工作与休息的时间,制定出详细的时间表并严格按照它执行。学习你应该学的、花时间在一些必要工作上、该休息的时候好好休息。希望你也能在自己的领域崭露头角,成为一个真正的大牛~
- 本文固定链接: https://zxbcw.cn/post/5299/
- 转载请注明:必须在正文中标注并保留原文链接
- QQ群: PHP高手阵营官方总群(344148542)
- QQ群: Yii2.0开发(304864863)