Lately, when people ask me "how do I get started learning to program?" I tell them the exact opposite of the OP.
I say, as I've been saying for years, that they should just think of something they want to build, and try to figure it out. And then I add this:
It doesn't matter if you succeed or fail. Programming is constant failure. You try something and it doesn't work. You try again and it doesn't work. You might try 50 different things before you find the one that works.
And while success might matter when you're on the job, it doesn't matter when you're learning. Because you learn exactly as much from your failures as your successes. When you figure out that Rails won't work for your streaming media server because it can't hold enough connections open, after investing weeks of investment.... great! You learned a thousand important lessons.
If you had succeeded, because you randomly chose Node.js at the start, you would've actually only learned 999 important lessons.
Which isn't to say that I disagree with the OP... often success does compound. But learning to program, at the very least, is an area where it's just Attempt--not Success or Failure-- that compounds.
I'm not sure how I could have expressed this better, but I'm not opposing success and failure, just saying that growth-minded decisions lead to more success.
Learning to program is a great example of a growth activity.
I say, as I've been saying for years, that they should just think of something they want to build, and try to figure it out. And then I add this:
It doesn't matter if you succeed or fail. Programming is constant failure. You try something and it doesn't work. You try again and it doesn't work. You might try 50 different things before you find the one that works.
And while success might matter when you're on the job, it doesn't matter when you're learning. Because you learn exactly as much from your failures as your successes. When you figure out that Rails won't work for your streaming media server because it can't hold enough connections open, after investing weeks of investment.... great! You learned a thousand important lessons.
If you had succeeded, because you randomly chose Node.js at the start, you would've actually only learned 999 important lessons.
Which isn't to say that I disagree with the OP... often success does compound. But learning to program, at the very least, is an area where it's just Attempt--not Success or Failure-- that compounds.