In my own experience, it has required <i>both</i> repetition, <i>and</i> variability.<p>I learn something new, every day, but what I learn, and how it is implemented, is highly dependent upon the phase my project is in.<p>Right now, the project I'm working on is in the "home stretch." There's still a <i>lot</i> more work needs doing, but it's fairly predictable, well-practiced stuff.<p>Getting to this point, though, has involved two years of researching alternative approaches, strategic and tactical designs and decisions, pivots, backpedalling, and bug-fixing.<p>And every day, I have been writing Swift code. Most of the time, I'm using the same techniques as I was yesterday, but, every now and then, I try something different. Sometimes, that becomes a new habit.<p>In my personal opinion, there's really nothing like developing and releasing shipping applications to provide a rich experience in both repetition, and variance.