5 tools every programmer should use