Hacker News new | ask | show | jobs
by closeparen 2523 days ago
Debugging requires an extremely thorough understanding of the project, so much that you can not only find each responsibility in the code, but anticipate their emergent properties, what mistakes might have been made, and how their interactions might go wrong. Debugging a system successfully is the culmination of successful on-boarding, not a starting point.

Doing the actual code changes to fix a bug which has already been analyzed and localized to one or a few sites in the codebase is a bit more reasonable.

2 comments

> Debugging requires an extremely thorough understanding of the project

That's precisely why it's great for a starting point. It's work that mostly consists of research of the current code, to look for inconsistencies that cause a well-defined misbehavior. It involves writing little code and therefore involves little decision-making if any, so you avoid the newcomer making changes or adding stuff that, in ways, may be inconsistent with how things are done in the project.

> an extremely thorough understanding of the project

Right - so no time like the present to get started understanding!

Right. But sometimes this clashes with new developers expectation of actually being able to produce an acceptable solution and getting it merged within a reasonable amount of time.

Have those expectations never clashed for you?

You can get started by doing smaller and better-defined projects first, rather than going for ~weeks before knowing whether you have any traction.