One moment you feel like you're getting it. The next moment you're stuck.
Learning to program is exhilarating and challenging... and also frustrating, exhausting, and overwhelming.
Exercism provides countless small wins. The exercises are achievable mini-quests: small and well-defined, and with enough complexity to uncover bite-sized knowledge gaps.
The solutions you write provide reviewers with clues about what you haven't grasped yet. The feedback you receive will guide you to relevant study topics and dramatically increase the ease with which you write code.
You know what it’s like to be fluent. Suddenly you’re feeling incompetent and clumsy.
Learning a new language can be both thrilling and deeply uncomfortable.
You’re used to being productive. Now you feel hamstrung with one hand tied behind your back and an an unfair suspicion that you should already know this.
There's a gap when you're past the basics but real-world problems leave you swamped by details and wandering down rabbit holes. Exercism aims to fill that gap with lots of small, self-contained practice problems with just enough complexity to stretch your mind around new concepts.
Your solutions are the starting point for a conversation centered around style, idioms, and best practices. You can write FORTRAN in any language, as the saying famously goes, but with enough feedback, you’ll quickly find yourself writing the language the way it wants to be written.
Haphazard, convoluted code is infuriating, not to mention costly. That slapdash explosion of complexity is an expensive yak shave waiting to happen.
There's an art and a science to transforming unmaintainable code into elegant simplicity. It takes practice, experimentation, and deep thought.
Exercism's tiny toy problems, in the form of automated tests, provide a balance of constraints and freedom. The exercises encourage you to explore trade-offs and best-practices.
Each solution you write is an occasion to ponder readability and code smells. Each solution you review challenges you to articulate your experiences and gut feelings. Each discussion is an opportunity to strengthen your instincts for clean, well-factored code.