我作为一个web开发者的旅程始于2000年,那时我还只有21岁,我依然可以清楚地记得那些日子里激荡在我内心的感觉。如果一定要找一个词来形容的话,我觉得那是——愉悦。
我不需要担忧时间、最后期限和轻重缓急,也不需要担心生产力。我所要关心的只有一件事,那就是学习,尽可能多和尽可能快地学习。
我急急忙忙地前进不是因为时间期限这些事情,仅仅是因为这让我感觉良好,让我觉得有趣。学习如何构建东西,发现一个全新的世界让我由衷地兴奋不已。
一晃几年过去了,时间来到了2006年左右,我开始认真对待编程。我开始作为一名web开发人员参与到专业的工作中。也许你会认为这样做毁掉了我所有的乐趣,我不怪你。这无疑是一种截然不同的体验。
回首过往,我作为专业的web开发人员的旅程一点也不糟糕,虽然过程并不总是一帆风顺。对于我们许多人来说,工作是为了生活,但如果你愿意的话,工作并不会阻碍你感到快乐。
下面我要分享我在这旅程中收获的可以改进工作/生活平衡,并让工作趣味盎然的一些内容。
热爱你每天使用的工具自然是好的,特别是如果你已经使用了很长一段时间。总是搜寻让自己感到舒服的东西是一种天性。但事实是,你现在正在使用的堆栈,并没有你想象得那么重要,下面我会告诉你原因。
大多数新的编程工具被构建来解决前人未能解决的具体问题。显然,随着时间的推移,我们试图解决的问题会发生变化,从而使得工具生态系统很可能也发生变化,就像不断进化的生命体会努力适应新的环境一样。
我必须承认,我也很惭愧于忽略铺天盖地的宣传,只愿意舒舒服服地使用我久经沙场的工具。我也倾向于认为让别人花时间经历所有的痛苦一步一步往上爬地到达新技术,才能更有效地学习,然后当在未来的某个时候,如果新技术被证明是好的,那么我自己采取的策略是快速掌握它。
虽然这些做法是完全可以理解的,但我在这里要告诉你的是,这是愚蠢的做法。事实上,你应该做截然相反的事情。
我鼓励你花时间去学习又新又闪亮的语言、框架、模式,不管什么都好,因为那是你成长的方式。那也是你拓展知识的方式,也是使得工作变得令人愉快的地方。
因此,你应该坚持的一个非常重要的事情,是学习。挑战自我去探索新的东西,正是这些使得生活和工作有了乐趣。
可能只是想想你需要搞定那么一大堆的工作事务以跟上大家的节奏,你就已经觉得不舒服了。但其实,你不应该这样想。
走出舒适区,进入未知领域是迄今为止最好的学习方法。坚持老一套不会教你很多你所不知道的内容。
你需要从不同的角度思考,你需要用不同的工具解决不同的问题,你需要扩展你的知识领域,你会享受于其中的每一分钟。相信我。
像那样处于一种不舒服的状态并试图紧跟行业发展的速度,是有负作用的,因为每一天都会有数量庞大的新信息汹涌而至。你常常会觉得白天没有足够的时间去做你想要做的一切事情。没错,这样的确会让你没有充裕的时间做事。
不过真实的情况是这样的,只有屈指可数的一些内容能够在给定的任何时间激发你的热情,并且如果你能集中注意力到那些事情上的话,那么骤然之间,你会得到一个更易于管理的范围。
我要与你分享的是我的范围管理系统。这个系统基于GTD(Getting Things Done)方法和每日目标设置。
我使用的主要的衡量单位是长期目标,这里的长期目标指的是那些我想要在一段相当短的时间内完成的目标,时间范围从几天到几周。
长期目标的一个例子是“阅读《Javascript Pattens》”或“为UtmTag.com建立预订系统”。这些都是长期的,因为很明显你不可能一口气做完。
如何定义长期目标的一个非常重要的方面是,有一种循序渐进的感觉。我的意思是每一个长期目标都有一个我可以明确的结束日期。
因此,长期目标不是“我要赚大钱”,因为没有明确的方法来衡量这个过程和进展(我强烈建议阅读David Allen写的《Getting Things Done》这本书,如果你想要知道在实际中关于如何定义目标的话)。
在前面的例子中,我可以轻松地说,“好吧,这本书我已经看了有一半了,所以我完成了进度的X”,或者“我可以在一两周内完成这个系统”。
在长期目标上取得进展是一个重要的激励因素。因为如果不能衡量进度的话,我们很容易中途放弃。
那些长期目标在展望宏伟蓝图的时候很有用,但是除此之外,还有一个神奇的秘诀。要想每天都按照预先规划前行,最重要的一个技巧是每天都有充足的动力去完成一部分长期目标。这就是为什么我喜欢将长期目标联合每日目标一起使用。
每日目标要小得多,正如其名,其范围是一天。所以任何需要超过一天时间才能完成的任务都不是每日目标,不过可以通过再次细分使之成为每日目标。
如何定义每日目标甚至比定义长期目标更重要。你需要实际安排每天能完成的工作量,同时要考虑到一些你不能控制的事情,例如跑腿和其他事务。
我建议从很小的工作量开始(例如2H小时/天),看看自己能否在这个基础上增加工作量而不会觉得不堪重负。
每日目标的一个例子是“在UtmTag.com上花2小时编码”,其长期目标是“为UtmTag.com建立订阅系统”,每日目标能够使得我们静下心来每天有一定的进展。
相比于长远目标,这些每日目标似乎比较渺小,但是一点点累计起来并且当你再回过头来看的时候,你会发现,咦,原来你的长期目标已经完成了一半。
曾经有段时间我希望时间能一直停留在周末,这样我就不用回去上班了。也有一段时候,我迫不及待地数着假期结束,以便于回到工作岗位上。
那么,为什么会有两种截然相反的心情呢?会出现第一种感受是因为你不得不做一些你不喜欢的事情,而第二种则是因为你兴奋不已以致于没有顾虑其他。
很明显,第二种感情是我们大多数人所希望的,那么我们可以做些什么呢?我发现了兴奋这种感情的一些特点,并且我正在试着融入我每一天的工作中。
在你考虑将乐趣融入到你的日常工作之前,你必须先定义对于你而言乐趣意味着什么。
对我来说,乐趣是指通过完成我以前认为不可能的事情——归咎于感知到的复杂——而实现的某种启迪。
因此,挑战自我去探索和学习新的东西,而不是工作于那些陈词滥调的任务,使我更享受于我的工作。
这让我明白了我应该少做那些没有这种特点的工作,多做那些有这些特点的工作。
当然,我享受的工作,别人可能会觉得难以苟同,这很正常。但是我依然想分享一些东西,这些东西让我觉得自己像一只快乐的小蜜蜂,你可以借鉴我的点子,制作出你自己的清单。
请记住,你选择做什么样的工作,其实就是选择了什么样的生活和什么样的工作感受,这完全取决于你。所以,如果你想享受你的生活,那么你酒应该喜欢上你的工作。
真心希望这篇文章能帮助你,并且我非常期待听听大家是如何改善工作/生活平衡的。
如果你真的做出了一些东西,在面对那些令人眼花缭乱的理论知识,或是和你相似甚至比你做的更糟糕的人时大可不必谦虚。在一天结束之时,正是那些在战壕中的开发者——构建、测试和开发了代码的人,真正做了事情。
这些事情可以帮助新手在他们漫长的旅程中学习编程。我知道我还有更多东西需要学习,并将继续学习如何永远地学习。最重要的事情说三遍,请继续,不要放弃,不要放弃,不要放弃。
Javascript代码异步执行的场景,比如ajax的调用、定时器的使用等,在这样的场景下也经常会出现这样那样匪夷所思的bug或者糟糕的代码片段,那么处理好你的Javascript异步代码成为了异步编程至关重要的前提
以买苹果为例说明程序员如何解决问题。程序员需要对问题进行透彻的分析,理清其涉及的所有细节,预测可能发生的所有意外与非意外的情况,列出解决方案的所有步骤,以及对解决方案进行尽量全面的测试。而这些正是我认为编程难的地方。
Google Blockly 是一款基于Web的、开源的、可视化程序编辑器。你可以通过拖拽块的形式快速构建程序,而这些所拖拽的每个块就是组成程序的基本单元。可视化编程完成
成为伟大的程序员,需要付出许多编程之外的努力。我们的大脑是有限的,每天要应付的问题复杂到足以让人精神崩溃。当工作不顺利时,多少都会有些冒名顶替症候群的感觉。
推荐8款最好用的前端开发工具供美工或者前端开发人员使用,当然若你是NB的全栈工程师也可以下载使用。Web前端开发最常见的编程软件有以下几种: 在前端开发中,有一个非常好用的工具,Visual Studio Code,简称VS code
学编程现在看起来挺简单,因为网上有丰富的各种资源。然而当你实际去学的时候就发现,还是很难!对我来说也一样。但从某天起,我决定认认真真学编程一年。后来又过了一年,又过了一年又一年……我好像有点感悟。
命名最好遵循驼峰法和下划线法,并且要清楚的表达变量的意思。相对于驼峰法而言,我更喜欢下划线法。下划线法可以更清楚的看出这个变量表示的意思。比如aBigGreenBanana和一个a_big_green_banana。
每隔几个月就会出现一篇文章表明:CSS并不是真正的编程语言。以编程语言的标准来说,CSS过于困难。使用这门语言会很有创造性:事实确实如此,CSS不同于传统的编程,且具有缺陷,同任何标准化编程语言相比
内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!