Featured image of post CS146S is a Good Course

CS146S is a Good Course

语速

CS146S is a good course, one of the reasons is that it teaches modern software engineers how to better collaborate with AI. Secondly, it basically covers all my modern coding capabilities. (It’s a joke!)

In the following content, I will embed the slides from the course as hyperlinks in my text. If you’re interested, you can click the hyperlinks directly to open the corresponding slides.

Basic Techniques

I think everyone, like me, has already mastered the basic capabilities. More clear and explicit prompts let LLMs execute instructions unambiguously. Additionally, there are prompt optimization techniques, and using Claude to optimize prompts.

The course also talked about how to build coding agents, emphasizing that you can use the Claude Code SDK. It’s now called Claude Agent SDK.

To enhance LLM capabilities, you can also use MCP services. I built git-mcp, and there’s also an unopen-sourced experimental startup MCP.

MCP a bit deeper (content from the PPT)

With MCP, it’s worth noting the Host/Server/Client concept. Many Hosts are not open-source. Deepchat’s Host can be referenced.

Limitations:

1
2
3
Agents don't handle many tools very well today
APIs eat up your **context** window quickly
Design APIs to be AI-native rather that rigid

IDE Agent

From the IDE perspective, I’ve switched from frequently using Cursor to using Claude Code + VSCode for programming. I feel Claude Code as a CLI is more powerful. However, I haven’t used Cursor for a while, so I don’t know if there have been some improvements. Trae’s solo mode is just like that, basically insufficient intelligence is the biggest problem. Trae CN.

Additionally worth mentioning is that Silas Alberti, Head of Research Cognition’s slides are very powerful.

This summary diagram is awesome. Is it really free to watch?

local-cloud/sync-async limitations

This article also mentions the concept of parallel agents.

So for me, the next direction to improve is cloud + async.

This is Silas Alberti’s advice:

devin and Claude Code Cloud are exactly the same. Actually, you can completely use Claude Code Cloud version for vibe coding.

Agent Manager

Engineers need to become agent managers, not just software engineers.

Under the Claude Code designer mindset, the software design process should be:

  • Provide high level requirements 🟩
  • Convert requirements into a design doc 🟩/🟦
  • Implement solution from doc 🟦
  • Add tests 🟦
  • Ensure CI (continuous integration) passes 🟦
  • Code review 🟦
  • Update docs 🟦

My habit is more to write simple requirements, then generate design, then let Claude Code implement the rest itself.

I recently found it’s not that capable. I adopted a test-driven development approach to ensure every step is done correctly. Otherwise, CI and Add tests actually have no meaning.

Techniques for directing agents:

  • Agent behavior files (Claude.md/Cursorrules/agents.md)
  • Hooks
  • Commands
  • Subagents

I’ve already used subagents and commands a lot. But I haven’t found a killing scenario for hooks yet.

Best practice Claude Code

What I want to say is to use subagents as much as possible to avoid the “lost in the middle” phenomenon.

Claude Code CLI

Why did I buy Claude Code?

We can do more things through the SDK:

1
2
3
4
claude -p \
  "what did i do this week?" \
  --allowedTools Bash(git log:*)
  --output-format stream-json

Conclusion

This course is free, but the insights inside surpass most paid courses. If you can understand and quickly absorb it, don’t be stingy with your time, learn it.