Hi P,
I think you need two basic skills:
I think you need two basic skills:
1.
You have to be a generalist. Learn enough to be able to solve a problem (a mobile app, a website, a weather station, whatever) end to end. You don't have to understand everything and cutting corners is fine to get to a working solution. The alternative is that you try to understand everything and that is just too much.
2. The other thing is to be an expert in one thing. Try to learn exhaustively about this one small little thing. Read all the books, articles, source code, marketing material, studies, etc. you can find about it. I think it's a valuable experience to try to learn everything about a small corner of the world. All things have more depth, subtlety and history once you start looking. You'll learn to see the trade-offs. The decisions that worked and those that didn't.
You should remember that you're in a long game. Progress is measured in months and years. Hope that helps.
Cheers
Thomas