“After thousands of hours in Claude Code, I’ve discovered shortcuts to use, pitfalls to avoid, and hidden patterns that make all the difference. This guide helps you skip straight to the good parts.” — Julian Cash
Quick Navigation
Getting Started
Fair warning: This assumes you know what Linux is and won’t panic at the sight of a terminal. Claude Code lives in the command line by default (though you can hook it up to an IDE if you’re feeling fancy).
Install Claude Code
npm install -g @anthropic-ai/claude-code
Using Claude Code
From the directory you want to be working in, type…
claude
That’s it. You now have direct access to an AI that can write a React app faster than you can explain what React is.
If You Get Stuck, Just Ask AI
If you’re stuck on literally anything in this guide, just ask Claude Code or any chatbot for help. Here’s the hilarious irony: there are thousands of hours of YouTube tutorials teaching you how to use AI, when you could skip the rabbit hole and get personalized answers in seconds. Stop watching some guy’s 47-minute video to find the one tip you need. Just remind it to search for current Claude Code info. The tool evolves quickly but training data is often 12+ months old.
The super retro UI
It’s just a text window. Use the arrow keys. If you try and go above the top or below the bottom, it takes you to the next item. It’s literally the world’s most advanced technology, with the most primitive interface possible. Go figure!
Hit “escape” often!
This is your way of telling Claude to stop, and then you type some new or different information and hit enter for it to restart. Do this when Claude goes rogue. Do this when you remember something you forgot to tell it.
“Control shift” adds a carriage return:
Want a blank line? Every other program since Windows 95 uses Enter or Shift+Enter. But Claude Code? Control+Enter, baby! Because why follow conventions when you can watch developers slowly lose their minds? I spend so much time in this cursed interface that my muscle memory is permanently broken. Thanks, Anthropic. I’ll send you my therapy bills.
Useful things (before you start)
Clear prompts help
Ask for what you actually want. Clarity helps. Occasionally use the Claude webpage to refine your prompt.
/ Commands - Your power tools
Type /help to see all available commands. These are the essentials you’ll use constantly. Start with /init when working on a new project to create your CLAUDE.md file, and use /clear between distinct tasks to keep Claude focused.
The Sacred CLAUDE.md File
These are the directions that Claude will try to follow. Either write one or let Claude build it for you. Hell, steal one from someone smarter than you.
Use it to each Claude what your project is about, the directory layout, architecture, naming schemes, coding style, and more.
But here’s the thing—this file is your new religion. You’ll be tweaking it constantly, especially when Claude pisses you off. Every annoyance is a learning opportunity. Add en entry telling Claude what to do or not to do, and never suffer the same stupidity twice. I recommend making your own, but here’s a potential placeholder to start with… download CLAUDE.md
It lives in the home directory of your project, but you can also have separate CLAUDE.md files in subdirectories.
Context Management (this will bite you)
By default, Claude has no memory from one session or client to the next. Every new chat is a full on Memento amnesia blank slate.
Context Window
Claude starts out not knowing your project. First have it study something before it works on it. Or start discussing a spec you want. Now it’s smarter. Have it do some work and gets even better at knowing your project. But eventually the context window starts to get too large and becomes less effective and less efficient (context rot) and then you want to start over with /clear and start retraining it from scratch once again.
Speed Modes: Skip the Chat, Skip the Prompts
Use claude -p "prompt" for quick one-off tasks like explaining code or fixing a bug. Claude gives you an answer and exits without entering chat mode. Perfect for scripts and automation. Add --dangerously-skip-permissions when you want Claude to work uninterrupted without asking “Can I edit this file?” every 30 seconds. Some experienced users run this flag by default since they’re working in sandboxed git branches they can easily reset. Together, these flags can transform Claude from a conversational assistant into an efficient automation tool.
Spec: Contract with the Future
Never start coding without a spec
“If you can write the spec, you can have the functional production ready code. And Claude will write the spec for you.”
But don't write it yourself like some kind of caveman. Have a conversation with Claude to create it. Include these sections or regret it later:
- Feature Description: Obviously
- Usage: How actual humans will use this thing
- Test Suite: What success looks like, measurably
- Implementation Steps: The roadmap Claude will inevitably ignore then circle back to
- Current Status: Where we are in this glorious mess
- History: Because you’ll forget why you made that weird decision at 2 AM
The last two are key with regards to the Claude amnesia issue. But the only work if you make sure Claude updates them after each tiny marathon.
Building something complex?
If you’re building something complicated and don’t want to cry later:
- Study best practices for new tech: If you’re using tech you’re familiar with yet, study the best practices using AI. Claude loves reinventing wheels… don’t let it.
- Review the spec like your production on it (it does)
- Review the test suite: Make sure the test suite actually tests what you think it tests
Additional things to consider for complex projects
- Map your codebase: You can’t navigate what you can’t see
- Draw diagrams: Architecture, user flows, data flows—make Claude draw them all
- Simple? Markdown with Mermaid
- Complex? draw.io (but tell it to check the draw.io syntax before and after )
- Create screeen mockups: Pictures prevent a thousand rewrites
Development Loop (the Magic)
- Write code per spec: Claude does the work, but you keep it on track.
- Write tests: Also Claude, but watch it like a hawk
- Tight testing loop: This is non-negotiable. Keep Claude’s nose on the grindstone as it…
- Run tests
- Watches them fail
- Fixes the code
- Repeat until green
- Once the testing is done:
- If it’s a web app, give Claude eyes (screenshots, browser access). It’s good to give Claude more abilities.
- Don’t let it be lazy. Don’t let it give up. Be the drill sergeant
- Test manually. Does it really work?
- git Commit your changes.
The Ego Death Requirement
If you’re like most developers, you’re still micromanaging Claude like it’s a junior dev who needs your “wisdom.” Here’s the uncomfortable truth: Claude can architect systems you’d need a whiteboard and three energy drinks to even comprehend. It can refactor your spaghetti code into something that would make senior engineers weep with joy. But you’re over here asking it to “fix this function” like it’s Stack Overflow with a chat interface.
Until you accept that you’re the bottleneck, not Claude… you’ll keep getting intern-level output from a system that could be your senior architect.
Let. Go. Of. The. Keyboard!
Yes, you still have value!
All the skills that you’ve learned, all of the tech best practices, what makes things work, and what makes things fail… It all still applies and has great value in this new world. That hasn’t changed. And the next generation that’s been raised on AI will have a hard time learning the fundamentals in the way that you inherently know them.
The companies that are are going to thrive are the ones that will add features at lightning speed, rather than the companies that narrow mindedly look at reducing headcount. It’s the companies that ship at 10 times the speed that will dominate this transition, engineering headcount intact.
So start using AI for absolutely everything to build the habit, then refine your approach as you discover what works best, because engineers who master this combination of deep technical knowledge and AI amplification become the irreplaceable superstars that companies desperately need.
Essentials that Amateurs Skip
“It works!” you cry. No, it doesn’t. You’re not done. Claude did the hard part; now you’re the janitor.
Cleanup Checklist from Hell
- git Commit: Get that working code into git immediately. Have Claude write the commit message after reviewing
git statusmeticulously. - Delete the evidence:
- Find all files ending in “_v2”, “_improved”, “_final”, “_final_FINAL”
- Refactor where needed. mv tps.py tps_old.py; mv tps_v2.py tps.py; rm tps_old.py; And now other programs are still calling tps_v2.py
- Two versions of anything = future debugging nightmare
- Organize the mess:
- Did Claude turn your home directory into a war zone? Have Claude help to fix it up.
- Maintain proper well-organized subdirectories
- Update the spec & other docs: Reality has diverged from the plan. Have Claude update what actually happened, including updating the current status and history sections. Make sure all documentation is being kept up-to-date.
Code Review and Refactoring
- Refactor mercilessly: If development was painful And you change your mind half a dozen times, your code might be a disaster. Claude can be excellent at refactoring.
- Code review: Same agent that wrote it can review it. Unlike a human, it can be objective when viewing its own work. But also feel free to use a different agent with a new context window.
- Security review: Type…
/security-reviewUse the paranoid security agent. It assumes everyone is trying to hack you (they are). - Run external tools: Linters, security scanners, whatever your language offers.
- Human review: Yes, you still need to look at the code yourself. And you have friends. Use VS Code’s diff view. Don’t know how? Ask Claude.
- Commit it again: It’s obvious, but remember to commit after re-factoring.
What to do when you’re stuck
After thousands of hours in Claude Code, I’ve yet to hit a wall I couldn’t break through. When nothing else works, this approach delivers the highest quality solutions, especially when you need them most.
Here’s my nuclear option: I use this prompt to extract everything Claude knows about the problem, then feed that output into the Claude web page with Opus in research mode (which can take a while). In the meantime, sometimes the “answer your own question” solves the issue. And if not, the research results almost always contain the key to unlock the problem.
Paste this into your stuck Claude Code session:
After you’ve done that, search the Internet and answer your own questions.
Again, plug the results into https://claude.ai/new with opus selected and in research mode.
…or try…
Why Claude Code?
My take, is that if you’re going to be putting the code in production, you need the best tool, period. Trying to save money on a lesser tool could cost you enormously. Right now, Claude Code is the most proven tool available. Key is that it’s used for far more than just programming.
| Capability | Claude Code |
GitHub Copilot |
Cursor |
Windsurf |
Grok CF1 |
Gemini CLI |
OpenAI Codex |
|---|---|---|---|---|---|---|---|
| Proof / Maturity | 8 | 9 | 8 | 7 | 6 | 6 | 7 |
| Inline completions | 8 | 9 | 9 | 9 | 8 | 8 | 7 |
| Writing tests | 9 | 8 | 8 | 8 | 8 | 7 | 7 |
| Writing specs | 9 | 7 | 8 | 8 | 7 | 8 | 6 |
| Debugging code | 8 | 8 | 8 | 8 | 7 | 8 | 6 |
| Architectural specs | 9 | 7 | 8 | 8 | 6 | 7 | 5 |
| Live system debug | 8 | 6 | 7 | 8 | 6 | 7 | 5 |
| Pair coding | 9 | 8 | 9 | 9 | 8 | 8 | 6 |
| System review | 9 | 7 | 8 | 8 | 6 | 8 | 5 |
| Autonomous coding | 9 | 7 | 8 | 9 | 8 | 8 | 5 |
| Documentation | 9 | 8 | 8 | 8 | 7 | 8 | 6 |
| Security/Compliance | 9 | 7 | 7 | 7 | 6 | 7 | 5 |
| Legacy code | 8 | 7 | 8 | 8 | 7 | 7 | 5 |
| Team collaboration | 9 | 8 | 8 | 8 | 7 | 8 | 6 |
| Capability | Claude Code |
GitHub Copilot |
Cursor |
Windsurf |
Grok CF1 |
Gemini CLI |
OpenAI Codex |
|---|---|---|---|---|---|---|---|
| Proof / Maturity | 8 | 9 | 8 | 7 | 6 | 6 | 7 |
| Inline completions | 8 | 9 | 9 | 9 | 8 | 8 | 7 |
| Writing tests | 9 | 8 | 8 | 8 | 8 | 7 | 7 |
| Writing specs | 9 | 7 | 8 | 8 | 7 | 8 | 6 |
| Debugging code | 8 | 8 | 8 | 8 | 7 | 8 | 6 |
| Architectural specs | 9 | 7 | 8 | 8 | 6 | 7 | 5 |
| Live system debug | 8 | 6 | 7 | 8 | 6 | 7 | 5 |
| Pair coding | 9 | 8 | 9 | 9 | 8 | 8 | 6 |
| System review | 9 | 7 | 8 | 8 | 6 | 8 | 5 |
| Autonomous coding | 9 | 7 | 8 | 9 | 8 | 8 | 5 |
| Documentation | 9 | 8 | 8 | 8 | 7 | 8 | 6 |
| Security/Compliance | 9 | 7 | 7 | 7 | 6 | 7 | 5 |
| Legacy code | 8 | 7 | 8 | 8 | 7 | 7 | 5 |
| Team collaboration | 9 | 8 | 8 | 8 | 7 | 8 | 6 |
This chart was generated using ChatGPT 5 on 9/12/2025.
The Golden Rules
- For everything annoying, update CLAUDE.md: Today’s frustration is tomorrow’s automation. Updating this file is how you evolve from someone who argues with an AI to someone who has trained an AI to read their mind.
- Put the extra “best practices” effort in every time: Do the work like your git history will be read at your funeral. Take pride in every commit, because the instant you start cutting corners, your codebase begins rotting from the inside like a forgotten sandwich in a desk drawer. Technical debt isn’t just a metaphor… it comes with interest, and the collector is future you.
- Use AI to fix AI’s mess: It created the problem, it can clean it up
- Test suites are not optional: Unit tests, integration tests, end-to-end tests, go go go.
- Actually run the damn thing yourself: Don’t trust the test suite alone.
- Check into git properly: Claude writes great commit messages for you
- Save your prompts: If you make a useful reusable prompt, recorded for later use.
- Trust but verify: Claude loves to say that it did everything that you wanted and the code now works perfectly (lying through its teeth). Always verify!
- Stay Vigilant: It’s literally your job to correct Claude frequently. Don’t get lazy! Don’t let the tail wag the dog. Make sure you’re in charge, not the bot.
Common Pitfalls (Avoid the Pain)
- The Yes-Man Problem: Claude agrees with you even when you’re wrong. Test your assumptions. “Is this the best approach?” often gets you “Yes!” when the answer should be “Hell no!”
- The “Just One More Thing” Trap: You got your feature working. Don’t immediately ask for another. Commit, refactor, test, THEN move on.
- The Lost Context Spiral: Claude forgot what you’re building and is now solving a different problem. This is an indication that you might want to clear your context window.
The New Reality
You’re not a programmer anymore. You’re a director. Claude is your brilliant but chaotic film crew. Your job is to:
- Set the vision (specs)
- Keep things on track (testing)
- Be the adult in the room (catch Claude’s mistakes) Catch it when Claude is trying to slip a
rm -rf /past you with the confidence of a three-card Monte dealer. Stay focused and catch every mistake that Claude makes. - Clean up the mess (refactoring)
- Take the credit (you’re welcome)
Your New Daily Mantra: Spec it. Test it. Commit it. Refactor it. Document it. Ship it.
Now stop reading and start building. The robots are waiting for orders.