Yes, a good designer should be able to do more than draw things in photoshop. A good designer should be able to make things aesthetically pleasing, but more importantly functional. If they haven't even a basic grasp of HTML/CSS, for example, how can they pretend to design functional interfaces in HTML/CSS? A designer who can only mock things up in photoshop is not a designer, but an artist, and probably a poor artist at that.
> Knowing what is very different by knowing how. This takes us to the usual questions: do architects need to know how to build a skyscraper? Do car designers need to know how to build an engine? Do a movie director need to know how to act? Do a surgeon need to know how to build a peacemaker? Of course not.
Yes, architects take some structural engineering classes. They aren't engineers, but they certainly have an overlapping knowledge base. If all they could do is draw fancy buildings, then they would not be architects, but artists. Yes, car designers should know how to build an engine, not to the level of an engine designer/engineer, but to the point that they truly understand how the engine works, and not just what it does. Yes, a director needs to know how to act. They might not be the best actor, but they should know the craft, or they can't get good performances out of their actors. Yes, a surgeon who installs pacemakers should understand how they work. Do you want some guy attaching electrodes to your heart when he doesn't really understand how they work?
Good architects understand engineering. Good car designers understand engines. Good directors understand acting. Good heart surgeons understand pacemakers. And yes, good designers understand coding. When something is so closely tied to your effectiveness, you should should understand it, and that means you should understand the how as well as the what. Otherwise you will not be good at your core competencies, because you have too many gaping holes in your knowledge.
Relying on teamwork to fill the gaps in your knowledge is crap, too. If you don't have a shared vocabulary and a basic understanding of coding, how are you going to work with developers? You're going to hand them a pretty picture and tell them to implement it, and they're going to dismiss you as incompetent, because you are.
> There’s still a good point in suggesting that designers should code
This is really lame. Don't write a dozen paragraphs claiming that it's "bullshit" to say that designers should learn to code and then end by stating that it's a good idea for designers to learn to code. That makes it obvious that you're just a trolling ass. If you believe in the stance you're taking, then stick to it. Otherwise don't rant about something you don't even believe.