知行:程序员如何保持两者的平衡

网上并不缺乏告诉你 “采起行动” 的内容,很大程度上,它们但愿你忘记学习并专一于行动。这些帖子的出发点也许是善意的,但并不是事情的全貌。程序员

光学习不行动是没用的,但只行动不学习一样如此。程序员是知识工做者,这意味着学习是咱们工做的必要部分,然而这须要咱们去创造学习机会,关键在于平衡。编程

若是你屁股一坐在那不停的收集文章却从不使用这些信息,那么你就须要偏向行动;可是,若是你盲目的进入行动,你也不会走得太远。微信

曾经多少次,你为那些无知且鲁莽的程序员创造的项目进行善后清理,收拾残局?他们可能不只仅是缺少技能,也多是不肯意学习。不熟练的程序员也许会给团队带来负面的生产力,特别是那种不假思索就大干快上类型的程序员。架构

学习和行动是相辅相成的。学习太少会致使效率低下和低质量的软件,行动太少,则没有结果或结果微乎其微,忽略不计。做为程序员,为了最大化你的成效,须要在获取知识和使用它们作有用的工做之间取得平衡。学习

在这篇文章中,你会学会这种平衡的艺术。最后,你将会拥有一些具体的策略来改善你的工做与智识。网站

学习何以重要

首先要提醒你们,咱们只有这么多时间。不只是说一天咱们只有 24 小时,并且咱们也只有有限的一点点富有有效、保持专一的时间。即便你能把全部 16 小时的时间都花在开发软件和学习上,但在那以前你恐怕早就精疲力竭了。编码

大多数高效的做家和艺术家天天只花几个小时工做在他们的手艺上,即便是那些技艺超群之人,天天也只花几个小时进行刻意练习。在这两种学习中,你所能投入的精力是有限的 —— 一样,行动亦如此。视频

这一限制强调了在你使用时间时对效率的需求,面对生活中的全部需求,多数人都很难找到他们一天内能工做的最大有效时间。即便你能很好的管理你的时间,接近最大的极限,你仍然须要注意如何去分配时间。(这是学习的主要好处之一,知识可使你更有效率)blog

对给定的程序库或编程栈知道的越多,就越能绕过问题,你也就不须要花那么多时间在 StackOverflow 上 “钓” 答案。ip

此外,学会如何管理时间,清晰编码,并更好的沟通,可使你在其余方面更有效率。用对话来解决复杂的问题一般比用代码更快。我有时会称以外 “外交决议”,这是我最喜欢的修复 Bug 的方法(译注:Bug 有时就是不一样人对同一个表象的不一样理解)。你做为程序员碰到的许多问题都是因为缺少清晰性致使的。

学习也会扩张你的技能集。对新技术的了解意味着你能够构建不一样类型的软件,这意味着你能从维护它们到架构它们。知识扩展了你的能力。

技术老是处在变化之中,咱们须要花时间了解行业的当前趋势来规划咱们的职业生涯,而软件开发就是这样一种紧跟变化的职业。

程序员的努力奋斗使我想起了《爱丽丝梦游仙境》中 “红桃皇后” 的一句话:

亲爱的,在咱们这个地方,你必须尽量快的奔跑,才能留在原地;若是你想去任何地方,你必须跑得比那快两倍。

咱们行业发展很快,咱们须要保持学习,不然咱们将被抛下。

行动的重要性

在前文中,我批评那些呼吁行动而不是学习的人,但这并不意味着行动是不重要的。行动是必不可少的。

你拥有多少知识并不重要,假如你都不使用它,那就是毫无心义的积累。学习的目的是改进行动,而不是在程序员的知识面上获胜。

你也许读过数百本编程书籍,但若是你晚上和周末都窝在沙发上追剧,而不是去建立你的业余项目,那读过的这些书都可有可无了。若是你的工做中都一直使用相同的技术、技巧和实践,那也无所谓了。只有当你吸收了学到的全部教训,并试图将其应用到现实世界中时,你才能取得进步。

行动巩固学习,行动也触发回忆,这是学习的关键部分。例如,也许你在网上看过二十多个视频课程,但这并不重要:你不会了解一项技术,除非你真正用它来构建某种东西。若是我没用某个技术构建过至少算是 Demo 的项目,我是绝对不会放在个人简历上的。

人们并不关心你知道些什么,人们只关心你能作什么。知识是有助于行动的,但它不该取代行动。别作一个受太高等教育的电视迷,把你辛苦习得的知识运用起来吧。

平衡方法

在这点上,你应该理解平衡的重要性。如今,你将学习一些具体的策略,将这种平衡带入自身的生活。

第一个策略是成为一名更高效的学习者。花点时间学会如何学习,学得越快,就越能腾出时间来采起行动。做为程序员,学习是咱们所作工做的重要部分,花时间学习如何学习将给你的职业生涯带来巨大的红利。

除了学习如何学习以外,在你的日程中找出额外的时间,经过把一些跑腿的差事和其余 “死” 时间与学习时间合并起来。你无法用这些时间来编写软件,因此你能够自由的利用这些时间来学习。我在通勤时间听播客和有声书,作家务时我也会听。在过去的几年中,我用这种方式已经消化了数百本书,要不还真没那么多时间去读。我在排队时也阅读文章,这些时间一般会被浪费掉,让它们成为有用的学习时间。

提升总体效率的另外一种方法是更加当心地处理所消费的信息。避免时间被社交媒体和低质量的信息娱乐所吞噬,不少提供这类信息的垃圾网站会成为你时间的黑洞,而给你的生活带来的价值微乎其微。你不只节省了时间,也减轻了压力。大多数 “信息垃圾食品” 站都是依赖于触发压力反应。压力会下降你的创造力,让你更难建造东西。限制垃圾信息,会给予你更多时间去学习和行动。

在你开始学习一个主题以前,要知道你须要从中获得什么,弄清楚你要用这些知识采起什么样的行动。例如,假设你对虚拟现实(VR)开发感到好奇,记下来你想用这些知识作什么。你是想要构建一个很酷的 VR 应用呢,仍是想在下次和你的开发小伙伴谈论 VR 时能有些有趣的话题可说?相应的,根据不一样的目的调整你的学习计划。若是你只是想跟上 VR 技术的最新发展,你能够去订阅一些相关的博客,到此为止也就够了。经过只从特定资源和主题获取相关的内容,你可以节省大量的时间。

另一个节省时间的方法是练习 “即时” 学习。即时学习,是指你花时间学习的东西马上就会用在当前的项目或目标上。与其积累大量可能没什么用处的技能,不如把时间花在学习与当前项目相关的事情上。把你的学习和行动直接绑定起来,这种方法在那种 “潮流涌动” 的软件开发领域尤为有用,就像 JavaScript 的世界。

当你在创造一些东西时,按期评估什么样的信息会让你进展更快。当你是在胡乱地摆弄一个问题而非用你的头脑解决它,就要特别注意了,这时候,看看书可能比用头砸键盘要容易得多。

最后,在学习和行动之间取得平衡的最好方法就是同时作这两件事。每当我学到一些东西,我就把它和某个项目关联起来。这多是一些公开的东西,好比博客文章或者技术演讲,或者使一些私有的东西,好比参考实现。

总而言之,你不会真正了解一项技术,直到你用它来建造了一些东西。必定要把你的学习和一个项目关联起来,才会真正把知识烙印下来。

知行合一

学习和行动是同一枚硬币的两面,为了得到最好的职业生涯,你要两者兼顾。

在学习和行动之间走钢丝是很困难的,但有几种策略是能够作到的。从如何学习有效的学习,到关联学习与行动,你职业生涯的两个方面便能获得平衡。

首先,坐下来考虑一下你的学习计划。弄清楚你想作什么,你须要什么技能才能达到目的。而后为每一项技能安排好学习计划,把计划渗入到一些项目中以增强你的学习。

将来,你会感谢当下的你本身的。


做者:Dustin Ewers
日期:2018-10-12
原文:How to Balance Knowledge and Action


写点文字,画点画儿,记录成长瞬间。
微信公众号「瞬息之间」,既然碰见,不如同行。

相关文章
相关标签/搜索