Abstract.Graduating computer science students do not always possess the necessary knowledge to succeed in their careers after graduation. Interviews with twenty-three managers and hiring personnel at different companies in the software development industry highlight the struggles that recent graduates face when first starting at those companies. Recent graduates lack essential skills in different areas to pass an interview. Descriptions are provided about these different areas along with recommendations for educators, industry managers, and recent graduates.
Introduction and Background
One of the main goals for colleges and universities is to prepare their students for their future careers and to ensure that they are equipped with the knowledge and skills necessary to succeed after they graduate. The goals of educators in computing fields are no different in this regard. With the growing body of knowledge and vast variety of different jobs available to students, it is not possible to teach them everything that they will need to know for every potential job. However, there is evidence that educators need to do a better job preparing students for the workforce, especially when multiple sources have identified the same gaps in students’ education [1, 2, 3].
Historically, there have been several educators who have evaluated how the recommended curriculum [4, 5] or the education that computer science students were receiving compared to the needs of the software industry. In 1996 Byrne, et al. conducted interviews with 16 project managers at Irish software companies to ask about their perceptions of how graduating students met their expectations and how CS education could be improved . Around the same time, Lethbridge surveyed over 100 software developers at different companies about the skill level currently needed for their jobs and where they perceived their skill level to be when they had just graduated from college . In a more recent study, Begel, et al. conducted a case study at Microsoft where they watched newly hired, recent graduates to determine what parts of their job they struggled with and what other difficulties they experienced . A large number of other researchers also reported similar findings [9, 10, 11, 12, 13].
Our students at North Dakota State University (NDSU) are required to take a capstone project course before they can graduate. In this course, students work with industry companies on real-world projects that will be used by those companies . The purpose of the course is to expose students to what software development is like in industry and to help shape their expectations for their future. Because we work with industry companies, we like to keep in touch and ask for feedback about our capstone course. During one of our discussions with a company, they raised concerns with us about some of the recent graduates from our university who had applied for jobs at their company. Specifically, they had mentioned that the students who had applied had no experience with regression testing and struggled to write unit tests for a small piece of code during the interview.
We viewed this as an opportunity to improve our course and wanted to see if some of the other companies that we had worked with in the past were experiencing the same problem. We also wanted to determine to what extent other researchers were reporting this problem and to see if there were any commonalities in their findings. To do so, we conducted a review of the literature in order to determine what areas, if any, were commonly reported as areas where recent graduates fell short of industry expectations . We found multiple studies that examined this problem and that there were several areas (spanning everything from software tools to problem solving ability to personal skills and communication ability) that were reported more frequently than others. Collectively, we refer to these different areas as knowledge deficiencies.
Although the literature review was helpful in determining which knowledge deficiencies were most prevalent, much of the prior literature contained little or no descriptive information about the knowledge deficiencies. In order to gain a better understanding of knowledge deficiencies, we decided to focus our interviews on better understanding how recent graduates struggle. We spoke with managers and hiring personal at different software companies that we had worked with previously. Twenty-three respondents (20 from the United States and 3 from Europe) provided information about areas where new hires struggled, along with which knowledge deficiencies that specifically prevented recent graduates from being hired by the company. Before describing the results of those interviews, we will first briefly describe the study design.
1. Study Design:
The following sub-sections provide a short description of the purpose of our research as well as the methodology that was used to conduct our study.
As an initial step, we identified a list of goals to accomplish. These were: identify the areas where recent graduates most frequently struggle when starting the first job; identify any common shortcomings that prevent recent graduates from being hired; and determine what issues hiring personnel screen for in interviews, but is still common in newly hired, recent graduates.
The participants in this study were 23 managers or hiring personnel from software development companies predominantly located in the United States, although 3 participants were from Europe. The companies were involved in many different business areas (e.g., aviation, agriculture etc.) and ranged in size (from tens of employees to thousands). Most of the participants had previously worked with in some capacity, usually as a sponsor for one of our capstone projects.
We used a semi-structured interview as it provided a good balance between the opportunity for participants to provide information about knowledge deficiencies and for us to ask follow-up questions to get additional details about the knowledge deficiencies that were identified. Hand-written notes were taken by the primary researcher during the interviews, and all interviews were conducted in English. Interview participants were asked two primary questions during the interview. The first was whether or not there were any knowledge deficiencies that prevented them from hiring a recent graduate. The second was in which areas that newly hired recent graduates struggled, the company felt as though the person’s college education should have better prepared them.
Following the interviews, responses were grouped into related categories. Table I contains a list of the most frequently identified knowledge deficiencies and whether these were things that companies identified during interviews to weed-out candidates or whether they were only identified after a recent graduate began working for the company. In some cases (e.g. oral communication, testing, and problem solving) the company identified it as something they looked out for in interviews, but still experienced in their new hires. In those cases, it is counted in both categories, but is only counted once in the total.
Software tools of some type were reported by 16 of 23 people we interviewed. Fig. 1 breaks down the different types of software tools that were identified. Although interviewees mostly indicated a specific software tool (e.g. Jenkins, Subversion, etc.) the results are categorized based on the type of tool. Although some of the managers we interviewed indicated that they asked about tool knowledge during interviews, the limitations of interviews typically prevent a good assessment of a person’s abilities in those regards, and as such knowledge deficiencies related to tool usage were typically identified only after a recent graduate began working for the company.
3. Discussion: Areas Where Recent Graduates Frequently Struggle
A common response was that recent graduates did not have previous exposure to many software development tools. Configuration management tools, in particular, were identified by over half of the respondents. Another common response was that students lacked experience setting up and using tools in a manner similar to an industry production environment. This was particularly the case for Integrated Developer Environments and other applications in the company’s toolchain. One respondent reported that it could take up to six months for new employees to reach the same degree of proficiency as other employees. Other participants indicated that recent graduates only had a minimal understanding of tools and one indicated that most had never used version control software beyond committing code to a repository and were incapable of merging or branching. Multiple interviewees indicated that most students did not have any exposure to continuous integration and regressing testing software such as Jenkins or Team Foundation Server. Two respondents reported that recent graduates lacked proficiency with database management tools, one of whom said that students could not even set up a new database.
A lack of understanding of job expectations was the second most common problem that recent graduates were reported to experience on the job. One aspect of this noted by one interviewee was that newly hired, recent graduates seemed to be afraid of asking questions so as not to appear foolish. Instead, they needed to understand that it was better to ask for help than to waste time being stuck on what might be a simple problem. Another response was that students experienced difficulties adapting to an eight hour work day after college where their work was split up over smaller segments. Another related response was that many recent graduates lacked motivation and initiative and needed closer supervision in order to ensure that they remained productive. Multiple participants also indicated that recently graduated students were lacking in professionalism, including dressing inappropriately, texting on their phones during meetings, or even issues related to personal hygiene.
Written communication, oral communication, and specifically the ability to communicate with customers were all identified by multiple respondents. One identified aspect of written communication was that recent graduates tend to have problems writing large memos or documents. In terms of communicating effectively with customers, one respondent indicated that recent graduates tend to use too much technical jargon which impacted their ability to gather requirements. Multiple interviewees indicated that recent graduates had issues communicating with their bosses, such as informing their boss when they had completed an assigned task. Five respondents reported issues related to recent graduates communicating with team members. One specifically reported that some recent graduates struggled with successfully integrating with the rest of the team because they had problems working with other people.
Five of the 6 interview respondents told us that the largest problem related to testing was the inability of recent graduates to construct good unit tests. One interviewee noted that recent graduates had a tendency to write redundant test cases and that while testing, they had a tendency to introduce old or further bugs into the software. Another responded that they had to spend a considerable amount of time training recent graduates on using their test platform and writing good unit tests. There were also four other respondents who had not identified problems related to testing itself, but had indicated that recent graduates lacked exposure to continuous integration and regression testing tools.
One respondent reported that recent graduates had a poor understanding of the internal mechanics of databases, which was difficult to pick up on the job and lead to unoptimized designs and poor performance. Two other responses indicated that recent graduates had difficulty interacting with databases and tying in the code meant to interface with the database, with one noting that they often had difficulties even creating and designing databases. Two responses pointed to inexperience with database management system (DBMS) tools, and one of those respondents stated that recent graduates lacked even the most basic knowledge such as setting up a new database.
Two interviewed managers stated that comments from new hires often tend to be of poor quality, if not entirely useless. They noted that comments often offered no actual explanation of what a segment of code was doing or that the comments were unnecessary because they were obvious from the code itself. Another two respondents said that recent graduates often did not comment nearly enough and occasionally not at all. One indicated that recent graduates were not familiar with following a coding standard and frequently produced code that was not to the company’s standard.
4. Areas Where Recent Graduates Fail in Interviews:
A lack of project experience was the most frequently identified problem that respondents indicated that recent graduates expressed in interviews. Most of the interviewed managers indicated that they wanted applicants to have some kind of experience working on a large, team project and for the applicant to be able to describe their role with in the project and how it was important to the project. Interviewees indicated that they realized that recent graduates would not have a lot of experience, but that having an internship, a co-op, or a senior-level capstone project was typically sufficient. One interviewee indicated that it was preferred if the applicant had worked individually on a large project, but the others preferred team-based projects.
Soft skills are generally cited as important, but one manager indicated that communication ability was even more important than technical abilities. Another stated that while could be overlooked if an applicant had other good qualities, that the ability of such a person to move up through the company would be extremely limited. Several respondents stated that an inability to articulate points and provide clear explanations during interviews were what caused most recent graduates to be passed up during the interview process.
Several interviewees indicated that a lack of problem solving ability in a candidate was the most likely reason not to hire that person. One interviewee mentioned that it was common to give applicants small programming problems (e.g. develop an algorithm for searching a tree depth-first) to evaluate their problem solving ability. Another manager indicated that knowing the answer to a problem was not always as important as demonstrating a good approach to attempting to solve the problem. One interviewee indicated that they typically asked increasingly difficult questions in order to evaluate an applicant’s problem solving skills. Another stated that they specifically looked for whether or not an applicant would ask follow-up questions or clear up ambiguities in the problems.
When faced with several good applicants, some interviewees said that they try to select candidates based on other personal qualities. Several different qualities were given (e.g. leadership ability, being proactive, outgoing and friendly personality), but the most common were an ability to see the big picture and being passionate about technology or the position. One interviewee indicated that it was important to find candidates who were passionate because even if they were not the most skilled individuals, they would likely make a strong effort to improve. Most respondents indicated that these characteristics were not strictly necessary, but were important factors when determining who to hire and in several cases they made more of a difference than technical ability.
Testing ability, database knowledge, and mobile development experience were all reported by interviewees as being necessary skills. One of the interviewed managers indicated that having experience with designing and interfacing with databases was necessary due to the nature of the company’s work. Another respondent indicated that as part of the interview process, applicants were asked questions about how they would test various systems and were expected to be able to write unit tests for a small piece of code as that would be the primary focus of their job when starting out. Respondents from two companies indicated that mobile development experience was increasingly important to them as much of their company’s new work revolved around developing applications for tablets and smart phones. Another respondent stated that they asked applicants questions about several Linux commands in order to ensure that they would have the technical abilities necessary for working at the company.
Overlap Between Interviews and Jobs
Most of the managers with whom we spoke indicated that they normally did a good job of screening out candidates who were lacking in the areas that they evaluated candidates during interviews. Table 1 shows a rather strict dichotomy between knowledge deficiencies identified during interviews and those identified only after a recent graduate has begun working at the company. However, there were five categories in which the knowledge deficiency was identified in newly hired recent graduates, even after the company made an effort to identify them during the interview process: oral communication, written communication, testing, problem solving, and the ability to self-manage.
5. Conclusion and Recommendations
Several researchers have previously identified various issues that recently graduated computer science students struggle with when starting their new jobs [1, 2, 16]. Our results provide additional support for the existence of several of these knowledge deficiencies including the use of configuration management tools, communication skills, and testing ability. The results from our interviews also provide additional qualitative information for knowledge deficiency categories which were not always well-defined in previous studies.
The results from our interviews also match several of the results that we had uncovered in the literature . This suggests that several of these knowledge deficiencies have been pervasive for some time and that this is an issue that needs to be addressed. Although we do not have solutions for addressing each and every knowledge deficiency, merely being aware of the most pressing issues provides a good starting point for tackling them. However, we do have some general recommendations for academia, industry, and recent graduates.
Recommendations for Academia:
Although it is unreasonable to expect educators to produce students who will be fully capable of starting any job without further issue, there are multiple areas that are in obvious need of some attention. The most glaring issue relates to the use of software tools, particularly configuration management tools. Many of these tools could be incorporated into appropriate existing courses (e.g., using DBMS tools in a database course, test coverage tools in a testing course, etc.) without much hassle and would provide students with earlier exposure to the types of tools that they can expect to use in throughout their careers.
Another area that appears to be a problem is a lack of ability to write unit tests. This is something that can be introduced in early programming courses and reinforced throughout the curriculum. The same also holds true for building communication skills, whether that means students’ collaborative skills by including assignments or projects where they work as part of a group, or their writing skills by requiring them to write a technical report in addition to the code that they produce. A required internship, industry co-op, or a projects course where students work with real customers would also help them to acquire a better understanding of the work expectations of industry and provide them with valuable project experience.
Recommendations for Industry:
From our results, it appears as though most managers and hiring personnel can reasonably screen candidates, but there is also room for improvement. Asking applicants to actually write code at a computer or demonstrate their knowledge of software tools may help to alleviate some of the difficulties experienced from hiring recent graduates who lack the necessary skills to contribute to the company. It may also be useful to give applicants a difficult problem that you do not expect them to be able to solve, or one that does not contain sufficient information in order to gauge how they respond to such situations.
Another solution is to identify the areas within your own companies where newly hired, recent graduates struggle and to develop an orientation program that is specifically designed to tackle those problems, whether they are related to maintaining professional conduct or developing training material for the different software tools used at the company so that new employees have a quick reference while first learning to work with a new or different tool.
Recommendations for Recent Graduates:
The field of computing is growing every year as new technologies and ways of accessing information are developed. Even developers who have been in the industry for decades constantly need to acquire new skills and learn about new technologies. It is unlikely that your education will have provided you with everything you will need to know, hopefully it has equip you to continue learning new skills and to refine the ones you already possess.
This research can serve as a good guide for preparing for interviews and for brushing up on in any of the identified areas where you might feel unprepared. It is also good to bear in mind that when you are first starting, you will make mistakes and run into problems that you will struggle to solve. Keep in mind that sometimes it is better to ask for help than to struggle in silence.
Tables and Figures:
Table 1: Knowledge Deficiencies in Recently Graduated Students ()
Figure 1: Knowledge Deficiencies for Software Tools ()
References and Notes
1. Begel, Andrew and Simon, Beth. Novice Software Developers, All Over Again. Proc. of the 4th International Workshop on Computing Education Research. Sydney, 2008.
2. Lethbridge, Timothy. “Priorities for the Education and Training of Software Engineers.” 53.1 Journal of Systems and Software (July 2000): 53-71.
3. Radermacher, Alex, et al. Investigating the Skill Gap between Graduating Students and Industry Expectations. Proc. of the 36th International Conference on Software Engineering. Hyderabad, 20014.
4. The Joint Task Force on Computing Curricula. “Computing Curricula 1991.” 4.6 Communications of the ACM. (June 1991): 68-84.
5. The Joint Task Force on Computing Curricula. “Computing Curricula 2001.” 1.3 Journal of Educational Resources in Computing (Sept. 2001): 1-236.
6. Byrne, Declan J. and Moore, Jeffrey L. “A Comparison Between the Recommendations of Computing Curriculum 1991 and the Views of Software
Development Managers in Ireland.” 28.3 Computer Education (April 1997): 145-154.
7. Lethbridge, Timothy. A Survey of the Relevance of Computer Science and Software Engineering Education. Proc. of the 11th Conference on Software Engineering Education and Training. Atlanta, 1998.
8. Begel, Andrew and Simon, Beth. Struggles of New College Graduates in Their First Software Development Job. Proc. of the 39th SIGCSE Technical Symposium on Computer Science Education. Portland, 2008.
9. Carver, Jeffrey and Kraft, Nicholas. Evaluating the Testing Ability of Senior-Level Computer Science Students. Proc. 24th IEEE-CS Conference on Software Engineering Education and Training. Honolulu, 2011.
10. Loftus, Chris, et al. Can Graduating Students Design: Revisited. Proc. of the 42nd ACM Technical Symposium on Computer Science Education. Dallas, 2011.
11. McGill, Monica. Defining the Expectation Gap: A Comparison of Industry Needs and Existing Game Development Curriculum. Proc. of the 4th International Conference on Foundations of Digital Games. Orlando, 2009.
12. Scott, Elsje, et al. The Skills Gap Observed between IS Graduates and the Systems Development Industry - A South African Experience. Proc. of the 3rd Informing Science and IT Education Conference. Cork, 2002.
13. Surakka, Sami. What Subjects and Skills are Important for Software Developers? 50.1 Communications of the ACM (Jan. 2007): 73-78.
14. Knudson, Dean and Radermacher, Alex. Software Engineering and Project Management in CS Projects vs. “Real-World” Projects: A Case Study. Proc. of the 9th International Conference on Software Engineering and Applications. Cambridge, 2009.
15. Radermacher, Alex and Walia, Gursimran. Gaps between Industry Expectations and the Abilities of Graduates. Proc. of the 44th ACM Technical Symposium on Computer Science Education. Denver, 2013.
16. Tesch, Debbie, et al. “An Examination of Employers’ Perceptions and Expectations of IS Entry-Level Personal and Interpersonal Skills.” 6.1 Information Systems Education Journal (Jan. 2008): 3-16.
Alex Radermacher is a software engineering Ph.D. student at North Dakota State University. His research interests include software development processes and student learning.
Gursimran S. Walia is an assistant professor of Computer Science at North Dakota State University. His main research interests include empirical software engineering, human factors in software engineering, and software quality. He is a member of the IEEE Computer Society.
Dean Knudson is an associate professor of Computer Science at North Dakota State University. He has over 35 years’ experience in software development and management.
« Previous Next »