Summer Project, BreakOut with JavaScript

I like the idea of a summer project. Setting a goal, that I can work at with a specific deadline and limiting the scope. A few years back I tried to teach a younger cousin, who was in High School at the time, Java programming using a book titled Beginning Java Game Programming Second Edition. The project is still up on github, but has been stale for years. Granted I am not a teacher, but I assumed that because I know how to write code, I'd be able to teach it. It didn't work out and I always felt like I could've done a better job.

Fast forward a few years. I was going to teach my brother programming. I took a different approach this time. I always felt like if I had only started my programming career having learned C, I'd be a "Genius" programmer. So naturally I felt like I should start by teaching him C. For this I used the CS50 curriculm. This turned into another fail. So I switched it up to my favorite language instead, ruby! Unfortunately at this point, he had lost confidence and the desire. Double fail...

So about a week ago, I received an email from Citizen Schools + about a Volunteer Opportunity. Teaching Computer Science to 12 - 16 year olds. 90 minutes a week for 10 weeks. It starts this fall, and I’ve got to admit, I am really into the idea. Sure, I failed at teaching my 17 year old cousin, and failed again (twice) with my 28 year old brother. Maybe the younger the student the better I'd do? Maybe starting with the right language would be more successful. Maybe... but what it really comes down to is, I love programming. I am pretty persistent when its something I am passionate about.

I started looking at the curriculum, and found that I would mainly be teaching math and building a video game. It also requires teaching a programming language named Racket. Looks like I am going to need to brush up on my math and video game building skills. So I am going to rebuild the classic BreakOut game in javascript. Why javascript? I am just really into frontend web development at the moment, so what better language to use.

A few months ago I attended a ruby meetup on test driven development (TDD). I had done some TDD/BDD on a project or 2 prior but felt like it would be a great opportunity to pair with some fellow rubists. It was great, I paired with people more experienced than I as well as some less experienced. I picked up a lot for sure, as well as found some strengths I didn't know I had by teaching. If you're in the Silicon Valley area they are having another event at the end of July, and I'd highly recommend it.

So begins my summer project. Build an HTML5, JavaScript version of BreakOut using TDD, and blog about it. I need a name for the project, what are some of the elements at play here? Summer, JavaScript, I am writing this at my local Starbucks. How bout, IcedTwoPumpWhiteChocolateMochaNoWhipLiteIce... hmm, thats a little long. Lets keep it simple, breakout-with-javascript.

Sound like fun? Email or tweet at me and maybe we can learn something together.

comments powered by Disqus