As I’ve been pairing with several Senior Software Engineers at work, I’ve noticed a pattern. To implement a feature or fix a bug, they start out by looking at the code more generally, trying to figure out what parts of the code the task involves, they then move on to looking more deeply into the relavent part of the code base until they have a general idea of how it works. They might also play around with the code and log some information and even try implementing a quick fix. Nothing special here, makes sense. This is pretty much how all Software Engineers approach a problem, I’m sure.
But here is where the noticeable difference comes in: when the Senior Software Engineer knows enough of the code base to implement at least some kind of solution, they continue learning the code base. Just getting to a solution isn’t the goal. The goal is getting to the best solution. This is in big contrast to the Junior Software Engineer (aka me), who is happy at the first sign of any solution!
The best solution mentality is something I’ll be keeping in mind as I continue on with my career as a Software Engineer. Got to learn from the best!