I think it all boils down to solving well-defined tasks with minimum possible effort and time spent, and keeping in mind that the end goal is the product, not the code.
For me, the understanding happened in similar order:
- First, as a beginner, I solve all problems with minimum effort possible. The goal is the product.
(It's not real programming, but working with CMS that involves writing code sometimes.)
- Then I see the way to make much cooler and more “custom” products—with a web framework. In order to be able to do that, however, I need to start doing real programming.
- Learning programming, I find that what I was writing before was pure crap. I also forget that the product is the end goal, and care instead about writing code.
- Lots of LOC but few finished projects after I discover that code actually doesn't matter much. Instead, other stuff does—like speed, communication, measurement.
- Learning to make and deliver products with minimum possible effort—that's where I am now.
For me, the understanding happened in similar order:
- First, as a beginner, I solve all problems with minimum effort possible. The goal is the product.
(It's not real programming, but working with CMS that involves writing code sometimes.)
- Then I see the way to make much cooler and more “custom” products—with a web framework. In order to be able to do that, however, I need to start doing real programming.
- Learning programming, I find that what I was writing before was pure crap. I also forget that the product is the end goal, and care instead about writing code.
- Lots of LOC but few finished projects after I discover that code actually doesn't matter much. Instead, other stuff does—like speed, communication, measurement.
- Learning to make and deliver products with minimum possible effort—that's where I am now.