所谓“编程思维”,到底是什么呢?

简介: 无论是对于成人,还是对于孩子,大家都在说,应该培养和训练“编程思维”。那么,到底什么才是“编程思维”呢?这个问题我思考过很久。若从大约1995年我写下第一行“10 PRINT 1+2”代码算起,至今我的码龄也快三十了,那我就倚老卖老,来谈谈这个其实总也不太谈得清的话题。

cbe94b9f8fe5b664fda71614678ad272.jpg

(题图来自我那备受折磨的键盘)


无论是对于成人,还是对于孩子,大家都在说,应该培养和训练“编程思维”。那么,到底什么才是“编程思维”呢?这个问题我思考过很久。若从大约1995年我写下第一行“10 PRINT 1+2”代码算起,至今我的码龄也快三十了,那我就倚老卖老,来谈谈这个其实总也不太谈得清的话题。

1

首先,说起编程,大家脑子里浮现的,很可能就是满屏幕的令人眼花缭乱的字母数字。这种几近故弄玄虚的天书,让程序员显得十分神秘,木讷的他们,似乎代言着另外一个世界。


是的,关于“编程思维”,最直接的理解,就是与计算机对话的能力。如果各种计算机语言不是用键盘敲出,而是由口中喊出,那程序员就很像掌控魔法的巫师,咒语喃喃念动,便让数字世界的机器臣服,甘受驱使。


若是夺去这种神秘感,那“编程思维”似乎就成了某种简单的翻译技能,把人类现实世界的语言,翻译成机器能够听懂的指令来,仅此而已。

2

另一种理解,也是被广为传颂的,“编程思维”似乎隐含着表示某种逻辑思维能力。但到底是啥逻辑,似乎也说不清。像是某种理科生特有的标签,你一眼就会知道是它,但又总描绘不出来,活脱脱像是吃了文科没学好的哑巴亏。


只不过,懂得机器运作的原理,知道某几种甚至几十种计算机语言的语法,这就算是“很有逻辑”了吗?好像这也算不上什么特征,并不能将编程与其他理工学科或技能相区分呢。而且,听闻“回家路上买三斤苹果,如果有西瓜,则买一个”后,只买了一个苹果回家的脑回路,算不算得上好逻辑呢?

3

或许,从码农的视角来体会和思考,会得到更接近真相的理解吧。


我最早学习编程时的实践,是在一台没有存储功能的学习机上进行的。每次我都得花上两三个小时,把书上的几十行代码,用两个食指,生疏地在键盘上敲打出来,然后运行,看到屏幕上精灵移动时,就会短暂忘记,很快断电后,下次又要一切重来的痛苦。

敲代码是非常费劲的,即使是在我掌握了娴熟的指法后,也依然如此。随着我写的程序变得复杂,逐步开始有子程序、类、模板等概念。我开始悟出一个道理:各种引入的语法,其目的都是在试图减少代码的重复。代码总会滋生bug,重复的代码会滋生成群的bug,导致经常忘记同步修复所有重复之处,让bug分身总是春风吹又生。


能够用最少、最简洁、且无重复的代码,来实现某个功能,听起来,这样的挑战,似乎就是“编程思维”所追求的重要内容。像是一种头脑体操,让思维变得更加灵活,延缓痴呆。

4

其实,关于“编程思维”,应该还有个重要的理解角度。


试想下程序是运行在某个无人值守的飞船上,而飞船正航行在茫茫太空中,即使程序开发者想要干预,也是心有余却不可及。于是,我们需要在飞船起飞前,预见到各种不同的情况,并相应设置程序代码,以便在这些情况发生时,进行恰当的响应和处置。

所以,这是一种对未来场景的预见能力。在大脑中提前抽象出应对规则,并条理化出来。像是终于构建了满满一沙盘的密密麻麻的多米诺骨牌的世界,只等待那一根手指的一推……很酷,也很爽,是吧?


原文链接:https://mp.weixin.qq.com/s/u7ihIMlpphHDeIx7ReDiwg

目录
相关文章
|
16天前
|
人工智能 供应链 算法
探索编程思维的奥秘
【4月更文挑战第27天】 在数字化时代,编程已成为一种全新的语言艺术。本文将深入探讨编程思维的本质及其对现代社会的影响。不同于传统的摘要方式,我们将通过一系列故事和案例来揭示编程不仅仅是代码的堆砌,而是一种逻辑严密、创造性和解决问题的能力。文章将带领读者了解如何通过编程思维来优化生活和工作中的决策过程,并提升个人的逻辑分析能力。
|
15天前
|
大数据 测试技术 数据处理
编码之道:从函数式思维到系统设计的艺术
【4月更文挑战第28天】本文旨在探讨软件开发中函数式编程范式对提升代码质量、可维护性和系统设计的深远影响。通过对函数式编程核心原则的剖析,以及与传统命令式编程的对比,揭示如何将函数式思维融入到日常开发实践和系统设计中。文章不仅阐述了函数式编程在处理并发、数据流转换和模块化设计方面的优势,还讨论了如何构建更加健壮、灵活且易于扩展的系统架构。最终,文章将提供一系列实用的策略和建议,帮助开发者提升其系统设计的能力和艺术性。
|
2月前
|
设计模式 算法 程序员
代码与诗意:软件开发中的创造性思维
【2月更文挑战第16天】在数字世界的构建中,技术并非只是冰冷的逻辑与算法堆砌,它同样蕴含着创造力与艺术性。本文通过探索软件开发过程中的非传统元素,揭示了编程背后的创造性思维和艺术表现。从设计模式到代码重构,再到用户界面的美学设计,每一环节都体现了技术人员对于美的追寻和技术的诗性表达。文章将深入探讨如何将创造性原则融入日常开发工作,以提升软件质量并丰富开发者的技术体验。
|
6月前
|
C语言
什么叫编程思维
什么叫编程思维
|
10月前
|
算法
编程的辩证思维的思考
编程是一门富有创造性和逻辑思维的艺术。在编程过程中,我们不仅要解决具体的问题,还需要运用辩证思维来思考和分析各种可能性。辩证思维是一种超越二元对立的思考方式,它能够帮助我们更全面、深入地理解问题,并找到更好的解决方案。
226 0
|
10月前
|
设计模式 算法 程序员
培养编程思维的关键——从最基础开始
在当今信息时代,编程已经成为一项不可或缺的技能。而要成为一名优秀的程序员,除了掌握具体的编程语言和工具,更重要的是培养良好的编程思维。本文将从最最基础的层面入手,探讨如何培养编程思维。
158 0
|
11月前
推理题——编程思维修炼
推理题——编程思维修炼
|
12月前
|
设计模式 消息中间件 Dubbo
设计模式 - 漫谈软件编程背后的系统化思维
设计模式 - 漫谈软件编程背后的系统化思维
82 0
思维概念
思维概念
175 0
|
架构师 程序员
提高程序员思维的几本书
提高程序员思维的几本书
227 0