There are sound reasons for believing that expertise in computer programming consists of two components, which should both be of interest to employers. Time-based expertise corresponds to the conventional notion of expertise, and is a function solely of the time spent programming. Multiskilling expertise, by contrast, accrues through exposure to a variety of programming languages and tasks, and is related to the cognitive development of high-level programming schemata. This multidimensional model was tested by developing measures to quantify the diversity of programming language usage and the diversity of programming tasks, and then assessing programming skill in 206 computer programmers. As predicted, factor analysis identified two underlying factors. The actual amount of time spent programming and the time since first learning to program loaded highly on one factor ("time-based skill"), while the number of languages known, the diversity of language usage, and the diversity of programming tasks loaded highly on the second factor ("multiskilling"). The data also revealed that programmers tend not to keep abreast of new developments in their field. Thus, many programmers who are "expert" in the time-based sense risk obsolescence due to a lack of multiskilling expertise.