What to Learn in 2019
This post won't tell you which programming languages and frameworks you should learn in 2019. This post is about making a commitment to learning and embracing curiosity.
In terms of learning and myself, 2018 was a deep dive to Ruby and JavaScript. Those were the languages I programmed with at my day job and on the weekends and nights. As this year started to come to an end, my desire to do more exploring outside of Ruby and JavaScript and their ecosystems increased. I was ready to add more on my plate.
Unfortunately, my desires did not exactly manifest themselves in studying and practice. If I'm being truly honest with myself, I feel like I could have done a little more work and a little less day dreaming about all the possible technologies I could learn and experiment with.
There is no one reason why I ended up spinning my wheels. However, I am aware of some of the internal conflicts that contributed to this indecisiveness. A part of me is afraid that I won't be able to focus on the technologies that will make me relevant as a software developer in the future. A part of me is afraid that I'll miss an opportunity because I chose to learn the wrong programming language.
We all end up reading articles that list the most popular programming languages and frameworks. Even if we don't seek out those articles, they will pop up on our social media feeds and article suggestions. On those lists, there will be technologies that we haven't tried out or learned yet. We get anxious. Our fear of missing out increases.
It's these kind of feelings that make me want to brush up on my Python skills, laser focus myself to JavaScript, or start learning Java.
I'm not hating on any of these languages. It's just that for example in the case of Python, I'm afraid that the language is too similar to Ruby. While focusing on Python will increase the amount of opportunities I have on the job market, it won't present me a true challenge or elevate me dramatically as a programmer.
This week I have made a decision to focus my efforts to learn new technologies on things that truly interest and inspire me. I'm not going to care which programming languages have the highest salaries or the most secure career paths. I will block out a lot of opinions.
Here are the three new languages and frameworks I'm hoping to learn in 2019. If I get to study all of these technologies and build a small project with each one of them, I will be satisfied.
- Go: Go has a philosophy of minimalism behind it: the language's core has limited features to make it easier for newcomers to start writing and reading Go as soon as possible. I'm excited about this philosophy. Go's emphasis on concurrency is an extra bonus.
- Elm: Elm's value proposition of highly performant UIs with no run time exceptions is compelling. In addition to this, I'm simply intrigued by the idea of building a modern UI with something else than JavaScript.
- Flutter: I cannot lie; the biggest reason why Flutter has caught my interest is because it's so new and shiny (beta version of Flutter was released this February and version 1.0 came out in December). In 2019, I'm hoping to learn more about mobile development. Flutter seems like the perfect accomplice for this objective.
In addition to Go, Elm, and Flutter, I will continue to perfect my skills with Ruby and JavaScript. I will strive to improve on my abilities that currently generate value for my clients and teams. But I will also make time for genuine curiosity. Not because it will add to my yearly earnings. But because it's inspiring and it's fun.
This list is not your list. You should make your own. You might be drawn to different things and there is nothing wrong with that. There is also nothing wrong with focusing on technology-specific skills that are sought after in the job market; you might be looking for your first developer job or you might be looking for an opportunity to switch companies.
The main thing is stop spinning those wheels and make a commitment.
Happy holidays y'all!