1. 同一门课程,两个学习场所
在浏览器里入门很方便:打开页面,读完讲义,完成第一个任务。浏览器里也有智能体:Claude Code 直接集成在浏览器面板中,所以从第一天起您就可以和它一起解题。限制有两点:一切都留在浏览器里,而且每个任务都会单独建一个项目。
IDEA 是专业工具,所有东西都集中在手边:代码、任务说明、终端和智能体都在同一个窗口里,项目就保存在您自己的磁盘上。一开始可能会觉得有点杀鸡用牛刀。做上几道任务之后,您会发现离开 IDE 反倒不习惯了。我的建议是马上切换过来:趁任务还简单,适应专业工具的成本最低。
如果没有使用安装程序:请手动安装插件
第 1 级的安装程序已经添加了 CodeGym 和 Claude Code 插件,并配置好了账户登录。如果您运行过安装程序,可以跳过这一部分。记不清有没有运行过?打开插件列表看看:如果 CodeGym 和 Claude Code 都已经在里面,那就没问题,直接往下看。
- 安装 CodeGym 插件。在 Windows 和 Linux 上打开
File → Settings → Plugins,在 macOS 上打开IntelliJ IDEA → Preferences → Plugins。在Marketplace选项卡的搜索框中输入CodeGym,然后点击Install。先不要重启 IDEA,把第二个插件也装上。![在 IntelliJ IDEA 的 Marketplace 选项卡中搜索 CodeGym 插件]()
- 安装官方的 Claude Code 插件。不用关闭
Marketplace,在搜索框中输入Claude Code,选择Claude Code [Beta],然后点击Install。两个插件都装好后,重启 IDEA。 - 安装完成后,点击插件顶部栏上的
Sign in。在 CodeGym 网站上打开设置 → 安全与登录页面,复制密钥,粘贴到 IDEA 的登录窗口中。![在 IntelliJ IDEA 中通过插件登录 CodeGym 账户]()
登录后,CodeGym 插件会下载课程项目,之后就可以直接在 IDEA 里打开任务了。
2. 任务列表在哪里
在 IDEA 左侧的竖向工具栏上点击 Tasks,就会打开可用任务的列表。
找到需要的任务卡片并点击它。在弹出的窗口中选择 Open。

网站上的所有任务在插件里都能找到。如果您已经在网站上解出某个任务并且通过了检查,您的代码会被加载到 IDEA 的项目中。
任务窗口乍一看信息很多。刚开始时,您只需要关注两样东西:
Condition- 任务说明:需要做什么,要满足哪些要求;- 左侧的项目树 - 您要处理的任务文件。它们可能是不同类型的文件,名字也各不相同,例如
index.html、Main.java或者别的名字。要找的是任务说明里要求的那个文件,而不是看着眼熟的名字。

思路很简单:先读 Condition,再在项目树中找到对应的文件,然后着手解题。
3. 智能体能看到文件,但看不到任务说明
打开任务时,插件会把任务文件下载到磁盘上。Claude Code 是跟文件打交道的,所以文件夹树、代码和任务的其他文件它都能看到,前提是它在正确的文件夹里启动(下一节会讲到这一点)。
但任务说明和要求在 Condition 面板里,智能体不会自动看到这个面板。弄懂任务的意思、找出其中的要求,这是您学习的一部分,需要您自己完成。
这种诱惑很好理解:把任务说明复制到聊天里,让智能体自己去弄明白要做什么。不要把任务说明整段复制过去。那样您就跳过了最重要的一步:阅读任务说明,抓住重点,理解要求。
先把任务说明完整读一遍,把它弄明白。之后可以只把关键的片段复制到和智能体的对话里。更好的做法是用自己的话描述目标和要求。这样您才能真正理解任务,Claude Code 也仍然是助手,而不是学习的替代品。
4. 每个任务都是一个独立项目
先说最重要的一点,这样您可以放心往下读:您不必独自盯着文件夹。智能体发现自己处理的任务不对时,会告诉您,并提议切换到正确的文件夹。如果您同意,它会自己切换过去。
下面讲的是手动方式:如何用 IDEA 自带的功能做到同样的事。了解它是为了明白背后发生了什么,而不是完全依赖智能体的提示。
现在说说课程结构中最关键的一点。这里的每个任务都是一个独立项目。不是某个公共项目里的一个文件,而是一个自成一体的项目:有自己的文件夹、自己的文件,以及放在 .claude 中的、专属于它的智能体规则。课程里有多少个任务,就有多少个项目。
插件把它们全部放进同一棵树 codegym-project 中,这样您就不必为每个任务单独打开一个窗口。大致是这样的:
codegym-project/
└── src/zh/codegym/claude/course/level01/ # 课程级别
├── task05/ # 一个任务 = 一个独立项目
│ ├── .claude/ # 这个任务的智能体规则
│ └── arkanoid.html # 任务文件
└── task09/ # 另一个任务 = 另一个项目
├── .claude/ # 它有自己的规则
├── arkanoid.html # 任务文件,可能有好几个
├── clicker.html
└── tictactoe.html为什么这一点很重要。通常一棵项目树就是一个项目:里面的文件彼此关联,让智能体看到全部文件是有好处的。您在根目录启动它,它读取项目规则,看到相邻的文件,这一切都对您有利。
在这里,这个习惯会坑到您。树只有一棵,里面的项目却和任务一样多,而且它们彼此毫无关联:task09 对 task05 一无所知,每个任务都有自己的 .claude 规则。对智能体来说,项目根目录不是"您的项目",而是一个堆放着互不相干项目的仓库。相邻任务里没有有用的上下文,而当前任务的规则它在根目录只能读取到一部分,而且不是一开始就有:只有当它打开该任务的文件时,任务的指令和 skills 才会加载,任务的设置则根本不会加载。
由此得出一个需要马上弄明白的结论:智能体能看到什么,取决于您在哪里启动它。如果在项目根目录输入 claude,整个课程都会进入它的视野:别的任务、别的代码、别的规则。智能体会在几百个无关文件中寻找需要的那个,情况糟糕时还会改到相邻任务的文件。
所以规则很简单:在您正在解的那个任务的文件夹中启动智能体。
如何在任务文件夹中启动智能体
- 在左侧的项目树中找到任务文件夹。
- 右键点击它,选择
Open In-Terminal。会打开一个终端选项卡,当前目录已经是这个文件夹。 - 输入
claude。


听起来像是多了一步。实际上只是右键点一下,而且每个任务只需要做一次。
这一下点击背后并没有什么魔法:IDEA 只是替您输入了一条进入所选文件夹的 cd 命令。在已经打开的终端里,也可以手动做同样的事:
cd src/zh/codegym/claude/course/level01/task09
claude有一个陷阱:在项目树中,IDEA 会把包显示成用点连接的一行,即 zh.codegym.claude.course.level01,而在磁盘上它其实是一层层嵌套的文件夹。照着屏幕上的样子输入路径没有意义,磁盘上的路径不是这样的。更简单的办法是直接复制:右键点击任务文件夹,选择 Copy Path/Reference。
这种合并显示还有后续,而且后果就不那么无害了。只要一个文件夹里只有另一个文件夹、没有别的内容,IDEA 就会把这一串文件夹合并成一行显示。在目前只有 .claude 的任务里,这个文件夹也会被并进同一行。它看起来像任务文件夹,但右键点击作用的是这一串中最深的那个文件夹。
在这样的一行上选择 Open In - Terminal,终端会在 src/zh/codegym/claude/course/level01/task02/.claude 中打开,而不是在 src/zh/codegym/claude/course/level01/task02 中。如果您在那里启动 claude,智能体会把存放它自身设置的文件夹当成项目:它会直接在 .claude 里创建解答文件,而不是在任务文件夹里。
最稳妥的办法是彻底关闭合并显示。点击项目树上方的三个点按钮,打开 Appearance,取消勾选 Compact Middle Packages。之后,树中的每个文件夹都会单独占一行,右键点击也会落在您想点的位置。

如果终端已经打开,而且其中的路径以 .claude 结尾,请先用 cd .. 回到上一级,然后再启动智能体。
切换到了下一个任务
工作文件夹是在启动时确定的,不会跟着您自动切换。不过您也不需要做什么复杂的操作:智能体会注意到任务变了,并提议切换到新任务的文件夹。
如果想自己来,就进入新任务的文件夹,在那里启动 claude:同样用右键点击,或者用 cd 命令。也可以为新任务单独打开一个终端选项卡,这样两个选项卡都在手边。
智能体会自己告诉您它在哪里
这件事不需要您手动盯着。在聊天框下方的状态栏里,Claude Code 的课程配置会显示它正在处理哪个任务:JR · claude.course · task02。
如果您在 IDE 里打开的是另一个任务,同一位置还会出现一条黄色警告,提示 IDE 中打开的是 task01。这说明您看的是一个文件,而智能体在另一个文件夹里工作。看到这种提示时,请停下来弄清楚到底是哪里对不上了:要么智能体启动时所在的文件夹不对,要么您打开的是另一个任务的文件。
学习会话日志
一定要在任务文件夹中启动智能体,还有一个理由,这一点需要直接说清楚。
Claude Code 的课程配置里开启了工作日志。在您解题的过程中,任务文件夹里会出现一个 .codegym 文件夹,记录整个工作过程:您向智能体提出的请求、智能体回复的开头部分、它改了哪些文件、运行了哪些命令。
在一个任务的文件夹里工作一段时间后,它看起来是这样的:
task09/
├── .claude/ # 这个任务的智能体规则
├── .codegym/
│ ├── cc-transcript.txt # 工作日志,纯文本
│ └── cc-transcript.json
├── arkanoid.html # 任务本身的文件
├── clicker.html
└── tictactoe.html
为什么需要它:平台根据这份日志检查任务的解答。它就像您的"解题过程记录本",从中不仅能看到结果,还能看到您是怎么一步步得出结果的。听起来让人有点不安,我理解。但没有这份日志,平台只能看到最后的成品。
日志保存在您的磁盘上,就在任务旁边:您可以打开文件读一读。而且日志会出现在智能体启动的位置。如果从项目根目录启动,日志就会生成在根目录里,任务文件夹里则没有。这又是一个不要省掉 cd 的理由。
5. 如何提交解答进行检查
解答完成后,点击任务窗口中的 Verify 按钮。插件会把当前版本的解答发送到 CodeGym 服务器。

检查完成后,结果会显示在同一个地方,也就是任务界面里。接下来有两种可能:
- 解答通过 - 要求都已满足,任务计为完成;
- 解答未通过 - 插件会显示检查信息,看完之后可以回到任务说明,修改解答。
没通过并不代表项目出了故障。这只是正常的反馈。读一读检查信息,重新打开 Condition,把它和您的解答对照一下,然后修正一个明确的问题。只改一个,不要一次全改:这样才能看出到底是哪处改动起了作用。
解答想提交几次都可以。检查本来就是为此而设的:尝试一次,拿到结果,修改,再提交。
6. 值得了解的插件设置
任务同步:网站与插件
插件显示的是当前课程的任务,也就是您在网站上选中的那门课程。您在网站上可以有好几门课程,但当前课程始终只有一门。
任务列表和任务状态会自动更新:大约每五分钟一次,以及每次成功提交解答之后。在网站上解出的任务,在插件里也会显示为已解决。
想立即更新,可以点击右上角的头像,选择 Sync tasks。更换当前课程之后,这一步必不可少:在您同步或重启 IDEA 之前,插件会一直显示之前那门课程的任务。

如何隐藏插件的导航栏
听起来有点奇怪,但顺序是这样的:得先让导航栏显示出来。只有关闭 Beginner Mode 后它才会出现。Beginner Mode 是插件的简化视图,其中一部分功能是隐藏的。而用来隐藏导航栏的那个复选框,就在导航栏本身的齿轮图标下面。
- 点击右上角的头像,选择
Settings - Beginner Mode,将其关闭。 - 插件顶部会出现导航栏。点击导航栏上的
Settings (⚙️),取消勾选 "Show plugin navigation bar"。
我自己一开始就会把它隐藏:屏幕空间比那几个按钮更宝贵。



GO TO FULL VERSION