谢夏戈 @ xiexiage.com

为什么我要制作编程教学网站「小黄鸭」

Aug 5, 2023

小黄鸭

起源

在我刚开始学编程的时候是在读大学那会。我大学读的专业是 「应用电子」并非「计算机专业」。从那开始接触了 C 语言,尽管我学得很烂。但可以说为我后续学 前端Python 提供了一些基础。

我之所以没有继续学 C 语言,是因为我没有在短期内看到它给我带来有趣的反馈。但我并没有放弃学编程,也没有觉得 C 语言不好,我在网上了解到「Python」这门语言,我听说它很易学,也可以做网站、爬虫。我非常感兴趣。学习中,我并没有遇到太多困难,但我跟着教程并没有做出网站,也没有学会爬虫,因为我不了解建站和爬虫所需的基础 - HTML。

到了后面我才发现,原来真正要做网站还需要了解「HTML」「CSS」「JavaScript」…
于是我继续学… 不过不同以往的是我在这里感到了有趣!
因为在初学「HTML」「CSS」时,可以所见即所得,我可以像玩乐高一样去装扮我的网页,像装扮「QQ 空间」那样。即使网页还没有上功能,但是看起来却有模有样,让我一下子就来了兴致,同时成就感和满足感油然而生!

就这样,我踏上了「前端」之旅。在学习过程中,我遇到了很多很多问题。由于我是自学的,当我遇到问题时,我很难搜索到我需要的答案,也很难描述我遇到的问题。

最重要的是我不清楚我的学习路线,以及有些文档教程非常晦涩难懂,即便这些文档很全面也很权威。

现在我的「前端」或者说整体的编程技术,并没有达到一个可以教学的资格,但我还是想像学生一样去分享,总结。我相信有时候学生会比老师更加清楚学生需要什么。你听过「知识诅咒」吗?

「知识诅咒」:

知识诅咒指的是一旦人了解了某种知识,就很难站在没掌握这个知识的角度,去思考和理解他人。 “知识诅咒”是 1990 年斯坦福大学的博士候选人伊丽莎白·牛顿(Elizabeth Newton)通过实验首次提出的。

计划

所以我决定做一个编程教学网站,来教我身边的朋友以及所有对编程感兴趣但又没有计算机基础、编程基础的同学。(我身边真的有挺多人对编程或者说做小程序、网站感兴趣的)

我的想法很简单 👇

  • 从「Web 前端」教学开始,也就是做 Web 网页。它好入门,可以很快看到页面,而不是命令行界面,可以很快收到反馈,成就感。同时我也会分享 Python 和爬虫,后面如果有学到新的语言或者 ios 开发也会分享出来。
  • 分享一些插件,组件的运用以及小知识。
  • 多举例子 🌰 来说明!尽量做到有趣不枯燥。
  • 尽量做到抛砖引玉,好入门,那些不适合初学者的内容不会在前面就去说。
  • 你可以理解为先玩起来。后面再去补底层的实现方式。
  • 它或许不全面,但是你只需要学基础,以及初学必学的就可以。而不是一个地方死磕到底,浪费很多时间,有很多知识前面就学,你看了半天,很难懂,就算懂了,但是在后面的制作中,其实用到的很少… 或者说几乎不用。

为什么叫「小黄鸭」?

小黄鸭,这个名字其实在程序员的世界里是很闻名的,可以说和「Hello World」一样闻名。

「小黄鸭调试法」:

此概念是参照于一个来自《程序员修炼之道》书中的一个故事。传说中程序大师随身携带一只小黄鸭,在调试代码的时候会在桌上放上这只小黄鸭,然后详细地向鸭子解释每行代码。

许多程序员都有过向别人(甚至可能向完全不会编程的人)提问及解释编程问题,就在解释的过程中击中了问题的解决方案。一边阐述代码的意图一边观察它实际上的意图并做调试,这两者之间的任何不协调会变得很明显,并且更容易发现自己的错误。如果没有玩具小鸭子也可以考虑向其它东西倾诉,比如桌上的花花草草,键盘鼠标。

类似的,有一种现象叫做 cone of answers,这是一个常见的现象。你的朋友跑来问你一个问题,但是当他自己把问题说完,或者说到一半的时候就想出了答案走了,留下一脸茫然的你。是的,这个时候你就起到了那只小黄鸭的作用。

相似的概念还有不少,例如自白调试、纸板程序员或程序员的假人、想出脑外等等。总的来说,在你试图表述自己的想法的过程中,自然地在促使自己去整理思路,重新考虑问题。

没错,小黄鸭在这个故事中就像程序员的伙伴,它可以陪伴程序员成长。我希望它也可以陪伴你,帮助到你。与此同时,在我建站初期,小黄鸭就像我的博客,我把我的学习经历记录在上面,向这只“小黄鸭”解说我学了什么内容。用简洁明了的叙述方式来讲解所有编程知识点,在某种程度上也是对我自己的一种检测,就像「费曼学习法」

「费曼学习法」:

费曼学习法是由著名物理学家、诺贝尔物理学奖得主理查德·费曼提出的。 其核心就是: 通过简短的语言,向别人清楚地解说一件事,来检验自己是否真的弄懂了这件事。 费曼学习法通过“ 以教促学”的方式让人在短时间内掌握知识,并且快速吸收信息

最后

这个教程网站还在建设中,就如我这个新的博客一样才刚刚开始。后续有时间我会完善它。
如果你从中学习到了有用的知识,你可以把它分享给你的朋友或者任何想学习的人。你也可以通过我的社交媒体来鼓励,认可我。我会非常开心!

当然!如果教程中有错漏或者解释不对、不清楚的地方也欢迎指出,同样可以在社交媒体找到我。 GitHub 哔哩哔哩 微博 Twitter

不过请你不要介意这个网站的教程会啰嗦,因为我的想法就是把知识讲得透彻。也请不要介意这个网站的知识太过简单。因为它出现的本意就是为了引路,引导那些因为不了解编程就害怕编程,不敢去接触的人。我相信到达一定水平的程序员都会自己去寻找到适合自己的路。

最后 祝你成为你想成为的人 。


2023-PRESENT © 谢夏戈