How to Maximize Your Productivity (As a Software Developer or Learning Programming)