the one thing id add to every CS curriculum is a semester of maintaining someone else's code

Posted by Motor_Ordinary336@reddit | learnprogramming | View on Reddit | 59 comments

we've had a few new grads join in the last year and i keep watching them hit the same wall around month 3. they can build things from scratch just fine. what they cant do, at least not without struggle, is open a 5 year old codebase with 12 contributors who all named things differently and figure out where to make a one-line change

and like, that is the job. for most engineers at most companies, building something new is maybe 20% of the work. the rest is reading code other people wrote, figuring out why a function does something that doesnt make sense (it made sense in 2021), tracking down which of the 4 helper functions named almost the same thing is the one actually used in production

every CS class i remember had you writing things from zero. clean slate, fresh repo. all good exercises but they teach one half of the job and not even the bigger half

what would actually help is a class where on day 1 the professor hands you a github repo someone wrote 3 years ago, inconsistent naming, partial test coverage, a few comments that contradict the actual behavior. your job for the semester is to add a feature, fix a bug, write better tests. thats it.

not a dunk on new grads, theyre often sharper than i was. its more that we set them up to feel competent in school and then drop them into something that requires a totally different skill nobody taught them. takes most of them 6-12 months to build it, which is rough on them and on the team

every senior i know has this same observation and we all kind of shrug. but if i could change one thing about the curriculum it would be that