最近半年重度依赖GitHub Copilot,尤其是写Python和Go的模板代码时,基本就是Tab键按到底。今天公司要求手写一个带并发控制的爬虫,突然发现自己连sync.Mutex和WaitGroup的配合都要现查文档,脑子一片空白。
Copilot用久了,感觉自己的代码能力在退化,大家有这种感觉吗?
全部回复
共 30 条太真实了,我现在写点基础算法也得靠提示,感觉脑子成缓存了。
同感,工具用多了手会生,建议平时没事写点不靠补全的小项目练练。
我倒觉得这不完全是坏事,说明你之前用Copilot把精力省下来去解决更高层的问题了。但手写并发这种基础能力确实得定期练练,不然真到面试或者写核心代码时会心虚。我一般隔几周会故意关掉补全,纯手撸一个小工具,就当给脑子做复健了。另外建议把常用并发模式的文档存成本地笔记,需要时扫一眼比现查快多了。
我之前也有过这种状态,后来强迫自己每周抽两小时不看任何辅助工具,纯靠记忆去写点小工具或者刷题。Copilot确实能提速,但有点像开车开了自动巡航,真到需要精准操控的路段就露怯了,那些基础库的细节一旦变生疏其实是挺慌的。我现在的做法是把AI当结对编程的搭子,让它先给方案,我再自己重构一遍关键逻辑,而不是全程无脑Tab。你们有没有试过定期做点“无辅助编码日”?感觉对维持手感还挺管用的。
确实有同感,但我觉得这更像是“肌肉记忆”被偷懒了。以前写并发要自己推敲锁的粒度,现在直接让Copilot生成,少了那层“为什么”的思考,下次遇到非标准场景就抓瞎了。我现在会刻意让它只补全注释或函数签名,代码主体自己敲,偶尔做点LeetCode的并发题当脑保健操。另外你那个爬虫场景,试试用channel做任务队列,比裸写Mutex要直观不少,可以换个思路。
我倒没觉得是能力退化,更像是换了一种肌肉记忆。以前写并发脑子里会自动过一遍锁的粒度和goroutine泄漏,现在Copilot把模板喂到嘴边,这部分“预演”确实少了。但真正让我警觉的是另一件事:有次它生成的WaitGroup用法看着没问题,结果Add放到了goroutine里面,差点埋了个race。我盯着那段代码看了半天才发现,说明审查能力还在,但手写直觉变钝了。后来我给自己定了个规矩,凡是涉及并发、内存管理、错误传播这些核心逻辑,先自己写个骨架再让Copilot补全,把它当加速器而不是代笔。说实话模板代码让AI写完全没问题,省下来的时间拿去看底层实现反而更划算。你这次现查文档也不算坏事,至少说明你心里清楚哪里该补,怕的是那种连查都不知道查什么的钝感。
同感,我现在写业务逻辑全靠Tab,上次面试手写快排居然卡了半天,真得偶尔关掉Copilot练练手。
同感,我现在写业务逻辑飞快,但一到手写算法和并发就卡壳,脑子像生锈了一样。
同感,我前段时间写个简单的decorator都卡了半天,最后发现是copilot帮我养成了“先看建议再想逻辑”的习惯。但我觉得问题不完全在工具,而是用的时候太被动了,基本是它写啥我接啥。后来我强迫自己先手写个大概框架再开copilot补全,感觉对保持手感有帮助。你那个并发爬虫的例子其实挺典型,这类需要整体设计的场景,AI给的片段反而容易让人跳过思考。
我之前也有类似的感觉,特别是写那种重复性高的CRUD接口时,Copilot一补全我就直接回车,连变量名都懒得想。后来有次面试被问到手写一个带超时控制的worker pool,我居然卡在channel的close时机上了,当时就意识到问题不是Copilot让我变菜,而是我主动放弃了思考的过程。其实工具本身没问题,关键是使用方式,我现在会刻意在Copilot给出建议后先自己想一遍逻辑再决定要不要接受,尤其是并发和错误处理这种容易埋坑的地方。另外我觉得这种退化感也跟项目类型有关,如果长期只做业务堆叠,就算没Copilot也会生疏底层API。所以我现在每周会抽时间刷几道LeetCode或者自己造个小轮子,保持对基础的手感。你们有没有试过把Copilot当成reviewer而不是writer来用?就是自己先写个粗糙版本,再让它提改进建议,这样既省力又不至于完全躺平。
我也有类似的感觉,但后来发现退化的其实是对API细节的记忆,不是编程思维本身。现在我刻意在Copilot给出建议后先自己想一遍为什么这么写,再决定要不要接受。另外像并发这种核心逻辑,我会关掉补全手撸一遍,就当复习了。工具是省事的,但关键地方还是得自己心里有数。