A Guide to Learning How to Program in Your Spare Time – for Free!