专栏首页算法与编程之美谈一谈|什么是编程思维?

谈一谈|什么是编程思维?

1前言

近日,小编听一朋友抱怨:编程太难了,写代码太难了,根本就看不懂。小编听了这话后呢,思考了几个问题,这会不会是一些人拒绝学习编程的原因呢?编程究竟又和代码是否有直接联系呢?什么又是编程思维呢?在解决这几个问题之前,先来了解几个概念。

2了解编程

2.1什么是代码?

图2.1代码

代码的官方解释是:供把资料和指示输入自动计算机或制表机的任何符号系统,亦指这种符号的记录(如靠打孔资料卡片或磁带上的受磁点)。实际上通俗的讲代码对于汉语来说就是文字,对于英语来说就是英文字母。不同的代码组合起来会有不同含义,它的目的就是让接收者明白发送者的意思。

2.2什么是程序语言?

图2.2程序语言

人类语言大家并不陌生,都知道汉语,英语,韩语等语言。它们的组成也就是由许多不同的“代码”按照不同的规则组成。同样对于程序语言来说也是一样的,它们也是由不同的代码按照一定的规则(语法)组成。不同的是程序语言的接收者是机器。比如熟悉的C、C++、java、python等程序语言。它们各自有各自的语法。

2.3什么是编程?

图2.3编程

这里有必要知道什么是程序:程序(program)是为了实现特定的目标或解决特定的问题而用计算机语言编写的命令序列的集合。也就是一些列用程序语言编写出的指令,然后计算机读懂它并执行相应的动作。那么编程就是通过人为的编写程序,让计算机明白给它输入的一系列指令,达到“人机交流”。

3不同的思维解决问题

3.1题目描述

大约在1500年前,《孙子算经》中记载了一个有趣的问题。书中是这样叙述的:“今有雉兔同笼,上有三十五头,下有九十四足,问雉兔各几何?”这四句话的意思是:有若干只鸡和兔同在一个笼子里,从上面数,有35个头;从下面数,有94只脚。问笼中各有几只鸡和兔。

图3.1鸡兔同笼

3.2普通思维解决

普通思维也即是数学思维。要做这道题肯定是先要知道鸡和兔都只有一个头,鸡有两只脚,兔有四只脚。假设鸡和兔各有下x,y只,可得出:

x+y=35

2x+4y=94

解得鸡(x)有23只,兔(y)有12只。

3.3编程思维解决

同以上解决方法相同,设鸡兔各有x,y只

代码(以python为例)如下:

for x in range(36):

    y = 35-x

    if 2*x+4*y == 94:

        print(x,y)

同样也可以解得鸡(x)有23只,兔(y)有12只。

3.4两种解题思维的异同点

从大体上来看两种方式有很大差别,但实际上它们的解决过程和思路都是相同的。同样是列了两个方程,只不过下面这种x只能从0-36范围内逐一取。满足条件就输出x,y。但是思考这个问题的过程都是先用x,y分别代表鸡和兔。然后列方程、解方程。

4编程思维

图4.1编程思维

从上面的两种思维解决问题的过程和方式可以看出,解决这个问题的方式本身并不与思维方式有关系。也不会局限于什么语言,什么代码。其所表现的只是纯粹的解决问题的思路,只在于你怎样去表达。

随着人工智能时代的到来,越来越多的国家将编程纳入必修课,而且不管你是什么学校什么专业。旨在激发学生的编程思维。同样我国政府在《新一代人工智能发展规划》中,明确指出了中小学阶段要设置人工智能相关课程,鼓励推广编程教育。包括游戏开发,软件开发等。

实际上编程思维的核心并不在于什么语言,也不是什么语法,甚至和什么数据结构和算法也没有什么关系,只是去发现问题、分析问题、解决问题、最后总结问题的规律,建立此类问题的模型,再整合到算法中,形成一套完整的程序。

5总结

经过上诉讲诉后,开始的问题自然也迎刃而解了。编程自然与代码没有关系,编程思维也只是解决问题的方式的思考。所以大家不用因为什么语言难学,什么代码难写而放弃对编程的学习。当学好了编程,有了较强编程思维后,对任何问题的看法也会有所不同,它会增强你的逻辑思维能力,不论是解决学习上还是生活上的问题都会井然有序,而不是看上去的杂乱无章。

END

主 编 | 王文星

责 编 | 江来洪

where2go 团队

本文分享自微信公众号 - 算法与编程之美(algo_coding),作者:江来洪

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-04-07

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 聊一聊少儿编程

    1984年,邓小平的一句话开启了中国计算机的新篇章“计算机普及要从娃娃抓起”。而且在2017年浙江省就明确表明,Python将纳入浙江省的的高考。如果说这离我们...

    算法与编程之美
  • 微信小程序|vant-dist的引用与屏幕宽度的获取

    微信小程序中需要用到许多代码,且毫无规律而言,对于刚接触微信小程序开发的开发者来说,想要完全记住并流畅的使用必定是难上加难的,那么有没有什么方法能够有效地解决这...

    算法与编程之美
  • 计算机基础|bad_pool_caller蓝屏故障解决方案

    电脑故障往往整的人措不及防,这不,我就遇上了蓝屏死机。以前遇到蓝屏,就重新启动机器,也能得到解决,所以也没有在意蓝屏死机的问题。这次,我遇上了bad_pool_...

    算法与编程之美
  • 编程小白 | 每日一练(96)

    这道理放在编程上也一并受用。在编程方面有着天赋异禀的人毕竟是少数,我们大多数人想要从编程小白进阶到高手,需要经历的是日积月累的学习,那么如何学习呢?当然是每天都...

    闫小林
  • 编程小白 | 每日一练(105)

    这道理放在编程上也一并受用。在编程方面有着天赋异禀的人毕竟是少数,我们大多数人想要从编程小白进阶到高手,需要经历的是日积月累的学习,那么如何学习呢?当然是每天都...

    闫小林
  • 华人第一打工皇帝,程序员如何逆袭成为人生赢家

    1961年,陆奇出生于上海,打小读书就非常努力。并且考上复旦大学,还成为复旦“本科毕业考上研究生的八十人之一”。成绩优异的他硕士毕业后选择就留校当了老师。

    一墨编程学习
  • 他们在阿佤山区学编程

    人工智能时代到来之际,边疆贫困地区的孩子们不应再落后于时代。至少在编程这件事上,有机会和发达地区的孩子们站在同一起跑线上。面向智能时代的到来,要能够让孩子们具备...

    腾讯智慧教育
  • 编程小白 | 每日一练(173)

    这道理放在编程上也一并受用。在编程方面有着天赋异禀的人毕竟是少数,我们大多数人想要从编程小白进阶到高手,需要经历的是日积月累的学习,那么如何学习呢?当然是每天都...

    闫小林
  • “零基础学编程”都需要哪些基础?

    工作了20多年,学了Basic、C、C++、JAVA、C#、Objective-C、R、Go等一堆语言,可惜样样都不精。最近好像流行零基础学编程,我努力清空了我...

    申龙斌
  • 新人第一帖 留个爪爪

    新人第一帖 留个爪爪 基于 Block 的异步编程回调是目前 iOS 使用最广泛的异步编程方式,iOS 系统提供的 GCD 库让异步开发变得很简单方便,但是基...

    用户3127870

扫码关注云+社区

领取腾讯云代金券