|
| 1 | +# CLAUDE.md |
| 2 | + |
| 3 | +> **Note from the project author:** I created this project and CLAUDE.md to help CS/SWE students use it as a learning environment. The instructions below ask Claude to treat you as a self-taught intern—this is intentional! It encourages deeper explanations and connects concepts to this actual codebase. Feel free to adopt this persona or adapt it to your own learning style. |
| 4 | +
|
| 5 | +--- |
| 6 | + |
| 7 | +## Who I Am |
| 8 | + |
| 9 | +I'm a self-taught SWE intern without a CS degree. I'm building full-stack applications to learn, currently working on a data visualization project (React + TypeScript + Vega-Lite). |
| 10 | + |
| 11 | +**My background:** I don't have formal CS training, so I often lack context that CS grads take for granted (compilers, build systems, module systems, etc.). When I ask "what is X," I genuinely don't know—explain like I'm smart but uninformed. |
| 12 | + |
| 13 | +## How I Learn Best |
| 14 | + |
| 15 | +1. **Analogies first** - Connect new concepts to things I already understand |
| 16 | +2. **Why before how** - Explain *why* something exists before *how* it works |
| 17 | +3. **My codebase as examples** - When explaining concepts, use files from this project so I see the theory in my actual code |
| 18 | +4. **One layer at a time** - Don't jump 3 abstractions deep. If I ask about Vite, don't assume I know what bundling is |
| 19 | + |
| 20 | +## My Current Tech Stack (for context) |
| 21 | + |
| 22 | +- React (learning) |
| 23 | +- TypeScript (learning - know it compiles to JS) |
| 24 | +- Vite (know it's fast, don't fully understand why) |
| 25 | +- ES Modules (basic understanding of import/export) |
| 26 | +- Bash (very beginner - learning commands as I go) |
| 27 | + |
| 28 | +## Session Workflow |
| 29 | + |
| 30 | +I use Claude Code for learning, then export to my Notion learning journal. |
| 31 | + |
| 32 | +### During a session: |
| 33 | +- I'll ask conceptual questions—answer them, don't just write code |
| 34 | +- When I ask about code patterns, show me examples FROM THIS CODEBASE when possible |
| 35 | +- If I seem confused, check what prerequisite concept I might be missing |
| 36 | + |
| 37 | +### End of session: |
| 38 | +When I say "summarize for Notion" or "end of session summary," return this format: |
| 39 | + |
| 40 | +**Part A — Human-readable summary** |
| 41 | +- What I built (specific features, files, endpoints, UI changes) |
| 42 | +- Key learnings (why it matters, how it works) |
| 43 | +- Mistakes and lessons (what broke, root cause, fix, prevention) |
| 44 | +- Next steps (tight, actionable) |
| 45 | +- Questions I should be able to answer (quiz-style, 3-5 questions) |
| 46 | + |
| 47 | +**Part B — Notion-ready JSON** |
| 48 | +```json |
| 49 | +{ |
| 50 | + "What I Built Today": "...", |
| 51 | + "Key Learnings": "...", |
| 52 | + "Mistakes & Lessons": "...", |
| 53 | + "Next Steps": "...", |
| 54 | + "Questions to Answer": "..." |
| 55 | +} |
| 56 | +``` |
| 57 | + |
| 58 | +### Concepts to flag: |
| 59 | +When I encounter a new framework, tool, or pattern, note it so I can add it to my Concepts Tracker. Format: `[CONCEPT: name - category]` (categories: Frontend, Backend, Database, DevOps, Language, Framework, Tool) |
| 60 | + |
| 61 | +## What NOT to do |
| 62 | + |
| 63 | +- Don't write code unless I ask you to build something |
| 64 | +- Don't skip explanation and jump to "here's the solution" |
| 65 | +- Don't assume I know CS fundamentals (Big O, compilers, networking basics)—check first |
| 66 | +- Don't give me 10 options when I ask a simple question—give me the one thing I should know first, then mention alternatives exist |
| 67 | + |
| 68 | +## Project Structure Reference |
| 69 | +``` |
| 70 | +src/ |
| 71 | +├── components/ # React components (EncodingPanel, ChartView, FieldList) |
| 72 | +├── context/ # React Context (AppContext.tsx - good ES modules example) |
| 73 | +├── types/ # TypeScript type definitions |
| 74 | +└── utils/ # Helper functions |
| 75 | +``` |
0 commit comments