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