我以前其实很难理解初学者为什么总会问一些非常低级的问题,比如某某东西怎么安装不上啦,找不到路径,文件不存在啦,某某语法错误啦。
因为不只一个人遇到,后来我去认真思考这个问题,其实每个人的知识背景不一样,认知不一样,接受的教育都不一样,所以不管是哪个网站的教程,哪本书,即使它写得再好,总会有人看不懂,学不会。
比如知乎就有个问题,“为什么我看不懂廖雪峰的教程”。其实人家写的也没多高深。但就是有很多人看不懂。
单是装个编程的环境就把很多人挡在了编程的门外面,为什么? 是教程写的不对吗? 肯定不是。
因为每个人的电脑环境不一样,有的人用的苹果,有的人用Windows,Windows 里又分很多版本,有些人还在用XP,有些人用Windows10, 因为同一个软件在不同的系统,不同的环境中,有可能表现出来的问题是不一样的。
而小白有这个能力去辨别分析这些问题到底出自哪里
降低入门门槛
如何降低编程入门的门槛也就成了很多教育工作者新的研究目标。比如有些教程就直接省去了环境安装的环境,直接在网页上编辑代码,运行代码。效果跟本地是一样的。这样就解决了万事开头难的问题。
比如我知道的夜曲编程,这是我体验过对小白最友好的教程之一,他们是怎么做的呢?
首先你不需要自己安装编程环境,甚至不需要电脑,在手机都可以学习,真正做到了随时随地学习。按照我们传统的学习方式,身边没一台电脑是没法学编程的。而他们把整个编程的环境搬到了线上。坐公交坐地铁都能学,这样就可以充分利用碎片化时间了。
即时反馈
为什么我们嗑瓜子、打游戏、刷抖音会上瘾? 因为他们能带来即时满足感,你每吃到一粒瓜子大脑就给你刺激,每在游戏你杀掉一个敌人大脑就兴奋,他们都是即时反馈给大脑一个明确的很爽的信号,而编程呢? 你学一个小时能给你带来什么满足感? 挫败感可能更多一些。
因为你捧着一本书磕一个小时不能让你马上学会编程。
只有那些真正能克服延迟满足感的人才能坚持到最后,为什么说学习,健身都是反人性的,就是因为人性本来就是寻找即时快乐,逃避痛苦。
如果编程能像玩游戏一样,用关卡式的打怪升级来学编程,这就能大大提高学习的积极性,把每个知识点都做成卡片,学完所有关卡见到大boss你差不多也学会了。
概念隐喻
编程还有个最大的难点就在于很多概念是抽象的,以至于很多人看不懂,而人对具象的看得见摸得着的东西更能吸引注意,而网络的教程即使是很初级的教程也都是照本宣科的引用原始概念写出来的,所以如果不是科班出身你很难看懂。
我之前在知乎写过很多高赞的文章,其中都有一个共同的特点,就是我能把一个编程里面的概念类比到实际生活场景中,这样可以大大帮助我们理解其中的原理。说白了,就是讲人话。讲大家都能懂的话。
夜曲编程设计的这个课程也是我觉得吸引人地方之一,每个知识点,每个概念有有专门的卡片介绍,每个概念还会对应的有一个隐喻例子
例如,变量是编程语言中能存储数据的抽象概念,它可以存储不同类型的数据。变量就像是水杯,能存放各种不同类型的饮料。 是不是一下就明白了变量的概念。
自学编程还会遇到一个问题,一个人编程如果真的遇到棘手问题,甚至都不知道怎么用搜素关键字找答案的时候,这时候是不是特别希望身边有个懂编程的老师可以点拨一下,任督二脉瞬间打通,这时候你可以虚心请教这个领域的大牛,通常他们都会热心的去帮助你,必要时用红包以示感谢。
如果有这样的教程你还学不会你来打我,可以在应用商店搜索下载“夜曲编程”体验学习。