Why do so few CS majors end up being professional Software Engineers even including the ones that graduate from top schools like MIT/Stanford/Harvard etc.? Even bigger question - among the few CS majors who do end up being Software Engineers why do so few of them remain Software Engineers 10+ year into their careers? Both of these two observations are based on my own anecdotal experiences but have nevertheless puzzled me for long.