Hello, my name is Stefan and I want to learn Golang!
Gosh — what a beginning. It feels like I’ve just joined the club of the anonymous alcoholics 😃.
But to be serious over the next couple of weeks (or better months) I want to learn Golang. While doing it I try to share as much as I can from my process and learnings here.
But why?
To answer this question I think I have to give you a little bit background about my experiences with programming languages.
I started “programming” about 15 years ago. Back then I played a browser game (man I’m getting old) where you have some kind of “clans”. These clans had “introducing pages” which could be customized with HTML and CSS. I know that this is not really “programming”. That is the reason why I put the word in double quotes 🙂.
After I did this quite some time I found out that I can use these technology to build (static) websites. Then I discovered PHP to build dynamic websites. Linked to a MySql database (phpMyAdmin) it gives my websites a real use case with saved states.
The last thing what I had to learn for a “rich” website is obvious Javascript.
As I got my first Android smartphone (an Samsung Galaxy S 😍) I started to explore the Java world to create apps for the phone.
For some of the apps I’ve created I needed some kind of backend which provide information which will be consumed by these apps. I didn’t want to run my own server and didn’t want to pay for an managed server with pre installed PHP. Thanks god Googles App Engine raised more and more and give use a tree trier. But it could only be used with Python… So I started to learn Python.
I had written all of my code while I was in school. What I want to say is that I learned all of the stuff above “next to my real life”. I never focused deep in something. I only learned — by reading online articles — so much that I could solve a problem. The typical “I start to write something and when I have a problem I google for it”. I never bought a book or read through tutorials.
The only languages which I really “know” today is Java and Kotlin. But this is only because at the end of school I started to work as an Android Developer. Basically I learned Java at work.
Don’t get me wrong. I don’t want to say that I know everything of Java only because I do it every day. I also learned how to learn. And in the time I started to buy books and read through tutorials to understand the basics or fundamentals of the language. I also read about architecture and stuff like this. But all of them is focused on Java or the JVM world. I think some practices can be applied to other languages as well. But at the end I read all of them only to focus on “one language”.
To finally come to an end: I want to change this!
I want to learn a new language from the ground up and set it next to Java/Kotlin as my primary language. I don’t want to know another secondary language. I really want to focus on this and get deep into the ecosystem.
This is of course not the only reason. There are many more like “Go can be used on backends” which would replace my half known Python knowledge or “I want to see another world and which techniques they use and why”.
My rules
To limit myself a little bit — and don’t write such a bunch of text all the time — I set myself a few rules what I want to share and how.
- I publish everything in the “Golicious” publication
- I write about what I learned (e.g. “The Go syntax”)
- I explain how I learned (e.g. “I’ve read website XY”)
- I compare it (if it make sense) to Kotlin
I hope I can share as much as possible and don’t fall into a hole and learn without writing.
Disclaimer
Currently I’m very enthusiastic about Golang. And what I’ve seen and read so far is pretty great. But on the other hand I haven’t used Go yet. So it may happen — especially when I got deeper in the language — that I break up and decide to say “Ok, Go is not a language for me”. But even if this happen I’ll write about it of course.