A field study of the software design process for large systems
Communications of the ACM
Communication breakdowns and boundary spanning activities on large programming projects
Empirical studies of programmers: second workshop
Consultants and apprentices: observations about learning and collaborative problem solving
CSCW '92 Proceedings of the 1992 ACM conference on Computer-supported cooperative work
Coordination in software development
Communications of the ACM
Views from the field on mentoring and roles of effective networks for minority IT doctoral students
SIGMIS CPR '03 Proceedings of the 2003 SIGMIS conference on Computer personnel research: Freedom in Philadelphia--leveraging differences and diversity in the IT workforce
A Survey of the Relevance of Computer Science and Software Engineering Education
CSEET '98 Proceedings of the 11th Conference on Software Engineering Education and Training
Things they would not teach me of in college: what Microsoft developers learn later
OOPSLA '03 Companion of the 18th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Coupling pair programming and writing: learning about students' perceptions and processes
Proceedings of the 35th SIGCSE technical symposium on Computer science education
Human Aspects of Software Engineering (Electrical and Computer Engineering Series)
Human Aspects of Software Engineering (Electrical and Computer Engineering Series)
Maintaining mental models: a study of developer work habits
Proceedings of the 28th international conference on Software engineering
Pair programming improves student retention, confidence, and program quality
Communications of the ACM - Music information retrieval
Proceedings of the second international workshop on Computing education research
Information Needs in Collocated Software Development Teams
ICSE '07 Proceedings of the 29th international conference on Software Engineering
First year students' impressions of pair programming in CS1
Proceedings of the third international workshop on Computing education research
Struggles of new college graduates in their first software development job
Proceedings of the 39th SIGCSE technical symposium on Computer science education
Analysis of research into the teaching and learning of programming
ICER '09 Proceedings of the fifth international workshop on Computing education research workshop
Proceedings of the 2010 ACM conference on Computer supported cooperative work
What game developers look for in a new graduate: interviews and surveys at one game company
Proceedings of the 41st ACM technical symposium on Computer science education
Moving into a new software project landscape
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 1
Investigating studio-based learning in a course on game design
Proceedings of the Fifth International Conference on the Foundations of Digital Games
Studying human and social aspects of testing in a service-based software company: case study
Proceedings of the 2010 ICSE Workshop on Cooperative and Human Aspects of Software Engineering
Analyzing the strength of undergraduate misconceptions about software engineering
Proceedings of the Sixth international workshop on Computing education research
Proceedings of the 16th ACM international conference on Supporting group work
Developer fluency: achieving true mastery in software projects
Proceedings of the eighteenth ACM SIGSOFT international symposium on Foundations of software engineering
Growth of newcomer competence: challenges of globalization
Proceedings of the FSE/SDP workshop on Future of software engineering research
Getting CS undergraduates to communicate effectively
Proceedings of the 16th annual joint conference on Innovation and technology in computer science education
Crossing the software education chasm
Communications of the ACM
Crosscutting revision control system
Proceedings of the 34th International Conference on Software Engineering
Proceedings of the 34th International Conference on Software Engineering
How we teach impacts student learning: peer instruction vs. lecture in CS0
Proceeding of the 44th ACM technical symposium on Computer science education
Collaborative learning and anxiety: a phenomenographic study of collaborative learning activities
Proceeding of the 44th ACM technical symposium on Computer science education
Gaps between industry expectations and the abilities of graduates
Proceeding of the 44th ACM technical symposium on Computer science education
Talking about code: Integrating pedagogical code reviews into early computing courses
ACM Transactions on Computing Education (TOCE) - Special Issue on Alternatives to Lecture in the Computer Science Classroom
Proceedings of the 13th Koli Calling International Conference on Computing Education Research
Workplace scenarios to integrate communication skills and content: a case study
Proceedings of the 45th ACM technical symposium on Computer science education
Is usability evaluation important: the perspective of novice software developers
BCS-HCI '13 Proceedings of the 27th International BCS Human Computer Interaction Conference
Hi-index | 0.02 |
Transitions from novice to expert often cause stress and anxiety and require specialized instruction and support to enact efficiently. While many studies have looked at novice computer science students, very little research has been conducted on professional novices. We conducted a two-month in-situ qualitative case study of new software developers in their first six months working at Microsoft. We shadowed them in all aspects of their jobs: coding, debugging, designing, and engaging with their team, and analyzed the types of tasks in which they engage. We can explain many of the behaviors revealed by our analyses if viewed through the lens of newcomer socialization from the field of organizational man-agement. This new perspective also enables us to better understand how current computer science pedagogy prepares students for jobs in the software industry. We consider the implications of this data and analysis for developing new processes for learning in both university and industrial settings to help accelerate the transition from novice to expert software developer.