This is a slightly edited response I recently wrote to someone who asked how to learn skills that would be useful at a hackathon. It's my usual response when someone asks how to get started programming.
You should start by approaching the problem from a different perspective. You should be thinking "I want to build X. Now what do I need to learn to build that?" not "I want to learn to build stuff. What can I learn?"
The other day I read an article about global warming, and something about it keeps bugging me.1 My initial reaction was that someone would figure it all out; someone always does. But "someone" doesn't seem to be getting very far this time, and this is a big, important, world-changing problem. So, I thought, why is that "someone" not me?
A lot of people think about programming as some huge, difficult discipline that you sit down and learn like you would learn History or Math. I think I'll learn how to code today, one might say, and I've really been looking forward to that quantum physics class.
Here's the thing: almost no one learns how to code in a classroom, by hearing about it or by reading about it. People learn how to code by doing it, like driving a car. But most people learn how to drive a car because it gets them from Point A to Point B, not because driving is fun. Lots of people drive for fun, but hundreds of millions of people slog through traffic on their way to work every day.
Isaac is a student with a passion for technology, entrepreneurship, and. He also pursues , politics, and music. But mostly he builds things.