Designing and coding - I

When I studied design, there were 2 roads to take when studying.
Multimedia design, which generally involved learning digital design, basic concepts of HCI, IA, and HTML5, CSS (just coming out) and jQuery. Or, Graphic design, Illustration, the importance of colour, different illustration techniques, etc.

So about 10 years ago, we already knew there was a separation between graphics and digital.

Should a designer know how to code?

This is by far, one of the most popular questions nowadays in the tech world and companies.

As an analogy: If you work at a car company as an engineer. Your team, along with a team of design engineers are in charge of producing the next idea for a car. Do you think the design engineers need to know about engines, wheels, seats..? How do you think it would work if they design engineers didn't know about?

Helping you to clarify the last questions, I have some examples:
1. The d.e. will not know when to go to you to ask for doubts or suggestions on certain parts of the design.
2. The d.e. will believe that anything they draw, you will build.
3. The product will take ages to get a merely usable stage.
4. Both teams will be constantly frustrated with each other and will struggle to draft the basic ideas and concepts.
...

This should draft the line of the problem I am trying to point out, and I believe, sound all too familiar.

To understand the environment you are designing for in digital, doesn't just mean you must know the Heuristic rules, the HCI basic concepts, how to use Adobe or Sketch and get on with it.

The best graphic designers in history, knew anything there was and is to know about paper, different colour brands, different techniques.. and that is what made the difference.
In order to make for a great UI digital designer, you should therefore know as much as you can about the environment they work for. This doesn't mean to be the best developer, but to know the basics of what programming involves, what it is, and how it works, it's a must in order to foresee the questions you should ask.
Having the right answer isn't what you need. To have enough knowledge to make the right questions, is.

There are this few impacts that are so powerful out of this:
1. You don't waste time redesigning a tool your project needs, if you know before hand, there is already a library.
2. By having more time, you can redefine the parts of the app that should separate you from the rest of the market you aim for.
3. Before starting to do any work, you will get answers and suggestions will benefit your work, the project, your team mates and the deadline.
4. Less frustration between teams, more communication, more ideas, better ideas.

Should designers code?

Designers normally have a great amount of work on their desks. They should however be up to date with at least some of the latest technologies when it comes to their field, and by doing so their job will get easier.