In the present paper, a qualitative research of the cognitive skills of experienced software developers is presented. The data for the research was gathered using the Delphi method. The respondents were 11 software developers who have worked at least five years after their graduation. Two questionnaire rounds were conducted. In the first round, the respondents mentioned altogether 32 different skills. In the second round, 10 of the respondents answered and evaluated the difficulty of these 32 skills (e.g., does the skill efficiently differentiate experts from novices). The results are divided into two categories: composition and comprehension. Approximately 40% of the skills were classified into the category ``comprehension.'' For each skill, the evaluated degree of difficulty of the skill is presented. In the category comprehension, skills related to comprehension of a program or a problem as a whole were evaluated as the most difficult.
The present paper has two parts. The first part is a trend analysis from the period 1990-2004 and the second part is a cross-sectional analysis from the year 2004. In both parts, the purpose was to find the most common technical skills sought in American job advertisements for software developer positions. Unlike in previous researches, also distributed technology skills were analyzed thoroughly because as a consequence of World Wide Web technology, these skills are required now more often than ten years ago. According to the trend analysis, the mean of the number of required technical skills increased from 3.6 to 7.7, and the technical requirements have changed as more versatile. The proportion of distributed technology skills increased very strongly: from 0% in 1990 to 65.1% in 2004. According to the cross-sectional analysis, the top five skills sought in 2004 were Windows, Java, C++, SQL, and Unix. In addition, implications to computer science education are considered.