<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>kotlin on Senior Software Engineer Learns Functional Programming</title><link>https://llcawthorne.github.io/tags/kotlin/</link><description>Recent content in kotlin on Senior Software Engineer Learns Functional Programming</description><generator>Hugo</generator><language>en-us</language><lastBuildDate>Sat, 26 Sep 2026 21:05:00 -0400</lastBuildDate><atom:link href="https://llcawthorne.github.io/tags/kotlin/index.xml" rel="self" type="application/rss+xml"/><item><title>Head First Kotlin</title><link>https://llcawthorne.github.io/posts/head-first-kotlin/</link><pubDate>Sat, 26 Sep 2026 21:05:00 -0400</pubDate><guid>https://llcawthorne.github.io/posts/head-first-kotlin/</guid><description>&lt;p&gt;&lt;img alt="Head First Kotlin cover" loading="lazy" src="https://llcawthorne.github.io/posts/head-first-kotlin/images/cover.jpg"&gt;&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Head First Kotlin&lt;/em&gt; 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&amp;rsquo;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: &amp;ldquo;The Top Ten Things (We Didn&amp;rsquo;t
Cover)&amp;rdquo; - ten separate topics, including packages, visibility modifiers, sealed
classes, and object declarations, that never made it into the twelve main
chapters at all.&lt;/p&gt;</description></item><item><title>Kotlin from Scratch</title><link>https://llcawthorne.github.io/posts/kotlin-from-scratch/</link><pubDate>Sat, 26 Sep 2026 21:00:00 -0400</pubDate><guid>https://llcawthorne.github.io/posts/kotlin-from-scratch/</guid><description>&lt;p&gt;&lt;img alt="Kotlin from Scratch cover" loading="lazy" src="https://llcawthorne.github.io/posts/kotlin-from-scratch/images/cover.jpg"&gt;&lt;/p&gt;
&lt;p&gt;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 &lt;code&gt;val&lt;/code&gt; instincts. Not idiomatic Kotlin.&lt;/p&gt;
&lt;p&gt;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 &lt;em&gt;Head First Kotlin&lt;/em&gt;, 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&amp;rsquo;t ask
for and won&amp;rsquo;t need for Android/Swift, though I don&amp;rsquo;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).&lt;/p&gt;</description></item></channel></rss>