5 must have skills to become a programmer (that you didn't know)