Soft skills are also important, and are somewhat overlooked by many candidates. Soft skills are verbal and written communication, enthusiasm, and ability to work on a team effectively. Some others are professionalism and general social ability. Though these skills are not necessary at all for a person to be simply an excellent programmer, they are almost always necessary for a person who wants to be a paid excellent programmer. This is because a huge majority of programming jobs require employees to work in teams, and collaborate with clients, managers, and subordinates effectively.
Carnoy, M., Castells, M., & Benner, C. (1997). Labour markets and employment practices in the age of flexibility: a case study of Silicon Valley. International Labour Review, 13627-48. http://libaccess.sjlibrary.org/login?url=http://search.ebscohost.com/login.aspx?direct=true&db=ofm&AN=510557333&site=ehost-live
Thomas, V. L. (1994). Link up to employment and entrepreneurial opportunities. Black Collegian, 25(1), 97. http://libaccess.sjlibrary.org/login?url=http://search.ebscohost.com/login.aspx?direct=true&db=aph&AN=9411080981&site=ehost-live
First Picture Link:
Second Picture Link: