"Wanted: Young, skinny, wirey fellows not over 18. Must be
expert riders willing to risk death daily. Orphans preferred.
Wages $25 per week."
-Pony Express advertisement, 1860
realize the skills, intellect and personality we seek are
rare, and our compensation plan reflects that. In return, we
expect TOTAL AND ABSOLUTE COMMITMENT to project success -- overcoming all obstacles to create applications on time
and within budget."
-Software developer advertisement, 1995
The stereotypical programmer is a shy young man who works in a darkened room, intensely concentrating on magical incantations that coax the computer to do his bidding. He can concentrate 12-16 hours at a time, often working through the night to realize his artistic vision. He subsists on pizza and Twinkies. When interrupted, the programming creature responds violently, hurling strings of cryptic acronyms at his interrupter-"TCP/IP, RPC, RCS, SCSI, ISA, ACM, and IEEE!" The programmer breaks his intense concentration only to attend Star Trek conventions and watch Monty Python reruns. He is sometimes regarded as an indispensable genius, sometimes as an eccentric artist. Vital information is stored in his head and his head alone. He is secure knowing that, valuable as he is, precious few people compete for his job.
USA Today reported that the techie nerd stereotype is so well entrenched that students in every grade ranked computer jobs near the bottom of their lists of career choices. The Wall Street Journal reported that film crews have difficulty presenting stories about leading-edge software companies in an interesting way because every story starts with "an office park, a cubicle, and a guy sitting there with a box on his desk." Sometimes the stereotype is fostered even inside the profession. The associate director of Stanford University's computer science program was quoted by the New York Times as saying that software jobs are "mind-numbingly boring."
How much of the stereotype is true, and what effect does it have on the programming occupation? To find out, let's look first at the programmer's personality then at the other elements of the stereotype.
The Meyers-Briggs Type Indicator
A common means of categorizing personality was developed by Katherine Briggs and Isabel Briggs Meyers and is called the Meyers-Briggs Type Indicator, or MBTI. The MBTI categorizes personality types in four ways:
After a person takes the MBTI test, that person is assigned one letter from each of the four categories, resulting in a designation such as ISTJ or ENTJ. These letters indicate an individual's personality tendencies or preferences; they don't necessarily indicate how a person will react in specific circumstances. For example, some people might have a natural preference for I (introversion) but have developed their E (extroversion) so that they can be more effective in a business setting. Test results might indicate such people are introverts even though most business associates would classify them as extroverts.
MBTI Results for Software Developers
Two large studies have found that the most common personality type for software developers is ISTJ (introversion, sensing, thinking, judging), a type that tends to be serious and quiet, practical, orderly, logical, and successful through concentration and thoroughness. ISTJs comprise 25-40 percent of software developers.
Programmers are indeed introverts. One-half to two-thirds of the software development population is introverted compared to about one-quarter of the general population. One reason the majority of software developers are Is might be that more Is pursue higher education and programmers are more educated than average. About 60 percent of software developers have attained at least a bachelor's degree, compared to about 25 percent of the general population.
The S/N (sensing/intuition) and T/F (thinking/feeling) attributes are particularly interesting because they describe an individual's decision-making style. Eighty to ninety percent of software developers are Ts, compared to about 50 percent of the general population. Compared to the average, Ts are more logical, analytical, scientific, dispassionate, cold, impersonal, concerned with matters of truth, and unconcerned with people's feelings.
Programmers are approximately evenly split between Ss and Ns, and the difference between the two will be immediately recognizable to most software developers. Ss are methodical, live in the world of what can be accomplished now; are precise, concrete, and practical; like to specialize; and like to develop a single idea in depth rather than several ideas at once. Ns are inventive, live in the world of possibility and theories, like to generalize, and like to explore many alternative ideas. An example of an S is an expert programmer who is intimately acquainted with every detail of a specific programming language or technology. An example of an N is a designer who considers wide-ranging possibilities and shrugs off low-level technical issues as "implementation details." Ss sometimes aggravate Ns because Ss go deep into technical details before Ns feel the breadth has been adequately explored. Ns sometimes aggravate Ss because Ns jump from one design idea to the next before Ss feel they have explored any particular technical area in sufficient depth.