关注「索引目录」公众号,获取更多干货。
科技使我们变得懒惰。
这不是观点,而是事实。我们现在无法进行心算、查找地址或记住电话号码了。这就是过度依赖科技产品的弊端。智能手机,说的就是你。
同样的情况也发生在编程领域,例如人工智能和氛围编程。
我也一样。我一直在尝试用人工智能来分担那些枯燥乏味的工作。而且,当我一时想不出答案时,我就忍不住想直接求助于人工智能,让它满足我的编程愿望。
而且我并非孤例。前几天,我在Reddit上看到了这个问题,
“我已经很久没用 C#/Unity 编程了,所以很多概念都生疏了。过度依赖 ChatGPT 让我感觉自己什么都没学到,自己写代码都会犯一些基本错误……我该如何重新学习这些知识呢?有没有什么方法可以温习一下?比如 YouTube 上有什么好的视频之类的?我想停止使用 AI,自己编写代码。”
对于原帖作者以及任何想要摆脱人工智能束缚的人,这里有 10 个可以尝试的方法:
0. 禁止人工智能。
把人工智能想象成数学课上的计算器。在你手动了解想要自动化的计算过程之前,你是无法使用它们的。
就像任何一位母亲管教孩子一样,“不做完作业就别想再用人工智能了……”
1. 学习你的主要语言语法。
熟悉你所选编程语言的语法:编写变量、函数、循环、类……
为此,你可以找一本教科书,或者观看一些“4小时带你了解X知识”的YouTube视频。但不要只是被动地接受,而是要根据这些内容重新创建示例和项目。把步骤打出来,不要用Ctrl+C复制粘贴。
2. 了解你的标准库。
熟悉你的标准库:
-
输入一个变量,看看你的编辑器或集成开发环境会给出什么建议。 -
对于这种类型,可以使用哪些方法? -
查看它们的签名和文档字符串。
3. 学习 SQL。
无论 ORM 多么强大,我们都无法摆脱 SQL。
我们从 70 年代初就开始使用 SQL,而且很有可能在未来一二十年内我们还会继续使用 SQL。
学习创建表、编写聚合结果的查询以及了解 JOIN 操作。如果你想要一些实际的例子,可以下载 StackOverflow 数据库的轻量级版本并进行一些尝试。
4. 从零开始制作一个玩具项目。
好吧,我说的不是重新发明轮子去编写自己的文本编辑器之类的东西。
我指的是构建一个菜谱目录、一个待办事项应用,或者一个基于免费 API 的命令行界面封装器。而且要从零开始构建:在编辑器或 IDE 中右键单击,然后创建一个新文件夹,等等。这会让你学到很多东西。
5. 自己寻找答案。
当你收到错误信息时(如果你按照第 4 点操作,就会收到),请克制住想要返回 AI 或直接向朋友求助的冲动。
尝试自己找出错误和异常。首先,用谷歌搜索错误信息。谷歌可以帮你找到包含问题答案的网页。当然,这种方法有点老套,但确实能锻炼你的能力。记住,人工智能仍然是被禁止的。(参见#0)
6. 学习最常用的数据结构。
80% 的情况下,你只需要列表和字典。当然,还有更多数据结构可供选择。
学习如何使用和实施这些方法。虽然在日常工作中你不需要从零开始实施,但这会锻炼你解决问题的能力。
7. 学习一本计算机科学数学教材。
除非你从事小众领域,否则你不需要高等数学知识。
但你可以找一本离散数学(或计算机科学数学)方面的书,读一两章。同样,这是为了提高你的思维能力。
8. 练习橡皮鸭调试法。
你会经常遇到难题。这是程序员的通病,不是bug。
当这种情况发生时,
-
拿起笔和纸 -
逐行检查你的程序。 -
大声说话
9. 阅读官方文件。
拿出 Mozilla 的 Web Docs、Microsoft Learn 以及你所选语言的任何其他官方资源,不仅要阅读,还要提出你自己的例子,并思考如何将你所读到的内容应用到你自己的代码中。
人工智能对学习来说是一大福音。问问任何一位曾经依靠参考手册、语言规范和杂志学习的老手,他们都会告诉你答案。但千万别让人工智能替你思考。
好的,我们稍微放宽一下对人工智能的限制,但不要用它来生成代码。把它当作副驾驶,而不是机长。
为了帮助你培养经得起炒作的技能,我写了《街头智慧编程》。这本书就像一份路线图,是我当初从初级/中级程序员晋升为高级程序员时梦寐以求的。
关注「索引目录」公众号,获取更多干货。

