Saturday, April 20, 2013

CODING: Confessions of an Unlikely Developer

When I was a teenager I thought about learning to become a software developer and wanted to but I was told I would be no good at it even if I tried, because I was lousy at math. It took me forever to say to myself "Well I may not be good at math, but I'm just gonna' try working on this Html".

Well I made a very crappy profile that had my name a yellow background and my picture. I was very happy. I thought "Maybe I can be a Web Designer, since they don't really code much." So I started using 'Gimp' and reading articles about how to become a Web Designer.

As time went on I realized, to work at NASA, making complicated Algorithms or making computer games, then yes I would really need to know higher levels of math.

That realization was my "light bulb" moment, when I realized that I could make websites without having to know high level math, embarrassing I know, but it's the truth. Getting past my fear of math has been like an adrenaline rush for wanting to become a really good Ruby on Rails developer one day.

I say this to encourage anyone else who has been told you need to be good at math to be good at coding. That is simply not true, with enough hard work I think virtually anyone can learn at least a high level programming language.

To me learning to code is like Chess. You have an 'opening' game, a 'middle' game and hopefully if you win an 'ending' game strategy. When you make your first move with a pawn, you have to think ahead 5 - 6 moves and plan out what you are going to do and also what your opponent is trying to do or might do.

Programming is about taking a real world problem and breaking it down into small bite sized chunks to work with and then making a series of steps to fix the problem.

All the best programmers I know like: +David Bock, +Colin MacDonald,  +Jim ,Gay , @keithrbennett,  +Matthew Gallagher, @Robbkidd, @michellekoeth, +Guille Carlos when I have a question or idea, immediately start by clarifying what I want to do. Then work backwards to break it down into small pieces and then give me possible ways to make it work. 

P.S. By the way, I may suck at math, but I'm good at chess, maybe that's why I like programming so much, who knows :-)  -Josh