|
|
|
|
|
by nkangoh
4179 days ago
|
|
I would be interested to hear the opinions (or more accurately, experiences) of developers regarding "practice." I'm beginning my career as a software engineer this summer and I would like to become an "excellent" engineer. Employable, of course, but also the go-to for knowledge in a subset of computer science (let's say natural language processing, for example). Given I have a very long life (hopefully) ahead of me, what would you say is the best way to do this? Yes, coding is good, but is it the best way? I spend a large amount of time doing side projects, but eventually I'll have a family and other obligations, so I would need higher impact, less time consuming practicing options. An example of this I guess is how many expert violinists actually "practice" for a surprisingly small amount of time because the practice is so deliberate. What's the equivalent for us? |
|
Nearly everything I do in martial arts is practice for the relatively few times I might spar with someone.
I don't do any skills practice for programming. I've never met anyone who did something equivalent to honing basic movement, practicing balance and similar things.
Reading about the latest programming methods is a good thing and can increase your repertoire but I don't think it's comparable to skills-practice in martial arts or music or something similar. In practices like this, there are fundamental skills that need to be in good shape to allow a person to anything creative in the discipline (I have no idea why expert violinists wouldn't spend significant periods practicing but I know little about that. I know that most music requires significant practice of basic skills to achieve mastery).
My suspicious is that programming is an activity that is strongly connected to the brain's language centers and so mastery of it on the skills-level is simple and the problems with it appear on the judgment and understanding level - which doesn't make it easy, rather gives it that extraordinarily hard quality that we programmers are familiar with.
Also, most skills-practice disciplines are performance arts rather than production processes. Machinist and auto-mechanics also have high skill levels but like programmers they are obligated to show some significant accomplishment for their entire time at work. We can contrast this with a musician or other artist, who if they give an amazingly beautiful performance once a month and have it recorded is considered remarkably successful. In contrast, a programmer gets few accolades if she can just "be a great programmer" for an hour a month - what is instead considered with programmers is their entire output, which puts an entirely different series of pressures and constraints on the programmer.