我该如何识别我的知识差距并进行学习?识别知识差距。细化学习

2025-06-08

我如何识别我的知识差距并进行学习?

识别知识差距。

细化

学习

在本文中,我将向您介绍我收集主题的工作流程以及有效学习主题的方法。

没有人无所不知,这是肯定的。每天我都会发现自己对某些东西一无所知,无论是语法、概念还是模式。有些问题只需谷歌(或duckduckgo)搜索一下就能找到答案,所以如果一分钟内能找到的东西,死记硬背下来很可能只会浪费记忆力和精力。
但是概念呢?是的,大多数概念不可能在很短的时间内“找到”,需要付出大量的学习努力。

免责声明:这是我的过程的记录 - 它们对我有用,但不一定适合您。

识别知识差距。

如果我想在某个领域做得更好,我需要知道我不知道什么。我回答了以下问题,尽量避免过于具体。现在还处于整个过程的早期阶段,我只想了解一个大概的情况。

  1. 在未来 3-6 个月内,哪些技术/概念肯定会给我的日常工作带来利润?

  2. 我想加深对哪个领域的了解?

  3. 什么技术/概念令我兴奋并让我想尝试一下?

写下答案后,我给自己几天时间消化,并删除一些不必要/过时的观点。整理完毕后,我便开始讨论下一个观点。

细化

起初,我的清单是这样的:

1. What new technology/concept would be certainly profitable in my day to day job in the next 3-6 months?

* TypeScript
* Docker
* Observables
* state charts/finite automata

2. What field do I want to **deepen** my knowledge in?

* maintainable CSS and accessibility
* new React patterns (hooks, Suspense)
- better testing (JS/React)
* Git
* more of an advanced vanilla JS and functional concepts/patterns
* Bash scripting
* Vim/Tmux workflow
* UNIX command line programs (sed, grep, awk, etc.)
* RegExps
* Vue
* Nginx

3. What piece of technology/concept **excites** me and makes me want to try it?

* GraphQL
* Rust/Go/Elixir
* basic machine learning algorithms
* designing and prototyping with Figma
* D3.js

Enter fullscreen mode Exit fullscreen mode

接下来我做了优先级排序。我根据主题的重要性对三个列表进行了排序。

当我开始学习一个新事物时,脑子里会涌现出很多想法。我想找到一种方法,让我不那么不知所措,能够集中精力解决一些小问题,而不是一个大问题。

显而易见的是,乍一听像“Docker”这个点似乎不太容易理解,但“如何为 Node.js 应用程序设置 Docker 容器并向控制台打印“Hello world”?”这个问题似乎是一个很好的起点。

为了追踪我的旅程,我创建了一个 git 仓库,并将 README 文件作为我的“2019 年路线图”。我把清单中的每个要点都提取到单独的部分,这样我就可以针对每个要点添加问题。

这是重要的部分:一旦我确定了一个问题,我就会将其添加到匹配部分下的列表中,以使其保持最新。

基本部分的示例如下:

# TypeScript (0/5)

* How to set up React app with TypeScript?
* How to add types for primitive values like string/number/boolean to a single variable?
* How to type objects?
* How to type functions? What about optional and default parameters?
* What's the difference between type/interface?
* How to type React classes and function components?
* What is a type inference?
* What are generic types and how to use them?

and so on...
Enter fullscreen mode Exit fullscreen mode

我尽量把尽可能多的要点从脑子里剔除。看到这些问题都集中到一起,感觉很新鲜。我意识到,回答完这些问题之后,我的 TypeScript 写得就比较流利了。太棒了!

我几乎每天都会完善我的路线图,包括重新措辞和分解问题,使它们更易于理解和具体。

学习

当我将知识应用到一些实际项目中或用它创建某种片段(一种避免“枯燥”学习的方式)时,它给我带来了最大的价值。

为了保存我的问答,我为路线图中的每个部分创建了一个单独的 Markdown 文件。每当我学到一些东西,我都会把它写到相应的文件中。这样以后每次都能方便地查阅。保持实用性。

答案的示例如下所示。

**What is a difference between arguments and parameters?**

Parameters are variables in funcion definition.

function add(x, y) { // x and y are parameters
  return x + y;
}

Arguments are variables passed down to a function in place of parameters.

add(2, 3); // arguments
Enter fullscreen mode Exit fullscreen mode

我每天都会从路线图中安排一项重要内容。如果能学到更多就好了,但世界并不完美,我也不完美。这绝对足够了,反正我也在进步。想象一下,除了工作或大学之外,一年内学习 365 个概念/技巧!

明确何时何地学习很重要。尽可能轻松地养成这个习惯。晚上合上笔记本电脑前,我最后一件事就是打开文本编辑器和浏览器。第二天早上起床后,我会坐在书桌前学习至少20分钟。

两三周后,我就能为 Node.js 和 MongoDB 项目搭建 Docker 容器了,能够编写中级 React/Redux 和 Redux/Hooks 应用,并且我的 Vim/Tmux 工作流程(包括 Bash 脚本)也得到了提升。
我还能够清晰地(这是我得到的反馈)向初学者解释一些比较复杂的 git 和 HTML&CSS 概念(我自己也学到了更多易懂的东西)。所有这些都是与我在日常工作中学到的东西无关的。

小块化合物。

关于习惯这个话题,我推荐詹姆斯·克利尔 (James Clear) 的《原子习惯》一书,它对我制定工作流程有很大帮​​助。

额外福利:你可以尝试创建 ANKI 卡片组来记忆你学到的概念。你可以在这里了解更多关于间隔重复的知识。

鏂囩珷鏉ユ簮锛�https://dev.to/bgord/how-do-i-identify-my-knowledge-gaps-and-learn-4mlc
PREV
Async/Await:简介
NEXT
成为机器学习者所需的一切