3 Things Every Good Programmer MUST Have