type
status
date
slug
summary
tags
category
icon
password

引言

在当今这个科技高速发展的时代,编程能力已经成为了一项至关重要的技能。越来越多的行业和领域都需要掌握编程技能的人才来推动创新和解决复杂问题。然而,对非计算机专业的人来说,学习编程就像学习一门全新的语言,不仅要要掌握许多特定的语法、规则和编程概念,还需要具备较强的逻辑思维和问题解决能力。而且,传统的编程学习资源,如教材、教程和在线课程,往往无法提供实时反馈和指导。初学者在遇到bug时,可能需要花费大量时间寻找答案和解决方案,很容易导致挫败感。虽然互联网上有大量的编程学习资源,但是它们的质量参差不齐。初学者可能很难找到适合自己水平和需求的学习资料。此外,部分优质资源可能需要付费,这对于一些经济条件有限的学习者来说是一个障碍。以上这些因素加在一起,学习编程变得具有很高的难度,这也直接劝退了很多非计算机专业的人。
随着人工智能技术的不断突破,ChatGPT应运而生,它的出现极大地降低了编程学习门槛,让越来越多的人能够轻松掌握编程技能。本文将深入探讨ChatGPT如何改变编程学习的现状,并为非计算机专业的人在AI编程时代应如何看待编程提供建议。
notion image

一、ChatGPT可以提供个性化的学习路径

对于非计算机专业的人来说,自学编程时通常会选择网上的编程课程,如免费的B站编程课程或付费课程。这些课程在制作时需考虑大多数人的需求,因此通常非常全面和系统。然而,非计算机专业的人学习编程往往是为了解决某个具体问题,而不需要如此系统且全面的学习。相反,长达数十小时的课程就像一座大山,阻挡在初学者面前,这也是很多非计算机专业的人对编程心生畏惧的原因。此外,这些课程涵盖了许多初学者短时间内用不到的语法知识,这些知识得不到实践就如过眼云烟般遗忘了,使得编程学习过程变得漫长、枯燥且效率低下。
notion image
相较之下,ChatGPT宛如一位耐心的私人导师,为学习者提供以解决问题为导向的个性化学习路径,让初学者可以更快地体会到编程带来的成就感,为之后系统学习编程语言创造可能。初学者只需将需要实现的功能大致拆解并告诉ChatGPT,就像向一位智者请教一样,便可以开始初步学习编程。这种方法让初学者真正按需学习,大大提高了编程学习的效率。此外,ChatGPT在提供代码时,会确保代码整洁规范,附有丰富的注释,使其具有很强的可读性,非常适合初学者学习。根据学习者的具体需求,ChatGPT还可以推荐相关的学习资源,如教程、文档和示例代码等,就像一位贴心的小助手。这些资源能够帮助初学者快速解决问题,进一步提高学习效率。通过提供个性化的学习路径,ChatGPT在编程学习中发挥了积极作用,使得初学者能够更高效地掌握编程技能。
以我个人自学Manim为例:
提问:你知道manim吗?
ChatGPT:Manim 是一个 Python 库,全名为 Mathematical Animation Engine。它是由 Grant Sanderson(3Blue1Brown 频道的创始人)创建的,用于制作数学和科学方面的动画。Manim 可以将复杂数学概念可视化,以帮助解释和教授这些概念。这个库可以绘制图形、动画、方程式等,从而使得制作丰富的教育内容变得更加容易。
要安装并使用 Manim,首先确保你已经安装了 Python。然后,你可以使用 pip 安装 Manim:
Manim 的 GitHub 页面上有详细的文档和示例,以帮助你开始使用这个库: https://github.com/3b1b/manim
提问:帮我写一段代码,实现显示文本
ChatGPT:当然可以!以下是一个使用 Manim 库创建简单文本动画的示例代码。这段代码会创建一个场景,显示 "Hello, World!" 文本,并让其从不透明变为透明。首先,确保你已经安装了 Manim 库。然后,创建一个名为 text_animation.py 的 Python 文件,并将以下代码复制到该文件中:
接下来,打开命令行窗口(例如,终端或命令提示符),导航到包含 text_animation.py 文件的目录,并运行以下命令:
这将渲染并播放文本动画。渲染后的视频将保存在 media/videos 目录下。你可以根据需要修改文本、颜色、字体等属性。更多关于 Manim 的用法和示例,你可以查阅其官方文档:https://docs.manim.community/en/latest/
提问:帮我写一段代码,实现显示文本一段时间后,文本中的一部分变为透明,一部分从中间滑动至左上角
ChatGPT:当然可以!以下是一个使用 Manim 库创建文本动画的示例代码。这段代码会创建一个场景,显示 "Hello, World!" 文本,让文本中的 "Hello" 部分变为透明,同时 "World!" 部分从屏幕中间滑动到左上角。
首先,确保你已经安装了 Manim 库。然后,创建一个名为 text_fade_slide_animation.py 的 Python 文件,并将以下代码复制到该文件中:
提问:我想实现在一个文本对象后面生成一段文字
ChatGPT:要在一个文本对象后面生成一段文字,可以先创建两个 Text 对象,然后使用 next_to 方法将第二个 Text 对象放置在第一个 Text 对象的右侧。接下来,使用 play 方法逐个生成这些文本对象。
以下是一个示例,展示了如何在一个文本对象后面生成一段文字:
这段代码将在屏幕上显示 "Hello",然后在其后面生成 "World!"。你可以根据需要调整文本内容、颜色、字体等属性。
…………

二、ChatGPT可以提供实时的反馈和指导

初学编程的小伙伴们,你们是否曾在学习过程中遇到过让人崩溃的bug?而且刚开始学习时,debug的技巧还不熟练,只能依赖搜索引擎这根救命稻草。尽管网上有许多热心的程序员分享他们的经验,但对于初学者来说,理解这些方法有时颇费周折。而且,“有限的分享”遇上“无限的bug”,总感觉像是“以有涯随无涯”,终究会遇到没人分享的bug。
notion image
在这种情况下,ChatGPT在编程学习中的实时反馈和指导的优势就显得尤为重要。ChatGPT能够根据学习者的疑问和需求,迅速给出有针对性的解答和帮助,而且讲解思路通俗易懂,极大地提高了初学者的学习效率。这样一来,编程学习的门槛得以降低,让更多的人能够轻松掌握编程技能。
例如,得益于ChatGPT卓越的语言理解和生成能力,当学习者遇到编程问题时,无论是关于语法、编程思路还是实际操作,都可以直接向ChatGPT提问。通过快速理解问题,ChatGPT能给出简洁明了的解答,帮助学习者迅速解决问题。这种实时互动不仅节省了初学者寻找答案的时间,还能让他们在遇到问题时迅速得到帮助,减轻挫败感。此外,ChatGPT还能针对学习者的实际代码给出具体的修改建议和优化方案。这意味着学习者可以在编写代码的过程中获得实时反馈,从而更好地理解如何编写高质量、高效的代码。对于初学者来说,这尤为重要,因为它有助于培养良好的编程习惯,并在实践中不断提高技能水平。
举例:
学习python过程中
提问:SyntaxError: Non-UTF-8 code starting with '\xb4' in file D:\PyCharm Community Edition 2023.1\PycharmProject\AllManim\manimCE.py on line 7, but no encoding declared; see https://peps.python.org/pep-0263/ for details
ChatGPT:这个错误是因为Python文件中出现了非UTF-8编码的字符,而Python默认使用UTF-8编码。要解决这个问题,你需要在文件开头添加一个特殊的注释来声明文件的编码。根据PEP 263,你可以在文件的第一行或第二行添加这样一个注释:
其中<encoding-name>是你的文件编码。例如,如果你的文件使用的是GBK编码,那么应该在文件的第一行或第二行添加如下注释:
另一种解决方案是将文件转换为UTF-8编码。大多数文本编辑器(如VSCode、Sublime Text、Notepad++等)都提供了转换文件编码的功能。在你的编辑器中查找“转换编码”或“保存为其他编码”的选项,然后将文件保存为UTF-8编码。
如果你不确定文件的编码,可以尝试使用Python的chardet库检测文件编码。首先安装chardet库:
然后创建一个名为detect_encoding.py的Python文件,并添加以下代码:
file_path变量修改为你要检测编码的文件路径。运行这个脚本,它将输出文件的编码信息。然后你可以根据检测到的编码在文件中添加适当的编码声明或将文件转换为UTF-8编码。
学习Mathematica过程中
提问:r[x_, y_, z_] := Sqrt[x^2 + y^2 + z^2]; f[x_, y_, z_] := z(6 - r[x, y, z])*E^(-r[x, y, z]/3); ContourPlot3D[{f[x, y, z]?0.1, f[x, y, z] - 0.1}, {x, -30, 30}, {y, -30, 30}, {z, -30, 30}, AxesLabel {"x", "y", "z"}, Mesh None, ContourStyle {Directive[Green, Specularity[White, 100]], Directive[Yellow, Specularity[White, 100]]}]
ChatGPT:感谢提供代码。根据您提供的代码,我发现其中存在几个错误:
  1. 在定义函数 ContourPlot3D 的时候,AxesLabel 与 Mesh, ContourStyle等的各个参数之间需要用逗号进行分隔,而在您的代码中,这些参数之间没有使用逗号分隔。
  1. ContourPlot3D 函数中,指定的 f[x, y, z] > 0.1f[x, y, z] - 0.1 中的 ? 号应该被替换为大于号 >
  1. AxesLabel 参数应该使用中括号括起来,而不是大括号。
修改后的代码如下所示:
学习NotionAPI
提问:Traceback (most recent call last): File "D:\PyCharm Community Edition 2023.1\PycharmProject\AllManim\typora.py", line 44, in <module> rendered = convert(new_lines, addLatexExtension(NotionPyRenderer)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "D:\PyCharm Community Edition 2023.1\PycharmProject\AllManim\venv\Lib\site-packages\md2notion\upload.py", line 121, in convert return mistletoe.markdown(mdFile, notionPyRendererCls) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "D:\PyCharm Community Edition 2023.1\PycharmProject\AllManim\venv\Lib\site-packages\mistletoe\init.py", line 20, in markdown with renderer() as renderer: ^^^^^^^^^^ File "D:\PyCharm Community Edition 2023.1\PycharmProject\AllManim\venv\Lib\site-packages\md2notion\NotionPyRenderer.py", line 38, in newNotionPyRendererCls return notionPyRendererCls(*chain(new_extension, extraExtensions)) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ TypeError: 'module' object is not callable
ChatGPT:错误提示表明存在将一个模块作为函数调用的问题。以下是该错误消息的详细信息:
  • 错误出现在“typora.py”文件的第44行。
  • 调用“convert()”函数并传入两个参数:“new_lines”和对“NotionPyRenderer”对象调用“addLatexExtension()”函数的结果。
  • “addLatexExtension()”函数似乎没有问题,因为错误消息没有抱怨它。
  • 问题似乎出现在“NotionPyRenderer”对象上。它是一个模块,这意味着它是一个包含代码的文件,可以在其他文件中导入和使用。但是,代码正在试图调用它,就好像它是一个函数一样。
  • 错误消息显示问题出现在“NotionPyRenderer.py”文件的第38行,其中定义了一个名为“newNotionPyRendererCls()”的函数。
  • “newNotionPyRendererCls()”函数应该返回“NotionPyRenderer”模块的实例,但是在尝试这样做时似乎出现了一些问题。
基于这些信息,您可以检查以下内容:
  • 确保正确导入“NotionPyRenderer”模块,并且其函数和类被正确使用。
  • 检查“NotionPyRenderer”模块是否存在任何语法错误或其他问题,可能会阻止其正确使用。
  • 确保正确访问和使用在“NotionPyRenderer”模块中定义的任何变量或函数。
  • 验证您使用的“mistletoe”库的版本与您使用的“md2notion”库的版本兼容。

三、非计算机专业的人在AI编程时代应如何看待编程

回顾过去计算机的发展历程,再看当前热门的少儿编程,很明显,在不久的将来,编程将越来越深入到我们生活的诸多领域。以ChatGPT为代表的AI编程时代让学习编程变得更加简单,显著提高了编程效率。这使得在未来一个人就能担当一个团队成为了可能,并且非专业人士可以利用编程将天马行空的想象付诸现实。因此,我向非计算机专业的人提出以下几点建议:
  1. 积极拥抱编程: 不要把编程当成专业人士的专属领域,任何人都可以学习编程。只需拥有积极的心态,勇敢迈出第一步,你会发现编程并非遥不可及的高峰。尝试了解编程的基本概念,并学习一门编程语言,这将助你在未来更好地应对各种挑战。
  1. 具备基本的编程素养: 身为普通人,我们无需成为编程专家,但具备一定的编程素养是必要的。了解基本的编程知识和概念,如变量、数据类型、函数和循环等,有助于提高我们解决问题的能力。同时,这些基本的编程素养也能让你在工作中与程序员更高效地合作,提升整体工作效率。
  1. 以实际问题为导向: 在学习编程时,以实际问题为导向是非常有效的方法。试着解决生活中遇到的问题,如自动化办公任务、数据分析等。这会让编程学习变得更有趣,同时也能增强编程技能在实际工作中的应用价值。
  1. 保持持续学习和进步: 编程是一门持续发展的技能,不断学习和进步是必不可少的。无论你是编程初学者还是有一定经验的开发者,都要抱有学无止境的心态,时刻更新自己的技能。勇于尝试新的编程语言、框架和工具,保持对新技术的好奇心。这将有助于你适应不断变化的科技环境,增强在编程领域的适应能力。

结论

随着人工智能技术的飞速发展,AI编程时代已然来临。ChatGPT这等技术大大降低了编程学习的门槛,让更多非计算机专业的人能够轻松掌握编程技能成为可能。在这个时代,我们应该勇敢拥抱编程,掌握基本的编程素养,保持持续学习和进步的心态,以实际问题为导向进行学习编程。通过利用ChatGPT,我们可以在编程学习过程中更加高效地解决问题,提高学习效率,从而让编程成为一种真正普及的技能。在未来,越来越多的非计算机专业的人将能够借助编程技能改变生活、工作和创新。正如编程语言的创始人之一,Grace Hopper所说:“未来最重要的是学会如何学习。”让我们在AI编程时代,一起拥抱编程,开启全新的学习之旅。
notion image
 
“优生”陷阱如何摆脱精神内耗 (1)
XUPIPI
XUPIPI
化学竞赛教练 计算机爱好者 终身学习践行者
统计
文章数:
23
公告
type
status
date
slug
summary
tags
category
icon
password
🎉NotionNext 4.1已经上线🎉
-- 感谢您的支持 ---
👏欢迎更新体验👏