I stopped following the “learn everything from basics first” approach a long time ago. Most of the time, it just gives you the dopamine of progress without actually pushing you.
Put yourself directly into advanced, hard things. Struggle. Get stuck. Break things.
Then DFS + backtrack whenever you realize there’s a fundamental you’re missing. Learn that piece, then move forward again.
This has worked every single time for me.
You don’t need to know everything before starting hard things. Hard things will tell you exactly what you need to learn.
The limits of my language mean the limits of my world.
—Ludwig Wittgenstein, Tractatus Logico-Philosophicus (1922)
我的语言的界限就是我的世界的界限。
——路德维希·维特根斯坦,《逻辑哲学论》(1922)
语言即世界,语言的边界,就是世界的边界
你的语言就是你的世界的边界
在 AGENTS/CLAUDE MD 里面加一句:
Every implementation task that changes files MUST end with a git commit before the final response.
- Inspect `git status` before editing and treat pre-existing or concurrent changes as user-owned.
- Review the final diff and run proportionate verification before committing.
- Stage only files or hunks that belong to the current task. Never bundle unrelated changes unless the user explicitly asks.
- Use a concise descriptive commit message on `main`, report the commit hash, and do not push, amend, or rewrite history unless asked.
- Read-only tasks and tasks with no file changes do not create empty commits.
@Mononofu@JensenHuang This is a false equivalence. Everyone has the right to keep their code private. The problem is when someone tries to stop OTHERS from open sourcing.