As the new year begins, a lot of people will be taking this time to set some new year resolutions, both personal and also work related. I’ve never been a huge believer in new year resolutions, as I feel that if there is something you want to improve, then it shouldn’t wait until the 1st of January each year.
If you are one of the many people that make new year resolutions or just want some ideas on how you could improve, then below are some suggestions:
Learn a new language
Most developers have one or two languages that they are comfortable with and never branch out beyond that. For a long time, I was the same, with PHP as my backend language of choice, but branched out and done Ruby, Python and NodeJS over the years. I was starting to do more JavaScript on the frontend, so it made sense to take it more seriously on the server as well.
I now use JavaScript as my primary language, and couldn’t be happier with it. Although I still dabble with other languages, which once you have a solid understanding of one or two, picking up others is much simpler.
In 2019, I plan to experiment with the different flavors of JavaScript more to see what they offer.
Try a new library/framework
If you don’t want to go as far as learning a new language, you could try out a new framework, or a selection of packages/libraries. In some cases, it might be a more modern and feature-rich alternative to something you already use, or it could be a new approach to a common problem you solve.
If you spend most of your time developing sites with a CMS like WordPress, you might want to try some lightweight alternatives or headless CMSs.
Learn a new paradigm or design pattern
Imperative, declarative, functional and object-oriented are the most common programming paradigms. In most cases, the one you use will be determined by the language you choose, although some languages can support many different styles. I mostly used to do imperative and then object-oriented, but in the last year switched primarily to functional programming.
Even if you don’t use the new paradigm for everything (and often times, using the same solution everywhere isn’t the best approach), it will help you to be a better developer overall.
Explore topics related to development
For the majority of my career, I’ve been a full stack developer and had an interest in everything that makes a website. Now my main focus is on backend development, but I still have an interest in many other related areas. I’ve started working with React lately and that is set to continue this year.
If you’re a frontend developer, you might want to explore design or backend development. If you’re a backend developer you might want to explore frontend development or performance and server management.
Teach others
It has often been said that the best way to truly learn something new is to teach it to someone else. The act of explaining something to someone helps to cement the ideas and understanding in your mind and helps you to become an expert.
Although it’s common to suffer from impostor syndrome, especially when you are just learning something new, that is the best time to share your learnings and help teach someone else. You will work your way through problems in a way similar to someone else new, therefore your explanation might make a lot more sense than from an expert, which assumes a certain level of knowledge or has forgotten about some of the nuances which seem obvious to them.
Write regularly
You don’t need to start a blog (although I heavily encourage it), writing is a great way to reinforce what you’re doing and can also help others. Even if you only write for yourself, there are still benefits, including improved learning, quality of writing and communication skills.
If you do take the route of writing every day, that doesn’t mean you need to publish something every single day. Some of the content on my blog is short and can easily be done in a single day, but others are much more in depth and will take several days of writing to complete.
Contribute to open source
Every day, we all use open source in one form or another. Not only does it make our jobs possible, but it also makes us much more productive and capable as a result. Even if you don’t think you’re able to give back in terms of code, there are plenty of other ways you can help, such as improving documentation, improving test coverage, helping with issues and generally being active in the community and more.
And don’t worry that your contribution might not be significant enough. I recently contributed to Gatsby with a 5 line pull request that fixed some capitalization. It was an issue which someone could fix themselves (it was in the starter kit, rather than the core package, which means it’s easy for users to change themselves) in a few seconds, but it just helps improve the user experience significantly to not have to.
Master your tools
Every day, we spend many hours typing away at our editors, terminals, and using a whole plethora of other tools. Given how much time you spend here, small gains can be amplified over time. So it makes sense to learn the keyboard shortcuts, set up templates, understand the version control flow and how to manage tasks effectively.
Refresh your website
Working on your personal website is a great way to implement a lot of the above. You can experiment with new tools and technologies, as well as having a place to write and share your experiences.
With this site, I’ve often fallen into the trap of constantly working on the technical details and never getting around to the content, which is why I’ve launched it with the default Gatsby blog starter kit and am iterating on both the design and functionality over time.