文章目录
  1. 1. 课程目标
  2. 2. 课程复盘
    1. 2.1. 1. Computational Thinking
      1. 2.1.1. 所谓的 Computational Thinking 是什么呢?
      2. 2.1.2. 红画面报错 ≠ 人生失败
      3. 2.1.3. 学习 ≠ 登山
      4. 2.1.4. 学习实质上是拼图
      5. 2.1.5. Computational Thinking => Programming
    2. 2.2. 2. RSA大法
    3. 2.3. 3. 「从入门到崩溃」的编程学习方法
    4. 2.4. 4. 拆解任务

课程目标

两个主题:

  • 什么是 Computational Thinking
  • 如何把脑袋的点子落地变成代码

做第一个简单的网站:一个招聘网站。这个网站会跟 Rails 101 很像。你会发现,将脑袋的点子落地变成代码,并不是想像中的难

课程复盘

1. Computational Thinking

许多人对于「入门编程」这件事,存在的最大误解就是:

编程 = 学习逻辑、程式语法

其实,编程不是这样的。

如果你要入门写代码,最重要的其实是养成一种独特的思维:Computational Thinking

所谓的 Computational Thinking 是什么呢?

  • 用计算机解决问题的思维
  • 把大问题拆解成可以实作的小问题步骤
  • 在实作过程中找到资源
  • 这才是一个程序员应当具备的最重要的能力。

学编程并不会很困难。困难的是,很多人在当中容易被情绪「淹没」导致「放弃」。

红画面报错 ≠ 人生失败

过去在人生中,其实是「少有人当面指出你的错误」,所以一旦自己收到很多「反馈」,就会立即反射到自己「容易犯错」,容易陷入深深的挫败。

但编程的「错误信息」其实是「不带情绪」的「真实反馈」,如果定神一看,会发现也只是一般的英文而已。可能提示你少打几个字,或拼错字而已。改掉就没事了。

学习 ≠ 登山

学习是拼图,而不是登山。

学习编程,并不需要从计算机的基础理论知识开始学起,也并不需要把某个编程语言的语法规则全部掌握了,才能开始去编程实战。

我们的传统教育,让我们误以为所有的学习必须是:把基础打牢固了才可以进行下一步的学习。

但其实这是错误的认知。你有看过

  • 小孩先学「力学原理」,再学走路吗?
  • 厨师先学「热力学」,再学烹饪吗?

当然不是。

所有的人都是从镜像模仿开始,掌握基本的高频小套路。熟练之后,才复盘补充学习基础理论,最后牢固的。

学习实质上是拼图

学习不是登山而是拼图。既然是拼图,就是说你可以这里拼一块,那里拼一块,假以时日,你是可以把整个图给拼起来的。

当然,拼图最有效的方法应该是先把整个图的边框给拼起来。这样,你就知道图的边界在哪里了,然后,再往中间填东西。

这门课就是以这样的原理 —— 「最外层的边框」 高频小套路 —— 构成的。

Computational Thinking => Programming

在这里给各位总结一下,编程是什么?编程是:

  • 观察输入是什么,输出是什么;
  • 把大问题拆解成可以实作的小问题;
  • 在实作过程中找到资源;
  • 用电脑自动化解决问题。

如此简单而已。

2. RSA大法

遇到问题时善用RSA大法:Read(读报错信息、日志、自己的代码)——Search(Google搜索)——Ask(向高手请教)

3. 「从入门到崩溃」的编程学习方法

  • 先学编程语法
  • 误入歧途,不知道如何迁移
  • 纯自学
  • 掉入坑里,情绪崩溃

4. 拆解任务

这一课,我们要做的是搭建一个简单的招聘网站,请按照前面介绍过的方式。

  • 写下 7-10 件你觉得需要做的功能;
  • 整理出目的群组;
  • 按照 Must Have / Should Have / Could Have / Nice to Have 整理出一张图。
文章目录
  1. 1. 课程目标
  2. 2. 课程复盘
    1. 2.1. 1. Computational Thinking
      1. 2.1.1. 所谓的 Computational Thinking 是什么呢?
      2. 2.1.2. 红画面报错 ≠ 人生失败
      3. 2.1.3. 学习 ≠ 登山
      4. 2.1.4. 学习实质上是拼图
      5. 2.1.5. Computational Thinking => Programming
    2. 2.2. 2. RSA大法
    3. 2.3. 3. 「从入门到崩溃」的编程学习方法
    4. 2.4. 4. 拆解任务