发布于 2026-01-05 3 阅读
0

如何通过牢记目标来最大限度地提高效率和学习效果?那么,我该从哪里开始?但如果并不完美怎么办?首先专注于基本功。结论

如何通过牢记目标来最大限度地提高工作效率和学习效果

那么,我该从哪里开始呢?

但如果它并不完美呢?

首先关注基本面

结论

封面照片是在我大学的办公室拍摄的。论文是 Kara 等人 2016 年的论文(可在https://arxiv.org/abs/1501.06849免费获取)。

最近我和另一位 Dev.to 博主 Pachi(强烈推荐大家去看看他的博客)在 Twitter 上进行了一番简短的讨论,话题是感觉要学的东西太多了。我的意思是,有数不清的技术博客可以读,YouTube 上的技术教育频道可以看,Udemy 上的课程也可以学,这确实让人有点不知所措。对于刚接触这个领域的人来说尤其如此,他们开始意识到要学的东西有多么多。这真的会让人头晕目眩!

我在之前的博文中详细讲述了我的经历,了解我的人都知道,我进入科技领域的角度相当独特。我曾是一名天体物理学家,也是一名博士生,这段经历对我来说是一次“火的考验”,磨练了我的工作效率和自学能力。我希望通过分享我对这个话题的看法,能够对大家有所帮助。

在开始之前,我必须声明,我绝非声称我的想法完全原创。我从同事、自助书籍和网络资源中零散地汲取了一些经验。我只是分享一些对我自身行之有效的方法,并不保证这些建议对每个人都适用。但我相信,分享我的观点至少能帮助到一些人。

请注意,我故意模糊地描述我所说的学习或一般生产力,因为在我看来,一切都可以用项目管理来解释。学习是我接下来要描述的一个特殊用例,在这个用例中,你就是项目的一部分。

那么,我该从哪里开始呢?

我认为任何项目最难的部分之一就是找到切入点。毕竟,除非有教程或外部指导,否则人们往往不知道该从何入手学习某个特定主题或启动一个项目。这有点像你刚开始写作时,面对一张空白的纸和闪烁的光标,那种不知所措的感觉。我们可能脑海中有一个模糊的想法(例如“学习网页开发”、“构建一个应用程序”等等),但超出这些模糊的边界,我们就失去了方向。

这种近乎完全的自由带来的不安感可能会导致彻底放弃,因为任务似乎过于艰巨,根本无从下手;也可能导致同时向各个方向探索。这两种常见的结果都不太理想,因为它们都无法提高效率。例如,我记得当初开始研究各种编程语言时,我以为尽可能多地学习它们会让我成为一名优秀的程序员。别误会,我仍然非常敬佩那些真正精通多种编程语言的优秀程序员。然而,仅仅会用20种不同的编程语言打印“Hello, World!”是远远不够的。

我们无法逃避这个问题。我们必须坚定地回答:我们从哪里开始?

递归生产率函数

首先,我们必须对想要了解的领域进行一些基础研究。为此,我们需要问:

  1. 我究竟想做什么?我的主要目标是什么?
  2. 这具体包含哪些内容?
  3. 我能用自己的话把这个问题分解成几个步骤吗?

我们以有人想要构建一个简单的待办事项清单网页应用为例。接下来,我们将探讨以下三个问题:

  1. 我想开发一个待办事项清单的网页应用。
  2. 我需要构建一个用户界面,用户可以在其中添加条目到列表中,并在完成后删除条目。我还希望确保列表能够保存。
  3. 将此过程分解为:构建网页的基本框架,设置该网页的样式,使该网页动态化以允许添加和删除条目,并允许该网页保存条目以供以后使用(即使在关闭后)。

现在,基于问题 3 的答案,我们有一些更具体的步骤。显然,这是一个简化的例子,但这份问题列表的妙处在于它可以递归使用。你在问题 3 中列出的每个步骤都可以重新插入到这个生产力函数中,该函数会生成它自己的步骤列表。最终需要完成的步骤列表可以通过将每个单独分析的结果连接起来而生成。

你最终想把这件事推进到什么程度,取决于你自己的能力水平,但我认为最好是把最初的目标分解到极致,让第一步(或下一步)看起来几乎微不足道。这样做,你就有效地构建了一个之前并不存在的框架。你把面对庞大问题的压力,转化为迈出许多可以克服的小步骤。现在,不再只有一个大目标,一次大胜利,而是许多小目标和多次胜利。我可以保证,这会让你减少焦虑,让过程更有趣,并帮助你克服冒名顶替综合症。

从你的目标中学习

回到新手 Web 应用开发者的例子,他们现在知道需要构建用户界面的基本结构。它不必美观,但至少要有基本形态。如果他们已经了解 HTML 或一些 Web 框架(例如 React、Angular),这意味着他们可以立即开始这个过程;但如果他们不了解,那么通过我们效率函数的额外迭代,他们就会知道第一步是学习 HTML。

最终,从一个简单的想法(一个简单的待办事项清单应用程序),我们假设的新手 Web 应用程序开发人员最终可以从上述各个步骤中学习:

  1. Skeleton UI - HTML
  2. UI样式 - CSS
  3. 让网页动态化 - JS
  4. 保存列出的项目 - NodeJS、Express、SQL(或其他数据库查询语言,例如 MongoDB)

他们牢记自己的目标,不仅开发出了自己想要的应用程序,而且在这个过程中还学到了很多基本技能。

他们本可以采用不同的方法,使用不同的技术栈吗?当然可以。但他们仍在学习开发流程的基本原理,而这最终才是最有益的。

这就引出了另一个重点……

但如果它并不完美呢?

我必须承认,我有时确实有点完美主义,虽然这在很多方面都有益处,但也会带来许多不利的副作用。其中与本次讨论最相关的一点是,就像缺乏明确方向带来的压力一样,追求完美主义的压力也会导致真正的生产力停滞不前。

如果一段代码永远不会发布,那么它变得越来越完美真的重要吗?

这一点与讨论密切相关,因为人们常常会在决定如何实现项目目标时感到纠结。而这往往又是选择过多的结果。

不必为寻找完美的技术栈而烦恼

以网页应用为例,假设我们的开发者要设计一个待办事项清单程序,他们很可能会遇到各种各样的前端框架。他们应该学习 Python 并使用 Django 或 Flask 吗?或许应该学习 JavaScript 并使用 React,或者学习热门的 TypeScript 并使用 Angular?Ruby 和 Rails 又如何呢?当然,每个框架都依赖于不同的语言,并采用不同的范式(客户端渲染或服务器端渲染),所以或许你应该把它们都学一遍,然后再选择最合适的。如此循环往复……

我希望这个例子能让你明白,你应该尽量避免在这些事情上花费太多精力,尤其是在刚开始的时候。以后会有时间和机会去学习不同项目所需的各种框架。但是,对于任何具体的项目,我认为重要的是,你要在想法失控之前控制住它们。我致力于克服这些问题以及随之而来的焦虑。

最小可行产品

我认为我们可以借用软件行业的一个术语,首先专注于最小可行产品(MVP)。即使项目已经初步发布,也总有时间进行改进。

对于我们假设的完全新手网页开发者来说,开发待办事项应用并不需要任何花哨的框架。他们完全可以使用基本的 HTML、CSS 和 JavaScript 来构建产品初始版本(MVP)的前端。这样一来,他们就可以先学习基础知识,之后再选择使用流行的框架重构项目,或者启动另一个项目来学习该框架(从而将学习框架作为开发过程中的一个环节)。

接受不完美,不断改进

我还想指出,不要被追求完美所束缚的原则同样适用于自我认知。​​例如,我记得在我早期学习编程的时候,我常常觉得自己不能忘记任何事情,而且我做的每件事都必须完美无缺。如果我忘记了什么,显然就需要重新学习教程,或者重读几周前刚读过的一本书的某一章节。这种对自己要求过高、不切实际的做法导致我效率低下,焦虑加剧,并且加深了我的冒名顶替综合症。

追求绝对完美,无论是在项目建设还是自我提升方面,都是一种徒劳之举。我们固然应该不断努力完善自我、学习成长,但必须清醒地认识到,我们永远无法达到某种完美的自我,也无法创造出某种完美的作品。我们应该学会宽容不完美,并在持续改进的过程中获得满足感

不要过度思考过程。专注于你的目标。原谅不完美。最后……

首先关注基本面

最后我想强调的是基础知识的重要性。我所说的“基础知识”指的是技术栈中最核心的组成部分。对于我们假设的新手网页开发者来说,这些基础包括 HTML、CSS 和 JavaScript。对于数据科学家来说,则包括 Python、SQL 和基础统计学知识。此外,它们还包括一些基本的编程概念,例如循环、变量、数组、对象等等。

这类似于MVP(最小可行产品)的概念,即首先开发出最小、最基本、最易用的组件。在这种情况下,你就是项目本身,而学习这些基础知识的人就相当于在开发你的MVP。这些基础知识一定能让你胜任工作,或者一定能完成你的第一个大型项目吗?不能,但它们无疑会为你日后继续发展奠定基础。

这些基本概念也提供了一种语言,让你能够更轻松地思考当前任务或任何未来的项目。这使得我之前介绍的递归生产力函数更容易实现。我们的基本概念提供了一种概念语言,使我们能够开始理解开发过程初期存在的模糊想法。

结论

我意识到这篇博文可能显得有些简单,甚至有些含糊。某种程度上,这是我刻意为之,因为我认为学习和创作的最佳方法很大程度上取决于个人的性格以及所面临的问题。

话虽如此,但我相信这篇文章的主要观点几乎可以普遍适用,可以作为一种基本的问题解决工具箱:

  1. 使用递归生产力函数将较大的问题或目标分解成较小的问题或目标。持续进行,直到你即将采取的第一步(或下一步)看起来几乎微不足道为止。
  2. 首次尝试要专注于最小可行产品,警惕完美主义倾向。始终致力于改进,但也要明白完美永远无法真正达到。
  3. 首先要注重基础。学习你将要使用的基本语言和概念。以此为基础不断拓展,但始终牢记这些基本要素,这能帮助你避免思绪混乱,保持清醒的头脑。它们提供了基本的词汇和语法,让你能够开始理解模糊的目标,从而提高我们解决问题的效率。

这篇文章就到此结束,希望对大家有所帮助。如果大家感兴趣,我可能会就此主题继续写作,甚至将其发展成一个系列文章。

保重,祝你编程愉快!

文章来源:https://dev.to/cjtaylor1990/how-to-maximize-your-productivity-and-learning-by-keeping-your-goals-in-mind-423c