有很多小伙伴是初次接触编程,或者是刚接触编程不久,很容易遇到各种各样的问题,最简单的比如是环境无法正确安装,也有遇到一些非常棘手的问题,比如老师上课的代码正确运行,但自己一写代码就出错。不少同学由此就从入门走向放弃。但也有同学在坚持学习,努力迈过这道难关。这是为什么呢?很大程度上是由于编程语言和人类语言(学名叫做自然语言)之间存在着很大的思维差异。
为了帮助大家理解,先举个栗子,老婆对老公发信息说:下班买几个苹果回来,如果看到西瓜,就买一个回来。不知道大家看到这句话会是怎么样的理解?那我来说说几个点:买几个苹果中的几个究竟是几个;看到西瓜就买一个,这里的一个指的是苹果还是西瓜呢?买苹果和买西瓜是同时买还是只买其中一样;甚至还有去哪里买等等诸如此类的问题;这正如莎士比亚的名言:
其实这就是人类语言的一大特点:歧义性。还有在语言中频繁出现的代词(他、她、它),这也充分体现了人类语言的多义性。为了更好的理解编程思维,我们首先要明了的是编程语言的本质是控制计算机来执行特定任务的代码。简单来说,编程语言的受众是计算机,而人类语言的受众是人。计算机和人的差异在于,计算机很笨,不能进行思考,只能按部就班的做,但是他做的飞快。而人类虽然比计算机聪明的多,能够自主思考和解决问题,人做事却远比计算机慢得多。
但是很多同学对两者差异并不自知,所以采用了学习人类语言的方法来学习编程语言。具体来说,对老师讲过的代码没有深入思考,而只达到了意会(大概理解了)。如果细问每个编程语句的含义,很多同学就会摇摇头。
所以对于初学者来说,正确的学习方法是读懂每一个编程语句后,并在较难理解的语句后添加上自己的注释。然后再通过人类语言梳理出整个代码的大步骤,再把大步骤分解成小步骤。也就是说先用自己的语言来描述已有代码,然后再把描述转换成自己的代码,即下图所示:
千里之行,始于足下。以C语言为例,下面两段是for循环中++i和i++的代码,几年前有个朋友非说两者运行过程是不一致的,最后还是我把汇编代码给他打印出来,他才无话可说:
for(int i=1; i<3; ++i){
;
}
for(int i=1; i<3; i++){
;
}
所以我们要在学习过程中,首先把最基本的语句的过程逐步搞清楚,然后再逐步增加难度,学习和复现更复杂的代码。祝爱学习的同学早日迈过一写代码就出错的小难关。大家还有什么学习编程的疑问,欢迎大家在留言区留言,我将尽力帮助大家。
新学Python的同学欢迎订阅我的专栏:新手学Python,祝大家都能成为编程高手。
要在任何领域成为一等一的高手,构建属于自己的知识架构是至关重要的。那么就有同学会问,那什么是知识架构呢?知识架构描述了知识点之间的联系以及知识学习的成长路线。为了帮助大家入门和进阶,推荐CSDN官方提供的Python全栈知识图谱,希望能帮助大家早日成为Python届的顶级高手。
为了鞭策自己不断的进步学习,我也自己购买了一份,感觉的确很有用,无图无真相:
祝大家早日成为编程大神,一起加油~~~