On a similar note, I've thought about putting together a presentation on debugging and understanding large codebases by fixing a bug on a large project whose source code I've literally never seen before. I figure that by picking a codebase I have 0 experience with, there's less risk of skipping over steps.
The biggest hurdle for me has been actually finding a project I'm interested in where I haven't yet gone poking around the source code for some reason or another.
Yeah, I've also been interested in writing more about orienting yourself in novel codebases. I don't think it's explored very much.
It's a pain to write about because you have to find some contrived error (real or not) in a contrived app. I've got a draft of a post but without the examples filled in.
It's not explored very much because most new developers try to push for greenfield development and they're trying to split everything up even when it doesn't need it.
Now we're having multiples of codebases to comb through.
So true. Also with respect to documentation, which you have to put in a blog rather than contributing it to the project where it can be maintained. It's bizarre to be literally the last port of call for work you've actually done, when people would rather refer to obsolete blogs on things you addressed years ago.
At a previous job of mine modifying large and unfamiliar codebases was a major aspect of our team's role. I always thought it would be a good way to interview candidates, but never got to try it out.
Yes, teaching that sort of thing is sorely needed in my area of research computing support specifically, and something I've wanted to do. Unfortunately the collaboration I'm involved with only seems concerned with regurgitating Software Carpentry etc., so users don't get taught about programming and maintenance. There's a lot of talk about "software sustainability" that's often at odds with what I've learnt over decades practising it, and dogma which would have killed the most successful long-term collaborative project I've been involved with.
I'm not sure it needs de nuovo examples, just general advice and techniques from long experience.
The biggest hurdle for me has been actually finding a project I'm interested in where I haven't yet gone poking around the source code for some reason or another.