为什么儿童学编程应当从这里开始

学习一样东西,你最看重的是什么?

不是,大多数人都在学

不是,简单易学

不是,它看起来很好

不是,......

学习一样东西,最要关心的是,

你最终得到了什么样的改变?

而最重要的改变,是思考方式的改变。

因为你不需要费任何气力,

就可以将你的思考方式,用在衣食住行的各个地方,

进而帮你产生更大的价值。


所以学习一门语言并不是,简单地学习一门语言,

而是学习思考的方式。


别废话,到底该学什么?

  • 从这里入手,
  • 相关的一大堆学习资料
  • 解决你可能会遇到的问题


let's 狗


在我学习了众多编程语言之后,

如:java、python、nodejs、ruby、小程序开发等等,

我推荐你从这里入手,

https://guides.rubyonrails.org/getting_started.html

这是Ruby on Rails从0到实现一个博客网站的极简教程,

完成整个学习实现自己的第一个博客网站,

我只用了大约1个小时。


别着急。

我想先给你介绍一个人。

  • 戴维·海涅迈尔·汉森(人称DHH)

他们可能会成为你甚至你孩子的老师,

相信我花点时间是值得的。

每个家长都会去了解一下,学校的老师背景如何?


现实世界中的“超级学习者”戴维·海涅迈尔·汉森是 Ruby on Rails 的创造者,

Basecamp (https://basecamp.com/)的创始人和首席技术官,

以及 多本书的作者……

此外他还是一位专业的勒芒赛车手。

“把你头脑中那种‘学习的速度有上限’的想法剔除掉…,你可以把大部分学习的轨迹压缩到非常、非常短的时间里…”

—— 戴维·海涅迈尔·汉森(David Heinemeier Hansson)

DHH关于Rails 哲学给出了两个主要的指导原则:

  • 不要重复自己

这不容易,比如这篇文章,早上醒来的时候一下子写完了,

但是因为异常原因,文件没有保存上,我又重新写了一遍。

如果你有类似的经历,你一定对重复这件事深恶痛绝,

DHH会通过rails展示他是如何解决重复问题的。

  • 约定优于配置

这有点像小孩子玩游戏,总会约定谁扮演大坏蛋,谁扮演英雄,从而使事情非常的自然。

孩子们天生就懂得的东西,在成人的世界里失去了,

DHH在rails中找回了这种方式,你会学到在约定中如何编程,而不需要浪费多余的精力为数据库到底叫什么名字费心。


所以还记得吗?

你真正要从DHH的rails身上学习的,是思考的方式。

所以我建议你在阅读上面的资料的时候,

问一问自己,

为什么他会先讲这个?

为什么他会想到这个?

为什么在这里要这样做?

观察DHH先做了什么?又做了什么?这背后的习惯是什么?

我举一个例子,

  • 如何做,为什么?

教程中不只是告诉你如何做,DHH还会说明为什么要这样做。

当你执行下面的命令后,DHH会告诉你应当看到什么反馈,其中什么是最重要的。

bin/rails generate controller Articles index --skip-routes

这是一种暗示,你在行动前要明确为什么,如何做?


  • 明确原则,并基于原则行动

如同上面的两条指导原则,

关于减少重复,Rails 明确承认应用程序所做的大部分工作都是 CRUD(创建、读取、更新和删除),并提供了许多功能来帮助简化执行 CRUD 的代码。


  • 重构,去掉重复的动作

在入门教程中专门有一章是讲重构的,

这很少出现在入门课程中,但是rails从最初就教给初学者养成良好的思维习惯,这很重要,

我建议这个部分你多看几次,反复得研究。


当然,学习编程不单单是一门语言。

事实上我建议你,多学几门语言,

但你应当从教给你学习思考方式的地方开始。


一大堆免费资料


这些资料的目的就和前面我提到的一样。

我建议你多学几门语言。

别担心,

不要急于下定论。


如果上面的内容你和你的孩子觉得很难,

可以从这里,仔细地找找,

找一份自己喜欢的,从兴趣入手很必要。

https://github.com/EbookFoundation/free-programming-books/blob/main/books/free-programming-books-langs.md#ruby

这些资料不见得现在看,

你也不必都看,

把这当成一次探险,

或者是玩一场,现实生活的rpg游戏。

游戏里你唯一的资源是你的时间,

你想获得是什么就要用时间去兑换。

时间用在哪,最终的收获就在哪里。


捞干的,挑肉吃。

还有一个好消息告诉你,

如果你真心学习了上面的内容,

即便最后你没有学成上什么,

至少你的英语水平得到了提升。


怎么解决你可能会遇到的问题


  • 如何快速学习 Ruby on Rails?
  • 如何搭建Ruby on Rails开发环境?
  • 学习Ruby on Rails要注意什么?

说实话,类似上面的文章,网上的文章很多,

大多数都是从基础开始,比如:

Windows/mac系统操作、html&css、编程之道、git、ruby、rails、js,

我会从前面的DHH给出的指导手册入手,

毕竟这篇手册可以学到DHH的思考方式,

然后根据需要针对性的学习用得上的东西。

为此你可能会遇到类似下面的问题,

我把它们写在这里,当你动手学习时,如果遇到了相应的问题可以来看看:


  • 怎么解决443

遗憾的是,因为一些这样或那样的原因,

国外的一些网站我们访问起来是有问题的,

比如:MacOS系统使用 Homebrew 官方地址时,报错:

curl: (35) LibreSSL SSL_connect: SSL_ERROR_SYSCALL in connection to raw.githubusercontent.com:443

解决办法:
使用国内源,

/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"

我建议你不要简单拿得一个答案,

事实上,你可以发现这个地址是国内的gitee仓库,

于是类似的问题,你应当学会去国内的网站寻找,

未必只是gitee,可供选择比你想象的要多,

只要你不是第一个走这条路的人,总是可以找到一些踪迹的,

我建议你也留下一些痕迹,就像我一样,不只是帮助后来者,

也是对自己收获的总结。


  • 怎么解决版本不同

说实话,这是常有的事儿,我无法保证你和我的问题一样,

但是,我可以保证你总会遇到,

我的解决方案是关闭当前的窗口,重启电脑,

然后起身活动一下,喝杯水,做个拉伸运动,

甚至于去睡觉。


你可能会觉得这也太不负责任了吧,

不过,这是一种策略,

放松一下,你可能会有意外发现。


  • 怎么解决为什么学的问题

这个问题说实话受欢迎程度最低,但是最重要。

如果你花了几个月的时间,然后发现自己不能通过编程解决任何现实问题,

恭喜你,进步了,

你明白了编程并不是一切,你需要抬头思考一下,

什么才是最重要的?

你要解决的问题是什么?

然后才是要如何解决,

最后才是通过编程实现的。


我是昨天晚上和我弟聊天时,聊到了学什么语言,

但是,我想到了我还没用过rails,

所以我花了点时间(不到一个小时)学习它,

但是,我在学习之前的目标是想好了的,

我非常清楚我要做一个网站,把我日常查看的新闻地址汇总起来,

然后分类,

帮助那些像我之前一样不知道要看什么的人,更好的认识世界,

它现在是这个样子的,别着急,

我并没有按顺序学习一门语言,对我来说,我知道我要什么,我要学的只是刚好能满足我需要的部分。


最后,我想告诉你的是,不要相信我说的就全是对的,

但是,你应当明白,学习编程不是最重要的,

最重要的是思考方式,

我会向那些已经做出成绩的人学习。


抱歉,让大家久等了。

发表评论
留言与评论(共有 0 条评论) “”
   
验证码:

相关文章

推荐文章