Chapter 26. Novice Professionals: Recent Graduates in a First Software Engineering Job

Andrew Begel

Beth Simon

Much is written about software engineering education: how to teach novice computer scientists the programming, design, and testing skills they need to become professional software engineers. However, computer science students are not done with their education at graduation; it is really just the beginning. Newly hired engineers must learn to edit, debug, and create code on a deadline while learning to communicate and interact appropriately with a large team of colleagues. In this chapter, we explore the similarities and differences between these two educational experiences, by providing a detailed view of the novice experience of software developers in their first industry job.

Universities try to prepare students for industry by teaching them core computing concepts that will allow them to become lifelong learners and keep pace with innovations in the discipline. Approaches to teaching these “hard” skills have been driven by advances in industry, such as through new programming paradigms (OO) and new development methodologies (Agile, Extreme Programming). Academic settings offer less support for “soft” skills, or human factors in software engineering, such as the ability to create and debug specifications, to document code and its rationale and history, to follow a software methodology, to manage a large project, and to work and communicate with others on a software team. ...

Get Making Software now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.