网上并不缺少告诉你 "采取行动" 的内容, 很大程度上, 它们希望你忘记学习并专注于行动. 这些帖子的出发点也许是善意的, 但并非事情的全貌.
光学习不行动是没用的, 但只行动不学习同样如此. 程序员是知识工作者, 这意味着学习是我们工作的必要部分, 然而这需要我们去创造学习机会, 关键在于平衡.
如果你屁股一坐在那不停的收集文章却从不使用这些信息, 那么你就需要偏向行动; 但是, 如果你盲目的进入行动, 你也不会走得太远.
曾经多少次, 你为那些无知且鲁莽的程序员创造的项目进行善后清理, 收拾残局? 他们可能不仅仅是缺乏技能, 也可能是不愿意学习. 不熟练的程序员也许会给团队带来负面的生产力, 特别是那种不假思索就大干快上类型的程序员.
学习和行动是相辅相成的. 学习太少会导致效率低下和低质量的软件, 行动太少, 则没有结果或结果微乎其微, 忽略不计. 作为程序员, 为了最大化你的成效, 需要在获取知识和使用它们做有用的工作之间取得平衡.
在这篇文章中, 你会学会这种平衡的艺术. 最后, 你将会拥有一些具体的策略来改善你的工作与智识.
学习何以重要
首先要提醒大家, 我们只有这么多时间. 不仅是说一天我们只有 24 小时, 而且我们也只有有限的一点点富有有效, 保持专注的时间. 即使你能把所有 16 小时的时间都花在开发软件和学习上, 但在那之前你恐怕早就精疲力竭了.
大多数高效的作家和艺术家每天只花几个小时工作在他们的手艺上, 即使是那些技艺超群之人, 每天也只花几个小时进行刻意练习. 在这两种学习中, 你所能投入的精力是有限的 -- 同样, 行动亦如此.
这一限制强调了在你使用时间时对效率的需求, 面对生活中的所有需求, 多数人都很难找到他们一天内能工作的最大有效时间. 即使你能很好的管理你的时间, 接近最大的极限, 你仍然需要注意如何去分配时间.(这是学习的主要好处之一, 知识可以使你更有效率)
对给定的程序库或编程栈知道的越多, 就越能绕过问题, 你也就不需要花那么多时间在 Stack Overflow 上 "钓" 答案.
此外, 学会如何管理时间, 清晰编码, 并更好的沟通, 可以使你在其他方面更有效率. 用对话来解决复杂的问题通常比用代码更快. 我有时会称之外 "外交决议", 这是我最喜欢的修复 Bug 的方法(译注: Bug 有时就是不同人对同一个表象的不同理解). 你作为程序员碰到的许多问题都是由于缺乏清晰性导致的.
学习也会扩张你的技能集. 对新技术的了解意味着你可以构建不同类型的软件, 这意味着你能从维护它们到架构它们. 知识扩展了你的能力.
技术总是处在变化之中, 我们需要花时间了解行业的当前趋势来规划我们的职业生涯, 而软件开发就是这样一种紧跟变化的职业.
程序员的努力奋斗使我想起了《爱丽丝梦游仙境》中 "红桃皇后" 的一句话:
亲爱的, 在我们这个地方, 你必须尽可能快的奔跑, 才能留在原地; 如果你想去任何地方, 你必须跑得比那快两倍.
我们行业发展很快, 我们需要保持学习, 否则我们将被抛下.
行动的重要性
在前文中, 我批评那些呼吁行动而不是学习的人, 但这并不意味着行动是不重要的. 行动是必不可少的.
你拥有多少知识并不重要, 假如你都不使用它, 那就是毫无意义的积累. 学习的目的是改进行动, 而不是在程序员的知识面上获胜.
你也许读过数百本编程书籍, 但如果你晚上和周末都窝在沙发上追剧, 而不是去创建你的业余项目, 那读过的这些书都无关紧要了. 如果你的工作中都一直使用相同的技术, 技巧和实践, 那也无所谓了. 只有当你吸取了学到的所有教训, 并试图将其应用到现实世界中时, 你才能取得进步.
行动巩固学习, 行动也触发回忆, 这是学习的关键部分. 例如, 也许你在网上看过二十多个视频课程, 但这并不重要: 你不会了解一项技术, 除非你真正用它来构建某种东西. 如果我没用某个技术构建过至少算是 Demo 的项目, 我是绝对不会放在我的简历上的.
人们并不关心你知道些什么, 人们只关心你能做什么. 知识是有助于行动的, 但它不应取代行动. 别做一个受过高等教育的电视迷, 把你辛苦习得的知识运用起来吧.
平衡方法
在这点上, 你应该理解平衡的重要性. 现在, 你将学习一些具体的策略, 将这种平衡带入自身的生活.
第一个策略是成为一名更高效的学习者. 花点时间学会如何学习, 学得越快, 就越能腾出时间来采取行动. 作为程序员, 学习是我们所做工作的重要部分, 花时间学习如何学习将给你的职业生涯带来巨大的红利.
除了学习如何学习之外, 在你的日程中找出额外的时间, 通过把一些跑腿的差事和其他 "死" 时间与学习时间合并起来. 你没法用这些时间来编写软件, 所以你可以自由的利用这些时间来学习. 我在通勤时间听播客和有声书, 做家务时我也会听. 在过去的几年中, 我用这种方式已经消化了数百本书, 要不还真没那么多时间去读. 我在排队时也阅读文章, 这些时间通常会被浪费掉, 让它们成为有用的学习时间.
提高整体效率的另一种方法是更加小心地处理所消费的信息. 避免时间被社交媒体和低质量的信息娱乐所吞噬, 很多提供这类信息的垃圾网站会成为你时间的黑洞, 而给你的生活带来的价值微乎其微. 你不仅节省了时间, 也减轻了压力. 大多数 "信息垃圾食品" 站都是依赖于触发压力反应. 压力会降低你的创造力, 让你更难建造东西. 限制垃圾信息, 会给予你更多时间去学习和行动.
在你开始学习一个主题之前, 要知道你需要从中得到什么, 弄清楚你要用这些知识采取什么样的行动. 例如, 假设你对虚拟现实 (VR) 开发感到好奇, 记下来你想用这些知识做什么. 你是想要构建一个很酷的 VR 应用呢, 还是想在下次和你的开发小伙伴谈论 VR 时能有些有趣的话题可说? 相应的, 根据不同的目的调整你的学习计划. 如果你只是想跟上 VR 技术的最新发展, 你可以去订阅一些相关的博客, 到此为止也就够了. 通过只从特定资源和主题获取相关的内容, 你能够节省大量的时间.
另外一个节省时间的方法是练习 "即时" 学习. 即时学习, 是指你花时间学习的东西立刻就会用在当前的项目或目标上. 与其积累大量可能没什么用处的技能, 不如把时间花在学习与当前项目相关的事情上. 把你的学习和行动直接绑定起来, 这种方法在那种 "潮流涌动" 的软件开发领域尤其有用, 就像 JavaScript 的世界.
当你在创造一些东西时, 定期评估什么样的信息会让你进展更快. 当你是在胡乱地摆弄一个问题而非用你的头脑解决它, 就要特别注意了, 这时候, 看看书可能比用头砸键盘要容易得多.
最后, 在学习和行动之间取得平衡的最好方法就是同时做这两件事. 每当我学到一些东西, 我就把它和某个项目关联起来. 这可能是一些公开的东西, 比如博客文章或者技术演讲, 或者使一些私有的东西, 比如参考实现.
总而言之, 你不会真正了解一项技术, 直到你用它来建造了一些东西. 一定要把你的学习和一个项目关联起来, 才会真正把知识烙印下来.
知行合一
学习和行动是同一枚硬币的两面, 为了获得最好的职业生涯, 你要二者兼顾.
在学习和行动之间走钢丝是很困难的, 但有几种策略是可以做到的. 从如何学习有效的学习, 到关联学习与行动, 你职业生涯的两个方面便能得到平衡.
首先, 坐下来考虑一下你的学习计划. 弄清楚你想做什么, 你需要什么技能才能达到目的. 然后为每一项技能安排好学习计划, 把计划渗入到一些项目中以加强你的学习.
未来, 你会感谢当下的你自己的.
作者: Dustin Ewers
日期: 2018-10-12
来源: https://www.cnblogs.com/mindwind/p/10216726.html