Hacker News new | past | comments | ask | show | jobs | submit login

That’s probably because the experts are focused on their current task at hand, and most easily recalled the few things that are relevant to the task.

Movies and stories don’t portray real life experience, as they cannot juggle all the relevant factors of an expertise without confusing the audience.

I don’t know about martial arts. But at least in the few professions I do understand, you cannot just do a few exercises diligently for ten years and come out a master.




>I don’t know about martial arts. But at least in the few professions I do understand, you cannot just do a few exercises diligently for ten years and come out a master.

As a guy who did martial arts and competed in small tournaments, and as a recent fan of sumo, victories are more won by narrow experts. They learn the basics enough to not be surprised, find something that works for them, and then intensely focus on how to set up fights so their specialty works.


What about code katas?

I have five or so software designs that I've implemented several times for practice. A database, a bytecode VM, a serverside web framework etc.

I'm not so much porting them, rather trying my best to reimagine them in a new context. It helps me see similarities and differences between languages/platforms and find better ways to solve problems.

I've been practicing software for 35 years, martial arts for 25; every day I become more convinced that mastery is a journey, not a goal.


I don't have 35 years of experience in software development, yet, so I may be totally out of depth here.

In this case, I think it's not the re-implementation that matters; rather, you have learned some new things and you applied the new knowledge into practice. You're actively comparing different contexts and tools. That's kinda different from what the original comment said about doing it the Karate Kid way.

Secondly, implementing a database/VM/frame work is not something I'd call practicing a skill. It's a pretty sizeable project, at least one semester worth for an undergraduate course. It takes a multitude of skills and knowledge to complete it.

Personally, I think my software development has benefit mostly from solving (real, not hypothetical) problems and reading how others have solved problems. I've hardly used repetition intentionally, except when I'm learning a new language/framework and need to get over the unfamiliarity.

I also practice the violin every day, but it's so much more than repeating of a few exercises. I can say confidently that no one can learn the violin by rote, to any level of success.


I've played some guitar, it's not so much rote learning I'm trying to describe as spontaneously playing riffs; whatever that means on a violin...

I enjoy every step of the way and I'll switch or drop any project without missing a beat as soon as they become boring for whatever reasons. I think a big part of the fear of starting projects is really issues with dropping things.

In a way my katas are the problems I'm currently grappling with, and have for some time; they're sort of where you end up when you've tried writing most kinds of code. And seeing them from different angles and starting over and over again is the most effective way I've found to figure them out.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: