标签 软件工程 下的文章

看了 100 小时教程,你为什么依然写不好代码?扒开技术人的“成长环”真相

本文永久链接 – https://tonybai.com/2026/03/22/stop-tactical-diligence-start-stretch-zone-growth

大家好,我是Tony Bai。

在这个技术大爆炸的时代,我见过了太多极其“勤奋”的程序员:

他们会在各大技术平台上收藏几百篇诸如《Go语言进阶课》、《AI原生开发工作流实战》… …的专栏文章,硬盘里塞满了从各种渠道搞来的“AI大模型实战课”视频。他们熬夜看教程、做笔记,甚至在通勤的地铁上都在听技术播客或专栏课程。

但如果你在半年后去问他:“你用 Go 写过什么高并发系统吗?”或者“你开发过什么 AI Agent 吗?”

他大概率会尴尬地挠挠头:“还没,教程太长了还没看完,或者看了感觉太难,平时工作里也用不到……”

为什么看了 100 小时的教程,你依然写不好代码?为什么收藏了无数的技术干货,你的核心竞争力却依然在原地踏步?

这其实是整个技术圈最普遍、也最隐蔽的陷阱:用“战术上的勤奋”,掩盖了“战略上的懒惰”。

今天,我想跨界借用知名认知作家周岭在《认知觉醒》一书中的核心理论,彻底撕开这层“假性努力”的面纱,带你重新构建一张属于技术人的“动态雷达图”,教你如何真正走出舒适区,在这个 AI 狂飙的时代完成硬核的自我进化。

舒适区与困难区的两极震荡:为什么你总是半途而废?

在《认知觉醒》中,周岭提出了一个极其精准的人类能力分布模型:“舒适区—拉伸区—困难区”

这三个同心圆,完美地映射了我们程序员的日常状态:

  1. 舒适区(最内层)

在这个区域里,事情对你来说轻车熟路,闭着眼睛都能敲出代码。比如,写一个简单的 CRUD 接口、配置一下 Nginx、复制粘贴一段以前写过的表单验证逻辑。

但问题就在于人类的天性是“避难趋易”的。

长年停留在舒适区,虽然毫无压力,但会让你陷入“无聊而走神”的状态,最终导致技术能力的彻底停滞。在这个区域里,你不是在拥有 10 年经验,你只是把 1 年的经验用了 10 年。

  1. 困难区(最外层)

这个区域里的任务,远远超出了你当前的能力边界。比如,你连 Python 都没写熟,就发誓要在一周内从零手搓一个 Transformer 模型;或者你刚学完 Go 基础语法,就想去给 Kubernetes 的底层调度器提核心 PR。

人类的另一个天性是“急于求成,总想一口吃成个胖子”。贸然跨入困难区,你会遇到无数个令人绝望的 Error 报错,巨大的挫败感会瞬间击溃你的自信心,让你产生“我可能不适合干这个”的错觉,最终因畏惧而逃避。

绝大多数技术人的悲剧在于:他们终日在这两极之间做着无效的“钟摆运动”。

平时在公司里做着无聊的 CRUD(舒适区),下班后突然焦虑爆发,立下宏愿要去啃最硬核的底层源码(困难区),被虐得体无完肤后,心灰意冷地退回到继续写 CRUD(舒适区)。

真正的成长密码:寻找你的“拉伸区”(边缘努力法则)

那么,破局之道在哪里?

答案就藏在舒适区和困难区中间的那个极其狭窄、却又蕴含着巨大能量的环带——拉伸区(舒适区边缘)

在拉伸区里,任务具有一定的挑战性,你无法靠肌肉记忆直接完成,但只要你稍微踮起脚尖,查一查资料,努努力就能触碰到。

这里既有未知的挑战,又有可达成的成就感。只有在这个区域,你才能进入所谓的“心流(Flow)”状态,获得最快的进步。

但这还不够。为了指导我们如何在拉伸区行动,《认知觉醒》中提出了一个更为深刻的“成长微观规律”,它揭示了学习、思考、行动和改变之间的权重关系:

改变量 > 行动量 > 思考量 > 学习量

这简直是为程序员量身定制的“照妖镜”!让我们来对照一下:

  • 学习量(权重最低): 买了一门极客时间的专栏,看完了 10 个视频。这叫输入,你只是把别人的知识存进了大脑的短期记忆里。
  • 思考量: 看完视频后,你开始琢磨:“哦,原来 Go 的 Channel 底层是一个带锁的环形队列,怪不得会阻塞。”你不仅看了,还理解了。
  • 行动量: 你打开 IDE,凭着记忆和文档,自己手敲了一段用 Channel 实现的生产者-消费者模型代码,并成功跑通了。
  • 改变量(权重最高): 你发现自己手敲的这个并发模型,正好可以用来优化你们公司那个极其缓慢的“每日数据导出”报表脚本。你把它重构并部署上线了,报表导出速度提升了 5 倍!

如果你不盯住内层的“改变量”和“行动量”,那么你在表层投入再多的“学习量”也只会事倍功半。

无数人陷入“教程地狱(Tutorial Hell)”的原因,就是他们只停留在了“学习量”的层面,从未产生过“改变量”。

实战推演:如何利用“拉伸区”构建你的技术雷达图?

有了宏观的规律支撑,我们该如何将它落地到日常的技术精进中?

优秀的程序员,脑海中都有一张自己的“动态技术雷达图”。这张图不是静止的,而是通过在各个技能维度的“拉伸区”不断向外扩张,最终形成一个巨大的“成长环”。

接下来,我将以个人比较熟悉,也是当前较为受欢迎的两个技能领域——Go 语言高并发开发AI Agent 原生开发 为例,和大家聊聊如何设计自己的拉伸区项目,完成从“学习”到“改变”的闭环。

案例一:Go 语言开发者的拉伸区跃迁

现状诊断(舒适区):

你已经通过《Go语言第一课》掌握了 Go 的基础语法,能熟练使用 Gin 框架写 HTTP 接口,能用 GORM 对 MySQL 进行增删改查。每天的工作就是对着产品需求堆代码。如果继续这样,三年后你依然是一个高级的“CRUD 工程师”。

急于求成(困难区-千万别去):

发誓要用 Go 写一个分布式的关系型数据库,或者直接去扒 Go 语言 runtime 包里垃圾回收器(GC)的三色标记法 Go /汇编源码。你会在无尽的底层细节中崩溃。

精心设计的“拉伸区项目”:构建一个高并发的压测小工具

不要去背八股文了,给自己设定一个能触及“改变量”的拉伸区实战项目:用 Go 实现一个类似 ab (Apache Bench) 的高并发压测工具。

  • 步骤 1(思考量): 为什么原来的单线程脚本发请求那么慢?Go 的 Goroutine 如何做到极轻量级的并发?
  • 步骤 2(行动量 – 踏入拉伸区):
    • 拉伸点 1: 不用任何第三方库,仅用标准库 net/http 发起请求。
    • 拉伸点 2: 使用 sync.WaitGroup 来控制并发的启动和等待。
    • 拉伸点 3: 引入 Channel。当并发量达到 10 万时,无脑 go func() 会导致系统资源枯竭。你必须学习使用带缓冲的 Channel 来实现一个协程池(Worker Pool),限制最大并发数。
    • 拉伸点 4: 引入 sync.Mutex 或 atomic 包,来安全地统计成功请求数、失败数、平均延迟等数据。
  • 步骤 3(改变量 – 形成闭环): 工具写完了。你把它编译成二进制文件扔给测试团队,告诉他们:“以后压测咱们自己的接口,就用我写的这个工具,不需要装乱七八糟的依赖了。”

这个项目完美地避开了极其枯燥的底层源码(困难区),又跳出了无脑的框架调用(舒适区)。在这个拉伸区里,你被迫真实地操作了 Goroutine、Channel、锁和原子操作,你的雷达图在“并发编程”这个维度上,成功向外扩张了一大圈。

案例二:向 AI 原生开发者进化的拉伸区

现状诊断(舒适区):

你每天都在用 Copilot 或 Claude Code帮你写代码、润色邮件。你买了几十块钱的 API,用 Python 写了一个脚本,把用户的输入传给 API,然后把结果打印出来。你觉得自己“懂 AI 开发了”。

急于求成(困难区-千万别去):

去啃 PyTorch 底层逻辑,买几块 4090 显卡,试图自己微调(Fine-tune)一个千亿参数的大模型,或者试图手搓一个全知全能的超级 AGI。

精心设计的“拉伸区项目”:开发一个带“工具调用(Function Calling)”的本地私有知识库助手

从“AI 使用者”到“AI 架构师”的跨越,不在于你能记住多少 Prompt 魔法,而在于你是否懂得如何将 AI 与外部物理世界连接起来。

  • 步骤 1(思考量): 大模型是没有记忆的,也没有最新数据。如何让大模型能读取我电脑里今天刚生成的日志文件?
  • 步骤 2(行动量 – 踏入拉伸区):
    • 拉伸点 1:告别单轮对话。 学习使用 LLM 的 API 维护一段连续的记忆上下文(Context Management)。
    • 拉伸点 2:攻克 Function Calling(核心拉伸)。 仔细研读 OpenAI 或 Anthropic 的官方文档,用代码定义一个工具(比如:search_local_file 函数)。这要求你将大模型的自然语言输出,精确地转换为本地函数的结构化参数输入。
    • 拉伸点 3:拥抱最新协议。 如果你有野心,可以去挑战去年爆火的 MCP(Model Context Protocol)协议,编写一个属于你自己的 MCP Server,让流行的 Agent 工具(如 Cursor 或 Claude Desktop)能够安全地访问你的本地数据库。
  • 步骤 3(改变量 – 形成闭环): 你不再在网页端复制粘贴代码了。你用 Go 或 Python 跑起了一个常驻终端的服务。当你问它“昨天生产环境的报错主要集中在哪里?”时,你的 Agent 自动调用了本地 grep 命令,分析了日志,并给你输出了一份完美的摘要。你的工作效率得到了实质性的改变!

这个项目没有要求你去懂深奥的神经网络微积分(困难区),但它逼着你掌握了 AI 原生开发中最核心的“Agent 工具编排”能力。在这个拉伸区里,你从一个“提示词念稿人”,正式蜕变为了一名“AI 指挥官”。

小结:复利曲线与舒适区边缘的完美交响

回过头来看看,那些真正牛逼的顶级技术专家,难道他们天生就拥有超凡的智商吗?

绝大多数情况下并不是。

他们的秘密武器,仅仅是日复一日地在“舒适区的边缘”进行着微小但坚实的努力。

每一次在拉伸区里解决掉一个陌生的 Bug,每一次将一个跑在命令行的脚本优化成一个稳定的后台服务,每一次将你的所学变成真正提高团队效率的工具(改变量),都是在你的技术雷达图上,刻下的一道深深的成长环。

不要再去囤积那些你永远不会看的几十个 G 的视频教程了。

关掉网页,打开你的 IDE。找出你日常开发中最让你感到繁琐的一件小事,稍微踮起脚尖,用你刚学的一点点新知识去干掉它。

去拥抱你的“拉伸区”吧。因为只有在那里,你才能真正体会到作为一名工程师,掌控系统、改变世界的顶级快感。


今日互动探讨:

看完这篇文章,你觉得你目前的日常工作有百分之多少是在“舒适区”?如果你要在今年规划一个自己的“拉伸区”硬核项目,你会选择做什么?

欢迎在评论区分享你的反思与计划!


还在为“复制粘贴喂AI”而烦恼?我的新专栏 AI原生开发工作流实战 将带你:

  • 告别低效,重塑开发范式
  • 驾驭AI Agent(Claude Code),实现工作流自动化
  • 从“AI使用者”进化为规范驱动开发的“工作流指挥家”

扫描下方二维码,开启你的AI原生开发之旅。


你的Go技能,是否也卡在了“熟练”到“精通”的瓶颈期?

  • 想写出更地道、更健壮的Go代码,却总在细节上踩坑?
  • 渴望提升软件设计能力,驾驭复杂Go项目却缺乏章法?
  • 想打造生产级的Go服务,却在工程化实践中屡屡受挫?

继《Go语言第一课》后,我的《Go语言进阶课》终于在极客时间与大家见面了!

我的全新极客时间专栏 《Tony Bai·Go语言进阶课》就是为这样的你量身打造!30+讲硬核内容,带你夯实语法认知,提升设计思维,锻造工程实践能力,更有实战项目串讲。

目标只有一个:助你完成从“Go熟练工”到“Go专家”的蜕变! 现在就加入,让你的Go技能再上一个新台阶!


原「Gopher部落」已重装升级为「Go & AI 精进营」知识星球,快来加入星球,开启你的技术跃迁之旅吧!

我们致力于打造一个高品质的 Go 语言深度学习AI 应用探索 平台。在这里,你将获得:

  • 体系化 Go 核心进阶内容: 深入「Go原理课」、「Go进阶课」、「Go避坑课」等独家深度专栏,夯实你的 Go 内功。
  • 前沿 Go+AI 实战赋能: 紧跟时代步伐,学习「Go+AI应用实战」、「Agent开发实战课」、「Agentic软件工程课」、「Claude Code开发工作流实战课」、「OpenClaw实战分享」等,掌握 AI 时代新技能。
  • 星主 Tony Bai 亲自答疑: 遇到难题?星主第一时间为你深度解析,扫清学习障碍。
  • 高活跃 Gopher 交流圈: 与众多优秀 Gopher 分享心得、讨论技术,碰撞思想火花。
  • 独家资源与内容首发: 技术文章、课程更新、精选资源,第一时间触达。

衷心希望「Go & AI 精进营」能成为你学习、进步、交流的港湾。让我们在此相聚,享受技术精进的快乐!欢迎你的加入!

img{512x368}


商务合作方式:撰稿、出书、培训、在线课程、合伙创业、咨询、广告合作。如有需求,请扫描下方公众号二维码,与我私信联系。

为什么你的 AI Agent 总是像个智障?来自 Manus 大佬的 2 年血泪避坑指南

本文永久链接 – https://tonybai.com/2026/03/18/why-ai-agents-act-stupid-manus-expert-pitfall-guide

大家好,我是Tony Bai。

如果你在过去一年里跟风写过 AI Agent(智能体),你大概率经历过这样的绝望时刻:

你兴致勃勃地给大模型挂载了二三十个精心编写的 Function Calling(函数调用)工具,比如 read_file, search_web, execute_python……你期待它能像钢铁侠的贾维斯一样运筹帷幄。

结果呢?面对稍微复杂一点的任务,你的 Agent 瞬间退化成一个“智障”。

它要么在几十个工具里疯狂迷失,选错了参数导致系统报错;要么陷入无限死循环,把你的 Token 烧个精光,最后无辜地吐出一句:“抱歉,我无法完成该任务。”

我们总以为是自己的 Prompt 没写对,或者是大模型还不够聪明。

直到前些日子,一位名叫 MorroHsu 的顶级实战派大佬(在被 Meta 收购前,他是现象级 AI 产品 Manus 的后端技术负责人)在 Reddit 上抛出了一篇长文

在过去两年里,他以后端负责人的身份参与构建了包括 Manus、agent-clip 等在内的多个顶尖 Agent。在被大模型的各种奇葩幻觉折磨了无数遍之后,他得出了一个极其震撼、甚至有些反直觉的血泪结论:

别再瞎折腾繁琐的 Typed Function Calls(类型化函数调用)了!给大模型一堆乱七八糟的 API,就是它变“智障”的罪魁祸首。大模型最需要的,仅仅是 50 年前的 Linux 命令行(CLI)。

今天,我们就来看看这位 Manus 前后端大佬的 2 年避坑心法。看看为什么最前沿的 AI,反而需要最古老的 Unix 哲学来拯救。

为什么给 AI 几百个工具,它反而成了“智障”?

目前主流的 Agent 框架(如 LangChain),都在教我们怎么给大模型塞满工具箱。你塞的工具越多,系统看起来越庞大。

但 MorroHsu 指出了这背后的致命逻辑错误:工具选择的认知过载(Cognitive Load)。

大模型每次行动前,都要在几十个有着不同数据结构(Schemas)的工具中艰难地做选择题:“我到底该用哪一个?参数填什么?” 上下文的注意力被极大地分散了,准确率直线断崖式下跌。

大佬的解法粗暴且优雅:废弃所有花里胡哨的工具,只给大模型提供唯一的一个函数:run(command=”…”)。

为什么?因为大模型天生就是个 Linux 高手!

大模型的训练语料库里,充斥着 GitHub 上数十亿行的代码、README.md 中的安装指南、以及 Stack Overflow 上的报错日志。这些语料中,密密麻麻全是 CLI 命令行。

如果你让它去调用你发明的 read_log_file(path) API,它还要去猜测你的参数定义;但如果你让它去找日志里的错误,它会凭着肌肉记忆毫不犹豫地写出:

run(command=”cat /var/log/app.log | grep ‘ERROR’ | tail -n 20″)

你看,CLI 本身就是大模型最熟悉的母语。不要发明新的轮子去教大模型做事,直接把它最熟悉的世界交给它。

50年前的“管道”魔法,完美解决了 Agent 编排难题

如果只有一个 run 命令,AI 遇到复杂任务怎么办?

这就引出了 50 年前 Unix 操作系统的伟大设计哲学:一切皆文件。

Unix 的先驱们设计了大量只做一件事的小工具(cat, grep, sort),然后通过管道(Pipe |)将它们串联成无比强大的工作流。

而这,完美契合了大模型的核心本质——大模型只能理解文本输入和文本输出!

在传统的 Function Calling 中,为了完成“下载数据 -> 过滤错误 -> 排序前 10 条”这个任务,你的 Agent 可能需要连续调用 3 个不同的自定义函数,经历 3 轮耗时极长的 LLM 推理,中间稍微错一步就满盘皆输。

但在 CLI 模式下,AI 只需要通过一次组合调用就能秒杀:

run(command=”curl -sL $URL | grep ’500′ | sort | head 10″)

这种强大的“组合编排能力(Composition)”,不是什么 AI 领域的最新黑科技,而是 Unix 管道原生自带的降维打击。

把大模型当人看,设计“防智障”导航系统

当然,光把命令行扔给大模型,它依然会因为瞎猜而犯错。MorroHsu 总结了三个极其硬核的实战设计技巧,教你如何打造一个“防智障”的 Agent 导航系统:

绝招 1:渐进式发现(Progressive Discovery)

不要一开始就把所有命令的长篇大论全塞给大模型,那会瞬间撑爆它的上下文窗口。

只要告诉大模型:“你可以运行 run(“command”)。遇到不懂的,运行 command –help”

大模型其实非常懂得自我探索。当它发现报错时,它会自动去查阅说明书。这种“按需发现”的能力,极大地节省了宝贵的 Token。

绝招 2:把报错变成“向导”

这是最具启发性的一点!当大模型敲错命令时,千万别只返回一个冷冰冰的 exit code 127 或者 command not found。大模型无法像人类那样去 Google 搜索错误原因,它只会陷入瞎猜的死循环。

你必须在 stderr(标准错误输出)里加上向导信息。

传统报错:cat: photo.png: binary file

给 AI 的防智障报错:[Error] cat: photo.png is a binary image. Use ‘see photo.png’ instead.

不要试图阻止大模型犯错,而是要让它的每一次犯错,都成为指向正确道路的路标。

绝招 3:双层架构(物理隔离幻觉)

大模型的上下文是极其脆弱的。MorroHsu 分享了一个惨痛的真实案例:

一个用户上传了一张系统架构图,Agent 试图用 cat 命令读取它。结果 182KB 的乱码二进制字节流瞬间冲入了大模型的上下文。大模型当场“失了智”,开始不停地胡言乱语、重试、陷入死循环……足足浪费了 20 次推理的钱。

为了解决这个问题,必须在底层 Unix 执行和大模型展示层之间,建立一道“二进制守卫(Binary Guard)”“截断溢出守卫(Overflow Mode)”

当探测到命令输出超过 200 行,或者包含二进制乱码时,系统绝不把原数据返回给大模型,而是强制拦截并返回提示:

“— 输出已截断。请使用 grep 或 tail 命令进行搜索。—”

这就像给大模型戴上了一副防护眼镜,彻底杜绝了上下文被垃圾数据污染、导致智力下降的可能。

小结:化繁为简,才是架构的最高境界

目前,全网依然在乐此不疲地比拼谁的 Agent 框架更庞大、谁支持的 Tool Call 种类更多。但 原 Manus 大佬的这套“返璞归真”的血泪总结,给我们狠狠敲响了警钟。

最前沿的 AI,其实最需要最古老的系统智慧。

将 Unix 哲学的精髓(文本流、组合管道、小而美)与大模型的文本处理能力完美结合,放弃给 AI 制造复杂的隔离层和几十个脆弱的 API 接口,这才是真正属于“顶级工程师”的架构审美。

正如他在文末所言:“CLI 并非银弹,对于强类型校验和高安全性要求极高的场景,Typed API 依然不可或缺。但在广袤的智能体自主探索宇宙中,命令行,就是大模型所需要的全部。

资料链接:https://www.reddit.com/r/LocalLLaMA/comments/1rrisqn/i_was_backend_lead_at_manus_after_building_agents


今日互动探讨:

你在写 Agent 时,是喜欢用框架提供的一大堆 Tool Calls,还是像这位大神一样,直接让大模型写代码/写命令去执行?在实战中你的 AI 发生过哪些最搞笑的“智障/幻觉”行为?

欢迎在评论区分享你的血泪避坑史!


还在为“复制粘贴喂AI”而烦恼?我的新专栏 AI原生开发工作流实战 将带你:

  • 告别低效,重塑开发范式
  • 驾驭AI Agent(Claude Code),实现工作流自动化
  • 从“AI使用者”进化为规范驱动开发的“工作流指挥家”

扫描下方二维码,开启你的AI原生开发之旅。


原「Gopher部落」已重装升级为「Go & AI 精进营」知识星球,快来加入星球,开启你的技术跃迁之旅吧!

我们致力于打造一个高品质的 Go 语言深度学习AI 应用探索 平台。在这里,你将获得:

  • 体系化 Go 核心进阶内容: 深入「Go原理课」、「Go进阶课」、「Go避坑课」等独家深度专栏,夯实你的 Go 内功。
  • 前沿 Go+AI 实战赋能: 紧跟时代步伐,学习「Go+AI应用实战」、「Agent开发实战课」、「Agentic软件工程课」、「Claude Code开发工作流实战课」、「OpenClaw实战分享」等,掌握 AI 时代新技能。
  • 星主 Tony Bai 亲自答疑: 遇到难题?星主第一时间为你深度解析,扫清学习障碍。
  • 高活跃 Gopher 交流圈: 与众多优秀 Gopher 分享心得、讨论技术,碰撞思想火花。
  • 独家资源与内容首发: 技术文章、课程更新、精选资源,第一时间触达。

衷心希望「Go & AI 精进营」能成为你学习、进步、交流的港湾。让我们在此相聚,享受技术精进的快乐!欢迎你的加入!

img{512x368}


商务合作方式:撰稿、出书、培训、在线课程、合伙创业、咨询、广告合作。如有需求,请扫描下方公众号二维码,与我私信联系。

如发现本站页面被黑,比如:挂载广告、挖矿等恶意代码,请朋友们及时联系我。十分感谢! Go语言第一课 Go语言进阶课 AI原生开发工作流实战 从 0 开始构建 Agent Harness Go语言精进之路1 Go语言精进之路2 Go语言第一课 Go语言编程指南
商务合作请联系bigwhite.cn AT aliyun.com
这里是 Tony Bai的个人Blog,欢迎访问、订阅和留言! 订阅Feed请点击上面图片

如果您觉得这里的文章对您有帮助,请扫描上方二维码进行捐赠 ,加油后的Tony Bai将会为您呈现更多精彩的文章,谢谢!

如果您希望通过微信捐赠,请用微信客户端扫描下方赞赏码:

如果您希望通过比特币或以太币捐赠,可以扫描下方二维码:

比特币:

以太币:

如果您喜欢通过微信浏览本站内容,可以扫描下方二维码,订阅本站官方微信订阅号“iamtonybai”;点击二维码,可直达本人官方微博主页^_^:
本站Powered by Digital Ocean VPS。
选择Digital Ocean VPS主机,即可获得10美元现金充值,可 免费使用两个月哟! 著名主机提供商Linode 10$优惠码:linode10,在 这里注册即可免费获 得。阿里云推荐码: 1WFZ0V立享9折!


View Tony Bai's profile on LinkedIn
DigitalOcean Referral Badge

文章

评论

  • 正在加载...

分类

标签

归档



View My Stats