Skip to content

写给初学者

虽然我会尽可能地使用方便初学者理解的表述, 但 “用易懂的语言去表述专业知识” 本身也是一项需要通过不断训练而增长的能力。 所以也希望正在阅读这段文字的你,可以向我提尽可能详细的建议。 毕竟我也是第一次写这种文档,难免会对初学者产生 “何不食肉糜” 的认知误区。

文档将在 qq 群进行更新通知:867356551

自学

没有学不会的知识,只有不充分的材料。

自学前先设定一个具体的目标,即你想通过学习去做一件什么事。 也许这件事可能并没有什么应用价值,但是做这件事本身会倒逼你去查资料学习,这就是做这件事的实际价值。 所以比起收集各种学习资料,我更推荐先新建一个文件夹。

编程需要程序性记忆,最好的自学方式是边做边学。 及时把所学的知识用于问题解决显然比背课本更多有学习动机,何况大部分前沿知识都不会出现在课本里。 写也是一种学,对于解决问题经常用到的知识,则复述更多,记忆更深。 如果有些知识怎么都记不住,说明在解决实际问题中这些知识并没有什么用,也就没有记忆的必要。 真正的学习不是从打开教学网站开始,而是从写出第一行代码开始。当然打开教学网站也是很有必要的。

编程还需要抽象能力。 开发是一个把现实问题抽象为关于数据问题并用程序解决的过程。 从程序的视角来看,所有现实问题都是关于如何获取某种数据的问题, 用程序解决现实问题就是一个获取数据的过程。

今天中午吃什么

这个问题的本质是缺少 “今天中午要吃的饭” 这个数据。 要想获取这个数据,我们可以有很多方案:

  1. 从已有的美食列表中随机选择一个。
  2. 如果今天是星期四,则选择肯德基,否则选择麦当劳。

然后接下来就用代码去实现这些方案。

提问

提问是最快的信息获取方式。 但由于自然语言的局限性,在实际中往往难以准确地描述问题。

对于 What 和 How,确保双方对相同的概念有相同的理解。 比如 “扬州炒饭好吃吗”,需要双方对于“什么是扬州炒饭”和“什么是好吃”没有异议。

对于 Why,则问题需要包含足够的上下文信息,对背景进行尽可能全面地介绍。 比如 “扬州炒饭为什么不好吃” 应该优化为 “为什么昨天中午我在拼好饭上 ‘赌上厨师职业生涯的炒饭’ 这家店点的扬州炒饭不好吃”。 还可以对问题尝试一些解决办法,获取有关问题的更多信息。 比如 “我和我同学今天中午线下到这家店点扬州炒饭,也都觉得不好吃”。

参考 提问的智慧

相关网站

类型推荐避雷
搜索引擎DuckDuckGo、BingBaidu 除非你是广告爱好者
问答/论坛StackOverflow、GitHubCSDN 程序员的复制粘贴吧
教程MDN、菜鸟、W3Schools