Lately I became really interested in concurrency and parallelism. And yes, there is a difference.

I mainly use Kotlin at work for Android development but more and more I come across talks about Go and concurrency (thanks to the recommendation model tied to my youtube profile and watch history, yey) and I became relatively curious.

Whether or not this curiousty stems from the recommendations that pop up on my screen or I triggered their probability of suggestion by watching more and more Go related talks and reading more about Go is an unrelated chicken and egg type of meta question. I decided that I want to learn more about how Go Language use concurrency so I decided to make a blog post focusing on this very concept. Of course, as like many of my collegues, while I was writing this very paragraph I thought that talking a little bit about goroutines, channels, and maybe about some code snippets about concurrency it’s not enough. Why not write more ? Why not turn this innocent blog post draft into a chance for highly demanding learning experience that has a potential to be left unfinished. Well I hope the outcome will be different for this idea. So help me blog gods.

The rough outline for this series will gradually update this introduction post below. I will try to divide to topics into separate, highly digestable little chunks. So the posts will be probably smaller. I also want to encourage myself to write more, so wiriting shorter blog posts is a good way to encourage myself to do so. I am very flexible about the progression of topics of these posts so any suggestion, concept highlight, some gotchas encountered while working is highly appreciated.

Let’s Go, shall we?