Personally I don't think that programming can be compared to sushi making or any other craft. I know this goes against majority thought in HN, but I think intelligence is the most important thing for a programmer, followed by domain/language specific knowledge, followed by appropriate choice of tools.
I think the market reflects my assessment, where young smart developers can get paid a lot more than much more experienced developers. My view is also consistent with the common advice I see on HN, which is to develop deep expertise in a popular language/technology, and ensure this knowledge is always up to date (as opposed to mastering the art of programming in general).