乐于分享
好东西不私藏

36岁零基础学编程,他做出一个130万下载的开源工具

36岁零基础学编程,他做出一个130万下载的开源工具

最近看了向阳乔木的一篇访谈文章的整理,访谈的嘉宾叫 Jason,聊的是他做的一个开源项目 CC Switch。这个工具在 GitHub 上拿到了 2 万多个 Star,累计下载量超过 130 万次。

Jason 这个人的经历非常接地气,就是一个编程小白,却做出了爆款软件。他 36 岁,之前做进出口贸易,去年才开始自学编程,三个月学完基础,六个月做出了这个项目。没有计算机专业背景,没有大厂履历,就是一个在焦虑中选择行动的普通人。

通过向阳乔木整理的文章,我能感受到访谈信息量非常大,从产品设计到 AI 编程方法论,从开源运营到人生选择,几乎每个话题都有值得细品的东西。我尽量把里面的核心观点都整理出来,希望对你有用。

一个真实的需求,往往藏在很小的不便里

CC Switch 做的事情说起来很简单。用过 Claude Code 的人都知道,国内用户大多依赖各种中转站或者国产模型来使用这个工具。但在不同供应商之间切换的时候,需要手动去改环境变量或者配置文件,操作很繁琐,还容易出错。

当时市面上已经有一些脚本工具可以解决这个问题,但都是命令行操作,对普通用户来说门槛太高了。Jason 正好在给另一个开源项目贡献代码,学了 Electron 框架,就想着能不能做一个可视化的界面,让切换这件事变得简单直观。

第一版不到一周就做完了,功能非常基础,就是通过修改配置文件后缀名来实现切换,而且只支持 Claude Code。但就是这么一个简单的东西,解决了一个真实存在的痛点。

你看,很多人总觉得要做出什么惊天动地的产品才值得动手。但现实中,那些真正被大量使用的工具,往往就是解决了一个很小的、但很多人每天都会遇到的不便。把一个命令行操作变成可视化界面,技术上没有任何创新,但它让原本只有技术高手才能完成的操作,变成了普通人也能轻松搞定的事情。这就够了。

产品设计的核心是克制,不是堆功能

Jason 在访谈里反复强调一个词:易用性。他说无论添加什么功能,都不能破坏“填写一个 API Key 就能导入,一次点击就能切换”的基本体验。

这种克制说起来容易,做起来非常难。随着用户越来越多,GitHub 的 Issue 区很快积累了上百条功能请求。每个请求单独看都很合理,但如果全部加上去,产品就会变得臃肿复杂。

他分享了一个很苦涩的教训。有段时间他在主界面上加了本地代理和故障转移的快捷开关,本来是给中转站用户设计的,因为公益站的服务很不稳定,需要频繁切换。但很多不需要这些功能的用户看到按钮就顺手打开了,结果产生了一系列问题。最后他不得不把这些开关移到设置里,默认隐藏。

他说这次经历违背了易用性的核心原则,增加了额外的复杂度。

这个教训其实适用于任何产品,甚至适用于我们做任何事情。总想着多加一点、再多加一点,觉得功能越多越好,选项越多越体贴。但实际上,每多一个选项,就多一分用户犯错的可能。真正好的设计,是让用户根本不需要思考。

技术选型要匹配产品定位

CC Switch 经历过一次重大的技术重构,从 Electron 迁移到了 Tauri。

Electron 的问题在于它把整个 Chrome 浏览器运行时打包在里面,即使你只写了一个页面,软件基础大小也得 80MB 左右,内存占用也大。对于一个仅仅做供应商管理和切换的小工具来说,太重了。

但迁移到 Tauri 意味着要从 TypeScript 转向 Rust,编程语言变了,很多现成的库都用不了了,很多功能得从头写。重构过程中最痛苦的是本地代理功能,开发到一半,Claude Code 官方自己支持了热切换,等于白做了一大半。但代理功能已经做到一半,只能硬着头皮继续。

重构完成后,软件体积从 80MB 降到了 6 到 7MB,内存占用几乎可以忽略,点击后零点几秒就能打开。

Jason 总结说,选 Electron 还是 Tauri,取决于你的项目定位。如果是大而全的项目,Electron 是明智选择。如果是小工具,Tauri 足够轻量。

这个判断背后有一个更普遍的道理:做任何事情之前,先想清楚你要做的到底是什么量级的东西。杀鸡用牛刀和大炮打蚊子,本质上都是资源错配。选择和你目标匹配的方案,往往比选择最强的方案更重要。

配置管理的反复:有些弯路避不开

文章中最让我印象深刻的一段,是 Jason 讲他在配置管理策略上的反复。

最初他用的是全量替换策略,切换供应商的时候直接覆盖整个配置文件。这样做是因为 Claude Code 的配置字段几乎每个小版本都在变,而且不同供应商有独特的字段,全量替换最省事。

但问题来了,全量替换会把用户之前的一些自定义配置也覆盖掉。他设计了一个“通用配置”功能来解决这个问题,但很多用户没注意到这个选项,新建供应商后发现配置全丢了,就开始骂人。这个问题被问了很多次,甚至让他心态崩溃。

于是他在春节期间把整个逻辑重构为关键字段替换,只替换 API Key 和请求地址,其他配置保持不变。结果刚发布一天就翻车了,因为有些用户需要用到自定义字段,关键字段替换没法传递这些字段。

反复分析之后,他发现还是全量替换加通用配置更稳妥,又把逻辑回滚了。好在他重构的时候没有改变数据结构,两个版本之间完全兼容,不会丢数据。

这段经历特别真实。做产品的过程中,你会不断在两个看起来都有道理的方案之间摇摆。用户骂你的时候你觉得应该改,改完又发现新方案有新的问题。这种反复很消耗人,但也是成长的必经之路。关键是每次折腾之后要沉淀下来一些判断力,下次遇到类似的选择时,能更快地做出决定。

AI 编程的一套完整方法论

Jason 在访谈里分享了一套非常系统的 AI 编程方法论,我觉得不管你是不是程序员,里面的思路都很有参考价值。

第一,用对的模型。如果你不是资深程序员,直接用最好的模型。因为你可能没有足够强的判断代码质量的能力,用最好的模型能降低出错概率。在重要任务上,别省这个钱。

第二,先规划再动手。在开始一项功能之前,先分析、计划一下怎么做。如果是复杂任务,要独立维护一个文档,写清楚整个大任务需要几个步骤,每个步骤是什么,目的是什么。每次开始一项小任务之前,先从这个文档里读取这一次的任务,完成之后再把结果写回去。

第三,上下文管理是核心。从最早的 Copilot 到后来的 Cursor 再到现在的 Claude Code,本质上都是上下文管理的进步。如果你知道问题大概在哪,直接告诉 AI 在哪个方面去找。如果知道任务集中在哪个文件,直接告诉它。这样可以非常节约上下文。该压缩的时候就压缩,该新开对话的时候就新开,尽量不要让它触发自动压缩。

第四,控制代码量。Jason 说了一句很有意思的话:代码是债务,不是资产。千万不要追求今天写了多少行。AI 不会拒绝你,你让它实现什么它都会去做,但有可能把一个简单的功能用非常复杂的路径实现了。他收到过一个 8000 行的 PR,只是为了测试服务器是否可用,而当时整个项目才 6000 行。

第五,及时清理技术债。一个文件尽量保持在 1000 行以内,最好是五六百行。因为 Claude Code 的默认读取工具只读前 2000 行代码,文件太长会降低 AI 读取到目标代码的概率,上下文很快就被塞满了,钱花了效果还不好。

第六,做好架构设计。不能让 AI 直接开始写功能,要先想清楚实现什么功能,应该有哪些页面,前后端怎么交互。工程量上去之后再去重构,即使有 AI 帮忙也很费功夫。

第七,一定要学 Git。新手可以不学其他技术,但 Git 必须学。否则搞坏了真的找不回来。

这套方法论的核心思想其实就一句话:AI 是工具,不是替代品。你得知道自己要什么,才能让 AI 帮你高效地实现。如果你自己都没想清楚,AI 只会帮你更快地走向混乱。

这个道理放到任何领域都成立。不管是用 AI 写文章、做设计还是做数据分析,先想清楚目标和路径,再让 AI 去执行,效果会好得多。

不要提交你看不懂的代码

Jason 提到一个他认为在 AI 时代对新手特别重要的底线:不要提交你看不懂的代码。

AI 生成完代码后,不说把每个细节都看懂,最起码得看懂这些代码是在干什么。

很多人担心 AI 时代工程师会出现断层,传统的从新手到资深的中间学习过程好像被 AI 替代了。Jason 觉得新手更应该观察 AI 的工作过程。他看到很多高手同时开好几个窗口、多个任务并行推进,但他建议新手还是集中在一个任务上,仔细观察 AI 的思考过程,能学到很多东西。而且 AI 中间思路出问题的时候,你也可以及时打断纠正。

这个建议特别实在。AI 降低了上手门槛,但没有降低理解门槛。你可以借助 AI 更快地做出东西,但如果你完全不理解自己做出来的东西,那你就永远只能停留在表面。长远来看,理解力才是真正的竞争力。

关于 Vibe Coding,他有一个独特的看法

Jason 说他不太喜欢 Vibe Coding 这个词。他的理由很有意思:语言是有力量的,它不只影响听到你说话的人,反而会影响你自己。如果你说“这个项目是我 Vibe Coding 的”,容易让自己放松对产品代码质量的要求。

他强调这种自我约束只用来要求自己,不会要求别人。但这个提醒确实很有价值。

访谈中有人补充了维特根斯坦的一句话:语言即世界的边界。我们使用的语言已经给自己带上了一些暗示。你怎么描述自己正在做的事情,会反过来影响你对这件事的态度和投入程度。

这个观点放到更大的范围来看也很有启发。我们日常中很多看似随意的用词,其实在潜移默化地塑造我们的心态。说“随便搞搞”和说“认真做一个项目”,带来的行动力和结果可能完全不同。

开源的魅力:让别人在你的基础上创造

CC Switch 采用 MIT 开源协议,任何人都可以 fork 之后自己修改。现在已经有了终端版、外挂版,甚至有人做了智能预测功能,能自动判断任务需要用哪个模型。

Jason 说网友做的终端版做得非常帅,他都不知道终端界面竟然能做得那么好看。他觉得这才是开源的魅力,在 AI 时代,每个人都可以把想法落地,给用户提供更多选择。他也从这些 fork 版本中学到了很多设计思路。

他还鼓励大家,在 AI 时代,每个人都可以尝试 fork 一个项目之后做一个满足自己需求的版本。以前这件事需要很强的编程能力,现在有 AI 辅助,门槛低了很多。

做产品的人要学会蹭热度

Jason 在推广方面也分享了一些经验。CC Switch 的增长和 Claude Code 在国内的热度直接相关,从去年年底开始,AI 编程突然普及开了,再加上 Claude Code 和 OpenClaw 的热度变得很高,CC Switch 也跟着水涨船高。

他在前期也主动做过一些推广。比如国产厂商发新模型的时候,他就去蹭热度,说用我的工具只需要填写一个 Key 就可以把新模型导入到 Claude Code 里使用。

他说了一句很实在的话:如果你是自己做产品,尤其是现在 AI 时代产品井喷式发展,做营销或者蹭热度还是很有必要的。如果你是技术出身,没有必要觉得做营销有点不好意思,一定要勇敢去蹭。你的软件有什么优势,能解决什么问题,要把它说出来,让大家都知道。

很多技术人确实有这个心理障碍,觉得好产品应该自己说话,主动推广显得不够体面。但现实就是,再好的东西如果没人知道,就等于不存在。在信息过载的时代,主动让别人看到你,本身就是产品能力的一部分。

商业化的克制:安全是第一位的

CC Switch 目前完全免费,主要收入来自赞助,包括智谱、MiniMax、硅基流动等厂商。Jason 说智谱来找他赞助的时候,他觉得这相当于给软件一个非常强的背书,所以才开始接受赞助。

后来因为国内用户对中转站是刚需,而这个行业鱼龙混杂,他就把自己用的、觉得比较靠谱的放在首页上推荐。用户总要去找一个中转站,不如推荐一下自己用过觉得靠谱的。

但软件本身不收集任何用户数据。他说对于一个操作 API Key 的工具来说,安全是第一位的。所有编译都是通过 GitHub Actions 完成,没有任何数据统计、上传数据或用户行为分析。

他也明确表示不会把 CC Switch 商业化。他说这个工具本身并没有太多 AI 原生的功能,只是一个管理工具。他更想做的是那些更酷的 AI Agent,比如 Coding Agent 或者其他行业的 Agent。

这种克制背后是一个很清醒的判断:不是所有东西都适合商业化,有些项目的价值在于它帮你建立了信任、积累了影响力、连接了人脉。这些隐性的回报,有时候比直接收费更有价值。

那道双重彩虹

最后,Jason 讲了一段非常私人的经历。

他说这个项目最大的收获是重建了自信。一年前他是个大龄零基础转行的人,精神压力巨大,经常凌晨四五点醒来,感觉心口发凉。

过了 30 岁之后,他陷入了一种不知道自己该做什么的状态,做的事情好像都没有意义,人生好像在往一个越来越窄的方向走。

后来他来到 X(Twitter),想拓展一下视野。首页推荐关注的人里有 yihong0618,签名写着“如果你喜欢王小波,也许我们可以做朋友”。Jason 读过王小波的作品,后来去查了一下发现王小波在 44 岁那年去世了。

他想,如果自己也是 40 岁去世,还有 4 年时间。这 4 年应该做什么?能让他觉得 alive 的事情,就是 AI。所以他下定决心转行。

2025 年 8 月 19 日,他特别焦虑,不知道转行能不能成功,心里完全没有底。那天他孩子突然叫他过去看窗外,是一道双重彩虹。四天后,8 月 23 日,CC Switch 第一版发布。

他说他准备找个机会把自己的故事写出来,题目都选好了,叫 Fear, Hope and Double Rainbow。恐惧、希望与双重彩虹。

这段经历让我想到,很多时候我们不敢迈出第一步,不是因为能力不够,而是因为害怕失败的代价太大。但 Jason 的故事说明了一件事:行动本身就是解药。你不需要等到准备好了再开始,你可以在焦虑中开始,在不确定中前进。那些凌晨四五点的失眠、心口发凉的感觉,不会因为你等待就消失,但会因为你开始做事而慢慢被成就感替代。

写在最后

整篇文章看下来,我感觉 Jason 身上有一种很难得的品质:他很坦诚。他说自己技术比较菜,说自己心态很脆弱,说自己曾经想过 Learning in Public 但因为害怕被打击而放弃了。他不包装自己,不美化过程,就是很真实地讲述了一个普通人在 AI 时代找到方向的故事。

在 AI 时代,技术门槛确实在降低。但正如访谈中提到的,共情能力、产品思维、对用户需求的理解,这些东西变得更加重要了。一个想法到产品的成本变低了,但能站在用户的角度去分析需求、设计功能,这种能力在未来只会越来越值钱。

Jason 说他技术比较菜,所以能用更平民的视角去看待软件,去做功能。这句话听起来像是自谦,但仔细想想,这恰恰是他的优势。因为他自己就是普通用户,所以他天然知道普通用户需要什么、害怕什么、会在哪里卡住。

你不需要是天才,不需要科班出身,不需要大厂背景。你需要的是找到一个真实的痛点,保持对产品的克制,在压力中依然选择行动。

那道双重彩虹,每个人都可能遇到。关键是你看到它的时候,有没有勇气把它当作一个信号,然后真的迈出那一步。

原文地址:https://x.com/vista8/status/2027765124828905529

最后,给大家说件事,我的星球社群持续更新中,很多同学问,你在社群都更新什么内容呢?举个例子,比如,前天,更新了第十五期视频教程:《如何创建一个 AI 漫剧的 Skill ,以及高效的实现 AI 漫剧视频创作?》

我制作了一个 1 分钟的迪士尼风格的动画短片,就是使用我制作的 AI 漫剧 Skill 制作的,使用这个 skill 就会自动帮你把故事或者小说内容制作成编剧分镜脚本,然后根据编剧分镜脚本制作成 AI 生图脚本提示词和图生视频的脚本提示词。拿到这两个提示词之后,你就可以将提示词发到对应的生图模型和视频模型之中就行了。

已关注
关注
重播 分享

全程不需要你写文案,不需要你制作脚本和提示词,最后你只负责把生成的视频放到剪辑软件拼接起来就行。

其实,不止,我星球里有各种教程,从今年开始,录制视频教程就接近 20 期了。最近非常火的 Agent Skill 视频教程也录制了 15 期了。加入我的星球社群「AIGC·掘金成长研习社」即可获取视频链接学习。


最后,介绍一下,我的星球:「AIGC·掘金成长研习社」(可点击链接查看星球全面介绍),主要分享三个板块的内容:

1、副业赚钱领域的内容。我做自媒体十几年了,有很多副业赚钱方面的经验和干货,而且每周都会定期详细带大家拆解一个副业赚钱案例,持续更新的那种,目前,已经分享了上百篇跟副业赚钱相关的帖子和文章了。
2、AI 落地和实操相关的内容。我在里面也分享了很多 AI的各种玩法和落地场景,包括用 AI 做副业的案例也都有。
3、个人成长。我会分享很多我做超级个体和自由职业的一些思考和成长类的内容,目前我已经做自由职业 5 年了,有太多的感慨和内容分享。
如果你想学习如何搞副业,如何使用 AI ,甚至如何使用 AI 搞副业,那一定要加入我这个超值的星球。目前,已经更新了 1800 多条干货和文章了,加入成员 1300+。感兴趣的可以加入。
限时优惠中,原价 199 元,今天加入可以立减 30 元,只需要 169 元,优惠券仅剩 20 多个优惠名额。我认为我的星球是目前副业和 AI 领域最超值和具有性价比的星球,价格不贵,同时内容也不比几千块钱的星球差。
大家可以扫码,查看,支持 3 天无理由退款,内容好不好,先进来看看再说,不适合自己退了也没毛病。