文章插图
文章插图
拥有知识不是目的 , 是必要的基础和手段 , 解决问题才是目的!我们的现状是满脑子的知识和标准答案 , 而缺乏很多重要的能力 。其中最重要的能力包括:生存能力、学习能力、思辨能力(批判能力)、创新能力等等 。
我们从未接受过解决问题的训练 , 所以今天给大家推荐一种能帮助我们解决问题的思维方式:编程思维 。
编程的核心 , 不是编程 , 不是语法 , 甚至不是算法或数据结构本身 , 恰恰是如何分解问题——发现规律建立解决问题模型 , 映射到合适的数据结构和算法上 , 最后才根据算法写程序实现 。
文章插图
基于此 , 卡耐基梅隆大学计算机的一名华裔教授提出“编程思维”这个概念 。
他定义编程思维是:能够把现实生活中的复杂问题 , 逐步拆分成可理解的小问题 。
Decomposition , 即拆分 。根据已有的知识和经验 , 把问题拆分 。比如我想喝咖啡 , 那我可以请求你:“可以帮我倒杯咖啡吗?”
但这句话如果想让电脑听懂 , 我得先告诉它哪个是“杯子”、哪个是“咖啡”、什么是“倒” , 然后再告诉它怎么去倒 , 比如先直走5米 , 左转75度 , 左臂下放50度……
现实生活 , 每一个复杂问题 , 都是基于解决一个个被拆分的小问题而被解决的 。
比如说 , 超级计算机感觉很复杂最后无非是解决一个带宽问题、一个存储问题;比如说 , 解决碳排无从下手 , 实际上是解决人口、服务、能源、单位能源的碳排放这几个问题 。
Pattern Recognition , 即模式识别 。根据新问题和以前解决过的问题的相似性 , 举一反三琢磨出规律 。假如你需要画100只猫 , 你会怎么办?找100只猫来挨个临摹?对于计算机来说 , 你需要找出猫的“模式” 。
你要知道猫是专属的毛 , 眼睛 , 尾巴 , 四条腿等 , 按照这个“模式” , 你才可以“批量”画猫——你不用每次画一个新动物 , 只需要变换局部特征:黄白条的猫还是黑猫 , 长尾巴的猫还是短尾猫
Abstraction , 即抽象 。将问题里涉及的数据 , 抽象到数据结构(变量 , 数组 , 链表等) , 把数据处理过程可重复执行部分抽象成函数模块 。
听起来很复杂吧?这是一个过滤的过程 , 整个过程你要聚焦重要的关键信息 , 忽视无用细节 , 这样才能通过认知问题的核心本质 , 帮助我们形成解决问题的构想 。
比如 , 当我们看到这一房子 , 我们看到的是:
但在建筑师的眼中 , 它可能是这样的:
建筑师通过自己的经验 , 抽象出房子里面具体的构造 。这一步 , 我们虽然几乎难以在应试教育的学习方法中获得 , 但我们能从不断地编程训练中去培养抽象思维 。
会编程的人 , 往往能透过一个应用表象 , 看到背后实现的步骤 。
Algorithms , 即算法 。通过循环执行 , 根据前三步的分析成果 , 设计步骤 , 写出算法 , 从而解决问题 。这一整个过程 , 我们看到所谓的编程语言和语法 , 在最后才发挥出作用 。所以当我们觉得学编程难 , 是因为我们还未从过去根深蒂固的学习习惯中抽离出来 , 凡是需要打破习惯的事 , 必是不易的 。
就像很多刚刚出国读书的孩子 , 常常在面对外国老师问出“why”的问题时 , 马上一种惊慌失措的表情 , 满脑子想着自己是不是又说错答案了 , 不知道老师这样问仅仅是为了引导他们拓展思维 。
我们真实的社会和生活也是不易的 , 它们没有标准答案!许多人终其一生没有追寻问题的能力 , 无法理解世界的复杂 。而编程 , 是你找出解决方法的能力 , 把现实问题转换为代码逻辑的能力 。
文章插图
文章插图
最后 , 以乔布斯的话来结尾:我觉得每个人都应该学习一门编程语言 。学习编程教你如何思考 , 就像学法律一样学法律并不一定要为了做律师 , 但法律教你一种思考方式 。学习编程也一样 , 我把计算机科学看成是教育 , 每个人都应该花至少1年时间学习编程 , 奥码客人工智能编程示范基地!
【少儿智力开发课程、开发智力的必要阶段(提高】
- 什么是教练技术(教练技术培训课程、教练技术
- 园林景观设计网站有哪些 哪个网站有园林景观的课程
- 天童美语课程顾问待遇怎么样 天童美语教师待遇咋样
- 景观规划设计课程总结 景观园林的课程
- 学园林设计的课程 园林景观设计要学
- 识字课程,凌语速记识字加盟
- 大鹏教育配音课程怎么样 网上大鹏教育靠谱吗?
- 工商企业管理学什么(工商企业管理学什么课程
- |营销课程中“一招鲜、吃遍天”的法门,学到就是赚到
- 著名的园林景观有哪些 园林景观网上课程