A free, open, structured guide to programming languages and software engineering skills — for beginners, intermediate learners, and interview prep.
unwrap teaches the same core skills across many languages, side by side, so you can learn a new language fast by mapping it to what you already know — or compare how different languages solve the same problem.
Every topic follows the same shape: a plain-language explanation, runnable examples, common mistakes, an exercise with a solution, and interview-style questions.
languages/<language>/<topic>/ # per-language lessons, e.g. languages/python/06_functions
projects/ # mini projects that combine multiple topics
standards/ # writing and style guidelines for contributors
roadmap/ # what's done, what's next
templates/ # starting points for new lessons
Each language covers the same topic sequence:
01_variables → 02_datatypes → 03_operators → 04_conditions → 05_loops → 06_functions → 07_collections → 08_oop → 09_errors → 10_files → 11_modules_packages → 12_testing → 13_networking → 14_databases → 15_concurrency → 16_security → 17_projects → 18_interview
Python, JavaScript, TypeScript, Java, Go, Rust, C, C++, C#, Kotlin, Swift, PHP, Ruby, Dart.
See roadmap/progress.json for what's complete and roadmap/queue.md for what's next.
See standards/style-guide.md, standards/folder-structure.md, and standards/writing-guidelines.md before adding a lesson. Use standards/example-template.md as the starting point for a new topic.
MIT — see LICENSE.