在AI时代,如何从0接手一个项目?
当前位置:点晴教程→知识管理交流
→『 技术文档交流 』
引言我是一个对前沿科技非常感兴趣的人。根据“技术采用生命周期”,我应该算是“早期使用者”。
(👆这张图有一个错误:“早期采用者”和“早期大众”之间应该隔着一个“认知鸿沟”,如第一张图所示。这张图画错了。) 从2022年11月下旬的ChatGPT 3.5发布到现在,我应该是见证了AI在短短不到4年的时间里一步一步发展到现在的样子的。因为我是计算机科学专业的,所以似乎这一切都变成了理所当然。从我在校期间的AI难堪大用,到现在刚毕业就碰上AI正逐步接手软件工程的大势所趋,在绝望之余也同时发现了一个问题——网上那些搞科普的、分享AI编程技巧的自媒体,他们写的文章都是脱离实际的。这其中甚至不乏那些互联网大厂的技术团队,也包括本社区(TRAE官方社区)的某些个人开发者。 虽然我在今年6月才即将脱离应届生身份、加入正式的程序员岗位也才一个月,但是因为接触到了实际的生产项目,故而在这短短的一个月里也积攒了一些宝贵的经验和技巧。如果我脱离了生产项目的实际,没有做到实事求是,我是断不可能积攒这些经验技巧的。只能说,人的意识在实践(劳动)中产生,《实践论》说的是真理。我一直在呼吁大家,技术人员更要学习政治理论,政治理论不是因为你学的是理工科,就可以凭空在脑子里面冒出来的。政治理论是地基,技术是建立在政治理论之上的建筑。没有政治理论,技术再强也是虚无。
我曾经看过一篇阿里云的技术团队写的一篇介绍Harness工程(约束工程)的文章,里面对于如何落实harness、harness项目的文档目录长什么样子等等讲得头头是道,可是我第二天上班一试才发现,这文章里面讲的东西华而不实,根本没法落实到实际的一个项目当中去。因此,我决定结合我们集团的实际项目,写两篇文章来分享我这一个月的经验和技巧。第一篇也就是本篇,《在AI时代,如何从0接手一个项目?》。第二篇则发生在第一篇之后,叫《在生产环境中和AI协作编程》。 对于自闭症谱系障碍、ADHD、抑郁症、焦虑症患者,文章最后同样也有应对方法。 为什么是从0“接手”一个项目,而不是从0“开发”一个项目?AI推广普及之后,我们在网上见过最多的有关于AI编程的内容无非就两种,一种是“非专业背景如何氛围编程一个新项目”,另一种就是“我/别人氛围编程的项目产生了什么效果”。但其实还有第三种——锐评前两种。(不得不感叹一下互联网生态的多样性)总结一下第三种的话术,大概有以下几种:
但其实在我看来,这种说法只说对了一半。因为他们漏了另一种情况——接手一个项目。 在实际的求职环境中,企业招程序员,很少是因为企业想从头开发一个系统,最普遍的情况往往都是“我们已经有了一个系统,我们招人是为了维护这个系统的”;而如果是给客户做软件开发解决方案的公司,那么这个理由也会变成“我们招人是因为人手不够,想提升开发效率的”。这种情况在招聘软件上有一个专门的二级或三级岗位选项,叫“运维开发工程师”。听名字你是不是以为是机房运维那种的?其实它就是程序员的其中一种,我也被这个名字骗过。运维开发,才是最普遍的岗位需求。我只见过一个想从头开发一个系统的公司,那家公司是我们大连本地的一家教辅材料出版社,因为最近两年AI编程出圈爆火,所以他们也想探索一下AI编程,让AI使用python语言开发一个教辅材料的电子版学习资料。由于这家公司没有IT行业的基因,外加他们对AI的态度是“谨慎探索”,所以他们想招一个会python的、来了就能干活的、同时稍微会使用AI的程序员。这家出版社离我家还挺近,走路10分钟就到了,但因为我不会python,也成了一件挺遗憾的事。 从后疫情时代开始,经济连年下滑。再加上AI爆火给了企业降本增效的借口,未来开发新项目的需求会越来越少,维护现有项目的需求会越来越多。 假如你不会编程,也不懂软件工程,该怎么接手一个项目?我记得在学计算机网络的时候,老师在介绍计算机网络的时候讲了一句话:
不知为何,这句话我一直记到了现在。后来我读到了一篇介绍AI做企业编程的文章,作者同样说了一句话:
网络世界是现实世界的延申,软件也同样是公司业务的延申。软件不是只是将纸质文件数字化、电子化这么简单,在学软件开发之前一定要意识到这一点。业务是需求,软件是供给,没有需求,供给就是空中楼阁。所以,在AI编程之前,第一件事就是要理清业务逻辑;在接手项目之前,同样要先弄清楚项目背后的业务逻辑。接手一个项目的过程,就是理清业务逻辑的过程。 当下,IT行业的就业寒冬似乎已经无人不知了。归根结底,企业的用工需求萎缩是一方面,还有一方面就是过于精细化的团队分工导致个体在AI面前根本没有竞争力。在此必须给没有专业软件开发的人科普一下一个专业的项目团队是如何分工合作开发出一款商业化软件的。
以上就是一个大致的软件生命周期的流程。需要注意的是,为了维持线性叙事,上述流程的每个环节都只能聚焦一个角色。实际上在真实的流程中,也会出现产品经理和软件工程师一起设计产品功能、软件工程师和软件架构师一起商议软件所用的技术栈、软件架构师和项目经理一起制定开发计划的时候。而且上述职业配置只是一种标准,实际开发中,因项目或公司的实际客观原因,会出现这个岗位职责让另一个人来承担、那个岗位职责压根就没有等情况。还是要具体问题具体分析。 由此可以看出,有一些自以为是的“文科生”,叫嚣着说“现在是技术门槛最低的时候,以后AI可以完全代替编程了,不要怕踩坑,大胆的干吧!”按照这些人的意思,似乎AI可以让上面12个步骤里的所有职位全部消失、所有人原地失业。也不好好想想,这可能吗?在想当然之前,能不能考虑一下最起码的底层规律?能不能做到实事求是?你的上限决定了AI的上限,如果你连测试有哪些种类都不知道,你又怎么可能驱使AI来帮你完成测试工作? 那么假如你是上面那个开发团队的新人,你该从何入手,接手一个新项目呢? 第一步:先看数据库数据库才是真正承载业务的地方。一个系统真正承载什么业务,看它的数据库就知道了。数据库不光存储了大量的数据,可别忘了数据库的字段、表结构、表关系、数据库结构也同样蕴含着巨大的信息量。我个人觉得这些东西甚至比数据还要重要,因为数据泄露了顶多造成严重的安全事故,可是要是表结构、表关系、数据库结构要是泄露了,那相当于公司的整个商业模式都被泄露了,相当于直接给这家公司判了死刑。无数的竞争对手会像雨后春笋一样冒出来,疯狂挤兑生存空间。 因此,你可以将前端代码喂给AI,让AI帮你设计UI,你甚至可以将后端代码也喂给AI,让它帮你找出逻辑错误。可是万万不可将SQL语句上传,那才是一个项目真正的隐私。数据库承载了业务逻辑,而业务逻辑才是一个人、一个企业在AI时代真正的护城河。所谓“个人独特的不可替代性”,就是差异化竞争:在程序员中最懂业务、在业务人员中最懂软件工程、在所有人中最擅长使用AI。不要以为AI时代的软件工程不重要,恰恰相反,它的重要性仅次于业务逻辑。现在的AI受限于上下文长度,没法统筹整个项目。这时候就需要有一个懂软件工程的人,充当AI的灯塔。 现在主流的数据库可视化工具是Navicat,虽然收费,但强大。拿到一个数据库,先不要看表中都有什么数据,你连表之间的关系都没弄懂,看了也白看。而是应该先浏览一下这个数据库里都有哪些表、每个表有几行数据,然后点击页面右侧的第二个图标,那个是显示建表语句的。
数据库文件的本质就是SQL语句,数据库识别到SQL语句之后,再执行对应的操作。所以我们人类也要学会SQL语句,这样才能弄懂一个数据库里面的表关系。你可以不会任何编程语言,但为了数据安全,你必须会SQL语句。 这张表哪个是主键、哪个是外键,外键又跟哪个表有关系;那张表是存储什么数据的,为什么这里是非空,这个字段为什么要设计成递增/递减,如果我要查某个数据,应该哪些表联查,是左连接还是右连接……这就是数据库承载业务的根本原因。你可以在看不懂代码的时候自己慢慢啃,但是一旦你看不懂数据库,一定要赶紧问,要么问老员工,要么去问业务员。业务员或许看不懂数据库,甚至或许连数据库是干嘛的都不知道,但是她绝对知道某个字段代表什么含义,或者某个字段为什么要设置成递增/递减。先放下你身为技术人员特有的傲慢,一定要不耻下问。 Navicat其实是一个系列,就像Adobe一样。在Navicat系列中,有一个软件叫Data Modeler,已经出到4了。这个软件是绘制数据库建模的。就像这样:
如果你不想下载多余的软件,Navicat for MySQL也自带这个功能。这个功能叫“模型”,在菜单栏中有一个专属的硕大图标,很容易找。
这个模型图就是你钻研数据库之后的产物。实际生产环境中的数据库十分复杂,几十张表都算少的;想查询什么数据,七八张表联查都是常态。有了这张图,团队之间协作也更方便。这也是学校教的理论和现实之间的巨大鸿沟。 第二步:罗列API接口从这一步开始,视项目的保密程度,就可以适当地引入AI来协作了。如果项目的保密程度不高,那么从这一步开始,就可以让AI来帮你完成一些工作了。 一般来说,SpringBoot项目分为4层: MyBatis工作在mapper层,SQL语句就是MyBatis自动映射的,所以这部分不需要我们操心。 如果是从0开发一个软件,首要之事就是设计数据库字段,第二重要的就是设计API接口。接口就像电子产品的插口一样,它定义了不同模块、不同层级之间传递参数的交互规范。由于定义了统一的标准,所以它可以让各模块解耦,实现多态支持(至于什么是多态,这是面向对象编程的概念。面向过程、面向对象、继承、多态,都是软件工程的基础知识,应该自己掌握,而不是外包给AI),也就有了扩展性。而且统一的标准还对测试和团队协作特别友好。 在SpringBoot项目中,API接口在控制层(controller)。所以我们只要将 那么AI就会给你类似于这样的一份文档:
这一步做完,你就知道系统提供了哪些业务能力。《API接口设计文档》不仅是用来团队协作、分配任务的依据,同时也是AI最有效的上下文。《API接口设计文档》应该和《项目目录结构》《软件概要设计说明书》《模块概要设计说明书》《数据库概要设计》等其他文档一起放进项目级规则里。当AI产生幻觉,或者不知道目标文件放在哪时,看一眼文档就能马上找到了,既节省上下文,又节省了词元。词元就意味着钱。 第三步:查看配置文件配置文件告诉你系统连接了哪些外部系统、用了什么中间件、有哪些业务规则配置。在SpringBoot中,配置文件有两种,一种是SpringBoot应用配置,另一种是maven项目配置。应用配置一般在 maven配置文件的名字叫
所以,你需要先找到xml、yml、json或者其他后缀名的文件,然后同样把它们作为上下文引用,然后发送如下提示词: 提示词只要大概是这个意思就行,现在的AI在底层架构上都差不多,只要指令足够清晰、直白,基本上都能心领神会。然后AI会在项目级规则目录下生成一个markdown文件,然后去设置里刷新一下就可以生效了。当然,大概率是不用刷新的,只要放到正确的目录里,TRAE识别很快的。 上述提示词是针对后端的,其实前端也是同理,甚至更方便。除了使用本地的前端框架(如Vue、React)会产生配置文件之外,原生前端技术是没有配置文件的。所以只需要找一个上下文比较长的AI,让AI自己找到前端文件并总结技术栈,然后同样放到上述规则文件里就行了。 项目技术栈很重要。总结项目技术栈有两个作用:
第四步:还原核心业务逻辑从这一步开始才需要读代码。既然是业务逻辑,所以读的肯定是服务层(service)的代码。当过程序员的都知道,写代码只占整个工作的不到20%,剩下的时间不是在解决API接口联调的问题,就是在去开会的路上,亦或是检查(review)别人的代码。检查别人的代码才是最痛苦的,尤其是对于我这种不会编程,但是会一点点软件工程、可以凭经验和感觉大致猜出来这段代码在干啥的人来说尤其如此,会编程的和不会编程的反倒都少一点这种痛苦。 对于会编程的人来说,这一步可以用AI,也可以不用。不用AI就是“古法编程”那一套——追变量名。这里的“变量名”是一个笼统的概念,泛指一切你可以自定义名字的“东西”。从这一个变量名到另一个函数/方法/类/结构体,然后再跳转到另一个文件……好处是你可以完全掌控整个项目的运行逻辑,缺点就是费时间。 而咱们这些不会编程的人,其实用AI也可以完成。虽然对项目的掌控程度肯定是在客观层面下降了,但是我们要把AI当成实习生,把自己当成中层领导,哪有领导自己下场微操的?那不成蒋校长了吗? 所以,我们可以让AI来帮我们寻找隐藏在代码中的蛛丝马迹。视项目的重要程度,我们需要掌握的程度也不一样。如果只是一个人氛围编程出来的小项目,比如只有前端(HTML、CSS、JavaScript、Vue、React、TypeScript、next.js、Node.js),没有后端(C++、python、Rust、Java等),那么我们只需要知道主要的业务流程就行了。对应的提示词如下: 而如果是企业级、有很多功能的大项目,那么即使我们不会编程,也需要知道这个项目里都有哪些业务、对应的业务流程分别是什么。如果使用的是像TRAE、Qoder、CodeBuddy、Cursor这类AI IDE,那么就方便很多了。我一般会在设置好技能、安装好MCP、一切规则设置妥当、准备好最基础的项目文档之后,直接发送如下提示词: 不需要告诉AI什么是《软件需求规格说明书》、《软件概要设计说明书》要包含哪些内容,AI知道。倒是人类需要了解一下什么是《软件需求规格说明书》。需求规格说明书是软件开发过程中最核心的文档之一,业务流程在其中占据重要位置。其内容主要包含以下内容:
在某些大型项目中,业务流程也可能作为独立文档编写,作为需求文档的补充,帮助团队理解业务逻辑。通常配合业务流程图一起呈现。 至于《软件概要设计说明书》,说实话它并不是一个合格的AI上下文。因为它太杂了,什么都有,很容易让AI产生幻觉。不过对于人类来说,这反倒是个优点。所以相比于其他三个文档,这个文档才更应该是人类需要仔细阅读的文档。只要维护好这篇文档,它可以拆成好几个文档,相当于项目文档的目录索引。 至此,你就从0接手了一个项目,迈出了从接手到开发的第一步。但是我要提醒你,AI协助接手项目存在天花板。AI可以帮你理解业务流程和规则,但是没办法判断隐藏的bug或者漏洞;AI可以帮你知道系统做了什么,却无法代替你敏锐地察觉出系统没做什么;AI也许可以发现明显的软件架构问题,但是没办法发现深层次的性能和安全隐患。让AI重构?AI也会左右脑互搏。这些,都需要你自己懂得软件工程和软件架构、会编程才能做到。AI的上限,永远都取决于你的上限。 自闭症谱系和ADHD人士该怎么办?其实我自己就有自闭症特质和ADHD,但是因为精神科医生的排班太阴间了,导致号特别难抢,基本上只有每周三周五的半天时间,外加上医生也不全是专业的,所以我不仅没有得到什么医学支持,反而还受到了一些伤害。就我自己的感觉来说,哪怕我没有达到自闭症的诊断标准,那么我也肯定有ADHD。这不是什么互联网时尚单品,而是对我生活、工作、社交切实的影响。 社会对于“神经多样性群体”的支持也不够,这个群体常年徘徊在社会边缘,没有进入大众视野。有的人对这个群体充满恶意,而大多数人就算没有主观上的恶意,也因为对这部分群体不够了解而存在一些偏见和刻板印象,这也是一种间接的伤害。所以我觉得我有必要在我熟悉的领域提供一点帮助。同时我也希望从来没了解过神经多样性群体(ND)的神经典型性人士(NT)也可以在读完这一部分之后,对神经多样性群体了解更多一些。 研究发现,ASD(自闭症谱系障碍)和ADHD(注意力缺陷多动障碍)经常共病,约有30-80%的ASD儿童同时符合ADHD诊断标准,也就是所谓的“双A”。所以下面我会把两个群体合起来讲。 第一步:看数据库这部分对于自闭症谱系来说优势明显。因为数据库是高度结构化的信息,看上去就和Excel表格差不多。主键、外键、数据类型、约束条件,全是明确的、无歧义的、不需要“读空气”的信息——全在SQL语句里写着呢。谱系人士天生擅长从规则系统中发现模式和异常。上文说的"看建表语句、分析表关系",对谱系人士来说甚至可能比NT做得更好,因为NT容易靠直觉跳过细节,而谱系人士会逐字段地啃,然后在脑中构建完整模型。这就是自闭症谱系的障碍所在——面对复杂的生产级的关系型数据库时,这种“偏执”很容易让大脑过载。 解决办法也很简单。还记得我们为什么要看数据库吗?不就是为了那一张《数据库模型图》吗?这张图同时也是解药。看一点,梳理出一点成果,就立刻画到图里去,不要试图用脑子记,高级工程师来了都记不住。 如果说看数据库对自闭症谱系的挑战就相当于CPU满载,那么对ADHD的挑战就相当于电脑内存容量不足。对于ADHD来说,这就是泥潭,甚至是整个流程里面最无聊的一步。七八张表的联查关系?ADHD的大脑在第三张表的时候就已经开始想"我是不是应该直接看代码了"。所以他们很容易跳过这一步,直接冲到后面去看代码或让AI生成文档。即使坐下来看了,注意力会在"这个字段命名不规范"和"为什么用INT不用BIGINT"这些非核心细节上跑偏。然后看到一半突然想到"我应该先把Navicat装上",接着去装软件,装完又发现需要许可证(Navicat是商业软件,要钱的),然后去搜破解教程……两小时后数据库一个字没看。 不过我相信ADHD和自己的神经特质朝夕相处这么多年,想必已经有一些自己的经验和方法了。去医院拿到诊断后服药是一个方法、降低维持注意力的门槛是一种方式、给自己设置多巴胺奖励还是一种方式。总之,你可以用各种方式来告诉自己,“梳理数据库其实是很轻松的工作”。 社交障碍同样是在看数据库这一步,上文有一句话:
这句话对于自闭症谱系和ADHD来说是共有的核心矛盾,但难度不同。遇到不懂的就应该要多问人,但现实中,自闭症谱系和ADHD人士在职场中"问人"的社交成本就是比神经典型性群体高。这不是缺点,是客观事实。 先说自闭症谱系。 根据《DSM-5》诊断标准,社交(语用)沟通障碍(SCD)被明确定义为一种独立的神经发育障碍,其核心特征是持续存在的社交沟通困难,包括在社交情境中使用言语和非言语交流的缺陷,如难以根据听众调整沟通方式、理解言外之意、维持对话等。然而,SCD的诊断有一个至关重要的排除标准:个体不能同时满足自闭症谱系障碍(ASD)的全部诊断标准,特别是必须缺乏受限的、重复的行为、兴趣或活动模式(RRBs)。这意味着,SCD适用于那些仅有社交沟通缺陷而无RRBs的个体,无论其年龄如何。 那次去看精神科医生,虽然没拿到自闭症谱系的诊断,但是医生却斩钉截铁地肯定我有社交障碍 但是对于自闭症谱系来说,社交方面的障碍比社交沟通障碍更严重。自闭症谱系的难点不在于"不肯问",而在于不知道该问什么、什么时候问、问了之后怎么处理对方的模糊回答。假如业务员说"这个字段就是记录一下状态嘛",对于神经典型性人士来说会继续追问"什么状态、状态从哪来到哪去",但自闭症谱系人士可能字面理解了"记录一下"就停止了追问。然后出了什么问题,就会让他们产生挫败感,渐渐地就不问了。 除此之外,自闭症谱系还会恐惧不确定性、厌恶变化,再微小的变化也不行。而社交对他们来说就是一种不确定性,因为对方不会按照他们设想的那样来交流,任何回复都有可能。本质其实是一种刻板行为。这就是我认为自己其实应该是自闭症谱系的原因,因为我也这样。我对此的应对方式就是:先问AI,再问人,问人之前打腹稿。 先把你准备问人的问题先问一遍AI,看AI怎么回答,然后基于AI的回答去追问人。这样你问人的时候已经有了一个"锚点"——
这比"这个字段什么意思"好回答得多,对方也更容易给出精确的回答。 而在决定问别人之前,或者是要说什么话之前,先思考自己要说什么,准备好一整套完整的话术,比如说:
拿着准备好的话术去问别人,能够大幅度降低不确定感。如果是比高功能自闭症(阿斯伯格综合征)更严重一些的轻度自闭症和中度自闭症,还可以额外再预演一下所有可能出现的情况,并想好应对措施。 如果实在不想开口,写文档。 把你的理解写成文档,发给业务方或老员工:"我整理了一份XX模块的业务流程,您有空的时候帮忙看一下有没有理解偏差。" 书面异步沟通对谱系和ADHD都更友好。 而对于ADHD来说,社交障碍则变成了“等不及问”。脑子已经跳到第三步了,第一步还没做完就想绕过去,而"不耻下问"需要停下来、组织语言、找到对的人、等待回应。这一串动作本身就是对执行功能的巨大消耗。然后由于ADHD的工作记忆非常短,经常转头就忘了自己要干嘛、曾经干了什么。对此,也许想到什么就赶紧记下来才是最有效的应对方式。 最后,无论是ASD还是ADHD,要记录每一次"问了之后发现和我想的不一样"的案例。 这些案例才是你真正的个人知识库,同时也是隐式业务流程的沉淀、AI的避坑记忆文档。《实践论》说得好——
对谱系人士来说,这些案例可以弥补"读空气"能力的不足;对ADHD来说,这些案例是比任何文档都有效的"记忆锚点"。 第二步:罗列API接口由于这一步的AI自动化程度很高,所以这一步不会对两个群体造成什么太大的障碍。倒是需要提醒一句:要给AI的输出加一个强制检查环节。 AI生成表格之后,不要直接用,而是打开Controller文件,用查找功能(Ctrl+F)逐个搜索 第三步:查看配置文件配置文件是个高度嵌套的树形结构,而且很长,大项目里动辄几百上千行。自闭症谱系容易再次陷入“逐行解读”的模式,而ADHD看到这个长度则会当场大脑宕机。但是可别忘了,我让你们打开配置文件的目的是让AI帮你提炼项目的技术栈,而不是让你亲自下场微操的。让AI帮你提炼,然后你自己再大致扫一眼,做到心中有数即可。提炼技术栈的目的是为了让AI在写代码的时候不出版本兼容性问题。换句话说,这是给AI看的,不是给人看的。 第四步:还原核心业务逻辑这是四步法中最难的一步,对两个群体来说都是。 对于自闭症谱系来说,数据库表结构是精确的、API接口也是精确的,但业务逻辑往往是"原则上是这样,但特殊情况要那样处理";而且有些业务规则没有写在任何文档里,只存在于某个Service方法里的一个 这是两个障碍,但归根结底都是一个——模糊性。自闭症谱系人士对模糊性和不确定性非常不适,可能会反复追问"到底哪种情况算特殊情况",而业务员的回答往往是"看情况"。“看情况”,这三个字对自闭症谱系人士来说就是一种折磨。这不是能力问题,而是思维方式的差异——自闭症谱系人士倾向于信任显式声明,而生产环境中的业务规则往往都是隐式的。 应对方法:
对于ADHD来说,障碍则集中在注意力方面。首先,这一步需要持续的高度专注 。 追踪一个业务流程从Controller到Service到Mapper再回来,中间可能跨越五六个文件,每个文件几百行。ADHD的注意力在这段旅程中大概率会断链——追到第三个文件的时候已经忘了第一个文件在干什么了。 其次,AI生成的文档太长,看不下去。 前文让AI生成《软件需求规格说明书》《模块设计报告》《模块流程图》三份文档。对于大项目来说,这些文档加起来可能上万字。ADHD看到这个篇幅,直接放弃阅读。 应对方法:
抑郁症和焦虑症怎么办?我强烈不推荐抑郁症或焦虑症患者来接手任何一个项目。 其实对于精神病人来说,接手代码是一个非常燃烧生命力的工作,编程也是对体力和脑力的双重考验。你以为网上称计算机专业就是“赛博土木”是在开玩笑吗?最起码土木工程不会同时考验脑力和体力,在一段时间内只会挑一个来考验。他们本来就不是健康人,怎么能够胜任这种繁重的工作?生病了就应该好好休息,而不是一再挑战自己的身体极限。 但也不能排除一种情况,万一编程是有些病人脱离畸形的原生家庭、实现经济独立的唯一方式呢?所以我们也要科学地认识抑郁症和焦虑症。 抑郁症在编程领域的核心挑战有两种,意义感丧失和精神运动性迟滞。前者会让患者陷入虚无,自己做什么事情都没有任何意义,然后就开始自我攻击;而后者则会让思维变得迟缓、难以集中注意力。如果达到极端程度,还可能发展成紧张症,DSM-5-TR诊断系统将其标注为“伴紧张症特征的重度抑郁发作”。其核心特征包括木僵(例如持续数小时静坐不动、姿势固定、对外界指令无反应或仅有微弱反应)、缄默、蜡样屈曲、违拗等。这不是道德素质或人品败坏,而是发生在生理层面的疾病。 对此,应对方式就是降低心理预期和执行门槛。比如正常人在工作时会先打开电脑,然后打开IDE软件,接着点击“文件”→“打开文件夹”,最后开始正式工作。而对于重度患者而言,连打开电脑都特别困难。首先是“好想动,但动不了”,紧接着就是“别人打开电脑这么容易,为什么我不行,我怎么这么废物,我怎么可以容忍自己这么废物”,然后就开始自我攻击了。所以要降低自己的心理预期。今天先开机就已经很了不起了。开机很简单吧?如果是笔记本电脑的话,先把盖子掀开,然后按一下开机键就行了。明天先开机,再双击桌面软件图标。第三天先开机,再打开软件,再打开项目所在文件夹。 读不懂代码也不要自我攻击。别忘了你的身份,你是一个病人。要允许自己生病,也要允许自己读不懂代码,这也是在认清客观现实。谁这一生能做到百病不侵?更何况你得抑郁症肯定有其原因。这篇文章大部分都是在让AI帮你读代码、整理文档,这很大程度上也会减轻你的心理负担。大不了在照着文章执行的过程中,顺便让AI用你能听懂的方式给你讲一遍就是了,无非是多耗一些词元的事。 有些人不理解抑郁症患者,总是在说什么“运动就好了呀,运动就能康复。你不去运动,说明你就是不想好”,那我问你,你让一个坐轮椅的骨折病人从轮椅上站起来,病人站不起来就是人家不想好呗?你这是赤裸裸的污名化!谁不知道有氧运动可以缓解抑郁症?你以为天下就你最懂抑郁症?这已经不是有没有同理心的问题,我因为自闭症特质,我也没有同理心(述情障碍),但我怎么就知道抑郁症病人的现实挑战呢?纯粹就是你脑子里对抑郁症没有科学的认识,把自己的刻板印象当成真理,自己无知还不知道自己无知!不知道自己无知的人,就是最标准的蠢货! 晒太阳可以补充维生素D,而维生素D除了可以补钙,还可以改善抑郁情绪;有氧运动可以提升多巴胺,多巴胺同样可以缓解抑郁。但倘若你让抑郁症病人直接去太阳底下跑步、去游泳馆游泳,那他大概率是做不到的。所以真正的改变往往都是从“去楼下花园的长椅上坐一会”开始的。这同样是在降低执行门槛和心理预期。这些都是通用的。 而焦虑症的核心挑战则是灾难化思维与对未知的恐惧、完美主义导致分析瘫痪。 焦虑来源于对失控的恐惧,而“对失控的恐惧”也分三种:对提交代码的截止日期的恐惧、对代码有缺陷的恐惧、对AI生成结果不完美的恐惧。应对方法请参照前文自闭症应对模糊性和不确定性的方法,核心思想就是容许未知,意识到“就算是发生未知情况,也不会产生灾难性后果”,从而打破灾难化思维的错误逻辑。 针对完美主义导致的分析瘫痪,焦虑症患者应该意识到,天底下没有任何程序是没有bug的,只要是人造的东西,都有缺点。项目文档也一样,项目文档应该是跟随代码变动而随时更新的东西,不存在静止的、永恒的项目文档。软件尚且有生命周期,人还有寿命,更何况是项目文档?局部的错误不会导致整体方向跑偏,AI会自动帮你修正错误的——现在就算是二等国产大模型都可以做到这一点了,要意识到真正的客观现实。 结语写到这里,全文该收尾了。 回看这篇文章,从开篇引述《实践论》,到提出接手项目的四步法,再到为神经多样性群体寻找生存策略,贯穿始终的核心其实只有四个字:实事求是。 网上那些鼓吹“AI将立刻替代所有程序员”的自媒体,没有实事求是;那些脱离生产环境、靠“氛围编程”糊玩具还沾沾自喜的极客,没有实事求是;那些无视精神疾病患者的生理客观基础、站着说话不腰疼地喊出“你想开点就行了”的看客,更没有实事求是。 离开了物质的生产活动,人的认识就成了无源之水;脱离了客观的生理条件,谈主观能动性就是彻头彻尾的唯心主义。 在AI时代,技术门槛确实在降低,但“实事求是”的门槛反而变高了。因为AI太容易让你产生“我懂了”的幻觉,也太容易让你把思考外包给一段看似合理的文本。但请永远记住:业务逻辑才是真正的护城河,软件工程才是托底的基石,而你的上限,永远是AI的上限。 AI可以帮你梳理隐式的 如果你是一个健康的开发者,请放下技术人员的傲慢,去贴近业务,去敬畏那些屎山代码背后的现实逻辑; 技术再怎么狂飙突进,写代码的、改Bug的、接手烂摊子的,终究还是肉身凡胎。AI是一台强大的挖掘机,但坐在驾驶室里的,依然是你。 认识规律,尊重现实,降低门槛,开始行动。这就是我们在AI时代生存的唯一解。 转自https://www.cnblogs.com/Li-runqing/p/20008588/takeover-project-in-ai-era 该文章在 2026/6/2 9:45:53 编辑过 |
关键字查询
相关文章
正在查询... |