Claude Code Top Tips: Lessons from the First 20 Hours
TL;DR: Claude Code is remarkable but requires intentional learning. I’ve used it for Python development, 3D design editing, documentation and even this article — outperforming alternatives across the board. Top 8 tips:
- Think of it as a very fast intern with a great memory, but not much experience.
- When it makes mistakes, ask it to update CLAUDE.md to not make them again.
- Ask it to do the things that would improve code quality that you previously wouldn’t have time to.
- Only trust it with read only commands.
- Use it for the whole software lifecycle.
- Use the filesystem to your advantage.
- Keep an eye on cost, but it’s still worth it.
- Try the enable-architect mode for more complex tasks.
Over the last few days, I have been on a journey to learn how to work with Claude, putting it through its paces in wildly different scenarios: traditional Python code, editing 3D designs, writing design docs and even writing this article. In all cases, it was better than anything I had tried before. Not just incrementally better — fundamentally better.
Remember that feeling of empowerment when you first get comfortable with a new framework or tool? That sudden expansion of what’s possible, like when I first learned OpenGL or Java? That’s what Claude Code delivers. The realization hits you: “Wait, I can do that now?” I’ve had that feeling maybe 3 or 4 times in my career. I just had the fifth.
The following will sound hyperbolic, but those who know me know that I’m not given to hyperbole. A favorite quote is that “the future is already here, just not evenly distributed.” Claude Code is the future of programming. There is no doubt about this in my mind, because I never want to go back to the old ways of doing things, and already, editing the code myself feels like taking a step backwards. I’ve cancelled my Cursor and Windsurf subscriptions.
However, there was definitely a learning curve. The first few attempts were bumpy, but over time, Claude Code and I learned how to work together. Another of my favorite quotes is “Experience is an excellent school; unfortunately, the fees are very high.” Let me share the fruits of my experience so you don’t have to pay the high fees.
The Fast Intern (But Verify Every Line)
Here’s a mental model that’s helped me: think of Claude Code as a very fast intern with perfect memory. They’re eager to help, incredibly capable, and remember everything — but still need clear direction and occasional supervision. Given the right instructions, this intern can work at superhuman speed while you focus on the creative parts that actually require your expertise. But like any new team member, their work needs review. Despite its intelligence, always check every line. Claude is impressively accurate, but verification remains essential.
Also like an intern, they often solve problems in overly complicated ways. And if you let those changes through, your code will incrementally get more and more complex.
For example, when I was working on 3D design with OpenSCAD, I asked to round the edges of a cylinder. It came up with this extremely convoluted approach of creating tori at the top and the bottom. I pointed out that there was a parameter for rounded cylinders it could use from the library, and it could have just used that.
Teach It Your Preferences
Claude Code creates a CLAUDE.md which is background knowledge it uses for the overall project. If Claude does something you don’t like, don’t just correct it once — ask it to update the CLAUDE.md file so it remembers for next time. This seemingly small step transforms your experience. It’s the difference between repeatedly explaining the same preference and having a tool that actually adapts to you.
Example: after the issue with rounded cylinders above, I asked it “How can you modify CLAUDE.md to prevent this issue in future?” It proposed a modification that said it should check functions in the library first. It didn’t do it again.
Perfect Your Code (Beyond Just Writing It)
As developers, there’s always the TODOs that we never actually do, either because we’re lazy or we don’t have time. Claude is actually pretty good at these.
Ask it to:
- Update your documentation (seriously, when was the last time you actually wanted to do this?)
- Write comprehensive tests (even the edge cases you’d normally skip)
- Add clarifying comments on complex function calls
- Generally improve code quality and readability
Use It For The Full Development Lifecycle
Claude isn’t just for writing code — it’s remarkably good at crafting clear PR descriptions and meaningful commit messages. Honestly, its commit messages are better than mine because of the “perfect memory” thing. I might forget to include something, but it won’t. The quality boost to these often-rushed communications makes collaboration smoother for everyone involved. Its PR descriptions are really good.
I even used it for diagrams in a design doc. While working on documentation, I asked it to generate a diagram using GraphViz (dot). Then I had it write a shell script that would convert the .dot files into .pngs and place them in a separate directory. Finally, it incorporated those diagrams into the design doc. The results were eerily accurate. I had a “How? … What? … Really?” reaction. They were so good because it had read the entire design doc and understood the relationships perfectly.
In another instance, I’d made a bit of a mess of my git repo with merges and rebases. Rather than fixing it myself, I asked Claude to handle it. Its understanding of git was better than my own, and what would have taken me hours to figure out, it did in minutes.
Be Careful With Permissions
Every time Claude Code executes a bash command, it asks you whether it should ask you again about that command. My principle: Only grant “auto execute” on read-only type instructions. “Yes” to “git status”. “No” to “git commit”. “Yes” to “ls”. “No” to “rm”.
I have a cautionary tale: I allowed Claude to do git adds, and it enthusiastically added ALL the files in a folder with a “git add .” — including some files with sensitive information. I had to pull the plug immediately, but I was too slow on the escape key.
Of course, I then asked it for help to expunge the sensitive information from the git history (since it’s not enough just to delete the files from the repo), which I probably would have gotten wrong myself.
Use the filesystem as a shared jamboard.
Think of the filesystem as a way for you and Claude to work on things jointly. Anything within the working directory becomes usable when you do that. Here are some examples of how I’ve used the filesystem:
- When working on 3D modeling, I pulled the source for one of the big OpenSCAD libraries (BOSL2) into the directory. Claude could then grep through those files, search them, and learn from the existing code.
- For the diagrams I mentioned above, I had Claude not only look at the DOT files, but also examine the PNG files generated from them to improve the visualizations.
- In preparing this article, I wanted Claude to understand my style better, so I created an examples/ directory and saved some of my writing there. I then asked it to read through those examples and summarize my style in the CLAUDE.md file. When I asked it to rewrite this article in my style, it sounded a lot more like me. Am I really that predictable?
Keep an eye on costs, but it’s still worth it.
Claude’s cost model is different from that of Cursor or Windsurf: you pay by the token (including thinking tokens, etc). It’s not expensive, but it is possible to rack up say $10 of tokens in a day, or $200 a month if used seriously, when Cursor and Windsurf are probably a tenth of that. Still, the efficiency boost is well and truly worth it. As an example, all the work on this article was less than a dollar (there’s a /cost command you can use to work out how much it is costing you).
Enable the Architect
For any large refactoring work there’s a command line option called “ — enable-architect.” This adds a new tool that enhances Claude Code’s ability to deal with large code bases. It’s not well documented, but I found it definitely helps.
Concluding thoughts
To me, Claude Code is the fulfillment of the promise of agentic systems and LLMs together. I think this will be the new mode of programming. Whenever I go back to not using Claude Code, I feel like I’ve lost a key tool in my toolchain.
The productivity gains are significant, but the real value comes from the mental bandwidth it frees up for the creative aspects of coding. The learning curve is worth climbing because on the other side is a genuine expansion of what you can accomplish in a day.