The Struggles of New Graduates
I had a lot of interesting conversations while at SIGCSE last week, but the best talk I attended was given by Microsoft’s Andrew Begel, who spent a year studying the problems new college graduates face in their first software development job. The takeaway:
New developers' problems are mainly due to poor communication, not technical skills.
What do new developers do?
- Programming (reading >> writing, commenting, proofreading)
- Working on bugs ((repro, reporting, triage) >> debugging)
- Testing (writing, running)
- Revision Control (check in, check out, revert)
- Documentation (reading >> writing, search)
- Specifications (reading >> writing)
- Tools (discovering, finding, installing, using, building)
- Communication (asking questions, persuasion, coordination, email, meetings, meeting prep, finding people, managers, teaching, learning, mentoring)
New developers are good at:
- Programming
- Design
- Peer mentoring
- Using many strategies when debugging
They are bad at:
- Engaging a large, legacy codebase without using written docs
- Reproducing bugs
- Using new tools
- Reflecting on their own progress (knowing when they are stuck)
They interact naively with other team members when:
- Asking questions
- Triaging and resolving bugs
- Attending meetings
Beliefs of new developers:
Perfectionism |
|
Delusion |
|
Self Esteem |
|
I think this is really valuable work; it’d be great to see it repeated with new grad students…