早10年遇见“它”,我就不会过得这么辛苦了
今天看到群里有家长在讨论孩子学编程应该从哪个语言入手,我就想来分享下我的经历,给大家一些参考。自我介绍下,我是一个有10多年编程经历的老码农了。
我的第一个程序语言是 VB.NET。原因很简单,因为C语言的语法我实在是看不懂。(老码农都曾被C语言吓跑)我实在是不理解那些 {}(); 等等奇怪的符号到底有什么用,对我来说就像无字天书一样。
但其实后来,学了各种不同的编程语言后,我总结出了规律:不论学哪种编程语言,语言背后的概念都是相同的。例如:变量、函数、循环、条件判断...
你学C语言有这些,Javascript有这些,Swift也有这些。不管学哪种程序语言,都会碰到这些最基本的东西。无论是再复杂的程序,都是这些基本的概念组成的。
而今天,我们孩子学编程的时候有了一款叫Scratch的编程软件。一开始,我只是听过很多次,但实际接触才知道“真的很好用”。这个就是让你用很简单、很视觉化的方式来写程序。你只要拖拉几个拼图、组合在一起,就可以写出一个可以动的程序,甚至是一个小游戏!
从Scratch开始学这些基础有两个好处:1.不被语法限制;2.视觉化。
Scratch里你几乎不用打字,甚至可以把编程看做是拼图游戏。你就把你想要的东西拼一拼,程序就写完了。所以你学的是真正的“概念”,而不是一堆语法。
举例来说,如果你学 C,你就要学:
如果你学Python,就会是:
但这两者本质上是一样的东西,都是循环,只是语法不同而已!
如果从 Scratch 开始,就可以不用去记这些语法,只学那些精髓的知识就可以了。学完Scarch之后,回头再来看C语言的这段代码就会知道:喔~这就是循环嘛!
Python比C语言更适合初学者,我认为是语法比较简洁,程序比较好执行的原因。
如果你是为了学这些概念而必须要学一个程序语言的,那你就必须先熟悉这个程序语言的各种规则和语法。例如学Python,你要知道 Python怎么安装,怎么执行,语法是怎样的,冒号是做什么用的等等。
可是,如果你只想学流程控制、循环等等的概念,根本不必多学这些东西。Scratch图像化的表达会更简单。
第二点,视觉化很重要!
尽管我写了十年程序,但永远忘不掉,我在循环那边卡了多久。尤其是双重循环,简直就是恶梦!
“我知道这边是1到10的意思,但是第二层为什么会这样?”“为什么这样就可以印出九九乘法表?”
那时候我面对的是冷冰冰的代码,大概就是这样的:
尽管我现在可以从排版跟大括号一眼看出“block”的概念,但10年前的我完全不行,完全不知道这段编程是什么意思!
可是Scratch就不一样了!它直接用视觉化的拼图概念,让你在循环里面可以塞另外一块循环积木,马上就可以明白什么是双重循环!
举例来说:
for(var i=1; i<=9 ;i++){ for(var j=0; j<8; j++;{ }}
这两段其实是差不多的东西,可是下面的图像化程序块会更好理解。为什么?因为它就像拼图一样,能够让你清楚的“看见”程序的结构。
对初学者来说,编码的 {} 是看不到的,或是说,没那么快可以反应过来这是一个“区块”。可是在 Scratch中,由于独特的拼图设计,一眼就看出来了。
Scratch 独特的“拼图式”写程序,能够让初学者完全摆脱“语法”的束缚。你只要注意程序顺序是不是正确的,结果是不是正确的。而不必纠结在:“这边要加分号吗?这边是不是有大括号?”
有许多人认为程序很难,都是认为是“程序的语法很难”,但其实程序的概念每个人都是与生俱来的,只是没有发觉罢了,因为很多细节的事情大脑都帮你做掉了。
所以摆脱语法,才是学好编程的第一步。
Scratch是2007年问世的,如今在Scratch在线社区里,8岁以上的年轻人分享的创意项目已经超过300万了,而且每天都会新增上千个。 可想而知它有多么受欢迎!
我觉得每个家长和孩子都应该学习Scratch,毕竟未来社会编程是最基本的技能。
在海码爸爸公众号中回复【编程软件】,可以获得Scratch的官方下载安装包!点击【阅读原文】,可以看海码爸爸的计算机博士们录制的Scratch教程。
相关阅读:
海码爸爸 ∣一群计算机博士发起的父联组织
长按识别二维码,加关注;欢迎加入QQ群:361999832(注明“编程”)