Force yourself to use patterns you dont like or dont suite the task at hand. Such as: today write everything using lambda callbacks, everything mvc, no classes allowed, no malloc allowed, etc.
That doesn't seem to me to be a directed, deliberate approach as the article implies is necessary. There's no way to know what patterns would be on the boundary of my skillset, so I might spend time using something that's unfamiliar but actually very basic which wouldn't challenge me, or something that's unfamiliar and incredibly difficult which would frustrate me because I couldn't make any progress. Isn't the reason that the system outlined in the article worked because the next level was always within reach but also something that provided a challenge? How do we get that in an arbitrary subject?
Essentially I wonder if the problem is that in some things we learn (eg coding) there isn't really a defined "ladder" that allows someone to practise harder and harder things in a deliberate way.