It’s pretty funny that I would write about specialization just after writing a post about wearing every hat.
But I’m not talking about that kind of specialization. I’m talking about picking a set of tools and really building my proficiency with them. As I’ve explored development and programming for the last 15 years or so, I’ve mostly done it because I was curious. It was a hobby of mine to track down the newest, shiniest things and play with them.
In this sense, I was always trying out something new. I’ve written pet projects in dozens of programming languages and I’ve used hundreds of different libraries. Unfortuantely, this method doesn’t really lend itself to mastery. If I want to really get good with my tools, I need to keep using the same ones.
So — I’ve decided that my backend tool of choice is Go. Go is a very powerful programming language with out of the box features that I love. There’s no need to download a framework to get going with Go. The standard library has most of the tools you need to create a strong backend design.
However, Go can be a little overkill in some scenarios. In those cases I want to utilize Python with Django or FastAPI. Python is a great language for productivity. I can get things up and running super fast, and I love this. In addition, Django is pretty opinionated framework. This means that it is sort of an “all tools included” approach. Everything I might need for a web app should have some native implementation in Django. If Django is too heavy weight, I have plenty of other options, too.
Finally, on a related note, I’ve also decided to really buckle down and master PostgreSQL. It’s an incredibly powerful, open-source, DBMS and basically an industry standard.
I’m still making up my mind about my front end tools. Ember.js looks promising and server side templates are always an option. In the future, I’ll likely consume an API with react or something, but that’s for later. For now — mastering Go and Django.