What I do when learning a new framework/language
Tags: learning, learningtocode, framework
Published: 2024-05-08 12:56:08

For software engineers who have been employed for a while, learning a new language or framework may seem like something not too worthwhile pursuing, especially if your current job doesn’t require this new set of knowledge or there’s not much immediate use for it.

On the contrary, for others who are in between jobs, at a new work environment, or just simply out of curiosity or interest for a new language or framework, however, this topic on “getting started” seems to come up quite frequently. How, and where should I begin?

I struggled with this question at the start, and often ended up in “tutorial hell”, where there was less initiative taken on my part whilst just simply following tutorials online for the specific topic I was interested in. Over the years, I’ve experimented with different ways of learning and found some things that have helped to improve the overall experience.

While this is in no way a model to follow, here are some steps I personally take in order to boost my learning and make it enjoyable in the process:

## 1. Ask yourself WHY you are keen in learning this language/framework
Is it to build a backend using this new framework, to experiment building a project using OOP concepts that this language specialises in? Was it a flashy YouTube tutorial regarding this new tech, or simply an interest sparked out of curiosity to learn a new skill to add to your arsenal? The list of motivations is endless, but try to discover what caught your eye in the first place. From there, it helps to tie into step 2 of my learning model.

## 2. What are you interested to build with this newfound knowledge?
If you already had a strong motivation in step 1, you can jump right ahead to step 3. If not, look around! Google around and scour the Internet for what others have done with this language/framework; if those projects seem too daunting, is there something in your existing list of repositories that you could possibly replicate and enhance?

There’s no shame in building any type or size of project, as long as you personally feel that it can benefit you in some way! I remember my first time wanting to dive into NodeJS and Express, my motivation was just to build a single endpoint and call it a day!

## 3. I got my motivation, how do I get started?
With your goal in mind, it becomes a lot easier to motivate yourself to spend free time to pursue this new knowledge. Upon completion of your project, fulfilment will feel even stronger as well! But where do we start..?

Personally, veterans in the field that I’ve spoken to always recommend reading documentation. Over the years, I found this piece of advice to be very useful, but to add to that, I would incorporate additional practice on top of this.

Don’t just simply follow the documentation; build something similar (or different if you are adventurous) from what’s given in the tutorial. Don’t just take the code off the tutorial and play around with it, really code out something that uses the same concepts but put your own little twist on it. This way, you’ll get a sensing of how the different pieces of the puzzle come together to deliver the effect of the language/framework.

For eg. when I started out learning Vue, I deep dove into the documentation, but experimented on key concepts such as watchers, lifecycle hooks as well as two-way dynamic bindings, in order to get a feel of the enhancements Vue was doing behind the scenes to make the magic happen. This increased my appreciation of the framework and further motivated me to try out other more obscure parts of the framework to incorporate into my future projects.

## 4. Tie other libraries and packages together
When you’re more confident with what you’ve experimented with, and have tried your hand at a few projects of your own, you can begin to search online for libraries that complement your desired framework/language.

See if there any quality of life changes you can make through the use of specific libraries or packages created by other awesome developers online! This way, you get to learn how to integrate these tech into your already growing projects, further enhancing your own learning in many facets, as well as making the project even more exciting than before!

Brainstorm new features or enhancements you can make to your current project, and see if they are doable via packages/existing libraries. Who knows, you may be the one who creates that new package!

## 5. Don’t forget to enjoy the process
Last but most importantly, enjoy the process. Being a developer is awesome, and it opens up many possibilities that we sometimes take for granted.

It’s easy to get caught up in the struggle of learning a new technology to apply, and forget about the whole point of learning these in the first place — to create beautiful products for ourselves/our clients! Cherish the learning process and when in doubt, ask away on forums and help those that have encountered similar problems that you may have squashed in the past.

When you feel exhausted from learning and absorbing new content, take a break; there’s no shame in that! Come back stronger and tackle the problems head on on another day, cheers to learning whatever new comes your way!

If you have any tips for someone learning a new language/framework/technology, feel free to post in the comments and get a discussion going, catch you in the next article!