Source: http://www.i-programmer.info/professional-programmer/i-programmer/2000-what-makes-a-programmer.html