Your definition of 'practicing' is different from the publication's - the publication specifically looks only at deliberate practice:
>This view holds that expert performance largely reflects accumulated amount of deliberate practice, which Ericsson et al. defined as engagement in structured activities created specifically to improve performance in a domain.
As an entrepreneur or programmer, I think that it's very hard to do deliberate practice - there are few structured activities you can do to improve your skills, as both fields, even in their more basic tasks, incorporate various skills and approaches.
For example, you wouldn't say 'today I practice for-loops' and then do nothing but write for-loops all day. You can say 'today I write a program that uses while loops instead of for-loops', but I think that wouldn't count as deliberate practice anymore - the structure of the task changes with the focus and task of your program (you'd also have to do more like de-bugging, tests etc.)
As a tennis player, however, you can say 'today I practice serves' and then do nothing but serve balls all day, that's a structured task that doesn't change. Apparently it just doesn't help that much.
I'm coming from music as a profession to programming as a profession.
In music you can craft repetitive exercises to improve small aspects of your skillset, but in computer science you can't do that exactly (or sanely). However, I do find myself directing my study in a similar way. I have various high-level goals and I try to find some way to get at them on a daily basis. I use concrete projects like reading a book, doing exercises, or taking on a hobby project. It feels very similar to practicing music, but I wouldn't call it practicing. It's my practice!
Thanks for your insight, I really appreciate hearing comments from people who weren't born coding, because these often contain very interesting insights!
I would suggest that revisiting code which you have previously written, and trying to re-factor it, or at least considering how this could be done (and its impacts), is a very useful tool to help you 'practice' coding. I know that this is imperfect, but I have personally learned a lot from applying new lessons (from books, experience, or code reviews) to my own prior work.
> Thanks for your insight, I really appreciate hearing comments from people who weren't born coding, because these often contain very interesting insights!
Sites like topcoder and Project Euler are actually very good at building skills... they're much like playing arpeggios or similar exercises... they're small, may take 30 minutes to two hours to complete, and the more you do the more used to solving problems you get, and you also find out what you need to improve upon.
>This view holds that expert performance largely reflects accumulated amount of deliberate practice, which Ericsson et al. defined as engagement in structured activities created specifically to improve performance in a domain.
As an entrepreneur or programmer, I think that it's very hard to do deliberate practice - there are few structured activities you can do to improve your skills, as both fields, even in their more basic tasks, incorporate various skills and approaches.
For example, you wouldn't say 'today I practice for-loops' and then do nothing but write for-loops all day. You can say 'today I write a program that uses while loops instead of for-loops', but I think that wouldn't count as deliberate practice anymore - the structure of the task changes with the focus and task of your program (you'd also have to do more like de-bugging, tests etc.)
As a tennis player, however, you can say 'today I practice serves' and then do nothing but serve balls all day, that's a structured task that doesn't change. Apparently it just doesn't help that much.