Goals with this article
In this article, I want to focus on these points:
- Explain the rule of hooks and how this motivated me to write this article.
- Sometimes, we don't have time to learn at work, this is a problem
- Identifying and noting new concepts for future study is a key skill.
- Share my approach of compiling new themes on Saturday mornings and studying the most relevant ones.
- Talk about the importance of continuous learning to avoid becoming complacent with routine workflows.
The motivation behind this article
I was working on a project at my job this week and came across a common React error that some of you have probably seen before.
Can you guess the error by looking at the example code below?
I've lost count of how many times I've caused this error and how many times I've managed to resolve it.
The error happens because, in React, hooks must be called in the same order every time a component renders to maintain consistent state management.
This happens because React uses a linked list to keep track of the hooks in a component. When hooks are called in the same order each time a component renders, React can correctly associate the hook calls with the state and effects they manage. If the order changes, React can’t reliably match hook calls with their previous state, leading to bugs.
So calling hooks at the top level of your React function ensures ordering is maintained.
But what does this have to do with the title of the article?
As I mentioned earlier, this is not the first time I've encountered this error. Since the first time I resolved it, the situation has become almost automatic: I encounter this error, I fix it, and I move on until the next time.
The problem is that, even though I know how to fix it, I never truly understood why it happened. I never took the time to study and thoroughly read the official documentation Rules of Hooks to understand it.
And this is the main issue:
In the workplace, our main goal is to complete tasks and deliver results.
This isn’t exclusive to the case of hooks and it doesn’t happen rarely. Almost every day, we find opportunities to do something better or learn something new, but often, due to the rush of routine, we can’t stop and study. If the task is done, at that moment, that’s what matters.
The AI era
This situation has been increasing with the rise of AI in recent years. Nowadays, it’s much easier to find an error and, in a moment of haste, ask ChatGPT to solve it. We no longer need to spend so much time searching forums or documentation to try to understand and resolve issues.
I'm not naive enough to think that every programmer knows 100% of what they’re doing or that they deliver the best possible version; many deliver code that could be improved or done in better ways. Using AI to fill these gaps is a very important skill today, but you can’t allow yourself to fall behind.
You Fall Behind
This is the main way to differentiate a professional who will succeed in the future from one who will not. The successful professional can learn amidst the daily workflow, even if it's just a little, and most of the time can find time to understand what they are doing.
What You Can Start Doing Today to Improve This
One tip I have is to keep a document with frequent notes to study later.
It’s important not to get lost and let this document get too big. Curate it whenever you can so that your list doesn’t get too long and you end up never studying anything.
I like to use Obsidian (you can use any To-do app, even a calendar) because I can add notes by day; for example, I add to the following Saturday's daily note all the content I see during the week:
With this, I'm able to sit at my desk on Saturday and see each of the concepts I took note of. If it's just curiosity or a different way of doing something I already knew, I'll do it right there and give it a little study. If it's something more complex that will take a lot of time, I create a study plan or spend the whole morning delving deeper into the subject.
Remember that the main goal here is to keep track of your discoveries when you don't have time to go deep and understand.
More Things
I believe I have many cool things to share about how I organize my study and make the most of it. One of the main tools I use is Obsidian.
Let me know in the comments if you want an article about dev study organization in Obsidian.
Also, check my post about how you can learn new things: https://dev.to/lucaschitolina/my-approach-to-learn-tailwind-css-and-new-things-1n46
Top comments (7)
I love the name React , it suits a lot what it does. Its logic and behaviour (from what I read in your article) reminds me of what I learnt about assembler programming language but I might be wrong, I'm complete beginner). Keep up the great work!
Although people make fun of React a lot, or talk bad about it on the internet, it is a great tool for today. Thank you my friend!
This is great advice! Thanks for sharing :)
Staying stagnant in your skillset is a recipe for career stagnation, if not decline.
Upskilling and reskilling are crucial for several reasons:
Technology is Evolving at breakneck speed: New tools, software, and even entire industries are constantly emerging. Keeping your skillset relevant requires continuous learning to stay ahead of the curve.
Upskilling Can Open New Doors: New skills can pave the way for promotions, career changes, or even starting your own business.
Agreed. I have been teaching myself how to promptgram and have been training my own LLM to help me troubleshoot my own scripts and processes. I refuse to be part of the huge majority who is going to get replaced by AI as it matures in the next decade.
Yes! Building habits to support frequent small learning and reflection, while still delivering on urgent routine priorities, leads to long term success and satisfaction
And that's the secret! It's simpler than we think