Everyone learns differently, especially when it comes to technology.
Some folks enjoy reading a book, others like immediately diving in and getting their hands dirty. Being inspired by the folks in the latter half of that statement, I decided to follow the lead of a few other folks that had been developing courses to learn Apache Beam and combine that with my new language du-jour: Kotlin.
The folks working on Apache Beam have done an excellent job at providing examples, documentation, and tutorials on all of the major languages that are covered under the Beam umbrella: Java, Python, and Go. One of the shining stars of all of these resources are is series of available Beam Katas.
Beam Katas are interactive coding exercises (i.e. code katas) for learning more about writing Apache Beam applications, working with its various APIs and programming model hands-on, all from the comfort of your favorite IDEs. As of today, you can now work through all of the progressive exercises to learn about the fundamentals of Beam in Kotlin.
Each series of Katas provides a structured experience for learners to understand about Apache Beam and its various SDKs through exercises of gradually increasing complexity. You'll start from the most basic of "Hello Beam" projects to eventually building an entire data pipeline on your own. The Katas themselves are built upon JetBrains Educational Tools, which allow you to work through this and the hundreds of other available courses all from the comfort of your IDE (assuming you are using IntelliJ or PyCharm) through their EduTools plugin.
Kotlin is a modern, open-source, statically typed language that targets the JVM. It is most commonly used by Android developers, however it has recently risen in popularity due to its extensive feature set that enables more concise and cleaner code than Java, without sacrificing performance or type safety. It recently was ranked as one of the "Most Loved" programming languages annual Stack Overflow Developer Survey, so don't take just my word for it:
The relationship between Apache Beam and Kotlin isn't a new one. You can find examples scattered across the web of engineering teams embracing the two technologies including a series of samples announced on this very blog. If you are new to Beam or are an experienced veteran looking for a change of pace, we'd encourage you to give Kotlin a try.
I'd like to extend a very special thanks to Henry Suryawirawan for his creation of the original series of Katas and his support during the review process and making this effort a reality.