[深度好文]想成为一个高效的Web开发者吗?来看看大牛分享的经验吧~外加一些自己的理解

简介: 前言:无意间浏览到此篇文章,发现这篇文章无论是对于新手程序员,还是学过几年的程序员,都是挺有帮助的。于是,在此分享,后面也有我自己的一些理解,希望能帮到更多的朋友。作为一个软(ku)件(bi)工(de)程(ma)师(nong),你有没有觉得做什么事都没时间?没时间学习新东西,没时间去回顾、整理原来写的烂代码,没时间写单元测试,没时间给接管你项目的家伙写文档,没时间思考,没时间喘气,没!时!间!额……如果你肯花点时间看看这篇文章,我相信你会明白应该把时间花在哪。

前言:

无意间浏览到此篇文章,发现这篇文章无论是对于新手程序员,还是学过几年的程序员,都是挺有帮助的。于是,在此分享,后面也有我自己的一些理解,希望能帮到更多的朋友




作为一个软(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是弗吉尼亚联邦大学的管理学教授助理,主要研究工作需求和员工动机。她认为:“很多研究表明人的认知能力是有限的,当你不断地去耗费你的能力时,你并不能达到最佳的工作状态。当你被自己榨干时,你的效率会大幅下降。”


永远不要在压力非常大的时候工作,尤其是你非常疲劳、情绪不好的时候。这些不安因素都会让你分心,从身心两方面对你造成不良影响,降低你的工作效率。

人脑的自控能力好比是一种资源,当你进行自我控制时,这个资源会被消耗一部分。如果你的自控能力被大量消耗的话你就不能集中注意力,自然就不能高效地工作了。


不论你是否乐意,你的身心都需要一个休息的时间。因此在每天的时间表里都要安排休息的时间。严格按照时间表的休息时间去休息,不多也不少,这样可以让你在充分休息的同时不感到内疚。指定明确的休息时间可以让你以更加自如的心态去工作,因为你知道你有休息的时间而不是无休止的工作下去。




结语

了解了这五个经验,相信你已经明白了应该如何安排自己的时间。合理地安排你的学习、工作与休息的时间,制定出详细的时间表并严格按照它执行。学习你应该学的、花时间在一些必要工作上、该休息的时候好好休息。希望你也能在自己的领域崭露头角,成为一个真正的大牛~

以上除前言外为转载,原文链接:

igeekbar《想成为一个高效的Web开发者吗?来看看大牛分享的经验吧~》


我的理解:

仔细阅读完上面的文章,对此文章有点小小的总结。上面的文章说了5个经验,也就是:

1、不要因为怕自己落伍而去学习新东西

我觉得更准确的说,其实应该是:不要因为怕自己落伍而去学习所有的新东西/技术。

一个人的精力与生命总是有限的,正如前文所说:平均每37秒就会诞生一个新的标准或框架。

试问,就单说这个每37秒诞生的一个标准或框架,都无法全部学来,更何况编程语言如此大的一个概念。正因为我们精力与生命有限,所以,我们要学会学习,学会挑选。

上面总结了小3点,也就是:基础常用技术的最新版本大公司推崇的技术


2、写出高效的代码比一般的代码要花更多的时间

如何写出高效的代码,在我的理解看来,这不是一蹴而就的,这需要积累,自己平时写代码的时候,就需要注意代码的高效性这个问题。

在水平有限的时候,我们可以不必追求高效。在水平提高一些后,就该注意这个问题了。在用我们自己的代码完成完整的功能后,可以对已经完整的代码去进行进一步的完善。

或者最好一开始就先设计架构好项目,对后面的开发与查错很有帮助的。

因为自己水平目前有限,无法做出更多的理解。见谅~


3、7*24小时的工作不会让你成为佼佼者,合理的时间安排才是最重要的

即使我们再怎么想努力工作,一天也只有24小时,而你能学习的,除去必须的吃饭睡觉运动,个人觉得一天能有10个小时左右的累积学习时间,那么,坚持下去,每个月你都能看到自己明显的进步了。

合理的安排时间,这个也是挺重要的,个人并不喜欢全部依赖计划行事,毕竟,总会有一点意外的。但是适当的规划,还是必要的。

例如,这一天学习什么,学多少。一周学习完哪些东西。这个月做哪些事、等等,我觉得虽然不需要详细的计划,但是,至少,明白自己要做什么,应该学习什么。而不能完全随性而为,想到做啥了就去做啥,然后到最后,啥也没真正的做好。


4、不是所有的付出都会有回报

正如此小标题所说,不是所有付出都会有回报,准确的说,这是一句人生哲理了。相信大家对此都有一些了解,我也就不再说明了。


5、按照时间表去工作可以使你更加高效

时间表这个东西,挺好的。但是最好不要把时间分成很细。

分成大概就好。而且安排在时间表上的事,不要随意去更改,可能对于一个刚开始按照时间表去做事,挺难的,但是坚持下去,无论是学习的效果还是其他例如锻炼方面的效果都会是很明显的。


最后-我的理解如有不恰当之处,欢迎指出。


本文章由[谙忆]编写, 所有权利保留。
转载请注明出处:http://blog.csdn.net/qq_26525215  ------大学之旅_谙忆的博客



目录
相关文章
|
9月前
|
存储 前端开发 JavaScript
2023年如何成为Web3开发者?详细聊聊Web3开发者的那些事
2023年如何成为Web3开发者?详细聊聊Web3开发者的那些事
276 0
|
10月前
|
机器学习/深度学习 人工智能 算法
人工智能入门指南:Web 开发者版 (5)深度学习与神经网络
本节将介绍深度学习的基础概念以及在人工智能中的应用。我们将涵盖卷积神经网络(CNN)、循环神经网络(RNN)、生成对抗网络(GAN)以及迁移学习等内容
95 0
|
10月前
|
机器学习/深度学习 人工智能 算法
人工智能入门指南:Web 开发者版 (4)机器学习算法与实践
本节将介绍常用的机器学习算法及其实践应用。我们将涵盖监督学习算法、无监督学习算法以及模型调优与性能优化等内容。
130 0
|
10月前
|
数据采集 机器学习/深度学习 人工智能
人工智能入门指南:Web 开发者版 (3)数据处理与准备
本节将介绍在人工智能项目中进行数据处理和准备的关键步骤。我们将涵盖数据收集与清洗、数据可视化、特征选择与处理以及数据集划分与交叉验证等内容。
126 0
|
10月前
|
机器学习/深度学习 人工智能 自然语言处理
人工智能入门指南:Web 开发者版 (2)基础概念
本节将介绍人工智能中的基础概念,包括机器学习和深度学习的基础知识。我们将探讨监督学习、无监督学习和强化学习等机器学习的基本概念,以及神经网络、前向传播和反向传播等深度学习的基础知识。此外,我们还会介绍一些常用的深度学习框架
76 0
|
10月前
|
机器学习/深度学习 人工智能 自然语言处理
人工智能入门指南:Web 开发者版 (1)简介
本节将介绍人工智能(Artificial Intelligence, AI)的概念以及它在 Web 开发中的应用。我们将深入探讨 AI 的基本原理和方法,并提供一些具体的代码示例,帮助你理解如何将 AI 技术应用到 Web 开发中
112 0
|
10月前
|
存储 设计模式 人工智能
Web开发者的云原生指南(8)进阶话题与资源推荐
本节将探讨云原生技术的未来发展,并推荐一些相关的社区和资源,以及阅读和学习资料。
110 0
|
10月前
|
监控 Kubernetes Cloud Native
Web开发者的云原生指南(7)云原生实践案例
本节将介绍使用云原生技术构建 Web 应用的最佳实践,并通过实际案例分析和演示来展示这些实践的应用。
107 0
|
10月前
|
存储 监控 Kubernetes
Web开发者的云原生指南(6)云原生安全
本节将介绍云原生安全的相关概念和实践,帮助您确保云原生应用程序的安全性。我们将讨论容器安全和镜像安全、Kubernetes 安全性和网络策略、访问控制和身份认证,以及日志和事件审计等重要主题
165 0
|
10月前
|
敏捷开发 Kubernetes Cloud Native
Web开发者的云原生指南(5)持续集成与持续部署
在本节中,我们将介绍持续集成与持续部署的概念以及与之相关的关键主题。我们将详细探讨构建与测试的自动化、持续集成工具和流程、持续部署工具和流程,以及持续交付和滚动升级的实践。
172 0

热门文章

最新文章