编程技能的四个层次

2025-06-07

编程技能的四个层次

初学编程时,人们普遍存在一个误解,认为编程主要就是学习编程语言的语法。也就是说,学习如何以正确的顺序书写特殊符号、关键字和字符,才能让编程语言正常运行。

然而,只注重语法知识,就像只学习语法和拼写来练习写小说一样。语法和拼写是写小说的必要条件,但要写出一部原创、有创意的小说,还需要许多其他层面的技能。

同样,要成为一名开发人员并编写原创、富有创意的代码,除了语法之外,我们还需要其他层面的技能。以下是将这些技能组织成我所说的四个层次的编程技能的方法:

语法技能

这是早期学习阶段最常关注的层面。语法技能本质上是指如何阅读和编写编程语言,并遵循代码实际运行所需的不同字符规则。

虽然它是第一层,但这并不意味着它不重要!掌握它非常具有挑战性,是一项需要练习才能流畅运用其他层级的必备技能。

程序化思维技能和编程概念

程序化思维意味着如何像计算机一样思考,并将一个过程转化为计算机能够理解的一组特定指令。它还意味着理解编程概念,例如数据、变量、函数、对象等。这并非指以正确的顺序书写正确的符号,而是指如何将一系列特定的步骤传达给计算机,使其能够完成。

人类既具备直觉/视觉思维,也具备逻辑/语言思维。如果你被要求识别房间里最高的人,你可以通过视觉扫描房间并快速找出最高的人。计算机目前还做不到这一点。因此,为了让计算机做同样的事情,我们需要想出一个更具体、更合乎逻辑的识别最高人的方法。

想出这个逻辑过程就是程序化思维。在这个例子中,你可以让每个人都写下自己的姓名和身高,然后你可以整理这千张纸条,把它们按顺序排列好。你可以让每个人都排成一排,然后比较队伍中第一排和第二排人的身高。取比较结果中较高的人,将其身高与队伍中的第三人进行比较。再取比较结果中较高的人,将其身高与队伍中的第四人进行比较,以此类推,直到最后。

要编写代码,你需要能够定义这种逻辑过程,然后理解如何将其转化为计算机处理信息的方式。语法只是将这种过程传达给计算机的标准。

创造技能

即使你了解编程语言的语法,并且具备程序化思维能力,你仍然可能在编写代码时遇到困难。当你面对编程问题时,你仍然需要回答这个问题:“我们究竟如何从 A 点到达 B 点?” 即使你掌握了语法和概念,当你坐下来写作时,你仍然会面对一张空白的纸。

就像解决最高人问题一样,通常有不止一种方法可以解决某件事,而且问题越复杂,解决方法就越多。语法只有一个正确答案——要么有效,要么无效。而程序化思维则有很多可能的答案。通常没有一个答案可以简单地复制并直接放入你的代码中,即使那些在网上找到的、有常见解决方案的问题,也可能有更好的解决方案尚未被创造出来。

在这个过程中的某个阶段,为了编写原创且独特的代码,你需要具备创造性技能。有一种说法认为,创造力是与生俱来的,无法教授、练习或学习。事实上,创造力和其他技能一样,是一种技能,可以通过练习和提升来获得。创造性技能包括:

  1. 实验
  2. 草图/草图代码
  3. 头脑风暴
  4. 编辑
  5. 概述
  6. 休息
  7. 研究

当答案不明显时,这些创造性技能对于找到答案至关重要——引导从草稿到最终稿的过程中克服中间的所有障碍和弯路。

这些技能最好的地方在于它们不仅适用于编程 - 它们可以适用于你所做的任何事情,从烹饪到写作到运动,如果你在其他领域练习创造力,这可以帮助你将更多的创造性技能应用于编程。

跨学科技能

编写代码绝不仅仅是编写代码——编写代码总是与其他事物息息相关。也许你正在开发一个关于茶的网站,或者一个健身应用程序,又或者是一个本地汽车维修店的网站——代码总是以一种与其他主题相关的方式存在,而不是孤立地存在。除了编程之外,拥有许多其他领域的技能和知识不仅能帮助你以更周到的方式完成与这些领域相关的项目,从其他领域借鉴的技能还能影响你编写代码的方式,并帮助你想出你原本不会想到的解决方案。在编程与好奇心和对其他主题的探索之间取得平衡,能让编程变得更好!


作为学习者和教师,明确成为开发人员所需学习的所有技能至关重要。不同的学生会发现不同的层次更容易或更具挑战性。许多能够轻松记住语法的人,却难以掌握程序化思维。许多程序化思维没有问题的人,却很难记住语法。作为学习者,认识到这一点可以帮助我们在遇到困难时更容易摆脱困境,因为我们可以确定当前最具挑战性的领域。作为教师,当我们认识到需要培养的所有技能时,我们就能确保创建的练习涵盖所有技能。

有什么想法、问题或评论吗?欢迎在Twitter或下方评论区留言告诉我!

这篇文章最初发表在我的个人网站上


深夜代码俱乐部通讯

午夜时分。你蜷缩在图书馆的禁书区,目光紧盯着那些意义非凡的巨著——《打造杀手级网站!弹性网页设计!实用程序员!》你收到深夜编程俱乐部伙伴们的一封信——又一个充满冒险的学习之夜即将开始。

如果您喜欢这篇文章,并希望阅读更多类似的内容,我诚邀您订阅我们的时事通讯,加入“深夜代码俱乐部” ——这是一份关于编程学习和教学的编程教育时事通讯。我们正在探索新的学习和教学方法,将编程作为一种创造性实践,并将编程作为跨学科教育的一部分。在每期时事通讯中,您都会收到关于新文章的更新,以及其他关于学习编程的资源和想法!我们的时事通讯将简短、有趣,并鼓励学习者和教师。期待与您相见!

加入深夜代码俱乐部

文章来源:https://dev.to/kev_mcg/the-four-layers-of-programming-skills
PREV
使用 Cube.js 的 D3 仪表板教程
NEXT
React Icons 在 React 中使用图标的最简单方法