Who This Course is For
This course is for developers who want to get genuinely good at Claude Code — not just use it, but understand how it works and how to extend it. It's designed for our team at Cognito, but the principles apply to anyone building with Claude Code.
You don't need to be an expert developer. You do need to be comfortable in a terminal and willing to experiment.
Beyond Chat — But Not Without It
Claude Code is a CLI tool that acts as an AI-powered software engineering partner. It can read your files, run commands, search your codebase, edit code, and work through problems autonomously. That makes it — it doesn't just respond, it acts.
But here's a distinction that trips people up: Claude Code is both a collaborator and an executor. The best results come from using it as both.
First, you discuss. Brainstorm approaches. Ask Claude to challenge your assumptions. Have it reason about trade-offs — it has your full codebase as context, which makes it a better planning partner than most alternatives. Then, once you've aligned on a direction, you let it execute — writing code, running tests, iterating on failures.
This is fundamentally different from IDE extensions like Copilot or Cursor, which are primarily reactive (they respond to your cursor position and edits). Claude Code is proactive — it drives work forward. And it's different from Claude in the browser, which can discuss brilliantly but can't see your code or run your tests.
Think of it as pair programming. You wouldn't hand a pair partner a task and walk away — you'd discuss the approach first, then one of you drives while the other navigates. Claude Code works the same way: discuss first, execute second.
The Agentic Loop
Language models can only process text. They can't directly read files or run commands. Claude Code bridges this gap through : a loop where the model decides what action to take, the system executes it, and the result feeds back into the model for its next decision.
graph LR
A[You describe a task] --> B[Claude plans an approach]
B --> C[Claude requests a tool action]
C --> D[System executes and returns result]
D --> E{Task complete?}
E -->|No| B
E -->|Yes| F[Claude presents the result]This loop is what makes Claude Code agentic. It can chain together dozens of tool calls — reading files to understand context, running tests to check its work, iterating on fixes — all without you intervening at each step.
What makes Claude Code fundamentally different from a chat-based AI assistant like ChatGPT?
Default Tools
Claude Code ships with built-in tools:
| Tool | What It Does |
|---|---|
| Read | Read file contents |
| Edit | Make targeted edits to files |
| Write | Create new files |
| Bash | Run shell commands |
| Glob | Find files by pattern |
| Grep | Search file contents |
| WebFetch | Fetch and read web pages |
| WebSearch | Search the web |
| Task | Spawn subagents for parallel work |
These tools can be extended with (covered in a later module) to add capabilities like browser automation, database queries, and third-party API access.
How Claude Code Fits Alongside Other Tools
Most developers won't use Claude Code in isolation. It's worth understanding where it fits:
| Tool Type | Examples | Best For |
|---|---|---|
| Inline completion | GitHub Copilot, Codeium | Quick single-line edits, boilerplate, staying in flow |
| IDE AI chat | Cursor, Continue | Understanding code, small edits, working within one file |
| Agentic CLI | Claude Code, Codex, Aider | Multi-file features, refactoring, autonomous execution |
Many developers use an IDE extension for moment-to-moment coding and Claude Code for larger tasks that benefit from autonomous, multi-step execution. They're complementary.
Claude Code vs the Agent SDK
| Claude Code | Agent SDK | |
|---|---|---|
| What it is | A finished CLI product you interact with | A toolkit for building your own agents |
| How you use it | Run claude in a terminal, have a conversation | Import the SDK, define agents in code, run programmatically |
| Extensibility | Commands, agents, MCPs, hooks, skills | Full programmatic control in TypeScript/Python |
| Target user | Developers who want an AI partner | Developers building AI-powered applications |
The same underlying model powers both. Claude Code gives you a polished product with a plugin ecosystem; the Agent SDK gives you raw building blocks to build your own products.
What is the key difference between Claude Code and the Claude Agent SDK?
The Extension Architecture
Claude Code's capabilities can be customised and extended through five building blocks:
- MCPs — External processes that give Claude new tools
- Commands — Slash commands you invoke explicitly
- Skills — Auto-triggered commands based on context
- Agents — Subagent definitions with specific roles
- Hooks — Event-driven scripts on lifecycle events
Everything in the extension ecosystem — every plugin, every custom workflow — is a combination of these five pieces. This course covers each one in depth.
Mental model: Think of the five building blocks as LEGO pieces. Once you understand each piece, you can build anything — from simple one-step automations to complex multi-agent workflows.
- Skipping the discussion phase. Don't jump straight to "do this." Discuss the approach with Claude first — it has your full codebase as context and can spot issues you might miss. Plan first, execute second.
- Skipping tool call review. When learning, use Normal mode (not auto-accept) and read what Claude wants to do before approving. This builds intuition for good agentic behaviour and catches mistakes early. Switch to auto-accept once you trust the pattern.
What's Next
The next module covers setup and installation — getting Claude Code running and authenticated. After that, we cover the practical skills that make it effective day-to-day: writing good prompts, using plan mode, managing context, and working efficiently.
