Jack of all trades, master of none. Often better, than a master of one.
When I first started programming, I had figured I would learn python. It was easy enough for a young me to learn. It was powerful and could do a whole lot. I told myself the more time I spent in this language the better I would be. I spent about two years learning python. It taught me a lot about programming. From variables to functions, user input, all the basic stuff we learn in our intro classes.
Python was not where I stopped. Shortly after I picked up C, and watched many courses available online to study more programming theory. I understood how efficiency is measured in a program, and how to avoid a lot of the common mistakes programmers make. By the end of that, I had the ability to understand large code bases, and proper program structure. At the core, I knew how the language was interacting with the operating system, and how my instructions were then interacting with the device drivers. Because of my early python experience, if I didn't quite need to full C suite of tooling, I could quickly script something together as well. My tools were expanding.
Enter Golang, and specifically Todd McLeod. Having access to the internet meant I had a wealth of knowledge at my fingertips. Hearing about this exciting programming language coming from Google I had decided to pick up a class on it. Perhaps It could teach me some things I didn't already know about programming. That is exactly what happened. Learning Go gave myself an abstraction layer above C. A lot of the data models and structures I had learned to create by hand, or with helper libraries, came default in Go. I was able to use my knowledge of how C worked, and rapidly build applications with a great set of libraries and frameworks for the Go language. My understanding allowed me to jump into the Go source to see how certain things were implemented, and understand how to best use them because of this.
Read more articles by Justyn at https://nextwavesolutions.io