June 1, 2012

Code Challenge Completed!

Ok, so I completed my code challenge. I wouldn't say I'm exactly triumphant, but I did complete my project and learn new things, which was the purpose of the challenge. So in that regard, the challenge was a success.

The Project

I chose Javascript as my challenge language. I decided to use Javascript to make an insulting Body Mass Index (BMI) calculator, which I assumed would be super easy. Hoo boy, was I ever wrong.

The Study Materials

So here's where I went wrong, I think. I spent a lot of time working from a single book, chapter by chapter, thinking it would be best to take a linear approach to learning Javascript.

I read Head First HTML5 Programming: Building Web Apps with JavaScript, which is a well-written and informative book, but I had a hard time putting the information in the book to use for my specific project. The book absolutely helped me get a grip on Javascript syntax. But, I was still struggling to weld all the pieces together into a coherent, insulting BMI calculator.

Because I was focused on a specific project, and fairly pressed for time, I did a lot of skimming and rush-reading while trying to find answers to my specific questions. I can't honestly say I finished this book since I jumped past whole chapters that didn't pertain to my project (geolocation? Maybe next time, Head First!).

In the end, I found the most useful information for this project on the venerable Stack Overflow, and from random Google searches for bits and bobs of Javascript. Not exactly my finest work by a long shot.

The Time Sinks

If you know me, you know I like fonts. So guess what took up like 2 hours of my code challenge time? Choosing fonts for the app's page. I mean really. Someone needs to stage an intervention.

You don't even want to know how much time I spent choosing the background photo. Seriously.

The Insult Personal Trainer

The Insult Personal Trainer has been sent back to the gym to do 1,000 situps. In case you're feeling left out for missing it, I've taken screenshots of the results screens:

Normal Weight:

Underweight:

Overweight:

Obese: