当前位置:

首页 > 编程开发 > 编程还是被编程?这是个问题

编程还是被编程?这是个问题

代码是驱动数字世界的程序与表达语言。公民需了解其基本逻辑,以与数字环境主动互动而非被动接受。学校教编程面临师资与课程体系困难,校外自主实践更有效。学习编程有助于培养创造力与协作能力,或可推动未来教育变革。

巴黎高科评论:首先,代码是什么?

尼古拉斯:这个问题可以从多个角度来回答。首先,代码是让机器运转的程序。没有代码,电脑、手机这些电子设备就只是一堆没有生命的硬件。可以说,代码是我们最接近机器灵魂的方式,它让机器按照我们的需求去运作。它是一套通过算法自动完成任务的句法——这是第一个定义。

但代码也可以被理解为一门语言。因为它基于数学算法,过去我们总觉得它只属于数学家和工程师的领域。但实际上,不少语言学者已经开始对编码和发明新的编程语言产生兴趣。甚至有人用代码写诗!斯坦福大学就有学生创立了一个俱乐部,专门把诗歌和编程融合在一起。从这个角度看,代码完全是一种说话和表达的方式。

某种意义上,学代码和学外语很像:开始总是很艰难,但渐渐地,你会开始理解这门语言的逻辑——而且每个人都有能力掌握它,因为说到底,说话谁都会。

既然人人都能学会代码,那有必要所有人都去学吗?

没错,任何人,包括孩子,都可以学代码。只要用对界面,孩子也能轻松上手,并不需要是编程天才或计算机博士。就像你不必成为莎士比亚才能说好英语一样。理解基础的编程语言其实没那么复杂。事实上,大多数人每天都会处理几行代码:每个人都要在浏览器里输入URL地址;每个人都知道,删掉.com后面的所有内容就能回到首页。

美国网络文化作家道格拉斯·洛西克夫说过一个当代性的难题:“编程还是被编程。”这个说法可能有点极端——我们不需要因为用手机,就非得成为手机程序员。使用工具并不意味着要亲自去制造工具。但问题是,如果我们想和这个由代码构成的环境真正交互,而不是完全被动地接受,那就需要了解一些基本的编码。我们不应当把这项技能完全甩给某一个阶层或精英。

公民需要基础教育,所以对编程有一定认识,这件事本身是有意义的。就像我们学习读写一样,最好也能有一些编写代码和“阅读”数字世界的经验。

从某种意义上说,这几乎跟公民学一样必要。不传播民主的价值,公民永远找不到自己在社会中的位置。同理,如果我们不懂编程的逻辑,在这个由代码构成的世界里就会感到不自由。就拿Google来说吧——这个每个人每天都要用上好几回的搜索引擎。如果我们不了解它是如何工作的、怎么生成信息索引、信息又从何而来、为什么一个查询能反馈出那么多结果……那我们很容易就会被这个工具“骗”到。永远不要想当然地以为,搜索引擎给出的结果就是真理;也不要想当然地以为,搜索结果里除了前几条,其他的都无关紧要。

简而言之,你认为数字教育、唤醒学生对代码的认识非常重要。这确实是公民教育的使命之一,但学校真的是教这门课最好的地方吗?

近年来,几乎所有西方国家都在争论同一个问题:学校该不该教代码。然而,要改变整个学校的课程体系,通常是非常困难的。而且,我们没有足够的计算机教师,能让编程像数学和英语那样成为一门主课。2010年法国把算法课引入高中课程体系时,那些没受过相关训练的教师就遇到了不小的麻烦。

也有人会问:为什么编程要单独成为一个学科?如果编程就像写作一样,那所有学科其实都会涉及到。

从另一个角度来理解这个问题可能更有帮助:关键不在于怎么把编程塞进课程体系,而在于站在学生的角度,去思考什么对他们真正有利。

我们经常抱怨孩子们在屏幕前花太多时间——这也许没错。但更重要的是,要确保孩子们在屏幕前时,不只是处于一种完全被动的状态。而编码恰恰能在这里发挥关键作用。如果孩子开始尝试编程,通过合适的界面,他们很快就能体验到其中的乐趣。于是,他们使用IT工具时的体验,就会变得完全不同了。

这背后其实是一个关于学习范式的根本问题:是从理论出发更好,还是实践与理论结合更好?说到底,不亲自运行代码,是无法真正理解编程的。从实践出发永远是最好的选择,而不是抱着代码理论的书硬啃。我小时候学编程,就是从试着写几行代码开始的。写得远非完美,但这不重要——重要的是去了解代码的背景和运作方式。通过实验来学习算法思想,远比单纯阅读理论书要有效得多。

但学校能提供这种方式吗?

不一定。这种学习模式完全可以在课堂之外实现。各个学校的代码和计算机文化千差万别,水准也参差不齐——教师、学生、硬件的条件都不一样。相反地,代码的世界本身,就是建立在自学者和网络支持之上的。不夸张地说,整个数字宇宙就是这么构建起来的。如果不能在教学中融入这些理想的水平协作模式——让它区别于传统教学——那将是一件很可惜的事。这些处于传统教育边缘的主动性学习,在第二个阶段可以被重新组合、进一步开发。不断在边缘地带试验、更新、整合——这本身就是一种非常“数字化”的思维方式。

这种方式也能部分解决人力资源的问题——也就是大规模招聘教师,或者把编程同等地引入小学和中学课程。不过,按照你的理解,从长远来看,学校的课程体系应该把这些课外活动吸纳进来。甚至可以设想,如果数字时代必须改变学校,代码可以作为触发这一变化的“特洛伊木马”,催生出不同的学习文化。那么,你如何看待学校的未来?

理想情况下,它应该比现在更强调协作能力。孩子们需要通过与人交往来认识自己,这也是巩固知识的好方法。如果一个学生需要向同学解释某个概念,他就必须首先把自己的知识吃透。在这样的背景下,老师在课堂上的角色也会发生变化——老师的工作更像是催化剂,而不仅仅是传递知识。理想状态下,这种协作的维度还可以扩展到与其他国家班级的交流,就像伊拉斯谟计划在初高中教育体系中所做的那样。

未来的学校也会更加关注创造力。在实践中学习,为日常生活中的问题提供解决方案:制作一个网站、设计一个能自动完成一组任务的小程序、编程连接对象、玩一个光传感器……从某种意义上说,代码和视觉艺术、音乐等创造性领域非常相似——在程序设计中,同一个问题往往可以有在优雅性和时效性上完全不同的解决方案。说到底,学习编程,是一种发现和深化学习风格、培养创造力的方式。

注:伊拉斯谟计划(Erasmus Programme,European Community Action Scheme for the Mobility of University Students),是欧洲各共同体在1987年成立的学生交换项目,2014年1月在它的基础上创建了应用于欧盟现有教育、训练及青年体育领域的交换计划Erasmus+。其国际版为伊拉斯谟世界计划。

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系bd@zhengruan.com
作者最新文章
编程开发 编程
相关文章 更多
codex安装windows 命令行完整操作教程
codex安装windows 命令行完整操作教程

详解Windows环境下安装OpenAI Codex CLI的步骤,包括WSL环境检查、Node.js/npm配置、npm全局安装命令及首次启动验证,适合开发者快速上手。

NativeRest环境配置要求与完整操作教程
NativeRest环境配置要求与完整操作教程

学习如何配置 NativeRest REST API 客户端。涵盖 Windows/macOS/Linux 安装后的工作区创建、环境变量管理、请求编辑及响应查看步骤,帮助开发者快速完成基础环境搭建与连通性测试。

CSS设置透明度的注意事项有哪些?opacity属性详解
CSS设置透明度的注意事项有哪些?opacity属性详解

深入解析CSS中设置透明度的核心属性opacity,剖析子元素继承、事件穿透、层叠上下文等关键注意事项,并提供与rgba、hsla的实用选型对比。

flutter页面传值到后台的方法及示例代码
flutter页面传值到后台的方法及示例代码

flutter页面传值到后台的完整实现方法及示例代码,帮助读者快速掌握相关技术要点。

Java 8至21新特性代码写法对比:Lambda、Record与Switch
Java 8至21新特性代码写法对比:Lambda、Record与Switch

本文通过具体的旧版与新版代码对比,详细剖析Java 8引入的Lambda表达式、Java 14/16引入的Record类,以及Java 12至21逐步演进完善的Switch表达式与模式匹配,展示代码简化路径与避坑要点。

AI智能体开发培训课程学什么及实战内容介绍
AI智能体开发培训课程学什么及实战内容介绍

系统梳理AI智能体开发培训的核心知识模块、技术栈选型与典型实战项目,解析低代码平台与纯代码框架的差异,提供从零构建可落地智能体的完整学习与实施路径。

Java子类未实现抽象方法编译错误修复指南
Java子类未实现抽象方法编译错误修复指南

针对Java开发中常见的“子类未实现抽象方法”编译错误,深入分析报错原因,提供重写实现、声明抽象子类两种标准修复路径,并总结参数签名、访问修饰符等典型避坑要点。

解决PHP递归报错:max_nesting_level限制与内存溢出处理
解决PHP递归报错:max_nesting_level限制与内存溢出处理

遇到PHP递归报错时,不要盲目调大max_nesting_level。本文教你区分Xdebug限制、内存耗尽和正则递归错误,提供代码级的终止条件优化与迭代替代方案,彻底解决栈溢出问题。

PHP递归中static变量与引用传递的常见陷阱及调试
PHP递归中static变量与引用传递的常见陷阱及调试

本文分析PHP递归中static变量导致的状态污染及引用传递引发的共享数据修改问题。提供具体的代码复现、缓存键设计建议及调试打印技巧,帮助开发者避免隐蔽的逻辑错误。

PHP递归性能优化技巧与迭代替代方案
PHP递归性能优化技巧与迭代替代方案

解析PHP递归函数在树形数据处理中的性能瓶颈,提供预加载数据消除I/O、使用显式栈替代深层递归的实战方案,帮助开发者在代码可读性与执行效率间做出合理取舍。

查看更多
精品专题 更多
装机必备
装机必备

正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

Windows
Windows

正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

macOS软件
macOS软件

正软商城macOS软件专区,精选适用于Mac电脑的办公、设计、影音、效率、开发和系统工具,提供软件功能介绍、macOS兼容版本、正版授权及购买下载服务。

Mac软件 更多
photoshop
photoshop
Windows、macOS 、 iPad

Photoshop 2026 是 Adobe 推出的专业图像处理与视觉设计软件,支持 Windows、macOS 和 iPad 等平台,广泛应用于摄影修图、电商设计、平面海报、数字绘画及视觉合成等创作场景。

Blender
Blender
Windows、macOS 和 Linux

Blender 是一款免费开源、跨平台的专业 3D 创作软件,集建模、动画、渲染、视频编辑与视觉合成等功能于一体,广泛应用于影视动画、游戏设计和建筑可视化等领域。软件支持 Cycles 物理渲染器与 Eevee 实时渲染引擎,并提供多边形建模、骨骼绑定、物理模拟等专业工具。Blender 兼容 Windows、macOS 和 Linux 系统,安装包轻巧、运行流畅,依托活跃的全球开发者社区持续更新,是从初学者到专业创作者都值得选择的正版 3D 创作工具。

灵活计算器
灵活计算器
macOS/iOS/Android

灵活计算器是一款笔记式算数应用,支持实时计算、动态关联和云端同步功能。记录、整理和输出之间的过渡会更自然,适合长期写作、做笔记或持续沉淀个人内容。

WINDOWS 更多
3dmax(3ds max)
3dmax(3ds max)
Windows

Autodesk 3ds Max 是一款专业的三维建模、动画与渲染软件,广泛应用于建筑可视化、游戏开发、影视动画、广告设计和产品展示等领域。

photoshop
photoshop
Windows、macOS 、 iPad

Photoshop 2026 是 Adobe 推出的专业图像处理与视觉设计软件,支持 Windows、macOS 和 iPad 等平台,广泛应用于摄影修图、电商设计、平面海报、数字绘画及视觉合成等创作场景。

Blender
Blender
Windows、macOS 和 Linux

Blender 是一款免费开源、跨平台的专业 3D 创作软件,集建模、动画、渲染、视频编辑与视觉合成等功能于一体,广泛应用于影视动画、游戏设计和建筑可视化等领域。软件支持 Cycles 物理渲染器与 Eevee 实时渲染引擎,并提供多边形建模、骨骼绑定、物理模拟等专业工具。Blender 兼容 Windows、macOS 和 Linux 系统,安装包轻巧、运行流畅,依托活跃的全球开发者社区持续更新,是从初学者到专业创作者都值得选择的正版 3D 创作工具。