It would be unwise to compare a professional in the world of computing with that in any other.
Another thing that I think worth mentioning is refactoring. I relentlessly refactor programs I work on. It drives my bosses/clients crazy but, when I need to change something, I almost never am willing to just patch in the change. Instead, I reorganize the program so that it looks like the new function was part of the original design.
This makes the program much stronger but by revisiting the ideas I used in the past, I understand my current strategies much better. Almost always, I find real problems that lurked in the old code and, by seeing and structuring those out of existence, I learn to avoid similar mistakes in the future. I also become more aware of what I think is right and good.