Josh Kaufman in “The First 20 Hours: How to Learn Anything . . . Fast!”:
“Rapid skill acquisition is not rocket science. You simply decide what to practice, figure out the best way to practice, make time to practice, then practice until you reach your target level of performance.”
Pat Flynn and generalism yesterday. With generalism, you specialize in many things, but never at the same time.
You’ll aim somewhere lower than world-class and specialize as long as it makes sense. That means practice.
Josh Kaufman suggests 20 hours of (proper) practice to get to a useful level. This does not mean you can get a job doing it.
If a programming expert (let’s say they’ve taught before, too) sat down with you for an hour and taught you the basics, you’d be able to do basic math and some string manipulation.
It might not stick. But if you continued for 19 sessions you’d be able to build a small project. More importantly, you’d be at the point where you could teach yourself. You’ll be far ahead of someone who is 20 hours in without an expert to guide them.
That expert will help you avoid the rabbit holes.
Many early programming bugs will just be typos. Fixing that can take anywhere from a minute to hours (really) if you’re inexperienced and it might be somewhere in many files.
You learn from fixing these. Up to a point. Then it’s just time where you’re frustrated. An expert can help you skip through that frustration time so it can be used for learning more valuable concepts.
There are tons of good resources online for learning on your own. There are also bad ones. Even if you only have 1 hour with an expert instead of 20, they’ll be able to point you to the best resources to get going.
They’re there for step 2 in the above excerpt, helping you figure out the best way to practice.