Staying Relevant as a Frontend Engineer | by Davi Albuquerque Vieira

Keep yourself up-to-date

It’s exhausting, I agree.

Every year… Actually, every month (or day) a new tool is released. We are being hit by new libraries and frameworks all the time. State management, CSS processors, forms, reactive programming, etc.

Before I finish learning a framework, two new versions of the same one were released! What can we do to stay relevant? What can we do to be ready to start any kind of project no matter how fast things change?

There’s no “silver bullet” to solve this problem, but there are a few tricks that can make us pass through the exhausting challenge of keep learning all the time.

Understand one important thing: JavaScript is your friend.

If you are a frontend developer and you don’t understand the intricacies of JS Core, JavaScript Runtime, and Web APIs then I need to inform you that there’s still a way to go.

Frameworks come and go, the base never changes. I know, I know… Angular and ReactJS will not disappear in a near future, but the point is: Frontend frameworks and libraries are based on Javascript. The next trendy framework that will find a place on the market will, guess what, be based on Javascript. Typescript is a superset of Javascript.

It’s common to hear some developers saying: “why do I need to know what happens under the hood? I am not using that at work. I never had to use it!”

It hurts my feelings. People don’t realize how useful is to understand a language really deeply until an “unexpected behavior” happens.

JavaScript is quite peculiar, compared to other languages. There is an Event Loop to deal with async calls since the execution happens on a single thread. There are closures, execution contexts, prototype chains, events being propagated, scopes, etc.

The solution to a lot of bugs can be achieved simply by understanding those topics. Sometimes it’s just a matter of a quick glance at the code and that’s it: you know why is not working!

Understanding everything about JS looks terrifying. Is it possible? Well, I don’t know, but it is possible to try and we should do it. But where to start? I will make things easier for you. Here’s the list of all the topics you should master.

Too late! You already read it! There are no more excuses… you will have to make a checklist and tick the topics one by one.

Did you ever notice that when a new library starts to gain some more attention and become popular, other similar libraries start being released. Once Antoine Lavoisier said: “Nothing is lost, nothing is created, everything is transformed”. Damn, he is totally right!

In 2015, today’s most used libraries were released: Redux. Suggesting a solution for dealing with application state. It was the end of dealing with the mess created by frameworks that enforced the usage of “Two-Way Data Binding”. To be fair, the mess was created by developers, not by the frameworks, but that’s not the point here.

Inspired by Redux, another important library was created: NgRx. Commonly used with Angular and powered by RxJS, this library is in its essence, a more rich version of Redux. So we have the two main frameworks on the market being commonly used together with libraries with the same concept.

What’s the catch here? If you understand some important patterns like Flux, Observer and State, you just need to about boilerplate and syntax (easily researchable).

I remember when I was at school, watching physics classes, and the teachers were repeating the following sentence from time to time: “Don’t try to memorize the formulas, learn the theory behind them!”. Most of us were ignoring that because, of course, we were very immature. Kids.

When learning a new framework or how to use some library, it’s very important to understand the concepts, the motivations for the creation of that tool, the patterns that were used, etc.

Why to memorize all the boilerplate used by Redux or NgRx to make them work if we can understand flux? The specific functions or the code structure of a library can easily be found on the internet, in documentation, etc. But the real understanding of the concept is not quickly researchable.

Once you understand a concept, you will quickly learn any tool that applies this concept.

Keep an eye on trending new techs

You don’t need to be constantly learning new tools as soon as they are released. But the least you can do is to know about them.

How do I do that? Here are some suggestions:

And… do your own research. The internet is full of interesting content beyond funny memes.

Photo by Stefan Cosma on Unsplash

Motivation and Time Management are the keys to a successful learning path. How to keep motivated about learning more and more? How to find time in your busy stressful day?

Book some time for yourself

Use your calendar tool and download everything from your mind into the calendar. All the meetings you have, the tasks you want to accomplish and some time for yourself. Once you create events at some external tool, outside your mind, the act of fulfilling your compromises will become more comfortable.

Plan your studies ahead of time

I lost count of times when I decided to start studying but as soon as I started I realised that I didn’t know what to study or where to start.

Make a plan. Look for things related to the topics you want to cover. Then you save the content you found and organize a structure where you can pick the topics one by one. Prioritise them if you need. Here’s a suggestion of a tool you can use: Trello. There you can organize your topics like tasks on a Kanban board.

Don’t stop, do the minimum

Define the minimum effort you should do. When you stop studying completely, it’s hard to recover the motivation and start again, specially if you left some studies unfinished.

Create you own rule. Example: at least 15 minutes per day, at least watch a video, at least read an article, etc.

Short-term Goals

Having a list of small goals can be easier to manage. Try to break down goals like: “Learn ReactJS”. It’s better to create some smaller goals, reachable in a short amount of time.

Example: “Learn how to create a component”, “Learning how to pass data between Parent-Child components”, etc.

It’s more likely that you will give up huge goals. Smaller goals keep your motivation high. It brings you the good feeling of doing a task.

Leave a Comment