Programming is Awesome!Created on :Thursday, March 14, 2013
(A word of caution: I woke up at 3AM and started writing this for some reason. I'm not even going to proof read it. Hah!)
The other day I wrote a comment on a Facebook status. Before I hit the enter key and committed the thought to the internet for eternity, I decided that maybe I shouldn't say it. My internal social filter decided that it was best kept to myself for whatever reason. This gave me a little bit of inspiration. I thought I should make a browser extension that archives those fleeting thoughts. Those comments that never came to be. I could save them all and their contexts and look at them at some time in the future. It wold be the unfiltered version of me. It would be the me that self-doubt and social pressure has stifled. What a fun idea! The cool thing is that I can build it. From random idea to working prototype in a few hours. How exciting is the time we live in?
Its not very insightful to say that computers have changed the world. I think that is obvious to everyone. I think most people understand computers from a consumer point of view. Everyone can update their twitter feed with a photo of their lunch. I argue that you all, everyone taking the time to read this, can do so much more. I'm talking about creating software.
You are probably thinking, "why would I want to do that?" or "that is too difficult", but you do want to do it and it's not that difficult.
I'll tell you why you want to do it. This is the first time in human history that a person can dream up a unique invention, design it, prototype it, and sell it all without leaving their bed room. You don't have to go out and buy materials to build it. You don't need some crazy logistical solution to distribute it. You just need your idea and time. If your idea is good, it will distribute itself. I know most of you have thought, "I wish there was a website that did 'X'" or "This is kind of dumb, why doesn't it work like 'Y'". Hey guess what, if you can think of a better way to do it, then build it. All you need is a computer and some time.
Its not too difficult. If I can do it, anyone can. A lot of my friends think I'm some sort of computer whiz kid. I'm not special and I'm not super intelligent. Programming is just something I've been interested in for a long time. Its something that a lot of my friends weren't that interested in. So, from their point of view, it comes off as magic, but its not. I wish I could play the guitar or create some awesome piece of art, but I can't. That is magic to me, and the people that can do it, I consider geniuses. Really you just need a goal. Something that you are really interested in and the rest will fall into place. Its amazing the resources you will find online that can teach you everything you need to get started.
There is also something else that kind of ties into how awesome programming is. Imagine you want to teach a kid how to read and write. Do you tell the kid about the alphabet and how it represents sounds? Yeah, that's part of it. Now how do you inspire that kid to WANT to read and write? Do you tell her how awesome letters and words are? No! You read that kid some awesome story about adventure or magic! Now, how do you inspire a kid to WANT to know math? You do it by teaching that kid how to program. You tell that kid that they are going to make a video game. Before you know it, that kid is going to be asking you how to store things like the player's current score. Guess what, that kid just asked to learn about the concept of a variable and is on her way to understanding algebra. How do you make these angry birds fly... the kid is learning physics. Programming gives math a context, just like a story gives language a context.
Programming will continue to change the world, but not just by great new software. It will inspire a generation of kids to be creative and to embrace mathematics. It will allow unique ideas to be tested on an instant and global economy. It will continue to give us tools to share information in more precise and useful ways. Its a skill that everyone can learn and benefit from and I want you to give it a try. Here are some links to get you started:
I should also add that programming forces you to learn new things. I'll give one quick example. Last year I became interested in artificial intelligence. I wanted to model an ant colony, because I thought their behavior could be contained in an algorithm. I ended up reading a few books about ants. They are fascinating! I probably would have never taken the time to learn about them if I wasn't trying to program their behavior.