I'd consider the following to be fundamental concepts that noob developers should adopt in order to progress at a faster rate (not limited to noobs though - i still follow these and will continue to do so). I'd also consider everything else to be secondary.
To explain each point further:
Good naming conventions are key to understand what variables and methods are being used within the code. Messy and inconsistent names for things will cause confusion with not only other developers who look at the code but also oneself when coming back to the code after a long period of time. Good naming conventions also has the added benefit of providing the reader/developer with context and thus the need for comments is reduced.
For more complex statements, variables, methods and hacks it is important to outline exactly what it does and how it does it. Again, this provides context for other developers as well as oneself further down the road. Documentation may also be required for any 3rd party libraries that the code consumes, meaning all information regarding the code is in one place. Usually this kind of information is in the readme.md.
I have seen many aspiring as well as experienced developers get fixated with optimising code before it needs to be. I came to this conclusion early on in my career and I find it still holds true. To be clear I am not saying don't optimise code. It is important to do so, both for the machines interpreting it and the humans trying to read it. During my career I have developed and seen developed projects which have incredibly tight deadlines and thus fixating on making perfect code could be the difference between being first to market and lagging behind because the Unique selling point is no longer as unique. It's important to optimise, when you have the time, but the project has to be proven to work first.