编程思维之与人类语言的思维差异(新手必看)
有很多小伙伴是初次接触编程,或者是刚接触编程不久,很容易遇到各种各样的问题,最简单的比如是环境无法正确安装,也有遇到一些非常棘手的问题,比如老师上课的代码正确运行,但自己一写代码就出错。不少同学由此就从入门走向放弃。但也有同学在坚持学习,努力迈过这道难关。这是为什么呢?很大程度上是由于编程语言和人类语言(学名叫做自然语言)之间存在着很大的思维差异。
为了帮助大家理解,先举个栗子,老婆对老公发信息说:下班买几个苹果回来,如果看到西瓜,就买一个回来。不知道大家看到这句话会是怎么样的理解?那我来说说几个点:买几个苹果中的几个究竟是几个;看到西瓜就买一个,这里的一个指的是苹果还是西瓜呢?买苹果和买西瓜是同时买还是只买其中一样;甚至还有去哪里买等等诸如此类的问题;这正如莎士比亚的名言:
其实这就是人类语言的一大特点:歧义性。还有在语言中频繁出现的代词(他、她、它),这也充分体现了人类语言的多义性。为了更好的理解编程思维,我们首先要明了的是编程语言的本质是控制计算机来执行特定任务的代码。简单来说,编程语言的受众是计算机,而人类语言的受众是人。计算机和人的差异在于,计算机很笨,不能进行思考,只能按部就班的做,但是他做的飞快。而人类虽然比计算机聪明的多,能够自主思考和解决问题,人做事却远比计算机慢得多。
但是很多同学对两者差异并不自知,所以采用了学习人类语言的方法来学习编程语言。具体来说,对老师讲过的代码没有深入思考,而只达到了意会(大概理解了)。如果细问每个编程语句的含义,很多同学就会摇摇头。
所以对于初学者来说,正确的学习方法是读懂每一个编程语句后,并在较难理解的语句后添加上自己的注释。然后再通过人类语言梳理出整个代码的大步骤,再把大步骤分解成小步骤。也就是说先用自己的语言来描述已有代码,然后再把描述转换成自己的代码,即下图所示:
千里之行,始于足下。以C语言为例,下面两段是for循环中++i和i++的代码,几年前有个朋友非说两者运行过程是不一致的,最后还是我把汇编代码给他打印出来,他才无话可说:
for(int i=1; i<3; ++i){;
}
for(int i=1; i<3; i++){;
}
所以我们要在学习过程中,首先把最基本的语句的过程逐步搞清楚,然后再逐步增加难度,学习和复现更复杂的代码。祝爱学习的同学早日迈过一写代码就出错的小难关。大家还有什么学习编程的疑问,欢迎大家在留言区留言,我将尽力帮助大家。
新学Python的同学欢迎订阅我的专栏:新手学Python,祝大家都能成为编程高手。
要在任何领域成为一等一的高手,构建属于自己的知识架构是至关重要的。那么就有同学会问,那什么是知识架构呢?知识架构描述了知识点之间的联系以及知识学习的成长路线。为了帮助大家入门和进阶,推荐CSDN官方提供的Python全栈知识图谱,希望能帮助大家早日成为Python届的顶级高手。
为了鞭策自己不断的进步学习,我也自己购买了一份,感觉的确很有用,无图无真相:
祝大家早日成为编程大神,一起加油~~~
编程思维之与人类语言的思维差异(新手必看)相关推荐
- Java编程学习入门、Java语言学习、Java入门必看
一.初识Java 1.生活中的程序: 从起床到教室上课的过程 穿衣打扮>起床>洗漱>出宿舍>>吃早餐>到教室 按照特定的顺序去完成某一件事的过程我们叫做生活中的程序 ...
- 新手必看的编程介绍,帮你推荐学习方案!
新手必看的编程介绍,帮你推荐学习方案! VB是什么? ) y0 {6 G# G; j3 B VB 是Visual Basic编程语言 * B. O2 G# z) O1 |- g8 `4 ^ 编写计算机 ...
- python渗透测试编程技术基础书评_【新手必看】渗透测试学习书籍推荐
Web综合渗透方向 <Web安全攻防:渗透测试实战指南> 该书出版于2018-7,全书416页,涉及知识面虽广,但90%的知识点都不深入,在新手层面相对深入讲解了SQL注入的利用:知识排序 ...
- 这样学还不会?小白入门编程第1讲 计算机基础知识 JAVA基础知识 必看
1 计算机基础知识 1.1计算机 计算机(Computer)全称:电子计算机,俗称电脑.是一种能够按照程序运行,自动.高速处理数据的现代化智能电子设备.常见的形式有台式计算机.笔记本计算机.按照规模分 ...
- 你了解单片机吗?--------新手必看单片机的编程架构。
在大家初学编程的时候,总会读一些程序,可是读完程序之后,只能看明白一小部分的程序.有时候会摸不着头脑.下面我就给大家说说编程的架构.了解了程序的架构,在读起来程序就轻松多了.其实架构就是程序的编程思路 ...
- 如何学C语言,新手必看!
新手刚学语言时易于迷茫. 下面我介绍一下我学C的一些经验: 1.前面的数据类型.变量.常量等一定要学好,万物基于地.后面任何的技术都是建筑在其上! 2.云算符中的求余自增自减一定要好好的掌握. 3.条 ...
- c语言中文网 vc++6.0下载量_【新手必看】C语言开发环境,请查收!
C语言开发环境的选择, 貌似是告诉我们,工欲善其事,必先利其器. 01.Visual Studio Visual Studio(简称 VS),它是 Windows 下的标准 IDE,VS系列为IDE( ...
- 新手学习c语言的方法,学习C语言方法“新手必看”
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 1.多看代码 在有一定基础以后一定要多看别人的代码. 注意代码中的算法和数据结构. 毕竟学C之后的关口就是算法和数据结构.提到数据结构,指针是其中重要的一 ...
- 学c语言方法,学习C语言方法“新手必看”
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 1.多看代码 在有一定基础以后一定要多看别人的代码. 注意代码中的算法和数据结构. 毕竟学C之后的关口就是算法和数据结构.提到数据结构,指针是其中重要的一 ...
最新文章
- syscall 系统调用陷入_linux 系统调用open 篇一
- 安装 | OpenCV4.2.0 + VS2017安装教程
- 程序员生活之路--来自程序员爸爸的一封信
- 在linux下使用360随身wifi 2 | 李凡希的blog,在Linux下使用“360随身WiFi 2”
- 浅入浅出 Android 安全 翻译完成!
- html合并标记,在合并期间在HTML标记之间拉取特定的(文本)间隔
- mysql 同步 master-slave
- powershell 更改为Oh-my-zsh
- 编程基础(四)——cache之一
- oracle同音模糊查询
- 物联网技术在智慧城市建设应用中的难点与疑点
- Unity 接入有道智云AI - 文档翻译
- 程序员的悲哀是什么?
- java 添加盲水印_图片加数字盲水印
- Node.js 网页瘸腿稍强点爬虫再体验
- 【SQL数据库】数据库的创建、查询、插入等操作使用方法(结合黑皮书教材网站(db-book中的例子)在MySQL Workbench和shell中实现查询操作
- Python 黑马程序员 笔记
- 微博爬取(Python)--中大微博前100条微博内容以及评论转发点赞数目爬取
- Hibernate 注解 实现一对多
- 抓取检测之Closing the Loop for Robotic Grasping: A Real-time, Generative Grasp Synthesis Approach
热门文章
- MySQL的启示:Intel Optane P4800X评测(4)
- Java注解处理器(编译时注解)
- 腾讯第一次种黄瓜,又长又直,还拿了奖
- 新型环保集成墙板尺寸规格是多少?常见的有哪些?
- 【shader】UE4 Subsurface Profile shader提取
- MySQL遭遇一直处于启动中,右下角图标变黄的解决方法
- 管他天下千万事,闲来轻笑两三声
- [重修数据结构0x03]并查集、堆、优先队列(2021.8.11)
- 用dos编译c语言,如何在Windows命令行(DOS界面)中调用 编译器 来编译C/C++源程序...
- 『Android安全』版优秀和精华帖分类索引