Computing Applications

What Makes a Good Programmer?

An examination of the relationship of values, cognitive ability, and personality as predictors of object-oriented programming performance.
  1. Introduction
  2. Value Beliefs, Cognitive Ability, and Personality
  3. Methodology
  4. Results
  5. References
  6. Authors
  7. Figures

Individuals who desire structure and proof in problem solving exhibit a characteristic known as a theoretical value belief [12]; these individuals also exhibit other characteristics that are associated with programming and programmers. For instance, they are highly objective and focused, rarely showing interest in, or consideration of, artifacts that are unproven or untested. They routinely look for the reason and validation behind an event or object, and they frequently prefer to work individually [5, 10].

The preceding characteristics support our proposition that theoretical value belief is a potent indicator of programming performance, and inspire the question of whether it, in combination with cognitive ability and personality, will serve to strengthen the predictive model, or whether it overshadows the other predictors. Little, if any, research into an individual’s value beliefs and their performance exists. As an antecedent to both personality and cognition, it is important researchers examine this individual characteristic.

Previously published academic reports assessed a number of plausible predictive relationships between an individual’s personal attributes, including two constructs discussed later (cognitive ability and personality) and one’s capacity to successfully complete computer-programming tasks, but these studies examined procedural programming languages as the artifact of interest [5, 10]. In the experiment described here, we analyze the relationship between these constructs in two unique ways. First, a review of the literature on cognitive ability and human personality indicates that each construct is, in part, a derivative of an individual’s theoretical value belief. Therefore, in our model, we examine that specific individual value as an antecedent to both cognition and personality in the context of computer programming performance (see the figure here). Additionally, the use of object-oriented (OO) computer programming languages in industry has dramatically increased. In response to the evolving practices of computer programming, we employ an OO programming language as our artifact in this experiment. Thus, the current study addresses not only the addition of an individual’s theoretical value belief to programming performance predictors, but is specific to the OO programming arena, filling a gap in the current body of knowledge within information systems and computer programming research.

Back to Top

Value Beliefs, Cognitive Ability, and Personality

Values are multifaceted standards that guide conduct and serve as a mechanism of internal justification that provides an individual with feelings of morality and competence [12]. Value beliefs drive individuals to react differently in various situations; a person with an aesthetic value belief is motivated by art and beauty, a person with an economic value belief is motivated by pragmatism. Theoretical value belief, the construct of interest in this study, is a set of personal standards that directs an individual with respect to rational judgments in the psychoanalytic sense. This person values order, problem solutions and proofs, and is motivated by the discovery of truth. Because value beliefs provide the motivation behind actions on a deeply personal level, we posit that theoretical value belief is an antecedent to both cognitive ability and personality [1].

Traditionally, scientists define cognitive ability as the cerebral function that allows one to acquire, memorize, recall, combine, compare, and use information and conceptual skills in new contexts [10]. Cognitive ability, generally and in the knowledge domain of computer programming, is a valid predictor of performance [5]. Cognitive ability is only one of a set of individual-specific constructs that exhibit power to explain variability in task performance; personality is another widely used task performance predictor [3].

In this study, we assess four components of individual personality: self-esteem, generalized self-efficacy, locus of control, and neuroticism. Self-esteem is the overall value an individual places upon oneself as a person, whereas generalized self-efficacy is one’s estimation of one’s ability to use all available resources to perform a variety of tasks. Locus of control is the general belief an individual holds regarding the causes of events in his or her life; neuroticism is the tendency to focus on the negative aspects of the self. Research indicates that not only are these personality characteristics predictive of behavior, but that their aggregate may also be used as an indicator [7].

Back to Top


This study was administered over the course of six semesters beginning in the spring of 2003 and concluding in the summer of 2004. The subject group consisted of 162 undergraduate students enrolled in one of two OO programming courses taught at a national public university in the Southeastern U.S.; the final sample includes only those subjects who completed all portions of the study (139). Of the sample, 70% were male, and 90% were juniors or seniors. This sample group represents individuals who are within one year of entering the full-time work force; at this age, all independent variables (values, cognitive ability, and personality constructs) are well formed.

We measured our independent variables with previously validated instruments. Theoretical value belief was measured using the Allport-Lindzey-Vernon Study of Values [2]. Cognitive ability was measured using a battery of four cognitive scales from the Education Testing Service [4], the results of which were then aggregated to form the cognitive ability score. Personality was measured using Rosenberg’s Self-Esteem Scale [11], Judge’s Generalized Self-Efficacy Scale [7], Levenson’s Locus of Control Scale [9], and Eysenck and Eysenck’s Neuroticism scale [6]. Each of the measures was used individually and was aggregated into one personality score. Each of these measures forms a scale on which an individual will be placed. For instance, a person scoring well above the average of the sample on theoretical value belief is considered to have a strong theoretical value belief. An individual that scores well below the mean on cognitive ability is considered to have low cognitive ability. Our dependent variable, programming performance, was measured by three written exams, two timed laboratory exams, and a comprehensive programming assignment that spanned from problem formulation (logical design) through implementation. These scores were aggregated into a single performance measure.

The specific research questions posited in this study are:

  • Is theoretical value belief a valid predictor of proficiency in OO programming task performance?
  • Is cognitive ability a valid predictor of proficiency in OO programming task performance?
  • Is personality a valid predictor of OO programming task performance?
  • Are theoretical value belief, cognitive ability, and personality together valid predictors of OO programming task performance?

Back to Top


Extensive data analysis indicated that individually, each of the constructs of theoretical value belief, cognitive ability, and personality exhibits a predictive relationship with OO programming performance. The findings that both cognitive ability and personality predict programming ability parallel previous research in this area [5, 10]. An interesting finding from the current study is the relative degrees to which this is true. Previous research indicates that, of the two constructs, cognitive ability is the stronger predictor, but in our study, we found personality exhibited the greater predictive power.

From an organizational viewpoint, these results suggest recruiters should pay more attention to the personality attributes rather than the cognitive indicators of a potential hire. Specifically, grade point average may indicate an individual’s proclivity to learn but more correctly reflects short-term performance. Cognitive measures alone may not support the general assumption that the logic processes learned through the practice of computer programming are applicable to problem solving in other knowledge domains [8]. Such long-term broad performance may depend not only on cognitive ability but also on personality factors such as self-esteem and self-efficacy, which may induce an individual with less cognitive ability to work harder and outperform an individual with a higher cognitive base but less inclination to perform. Although this study does not directly address performance beyond the scope of each of the 16-week-long courses from which the collection of data occurred, there is significant published research to support the previous assertion and subsequently encourage the development of a time series study on the topic of the current study.

The finding that one’s theoretical value belief is also a valid indicator of programming performance is of significant interest. Results indicate that theoretical value is not only an indicator of programming performance, but is the strongest of the three constructs tested in this study. Our analysis indicates combining these three predictors in a single model causes the effect of cognitive ability on performance to be moderated. Separately, both personality and theoretical beliefs moderated cognitive ability as a predictor; hence, the suppression of cognitive ability as a predictor in the three-construct model is unsurprising.

Of particular interest is that theoretical value belief and personality are both extremely potent predictors of performance, even when combined in a model, but they show no direct association. In other words, a person with a strong theoretical value belief is equally as likely to succeed in programming performance as a person with a strong personality (high self-esteem, high self-efficacy, high locus of control, low neuroticism). There is also evidence in the results to suggest that theoretical value belief may be positively correlated with cognitive ability, whereas the results do not support any association between personality and cognitive ability.

As organizations continue to encounter uncertainties in their environment, the arena in which they operate will become increasingly complex. These situations require quick response and the ability to see, formulate, and solve complex problems both within and outside of the programming arena. Each individual within an organization must possess skills that enable these reactions. Because theoretical value belief, cognitive ability, and personality all appear to affect performance individually, and cognitive ability is the least important predictor in this study, we encourage further research in this area. We believe, and this study supports, that individuals with a strong theoretical value belief may provide a robust foundation for those skills.

Back to Top

Back to Top

Back to Top


UF1 Figure. A model of predictors of OO programming performance.

Back to top

    1. Ajzen, I. The theory of planned behavior. Organizational and Human Decision Processes 50 (1991), 179–211.

    2. Allport, G.W., Vernon, P.E., and Lindzey, C. A Study of Values. Riverside, Chicago, IL, 1970.

    3. Campbell, J.P, Ed. Modeling the performance prediction problem in industrial and organizational psychology. In Handbook of Industrial and Organizational Psychology 1. Consulting Psychologists Press, Palo Alto, CA, 1990, 687–732.

    4. ETS. Cognitive Aptitude and Intelligence Tests. Oryx Press, 1986.

    5. Evans, G.E. and Simkin, M.G. What best predicts computer proficiency? Commun. ACM 32, 11 (Nov. 1989), 1322–1327.

    6. Eysenck, H.J. and Eysenck, S.B.G. Manual of the Eysenck Personality Inventory. Educational and Industrial Testing Service, San Diego, CA, 1968.

    7. Judge, T.A., Locke, E.A., Durham, C.C., and Kluger, A.N. Dispositional effects on job and life satisfaction: The role of core evaluations. Journal of Applied Psychology 83, 1 (1998), 17–34.

    8. Kolling, M. The problem of teaching object-oriented programming. Journal of Object-Oriented Programming 11, 8 (1999), 8–15.

    9. Levenson, H. Differentiating among internal, powerful others, and chance. In H. Leftcourt, Ed., Research with the Locus of Control Construct 1, Academic Press, New York, 1981, 15–36.

    10. Mayer, R.E., Dyck, J.L., and Vilberg, W. Learning to program and learning to think: What's the connection? Commun. ACM 29, 7 (July 1986).

    11. Rosenberg, M. Society and the Adolescent Self-Image. Wesleyan University Press, Middletown, CT, 1989.

    12. Spranger, E. Types of Men: The Psychology and Ethics of Personality. Johnson Reprints, New York, 1966.

Join the Discussion (0)

Become a Member or Sign In to Post a Comment

The Latest from CACM

Shape the Future of Computing

ACM encourages its members to take a direct hand in shaping the future of the association. There are more ways than ever to get involved.

Get Involved

Communications of the ACM (CACM) is now a fully Open Access publication.

By opening CACM to the world, we hope to increase engagement among the broader computer science community and encourage non-members to discover the rich resources ACM has to offer.

Learn More