A JavaScript book repo that should be read slowly
getify/You-Dont-Know-JS is the GitHub home of Kyle Simpson’s You Don’t Know JS book series. The current default branch is the second edition, titled You Don’t Know JS Yet. It is not a package, course platform, or interview checklist. It is a book series about how JavaScript works under the surface.
That matters because many people arrive with the wrong expectation. The series is famous, free to read online, and highly starred, so it is easy to treat it like a beginner path. The preface says the opposite. It explicitly warns that these books are not a gentle introduction to JavaScript and assumes the reader is already comfortable with JS, with roughly 6 to 9 months of experience.
The best use of this repo is not “learn JavaScript from zero.” It is “repair and deepen my mental model after I have written enough JavaScript to be confused by scope, closure, this, object behavior, coercion, modules, and execution contexts.”
Which edition are you reading?
The repo’s current default branch is 2nd-ed. The README links the first edition on the 1st-ed branch for readers who want the older books. This distinction is a common source of confusion because many links, blog posts, translations, and quotes around the web still refer to first-edition material.
The second edition reading order in the README is:
- Get Started
- Scope & Closures
- The Unbooks, which includes Objects & Classes and Types & Grammar
The first two books were fully edited, polished, and published. The README links Leanpub and Amazon purchase pages while keeping the online text available for free. The Unbooks are ebook material. In an issue discussion from 2025, the author explained that Objects & Classes and Types & Grammar are essentially draft-complete, while Sync & Async and ES.Next & Beyond were canceled. The README now reflects that status.
That makes the repo “complete” in a specific way. It is not a six-book plan waiting for all six volumes. It is a finished second-edition body of work with two polished books, an Unbooks bundle, and two canceled titles.
How to read it
The preface gives unusually good reading advice: do not binge the series. The material is dense. The author recommends reading a chapter, going back section by section, practicing the code and ideas, and spending days on larger concepts when needed. That advice is more useful than a checklist.
For a practical reading plan:
- Read Get Started if you know JavaScript syntax but want a better map of the language.
- Spend serious time on Scope & Closures. This is the book most likely to change day-to-day debugging.
- Move to Objects & Classes when
this, prototypes, class syntax, and delegation still feel partly memorized. - Use Types & Grammar when coercion and type behavior are causing real confusion.
The repository is not open to further contributions, so readers should not expect issue-driven edits to reshape the books. Use issues mainly for clarification and historical status, not as a live curriculum forum.
What the books are good at
YDKJS is strongest when it challenges simplified JavaScript folklore. The preface rejects the idea that developers should only learn a narrow set of “good parts.” The series argues that developers should understand more of the language, including the parts that require care.
That is why the books still matter. Modern JavaScript tooling can hide language mechanics under TypeScript, bundlers, frameworks, linters, and generated code. The YDKJS angle is different: it asks what your code means before tooling gets involved. Scope, closure, object delegation, coercion, module patterns, and execution behavior still leak through abstractions.
The issue tracker shows the audience too. One detailed 2025 thread discussed hoisting, variable declarations, function declarations, and how browser consoles are not the same as plain script execution contexts. That is exactly the sort of question this repo attracts: not “how do I build a todo app,” but “why did the language behave that way?”
Where it is the wrong tool
YDKJS is a poor first JavaScript tutorial for most beginners. If you need DOM basics, syntax drills, browser APIs, small exercises, or a guided path from zero, start elsewhere. The repo itself says this is not a gentle intro.
It is also not the best reference when you need current API documentation. For Web APIs, browser compatibility, and HTML/CSS/JS reference pages, MDN is the better source. For a broad tutorial path, javascript.info is easier to follow. For interactive exercises and a broader curriculum, freeCodeCamp is more structured.
The license matters too. The README states that the material is licensed under Creative Commons Attribution-NonCommercial-NoDerivs 4.0. You can read it online for free, but you should not treat the text like permissively licensed code that can be remixed into another commercial course or derivative book.
Comparison with nearby JavaScript learning resources
| Repository | Stars | Language | Best use | Main caution |
|---|---|---|---|---|
| getify/You-Dont-Know-JS | 184,519 | Markdown | Deep JavaScript mental models after basic experience | Not a gentle beginner intro, non-derivative license |
| javascript-tutorial/en.javascript.info | 25,322 | HTML | Step-by-step modern JavaScript tutorial | Less opinionated about deep language philosophy |
| mdn/content | 10,792 | Markdown | Reference documentation for web platform behavior | Not designed as a single book path |
| tc39/ecma262 | 15,638 | HTML | Canonical ECMAScript specification work | Specification language, not tutorial prose |
| freeCodeCamp/freeCodeCamp | 446,617 | TypeScript | Guided curriculum and exercises | Broader platform, less focused on one author's JS model |
As of 2026-06, YDKJS remains far larger by GitHub stars than many JavaScript learning repositories, even though it is a book manuscript rather than an app. That popularity is partly historical: the first edition shaped how many web developers talked about closures, this, prototypes, and coercion. The second edition keeps that depth but has a different completion status.
Reading the star curve
The sampled star history shows strong early growth from late 2013 through 2016, then a later current-total point. That shape fits the cultural story better than a release story: YDKJS became part of the JavaScript learning canon early, then kept accumulating readers long after the first edition’s peak discussion years. The repo is still updated under the second-edition branch and now has a completed book-series status rather than an abandoned issue backlog.
Treat the stars as evidence of cultural reach, not as a recommendation to start here on day one. A resource can be famous and still be the wrong first step for a new learner.
Related repos
- freeCodeCamp/freeCodeCamp for guided exercises and a broader curriculum.
- ossu/computer-science for a full CS self-study route.
- trekhleb/javascript-algorithms for JavaScript algorithms and data structures with tests.
- TheAlgorithms/Python for algorithm examples in a different teaching language.
FAQ
Is You Don’t Know JS free to read?
Yes. The README says the books are available to read online for free in the repository. It also links paid Leanpub and Amazon versions.
Is You Don’t Know JS good for beginners?
Usually not as the first resource. The preface says the books assume comfort with JavaScript and roughly 6 to 9 months of experience. Beginners are better served by a gentler tutorial first.
Is the second edition complete?
Yes, but not as the original six-book expectation. The README says the series is complete and not open to further contributions. Get Started and Scope & Closures were published. The Unbooks contain Objects & Classes and Types & Grammar. Sync & Async and ES.Next & Beyond were canceled.
Where is the first edition?
The README links the first edition on the 1st-ed branch. Use that branch when following older references or translations that cite first-edition chapter names.
Can I reuse the book text in my own course?
Be careful. The README uses Creative Commons Attribution-NonCommercial-NoDerivs 4.0. That permits reading and sharing under the license terms, but it is not a permissive remix license.