An example of what we’ll be discussing in this article
New year's resolutions and I haven't always been the best of friends. For a long time, the concept of committing to doing something for a whole year, while being totally clueless about what I'd be doing even 2 months later felt like peak stupidity. I mean, the whole thing just seemed absurd, as I perfectly knew that the aspirations and centres of interest of my future self would simply no longer match those that I had at the time of making that decision.
Now the one good thing with growing older, is that you eventually start developing some sense of what works for you and what doesn't. Personally, I've learnt with time that all I need to do is first find some sort of general direction that I want to head towards. I can then start exploring all the possible forks and paths within that field, picking new ideas and concepts here and there along the way. This simple approach eventually leads me to making some discoveries that I wouldn't necessarily have even thought of making when starting that whole process.
Think of this as breadth-first search, but applied to personal growth.
For instance, my resolutions for last year were pretty simple:
Now let's get back to what we were discussing earlier. Ditching Colab forced me to look for alternative platforms and even languages, which in turn made me discover some great notebook environments such as Starboard.gg for JavaScript or Livebook for Elixir. Discovering about Elixir then led me to read a lot about Erlang and the BEAM virtual machine, which in turn got me interested in functional programming languages and concurrency.
And so on, and so forth.
You might be wondering why anybody would want to read my thoughts on goals setting, when there are already tons and tons of online articles and books on that topic. And dear Reader, you'd be absolutely right to think that way.
For online content, I think the best entry point is to check recent New Year's resolutions posts on Hacker News. They usually contain a lot of interesting ideas from some of the smartest people across the tech industry:
Recommending books is going to be a slightly more complicated task, as I wouldn't be a big fan of reading anything even loosely related to personal / career development in general. The few books I've both read and liked are these two fairly recent ones:
Now that we're done with theory, how should we approach setting up some goals then? As briefly mentioned earlier, a good way of getting started is to try and look for high-level themes. We'll intentionally leave aside personal goals (getting fit, buying a house, etc..), as the aim of this website is to solely focus on tech-related topics.
Thanks to this little exercise, you might get a clearer idea of what you'll want to explore over the next few months. But most importantly, you'll definitely know what you won't want to be wasting any time on.
For the next phase, let's pretend that we've made up our mind and decided to go for a new programming language. Now as discussed above, I personally don't feel like following this path in 2024, but I'm also aware that this is a popular resolution within the tech field.
I spent the pandemic trying out lots of different languages and runtimes, exploring frameworks, building small things. And so last year logically felt like the right time to stick with one and finally be able to use it when I needed to for work. What turned out to be slightly more difficult was to pick that one language that would acompany me for the whole year.
Go and Nim first felt like the obvious candidates, as I initially thought it'd be wise to pick a language that's halfway between Python and system languages such as C++ or Rust. Following on from a job interview last summer, I also briefly contemplated switching to a functional language, and more specifically to Elixir about which I had heard some great feedback from some former workmates.
But here's my potentially unpopular take as to why these would have all been bad choices in the end:
Look for a secondary language that you know you will use, not for a language that you think you'll like.
The main question you should ask yourself isn't whether you believe that a given language or framework seems interesting or not. Because what you don't want to happen, is end up investing time into growing some skills for 4 or 5 months, and then never find any concrete use-case to ever work with that language again. You'll rapidly forget all that you learnt during these weeks of intense studying.
In my case, being relatively comfortable with Python and JavaScript, and more importantly havings tons of opportunities to utilise these languages both at and outside of work, the choice became obvious. As learning TypeScript then became one of my goals for 2023 here's how I would approach going through that process again if I had to:
Now that we have a methodology that we can stick to, it's time we laid down our options:
When I was looking for a new job last summer I realised that cloud technologies, and more specifically AWS were a base requirement in almost every single job listing. To be honest this is an area that I wouldn't consider myself knowledgeable about, and getting a certification like the AWS Certified Machine Learning could fill that gap.
As I'm getting older, I'm also starting to feel less and less interested in freshly published machine learning papers and fancy concepts. In contrast, I've developed over the past few years a liking for the back-end side of things, and I could very well see myself experimenting with some cloud-based data storage services such as Snowflake (which we use where I work).
What I like about the vast world of IT, is that it contains so many interesting fields to explore that it would take over a lifetime to be competent in all. To tell the truth, I've been thinking for a while now about taking a network certifications such as Cisco's CCNA, or even something more basic like CompTIA's Network+. Besides, learning something new doesn't necessarily have to be done with a career related objective in mind. The goal here isn't to become an expert in a new IT field, but to know enough as to not sound like the person who wrote the following lines of dialogue:
Despite what its name suggests, a near year resolution can very much span across multiple years. Think of all the people who make the decision to stop smoking. Their plan isn't to start smoking again on January 1st the following year, but instead to carry their resolution over for as long as they can. I won't spend too much time om this now, but I've been contemplenting writing a technical book for a little while. The topic would be centered around utilising JavaScript as a second language for data science practitioners. I've gone as far as coming up with a fairly detailed table of contents but I doubt that I'll find the motivation to go much further than that this year.
So yeah, I still have no clue what I should be focusing on this year. But although I don't want to fall into that "it's the journey that matters not the destination" type of cliché, I really believe that going through this type of mental exercise at least once a year can be helpful to at least be able to come up with some sort of high-level plan. As briefly mentioned earlier, though most people tend to focus on what they want to do, I find it equally as important to actually know what would be a bad idea for you to invest some time into.