6 places to take free and affordable classes online - on everything from programming to photography