Programming Apprenticeship

I’ve been watching a lot of Holmes Inspection on HGTV lately. If you’re not familiar with the show Mike Holmes is the general contractor who goes into a home that has some problems – usually bad renovations have left the home structurally unsound, mold problems, overloaded electrical boxes and a full list of instances of things not built to code. Holmes and his team then come in to rebuild the house right.

One of the interesting dynamics that you see on the show is the teacher – apprentice relation between Mike Holmes and his lead contractor Damon. Mike, being the expert, will asses the house first then watch Damon asses the house and quiz him along the way. It’s the tone of those conversations where you can tell there is a trusting relationship between the two of them and you can see over the seasons as Damon has grown more assertive and confident in his skills.

Construction is a lot like programming. A developer has to write code so that it is stable and structured to allow it to stay that way in the future. Rebuilding a house is akin to refactoring a code base – many of the problems are easy to identify, the solutions sometimes require some creativity to solve but generally follow patterns and best practices. Initial assessments rarely reveal the full extent of problems in a house which leads to time and cost overruns which is typical of software development as well.

With these similarities perhaps it makes sense to model programming education after the more established and historically proven teacher-apprentice style used in construction. This would serve to allow beginner and intermediate programmers to continue learning once they enter the job market. Constructive code review from peers is really just a start. Working in an environment where there is a good mix of senior and junior developers and where you are challenged to explain and defend your code and design choices is how to create a truly great development team.

Will the industry naturally move in this direction as it matures or is it doomed as companies are only interested in hiring the cheapest entry level programmers and only giving them time push out code?

Bookmark and Share

Related posts:

  1. Understanding the Amazon Product Advertising API
  2. One of My Favorite Internet Marketers
  3. What is Leverage
  4. Internet Marketing to success with emails
  5. Proof Einstein was Wrong
Stumble it!


2 Tweets

RSS feed | Trackback URI

2 Comments »

Comment by halotis
2010-06-23 10:01:18

Programming Apprenticeship – I’ve been watching a lot of Holmes Inspection on HGTV lately. If you’re n.. http://bit.ly/dltZ87

This comment was originally posted on Twitter

 
Comment by rufishki
2010-06-29 07:00:58

Programming Apprenticeship – I’ve been watching a lot of Holmes Inspection on HGTV lately. If you’re n.. http://bit.ly/cI92Hm

This comment was originally posted on Twitter

 
Name (required)
E-mail (required - never shown publicly)
URI
Subscribe to comments via email
Your Comment (smaller size | larger size)
You may use <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped=""> in your comment.

Additional comments powered by BackType