The pragmatic programmer from Journeyman to Master - Hunt, Andrew (Addison- Wesley, 2008)