If your son is competent at coding, I think he should take a look at the following book: "Don't make me think" by Steve Krudge. Then do some design by using pencil and paper or a tool like the "Pencil" addon for firefox. Once the design is there, then code using a tool that does content assist or intellisense for html, css & javascript. I don't know anything about "beautiful design", but I think he should try to learn this area from design people.
Once all of the ingredients are there, he should become kind of "invincible".