> My biggest coding failures have been trying to do too much. > > The problem is too large. It doesn’t fit in my head. I can’t handle all the corner cases. There are too many parts unknown to me. I would code 200-1000 lines of code without testing it, then spend many days trying to debug it. Now that I’m more experienced, I see three problems: > > 1. I wasn’t skilled enough to tackle this problem all at once. > 2. I wasn’t aware of my skill level vs. the skill required. > 3. I wasn’t disciplined enough to break down the problem. > > Notice these are three different levels of work: Skill, Awareness, and Discipline. The skill to tackle a problem will come with time and experience. And everyone has a level. Even after programming for 30 years, you’ll have a level of problem that is beyond you.