The programming world is full of experts, semi-experts and brand new folks. No matter where we find ourselves today, we will always digress to being new at something we're doing.
Set Yourself Apart
Studying is the key to climbing up the ladder. When our study is coupled with lab time we are exposing ourselves to having to synthesize the theory (reading) part.
It is the lab time which drives home the concepts and allows us to create our own internal way of remembering things. Kind of like a mnemonic does.
For example when lamba expressions first came out someone had already adopted a way to speak what it did. Like this:
collection.map(item => function2(item));
The code above could be spoken as "for each item in collection, go to function2. By being able to "speak" the code we are able to synthesize this pattern any time we want to "speak".
What doesn't happen when we exclude lab time, is that we understand but can't "speak". For programming circles that's not good.
We know we are on the path when we do things like establish consistent patterns. One of them is good naming conventions. Here's a better example.
The function above leaves no ambiguity to programmers now or in the future. It's self documenting in a way.
The huge advantage with TypeScript is that it is self-documenting and self-discoverable. Just right click on any function and we can find all references as well as navigate immediately to the definition!
The advantage of JSDOC is that the user of our components will see the description when hovering over the function or property. This allows us to put in dependencies and explain what each does in a more natural "spoken" manner.
If we spend 6 hours a day inside of the Chrome Debugger, we are forced to pick up deep understanding. It's one thing to write code another to debug it. Favor lab time over just study.
Manual Test Time
Always retest all changes. For example, we may make a simple CSS change. But unless we test all components that use it we have no idea what that change may foul up.
Yes, but... It's almost a total separate development effort. Cypress is one of the best right now, it makes automation work easy. But unless you are writing in depth automation tests, they are mostly acting as a Smoke test. Smoke tests are good for regression only. They identify things that once worked but do not work now.
That's how we set ourselves apart, but the problem is often we don't have the time to do these things. The real issue; however, we don't have the time to ignore them. Do yourself a favor and stick to your lab proved ways of doing things that work for you.