This spring I had the distinct honor of teaching a .Net programming course at Boise State University. Going into the course I was definitely unsure of what to expect. From David Starr’s horror stories of burning ERD’s to cautious skepticism from other professors I entered this senior level class half wondering if I’d be teaching the students C# for loops and if statements for a semester.
The more nauseous I got at the thought of teaching through a mundane semester of for loops and syntax the more I realized that these students deserved better; after all for many of these students my course would be the last programming course they took before they graduated and entered (or attempted to enter) the workforce.
I decided I had 1 semester to teach them all I could and maybe, just maybe turn them into junior programmers that I would want to hire myself. I decided I was going to throw them into the ocean and see how many could learn to swim before drowning in the waves of semi colons and compiler warnings. The results where exceptionally surprising:
- 25 – percentage of students who said WTF did I get myself into, gave up and just sunk
- 25 – percentage of students who realized they hadn’t been taught well up to this point but gritted their teeth and dug in to see what they could learn
- 50 – percentage of students who said, “Hell, yeah no more learning for loops! I actually want to come to this class. Can we learn how to do ___X___?”
- 3 – number of students who asked, “Can we build a networked XNA game for our class project?” and then built it! http://codingquirks.com/projects/xna-tanks/
- As the semester progressed several students began approaching me with ideas they had for software products or business they wanted to create but didn’t feel they had the technical expertise to start. At the same time I started hearing several senior level programmers talking about these great products they were going to write ‘someday’ and I began to see a possible convergence.
What if?
We stopped talking and actually built that product we’ve dreamed of and created more Software Craftsmen in the process?
What if, there was some way to bring together these students who are eager to learn and full of energy with these senior programmers who want to build something. Is it possible to create an informal setting where younger programmers can receive mentoring and code advice and also motivate the senior programmers to stop talking about that great product and actually build it?
Out of that idea was born something called the ‘Code Dojo’. As aspiring Software Craftsmen I feel that one of our duties is to teach others our craft and as an aspiring software entrepreneur I feel that one of the greatest tools toward actually shipping a product is a healthy dose of peer pressure.
We had our first Code Dojo meeting last month at the Coding Inertia office in downtown Boise. We barbequed some burgers, almost set off the building’s smoke alarms, used up all the whiteboard space and shared some great product ideas. The next Code Dojo meeting is set for Tuesday July 6th at 5:30. If you are in Boise and you are looking to help out some younger coders, hang out with some startups or just want to chill on the balcony for a while please stop by.
And where ever you are if you consider yourself an experienced programmer or a Software Craftsman then chances are that somebody helped you get there, now what are you doing to give back?
One more thing: I actually hired one of those students as an intern for the summer and he’s doing great.
Once again, you pick a date that I will not be able to make. You know, you should really start scheduling your activities around MY schedule.
Very cool. I’m on the recently formed software education team with the Idaho Technology Council (whom recently merged with the Idaho Software Employers Alliance). Part of our initiative is to have industry members teach high school and college students. If you (or any of your readers) would like to join us for our first meeting next week send me an e-mail. jeremy dot mullin at sybase.com
I believe you are right about your teaching method. I also recently tried to go off the beaten path of ‘teaching’. Instead of focusing on the ‘how’ during teaching, I focused on the ‘why would I apply XYZ?’ and ‘when would I apply XYZ?’. You can read about it here: http://geekswithblogs.net/alternativedotnet/archive/2010/06/28/140662.aspx
@J.D. Mullin – I recently won a membership to ITC at Idaho Startup Weekend. I hope to make it to a meeting here soon.