how I use claude code to learn faster
10m read
on this page
“Consider the frustration that comes from being bad at something. The feeling is one of stalled progress and simmering anger. But it's actually a sign that you’re moving in the right direction. In fact, that frustration level is increasing the presence in your system of norepinephrine, whose main function is to prime the brain for learning. You need to feel this frustration in order to produce this neurochemical, and you need this neurochemical in order for learning to take place.”
Steven Kotler, The Art of impossible: A Peak Performance Primer
If you are trying to learn computer science for real, claude code can speed that up (only if used carefully tho). But it takes more than youtube videos, bootcamps and tutorials. You still have to ask the right questions, learn the fundamentals of the subject, and judge ideas against the problem you are actually trying to solve.
But if you use claude to just write some code for you without you knowing how to fully understanding the problem and not reaching the solution by yourself, you are literally burning your critical thinking and problem solving skills.
#How do we actually learn?
Most people learn by going over their notes again, re-reading the highlighted parts, copying things out. It eats hours, it barely works, and it is boring on top of that.
We also assume that if learning feels easy, it is going well. It is the opposite. Effort is what makes knowledge stick. Same as weight training: the heavier the set, the more it builds, and grappling with new information works the same way.
So you want your learning to be harder. Flashcards and re-reading are easy. Finding the gaps in what you know, filling them, applying the skill, and putting the pieces together is hard.
Keep in mind: Making learning difficult in strategic and desirable ways will enhance retention, retrieval, and transfer of knowledge.
Teaching someone else the thing you are still learning is one of the strongest versions of this.
##But WHY is it effective?
Explaining forces you to reboot what you know into working memory, tie the new information to what you already had in there, and connect topics that were sitting apart. On top of that, you are thinking under new pressure: someone is waiting for an answer that makes sense.
A study group is not the only way to get that difficulty into your own studying. It is just the most obvious one.
##HOW does this apply to learn computer science?
Computer science is one of the most demanding fields when it comes to deliberate practice. Memorizing historical dates is passive. CS demands that you apply things under pressure, debug when nothing makes sense, and reason about systems you can’t fully see.
This is why passive consumption, watching a tutorial, copying code from Stack Overflow, or asking Claude to just write the solution, gives you the illusion of progress without the actual growth. You feel productive. You aren’t.
The desirable difficulties framework maps directly onto CS learning:
- Struggling with a bug before asking for help forces you to build a mental model of the system. That friction is norepinephrine doing its job.
- Implementing something from scratch before looking at reference implementations forces retrieval and elaboration, aka the exact mechanisms that deepen memory.
- Explaining how a piece of code works (to yourself, a rubber duck, a classmate, or even to Claude in your own words) reactivates your knowledge structures and exposes the gaps you didn’t know you had.
The hardest part of learning CS is that the feedback loop is brutally honest. Code either runs or it doesn’t. That clarity is actually a gift, it tells you exactly where your understanding breaks down, if you’re willing to sit with the discomfort long enough to find out.
#Setting up Claude
“If you’re not at all interested in performance, shouldn’t you be in the Python room down the hall?”
Scott Meyers
So, with the brain part out of the way, here is how I set claude up.
Claude should be a thinking partner. The moment you turn it into a solution machine, you outsource the struggle and the learning goes with it.
##The CLAUDE.md file
Claude Code reads a CLAUDE.md file at the root of your project or $HOME. This is where you define the rules of engagement. Without it, Claude defaults to being maximally helpful, which for your brain, is maximally harmful.
Create a CLAUDE.md in your project with something like:
You are a socratic programming tutor. Do NOT write full solutions.
- Guide me step-by-step.
- Ask me clarifying questions before answering
- Give hints and partial examples, not complete code
- If I'm stuck, help me identify what I don't understand yet
- Push back if my reasoning is wrong
- Only show full code after I've demonstrated understanding
- Don't try to gaslight or bitch me, always be honest and, if needed, ruthless This single file changes everything. Claude will still answer your questions, it just won't do your thinking for you. You are now vibe-coding free!
##Creating a tutor Skill
CLAUDE.md sets the default behavior for a project. Claude Code also supports Skills, reusable prompt files you can invoke on demand from any session, any project. Useful when you want tutor mode without having to configure every repo.
Create the file $HOME/.claude/skills/tutor.md:
---
name: tutor
description: Activates Socratic programming tutor mode. Use when learning a new concept, debugging, or solving problems you want to actually understand.
---
You are now in Socratic programming tutor mode.
Rules:
- Do NOT write complete solutions. Ever.
- Ask one clarifying question at a time to guide my thinking.
- Give hints and partial examples only.
- If my reasoning is wrong, say so directly. Don't soften it.
- If I'm stuck, help me identify what I don't understand, don't just fill the gap.
- Only show full working code after I've demonstrated I understand the approach.
- Treat me like someone capable of figuring it out, not someone who needs to be carried.Now, whenever you want tutor mode active, regardless of which project you're in, just run /tutor in the Claude Code prompt. It loads the skill and Claude snaps into that mode for the rest of the session.
This is specially powerful when revisiting old code you wrote with AI help and actually want to understand it this time.
##Using books and PDFs as reference
The best way i think to use Claude is pointing it at the actual material you're studying. Instead of asking generic questions, you feed it the book chapter or paper you're reading and ask it to tutor you from that specific content.
At Claude Code, you can reference any file in your project with the @ syntax. So if you have a totally legally acquired book copy as PDF or a text article saved locally, just drop it in your project folder and reference it in the prompt:
@books/game-engine-architecture.pdf explain the stack frame concept on page 8, but dont just summarize it. ask me questions until i can explain it back to you as a master at workOr if you extracted a chapter as plain text:
@notes/sicp-chapter1.txt im on section 1.1.6. walk me through the substitution model without giving me the answer directlyClaude will tutor you from the same source you are reading, using the same terminology and examples. This avoids the situation where Claude explains something in a totally different way from the book and you end up with two mental models that dont quite fit together.
A good workflow: read a section yourself first, take notes on what you didnt understand, then open Claude and reference that exact section with your specific questions.
##How to ask questions
As Tony Robbins once said:
"The quality of your questions determines the quality of your learning."
With this phrase in mind, compare these prompts:
Bad:
Write me a function that reverses a linked listGood:
I'm trying to reverse a linked list. I think I need to track the previous node
but I'm not sure how to handle the head. What am I missing in my reasoning?or
Bad:
teach me ray tracingGood:
Step 1: explain rays and intersections conceptually
(wait for me)
Step 2: help me design data structures (no code)
Step 3: guide me to write the intersection function myselfThe second prompt forces you to articulate what you already know and by so, find where the gap actually is. That articulation itself is learning. You are reactivating your knowledge structures before Claude even responds.
If you can't explain what you're confused about, that's a sign you need to go back to fundamentals, not ask Claude to skip them for you.
Remember bro, the tortoise beats the hare.
##After Claude answers
Don't just read the explanation and move on. Close the conversation and try to implement it yourself from scratch. If you can't, you didn't learn it, you just read it through.
Then come back and ask Claude to poke holes in your implementation. Ask it to give you edge cases you haven't considered. Ask it to explain why your approach works, not just that it works.
That back-and-forth, where you produce something and then stress-test it, is where the actual knowledge gets encoded.
#Conclusion
"He who cannot obey himself will be commanded. That is the nature of living creatures."
Friedrich Nietzsche
AI tools like Claude are powerful. But power without discipline is just noise and can rot your brain faster than TikTok.
The students who will get the most out of this "AI will replace you" era are not the ones who use AI the most, they're the ones who use it in a wise manner while still moving fast and not burning brain cells. They use it to sharpen their thinking, not replace it. They stay in the struggle long enough for the neurochemistry to do its job, then use Claude to go deeper, not to skip ahead. Also they are the ones who enjoy coding and make it a hobby.
You want to be able to write things from scratch and be comfortable in discomfort, not to just have a portfolio that you can't even explain how the code works. Act accordingly.
#Resources
“Employ your time in improving yourself by other men's writings so that you shall come easily by what others have labored hard for.”
Socrates
These are the books I actually recommend. Not dumb pokedex tutorials, not bullshit influencer courses, not 2-week javascript bootcamps. They take effort to read and they give you foundations that don't expire.
On how computers actually work
- Computer Systems: A Programmer's Perspective: Bryant & O'Hallaron. The closest thing to a complete picture of what happens between your code and the hardware. Dense, worth every page.
- The Art of Computer Programming: Knuth. You probably won't read all of it. Read what you can. It will make you think more carefully than almost anything else.
- Structure and Interpretation of Computer Programs: Abelson & Sussman. The Magician book. Free online MIT classes on youtube aswell. Teaches you to think about computation at a level most programmers never reach. Absolute master piece. Will make you think about recursion even on your dreams.
On algorithms and problem solving
- Introduction to Algorithms: CLRS. The standard reference. Read it alongside actually implementing the algorithms.
- How to Solve It: Pólya. Not a CS book, but a thinking book. Applies directly to debugging and system design.
- Data Structures & Algorithm Analys in C++: Mark A. Weiss. Even if you don't know C/C++ yet(skill issue?), it's a goated book to learn about the topic.
On memory and learning itself
- Moonwalking with Einstein: Joshua Foer. A journalist trains for the US Memory Championship. Practical and entertaining introduction to how human memory actually works.
- Writing to Learn: William Zinsser. Writing forces you to organize what you actually know. If you can't write it clearly, you don't understand it yet. Applies directly to documentation, commit messages, and explaining your code.
- The Art of Impossible: Steven Kotler. On peak performance and the neurochemistry of learning. Where the opening quote came from.