Why

起源

在上周四下午,我的导师给了我一个小任务,开发一个简单地安卓App调用相关的天气,地图API以显示当前位置的温度,由于我的安卓开发水平并不是那么出色并且当晚就要交付,所以我使用AI来帮我完成这个任务。

我使用豆包在两个小时之内搭建好了这个简单的App,即使其中的代码逻辑原理我自己并不是那么的清楚。

android

不过在外人看来,我已经出色地完成了这个任务,并且利用AI让我这样一个对安卓开发不是那么熟悉的开发者很快地就开发好了一个可以成功运行的程序。 可是在我自己看来,当我使用AI完全地开发这个程序之后,我感受到了前所未有的空洞,一种挫败感油然而生——我开始思考作为一名计算机专业的学生来说,使用AI来开发程序,完成老师所布置的作业任务是否是一件对的事情。

基于此,我写下了这篇博客,作为我的博客集中的第一篇博客,我觉得其十分有意义。本文将从一名材料跨考计算机的非完全计算机专业学生的视角出发,讲述这两年来我与生成式AI的“爱恨情仇”。 (在此声明,本博客秉持着完全主观,从不客观的观点,极致的输出本人的个人观点与论调,欢迎任何不同的声音,所以不要拿它当做你的某些指南性的东西)

我与生成式AI

回想起来,我第一次使用生成式AI工具是在2022年年末,也就是ChatGPT刚推出的那段时间,我还算得上比较早使用的一批用户了。

当时用来干嘛呢?因为我是跨考生,除了学校必修的Python以外,我自学了C语言和一部分的Java,但都只是纸上谈兵,动手能力极差,解题能力就更不用说了。所以面对考研复试中的机试代码题我是比较担心的,在北林OJ里面刷题发现这些acm类型的题目和我平时偶尔刷的几次力扣不太一样,并且在我网上搜索答案时也只能找得到别人写的Cpp答案,我又不懂Cpp语法,当时铁了心以后当JavaBoy用Java写(结果现在半年没碰过Java了令人唏嘘),我便想到了向ChatGPT询问题目的答案。

开始时ChatGPT并不能每个题都做到完美,有我提问的因素在里面也有他当时的能力限制的因素在里面,不过有了它至少我能够开始刷OJ里的代码题了,至少有答案了。就这样来到了复试上机阶段,当时我的上机分数是69分,在上岸的人里面算是中等水平了,但我自己知道自己做的并不是那么好,其实没有一道题完整AC,都是得的过程分。但是这对当时的我也并没有起到多大的警醒,反倒是觉得上岸了就好了,也为今天的我埋下了伏笔。

就这样,我不断地使用着ChatGPT,一路见证他从免费的3.5到收费的4,再到现在免费的4o,收费的o1,我也进行了将近一年之久的会员订阅。我发现我的生活中已经离不开他了,无论遇到什么问题我都习惯地将询问ChatGPT或者其他大语言模型例如今年开始使用的豆包,千问加入到解决问题的途径中,并且是一条优先级非常高的途径。而在如何使用AI方面我自诩也是用的不错,我的舍友们都称赞我是宿舍的Prompt工程师,但是作为一名计算机专业的学生来说,这真的对吗?

直到最近,我突然开始反思,虽然现在生成式AI发展地如火如荼,但是如果某一天,禁止我使用AI,就让我从0开始去完成某项任务,我还能够胜任吗?我是否会手足无措?根本不知道第一行代码该从何开始写?我是否在面对报错时一筹莫展?连最基础的debug能力都要逐渐丧失?这些一连串的疑问让我不寒而栗,所以我决定使用其他的方式去寻找可能的答案。

What

没有GPT时是怎样的

没有生成式AI之前,我们的解决问题的方式是什么样子?这个问题对于我而言其实很难从自身出发做出回答,因为我在没有遇到ChatGPT之前都在材料领域,与计算机领域的解决问题的思路不一样,并且大一大二两年不会遇到什么专业问题,学的都是公选课,大三分流之后也没有潜心在本专业上,甚至当时连google都没有用过,所以我只能从我所了解到的其他“纯血”计算机人那里得到答案。

我听的最多的是从百度,从google中搜索,细说的话就是CSDN,Stackoverflow,github这些网站中寻找到解决问题的方法,毕竟有着STFW和RTFM这两个计算机领域的“圣经”。说到这里我不禁去插入有关于这两个理念的话题。

STFW&RTFM

我第一次听到这两个理念是今年的7月份,在学习一生一芯项目的预学习阶段时了解到的。为什么我想专门聊这个话题呢?因为我从对于豆包的使用中发现了一些有趣的理念。Search The Fucking Website和Read The Fucking Manual都是告诉我们要通过网络和手册独自的去解决问题,因为我所遇到的问题一定都发生过其他人的身上。而这一切都基于一件事——一个好的浏览器的好的搜索,我必须通过Google,bing去搜索才能够做到以上两点。

而现在豆包的设计就是将自己包装为了一个浏览器,如果你下载豆包APP,你会发现他的内部完全是一个浏览器,不仅有对AI提问的页面也有直接进行网络搜索的界面(不过只有百度搜索),相比于其他我所用过的AI那种单纯的AI问答界面,我想这或许是豆包给出的一种自己的答案——AI提问+网络搜索。

如何看待生成式AI

生成式AI的基本原理就是预测,推理,根据语料库进行回答。不过我并不是这方面的专家,我也不会在关于原理性方面侃侃而谈,就我的观点,对于语料库中没有涉及到的知识,我认为生成式AI的回答一定是有一定的问题的。

回到我计算机专业学生的身份,我一直在强调这一点,因为我认为对于生成式AI的使用,专业和非专业的使用习惯,使用领域应该是完全不同的。从非专业的角度来说,就像黄仁勋前几天说的那样,未来所有人都是“程序员”,是的,没错,非专业的人想要生成一段自动化的脚本来辅助自己其他领域的工作通过AI是非常便捷的一件事。

从专业的角度来讲(虽然我并不是一名程序员,只是个学生)但我认为Coding不是一名程序员的全部,甚至Coding在他的日常工作中应该只能占到百分之五十左右,其他的应该在理解业务需求,与人沟通协作上。所以这也从侧面回答了一个问题,程序员未来会被AI取代吗?我觉得不会,我始终认为AI就像一个平静的潘多拉魔盒,它只是一个工具,我要把它当做一个工具来对待,而如果我对这个工具使用的过于深入,不小心开启了这个潘多拉魔盒,我就会在不知不觉中被其吞噬,最终失去自己的核心竞争力,沦为AI的淘汰产物。

How

如何面对

回到Why篇最后那一连串的提问,我当即去Google了这样一个问题:“without ai can’t code”,第一条结果就是与我感同身受的一篇来自于Reddit的帖子,他遇到了和我一模一样的问题,我意识到我思考这个问题的重要性。

接着我回想起几天前看到的The Daily of CEO中采访前Google CEO的视频,视频里谈到如何看待AI,他告诉我当今如果你的事业不使用AI,那么你会被淘汰,但同时他也说对于程序员你得自己写代码,真正切切地自己编码。听起来像是一个悖论,但其实非常合理。

所以最终我暂时认为,对于生成式AI的使用,我将避免在自己的专业领域以及写作中过度使用,过度依赖,因为这是我自己的核心竞争力,这是我必须要掌握的基础知识;在一些我的未知领域,比如我想快速地了解量化领域的入门知识,在一些我应该使用某个工具来完成的事情,比如写一段简单的自动化脚本,这些方面我会使用生成式AI。

不过对于如何定义使用生成式AI这个工具的场景我个人还是十分纠结的,我目前也不清楚究竟如何才能正确对待这个强悍的工具

目标

基于此,我将在未来的几周之内(也许需要更久的时间)探索作为一名计算机专业的学生,到底应该如何使用生成式AI。我暂时确定一个方针,在面对自己的专业领域以及写作(未来我要完成论文的写作)我拒绝使用AI,至少两周之内完全不使用AI,面对其他领域我还是要使用AI工具。

两周之后我将给出自己的体验,也许那时我就会将专业领域完全不使用AI这种极端的行为加以修改,精细化自己的工作流。

最后我还想再跑个题,关于最近风靡的AI浪潮,我个人还是觉得只是狭义的AI,而非真正的AGI,也不知道达到AGI的地步需要多久的时间,但生成式AI应该也只是我心中AI的惊鸿一瞥罢了,所以到底是炒作大于实际还是未来已至呢?

这里是LTX,感谢您阅读这篇博客,人生海海,和自己对话,像只蝴蝶纵横四海。