Don't waste your time reading docs
I was hopelessly pouring through coding books hoping for the knowledge to stick to my brain.
Reading and re-reading C++ books so I wouldn't "forget" important string functions.
Memorizing huge swaths of random C# classes and methods (like seriously?)
But eventually I realized what a stupid waste of time this was.
I should never have paid so much attention to these random APIs and docs.
I should have focused on action.
I should have focused on general essential concepts instead of obsessing with specifics of ever-changing languages and frameworks.
Why waste so much time on API specifics when you can easily look it up on Google?
Most of the knowledge docs give only matter on a need-to-know basis.
When I need it, I will search for it and be on my way.
And eventually it will stick to my brain after I search and use it enough times -- which is why action is so important -- you'll have far greater efficiency and retention when you learn by doing rather than memorizing random facts.
Look, I don't really need to know how to loop through an array in PHP or JavaScript or whatever beforehand.
But I need to understand iteration as a coding construct and how I can use it to solve problems.
Problem solving. Isn't that what computing is all about?
If you're new to coding and learning say Python, your goal is NOT to become a Python expert.
Your goal is to learn how to think like a computer.
This isn't about Python.
You learned about Python variables so you can use data storage to solve problems.
You'll learn about Python arrays and dictionaries so you can structure data effectively to solve problems.
You'll learn about if statements so you can make dynamic decisions for all the different scenarios a problem may bring.
So you see you learn the tool not for the tool's sake but for why it exists in the first place.
Now you can effortlessly swap out one tool for another.
New languages can be learned on the fly: Dart, PHP, C#, whatever.
Even "weird" languages like Lisp only take a bit of familiarization to figure out:
When you look at a new problem your mind computerizes it easily.
What are the inputs and outputs? And what's the best to represent them for efficient storage and retrieval?
What sequence of transformations are needed to act on the data and inputs to get our desired result?
What are the conditions that alter the pathways through the sequence?
How do we break the data and the transformations into more manageable units at different levels of abstraction?
All this you can do without even writing a single line of code.
And that's the thing -- coding isn't the typing. The typing is actually more of a passive activity.
The real coding was the thinking you did by asking all the questions the above to design the solution.
Once the solution has been fleshed out, implementation is a no-brainer, whether it's C++, PHP, Dart or JavaScript.