You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
使用迭代的设计方式 在你的代码能真正工作之前,不要花时间试图让你的代码变完美。你永远不可能在脑子里把它设计的完全正确。你必须敲击键盘来生成实现预期功能的代码。问题是程序员尝尝犯两个常见的错误:要么时花了太多时间思考而没有足够的时间动手,要么就是不去优化他们最初的方案。遵循最初由Kent Beck提出的口头禅:“make it work, make it right, make it fast” —— 按照话中的顺序。
原文链接 https://medium.freecodecamp.com/finding-time-to-become-a-better-developer-eebc154881b2#.t1uuonhtf
没有时间做任何事。这就是你感受,不是吗?没有时间学习你觉得你需要学会以跟上潮流的知识。没有时间回过头去重构那些丑陋的代码。它至少能工作,何况截止日期马上就要到了。没有时间编写单元测试。没有时间为今后要维护你代码的伙计编写文档或注释。没有时间思考。没有时间呼吸。没时间!
好吧...如果你能花时间阅读本文,我保证你自己会为那些重要的事找到更多时间。
我曾经以为成为一名伟大程序员的唯一途径就拼命工作。我的健康,友谊,家庭都因此受到影响。理解以下5个关于时间管理的真相拯救了我。
1. 你不需要为了赶潮流而学习每一个新事物

你不需要毫无疑问一个优秀的程序员应该保持不断的学习,但是你把学习的焦点放在哪儿能在很大程度上影响你需要花费的时间。
首先,不要被出现在那些每37秒就宣布一个新标准的博客上的头条所愚弄。这些新技术,新框架,新特性中的大多数永远都不会被认可与采纳,因此你根本不需要了解它们。那些真正能够脱颖而出的也会经历比博客圈和发明厂商宣传的长的多的时间才会被采用。公司投资于他们的技术栈 —— 和那些小创业公司不一样,他们不可能说变就变。所以,放松一下,你的职业生涯很安全。
把你的学习聚焦在三方面,以下面列出的顺序为优先级:
学习时间应该是你日程安排的一部分。每天抽出一点时间来学习。这不需要很长的时间,即使是每天花25分钟阅读和练习也可以快速积累。
2. 编写优秀的代码比编写糟糕的代码需要更少的时间,但感觉上并不是这样

时间是一个扁圆你很可能喜欢开发完几个新功能后当你试着运行并且发现似乎可以正常工作时那一刻的感受。但那只是你时间投入的开始。在一个功能上投入的时间包括了后期调试的时间,重构花费的时间以及解决由于开发时的不良设计导致的其它问题的时间。当你开始以这种方式认识你的时间投入时,你会发现,从长远来看,更少的错误和更好的设计是值得投资的。
你可以做两件事来减少代码中的错误并实现更好的设计。
3. 7x24的工作不会让你成为英雄,管理预期才会

下班到家,开始工作!这一条几乎杀了我。我曾经同意并承诺过我老板或客户提出的任何疯狂的时间表。我害怕说“不”。我害怕让任何人失望。为了交付我可以做任何事。我曾经睡在办公桌下,有过多次长达40+小时的马拉松式的编程经历。
起初我是一颗耀眼的明星。别人对我大加赞赏,我感觉自己像是个英雄。但是我设置了一个不可能实现的预期。不可能长久的像那样工作。最终我开始疲惫不堪,生病并错过截止日期。我开始得到不可靠的名声。这是个坏消息。
最后我终于明白真正的英雄是那些持续可靠的人。他们说到做到。要成为那样的英雄的唯一途径就是管理预期。
你需要控制时间表以便总是可以按时交付高质量的工作。起初这会非常困难。这意味着必须说“不”并把需求打回。
在最开始,你的老板和客户不会被你的拒绝刺激到。但一旦你证明自己是值得信赖的,一切都将开始改变。
随着时间的推移,其它程序员会迟到,交付马虎的工作或是筋疲力竭变得不可靠。这时你就会成为团队中真正的英雄。事实上,学会这一点让我成为我的领域里最受欢迎的咨询顾问。由于狠抓预期管理,我在质量和时效性方面建立了良好的声誉。
4. 不是所有花在“改善”代码上的时间都会得到相同的回报
花费时间是一种投资。和所有投资一样,投资回报率是一个合理的期望。你的所得至少应该和投入一样多,希望是越多越好。
我们已经谈论过“make it work, make it right, make it fast”。这个是不错的口头禅但这里有一个陷阱:“right”并不意味着完美,“fast”也不是说越快越好。
“Right”的含义是代码可以正常工作并且容易重构。“Fast”意味着执行速度对整体的用户体验没有负面影响。最重要的是你的程序让用户感觉起来很快。
所以,不要花时间尝试降低一个几乎不被使用的函数的执行时间,或是试图把一个比人眨眼(大约300ms)还快的函数的速度再提升几毫秒。也不要仅仅是因为学了一点新技术/方法就说服自己回过头去浪费时间重构那些组织良好,正常工作的代码。
5. 安排好休息时间可以让你更高效的工作

老兄,放松一下这一点对我来说很难理解并接受。当你没有把全部时间放在工作上时,你怎么可能更有效率呢?好吧,这是真的。
拒Allison Gabriel —— 弗吉尼亚联邦大学一位研究工作要求和员工积极性的管理学教授 —— 所言:“有许多研究指明我们的认知资源是有限的。当你不断的消耗资源时,你不可能始终保持最佳状态。如果你的这些资源被耗尽,就会出现能力下滑。你的最佳状态持续时间会变短并且在解决问题时会遇到困难”。
工作时避开诸如紧张,疲惫和消极情绪这样的应变反应。它们会耗尽你的注意力,你的生理和心理上的资源。
在一天之中,大脑自我调节,遵守纪律的能力随着每一次自我控制减弱。这是一种必须得到补充的资源损失。否则要保持注意力并解决问题会变得越来越难。
你的头脑和身体需要休息,不管你喜不喜欢它们都会这么做。所以,请安排好休息时间。在你的日历上安排真正计划好的休息。这会让你休息时不会产生内疚的感觉。这会使工作时间更容易忍受,因为你知道有一个安排好的休息时间在等待你。
更多帮助和资源
为了更好的帮助你,我整理了一份免费的实用资源(视频,指南,网站),它可你帮你更好的理解并实践我今天给你展示的内容。你可以在这里获取。
The text was updated successfully, but these errors were encountered: