[译] 作为开发者,如何高效的利用时间工作进步

2017-01-14 10:23:16来源:http://www.jianshu.com/p/6462d0826dc5作者:siegen人点击


原文链接 : Finding Time to Become a Better Developer(需科学上网)



原文作者 : Bill Sourour



译者 : Siegen





(译者注:信息爆炸的时代,要学习的东西越来越多 ,如何从中选择出有价值的东西,如何高效的利用时间,这是每个人都该深思的问题。 Bill Sourour的这篇文章对我有一些启发,因此翻译了这篇文章,希望对大家能有所帮助。)



这没有你想的那么困难

没有时间做任何事。至少你是这样感觉的,不是吗?没有时间学习所有你认为需要学习的东西,来让你保持在技术前沿。没有时间回顾,去重构那些糟糕的代码,毕竟它已经能运作了并且截止时间也在迫近。没有时间为所有的代码写单元测试。没有时间为下一个接替你维护项目的同事写文档和注释。没有时间思考,没有时间呼吸,没有时间!


好的······如果你用一点时间阅读这篇文章,那么我可以保证你会为那些重要的事情找到更多的时间。


我过去一直以为成为一个杰出开发者的唯一办法是工作到疲倦。我的健康、友谊和家庭都因为这个而倍受挫折。理解了下面关于时间管理的5个真相拯救了作为开发者的我。


1. 你不需要学习所有的新东西来使你保持在技术前列。

你不需要

一个好的开发者中总是保持学习是没有问题的,但是为了保持领先的状态,你专注于学习的内容会对你花费时间的数量产生巨大的影响。


“旧的事物死去了,新的事物长存,虽然它也将变旧。”


首先,不要被各种技术博客每37秒宣布一次的新标准所迷惑。大部分新的技术、框架和特性根本不会得到任何真正的认同,你也不需要去了解它们。那些确实会兴起的东西会用很长的时间去获得认同,而不是那些发明新技术的人简单的在博客上陈列来让你相信。公司是因为他们大量的技术积累而被投资的,而不是一些小的新技术点,他们不可能很快发生变化。所以,放松,你的饭碗还是安全的。


按照下面的优先级顺序,把你的学习内容聚焦在三个方面。



基础知识——当你真正的了解了底层的基础,你可以很轻松的学会新的技能。举个例子,如果你深入理解了JavaScript,你可以用很快的速度掌握任何新的JavaScript框架。如果你深入理解了面向对象编程,你也可以很快的掌握一门新的面向对象编程语言。深入学习基础内容会让你的学习效率提高10倍。总是聚焦于提高基础知识的掌握程度而不是其他东西。



你使用最频繁的技术点的新版本或者新特性——有一些技术你可能每天都在使用,这些都是你吃饭的家伙。当这些工具的新版本发布了,花时间去学习它们是值得的。



由市场领导者支持的热门技术——如果一个好的大型公司像Google, Facebook, 或者Microsoft发布了新东西,并且它引起了热议,那么深入的了解它是值得的。曾经有101个JavaScript框架竞争想获取开发者的认同,然后Angular和React框架出现了,把之前的101个框架从人们的视野里抹去。我不是说没有例外,一个小公司的产品可能会产生巨大的影响,但是在绝大多数情况下,无名的技术仅仅是噪音。



学习时间应该成为你的时刻表的一部分。为每天的学习设置一个具体的时间段。不用太久,仅仅每天25分钟的阅读和实验都能使你快速的成长。


2. 写好的代码比写坏的代码花费的时间要少,只是我们很难意识到这点。

时间是一个平面圆

你可能觉得当你为一个特性运行起来一段代码并且它起作用了,就该结束这段内容了。但是实际上,这只是你时间投入的一个开始。花费在一个新特性的时间还应该包括之后的调试和因为糟糕代码而不得不进行的重构。当你开始意识到这方面时间投入的时候,很明显,长远看来更少的错误以及更好的设计是一个值得花时间去做的事情。


为了减少你代码中的错误,获得更好的设计,有两件事是你可以做的。



使用测试驱动的开发模式。首先写测试用例,然后写满足这个测试的代码。这不仅会减少代码出错的概率还能改善代码的设计,因为当你不得不调整代码的结构使得它可以测试的时候,你会写出更小更简单更少依赖的方法。



使用一个迭代的设计方法。在你让代码可以工作之前不要尝试花费时间让代码完美。你永远都不能在你的头脑里让它完全正确。你不得不用手指敲击键盘,制作出可以正常运行并且符合预期的代码。问题在于开发者们容易犯两个常见错误中的一个;他们要么花了太多的时间思考导致没有时间真正的去完成,要么就是不花时间去改善他们刚完成的解决方案。遵守Kent Beck的名言并且按照这个顺序进行:“让它运行起来,让它运行正确,让它更快”。



3. 每周工作7天,每天工作24小时不会使你成为英雄,但是管理自我预期可以。

从工作回到家,是时候工作了

这种做法几乎毁掉了我。我过去习惯于同意我的老板或者客户提出的任何疯狂的时间表。我害怕说不。我害怕让任何人失望。我做一切的事情来让工作取得进展。我
曾经睡在我的办公桌下,在40多个小时马拉松式的编程工作期间喝了大量的咖啡。


一开始我是一个闪亮的明星。我得到了巨大的鼓励,我感觉自己是个英雄。但我设置了一个不可能长久的自我预期。像这样工作是无法维持的。最终,我开始疲倦,生病,错过了截止时间。我开始被别人认为是不可靠的。这真是个坏消息。我渐渐意识到,真正的英雄应该始终如一的可靠。他们说他们能做到的事情,他们做他们说过的事情。成为这种英雄的唯一方式是管理自我预期。


你需要控制时间表以便于你能总是及时的完成高质量的工作。一开始,这是相当困难的,因为这意味着你不得不说不,不得不去拒绝。


一开始,你的老板或者客户会为你的抗拒而惊讶,但是一旦你展示出你的可信和可靠,一切都会改变。


同时,其他的开发者将会延误时间,交出马虎的工作成果或者没有完成工作变得不可靠。然后你将会变成你团队里真正的英雄。实际上,意识到这点使我在我的工作领域里成为了最好的一个需求顾问。我已经为我的工作质量和守时建立起了杰出的声望,因为我积极的管理自我预期。


4. 不是所有投资在改善代码上的时间都有同样的回报率。


花时间是一种投资。像所有的投资一样,期待一个投资回报率是有理由的。你应该至少获得等同于或者超过你付出的价值。


我们过去谈论“让它运行起来,让它运行正确,让它更快”。这是一个好的名言,但是也有一个陷阱:“正确”并不意味着完美,“快”也不意味着尽可能的快。


“正确”意味着代码始终运行正常并且容易重构。“快”意味着代码运行的速度不会对综合的用户体验造成负面影响。最重要的事情是你的用户感觉你应用运行起来是快的。


所以,不要浪费时间尝试去优化一个几乎不用的功能或者尝试节省比人类眨眼(大约300毫秒)的还要短的时间。不要浪费时间尝试去重构已经运行正确、结构良好的代码,因为你很可能不得不返回到原来的版本,采用你之前已经做好的内容。


5. 定下休息时间表让你更有效率。

朋友,放松一下吧

了解和接受这件事对我来说是非常困难的。不把所有的时间花在工作上,而是去定下休息时刻表,怎么可能变得更加有效率?但是,这是真的。


Allison Gabriel是弗吉尼亚州联邦大学的一名助理教授,他主要研究工作需求和雇员工作动机,根据他的研究显示,“有大量的调查研究表明我们的认知资源相当的有限,当你一直消耗认知资源,你的效率会变低。如果你已经耗尽了认知资源,我们会看到效率大幅度降低,你会发现很难去坚持,去解决问题”。


长时间工作会导致压力反应,如精神压力、疲倦以及消极的思想,这些会耗尽你的精力。


大脑自我控制保持自律的能力在每天的每一次练习中逐渐衰退,这是必须要弥补的损失。否则,保持专注,解决问题会变得非常困难。


你的头脑和身体需要休息时间,无论你喜不喜欢,他们都需要休息时间。所以,定下休息时间表。真正的去计划并且把计划的休息时间放到你日程表上。这使得你可以毫无愧疚的去充分休息。这样会使工作时间更加容易忍耐,因为你知道你即将会有一段休息时间。


更多的帮助和资源

为了进一步的帮助你,我已经放了一系列免费并且有用的资源(视频,教程和网站)可以帮助你更好的了解和实现我向你分享的这些观点。你可以在这里获得它。


我希望你发现这篇文章是有价值的。别忘了通过推荐和分享它来帮助其他人。




最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台