Head First Kotlin

Better than initially assessed: Chapter 2 introduces collections, good variance coverage (with a Pet hierarchy), covers extensions and their role in the stdlib, two lambda/HOF chapters. Unusual ordering: generics before lambdas. map/filter/fold deferred to lambda chapters. Coroutines appendix exists but dated. Head First Kotlin uses the usual Head First spiral approach - introduce a concept lightly, let it sit, circle back with depth later - which meant it deferred anything not strictly load-bearing to the appendices. Labeled breaks and enum classes, both things I’d consider core language features, got pushed all the way to Appendix C rather than covered in the main chapters. That appendix is even honest about it in the title: “The Top Ten Things (We Didn’t Cover)” - ten separate topics, including packages, visibility modifiers, sealed classes, and object declarations, that never made it into the twelve main chapters at all. ...

September 26, 2026 · 2 min · 287 words · Lewis Cawthorne

Kotlin from Scratch

Brief summary: math/computational projects (Euclid, Sieve, Fibonacci, physics sims, fractals, sorting, A*), no extension functions, limited language features in intro chapters, good for drilling val instincts. Not idiomatic Kotlin. Good typing practice and some genuinely interesting math/algorithms, but disappointing as a source of good Kotlin code. Chapters 1-2 covered language fundamentals in almost as much depth as all of Head First Kotlin, but that depth never returned. Nothing past chapter 2 touches generics, sealed classes, delegation, or coroutines. Chapter 3 was a whole detour into JavaFX I didn’t ask for and won’t need for Android/Swift, though I don’t regret typing it (the Stage/Scene boilerplate turned into a genuinely cool spiral, and the Gradle multi-module setup fights taught me more about the build system than the book itself did). ...

September 26, 2026 · 3 min · 551 words · Lewis Cawthorne