Looking back into my design career, trying to find an answer for this question.
I’m aware that a lot has been written about this in the past, and probably will in the future. My intent isn’t to generically provide an answer to the question, which is something you can find around quite easily. Instead, I want to share some moments from my career where code was, or could be, relevant and in the end, hopefully, provide a way for you to find the answer on your own.
With that out of the way, lets start our trip down the memory lane.
The year was 2003, I was officially starting my journey in design. I went to a Graphic Design Trade School from my 10th to 12th years of school, where I had graphic design classes together with the regular subjects.
During these 3 years I learned a lot about many things like typography, colour, composition, branding, photography, printing and so many other things related with graphic design, however code wasn't one of them. Which now I found it a bit of a shame, let me tell you why.
After graduating from that trade school, the 17 years old me got a job at a small publishing company. I was the only designer and I was doing a little bit of everything that I learned in school, branding design for the company and magazine published by them, editorial design of said magazine, brand/ad design for some of the companies advertising in the magazine and …*dramatic dun dun duuuuuun!*… the website.
Looking back, I see this as the first point in my career where it would have been great to understand a little bit of code, especially knowing now how simple some things would have been, unfortunately I didn’t knew any better and the fact that I had a bit of a resistance to learning code also didn’t help. At that point in time I wanted to focus on what I considered "real design skills". Bare in mind, this was 2006, the internet wasn't like it is today (neither was my english), so I couldn't learn from there and unfortunately I was the first employee in the company, which means that I couldn't count on anyone to help me.
Despite all that, I did manage to have a website online that worked even though it wasn't properly done. I figured out how the tables and hyperlinks worked on Dreamweaver and with that I scraped something together. The end result was an HTML table with a bunch of images (that were the content of the website) and then I made some of those images hyperlinks that lead to other pages… basically a proper web designer would certainly consider it a crime. CSS? I didn't even knew what that was.
I think my main struggle at the time was the resistance I developed to learning code. Because I had absolutely no knowledge about it I thought it was much more complex than it actually is, and for that reason I kept trying to find ways around it.
One year later I felt like I needed to learn more, so I decided to go to university. 3 years later I was a much better designer (if I may say so) with an improved skill set, but I still didn’t knew a thing about code/programming, which was, again, regretful.
This time, it wasn’t because we didn’t had any class to learn the basics, we had one, the problem was that the teacher had little to no intention to teach us anything. Probably because she felt like graphic design students weren’t interested in the subject in the first place, which was to a certain degree kind of true. We did complain about the teacher but we didn’t get anywhere. Even though I wanted to learn I had a lot of other projects going on and I was also working full-time in a small advertising agency, so, as most of my colleagues I focused my attention on the other projects, and forgot about coding.
It's easy to blame the teacher, but in retrospect, I really regret not taking some time to learn the basics, even if I had to do it on my own. This would have saved me some sleepless nights and a lot of frustration later on.
After I graduated I decided to start to work as a freelancer. Guess what type of work I was getting more often? *dramatic dun dun duuuuuun!* Websites. However, this time I had a trump card up my sleeve, so I though. You see, I learned Flash in my Graphic Design BA and I was pretty comfortable with it, and that’s how I was making the websites. It did the trick, but it wasn’t the most efficient tool for the job, any change or addition to each website would take me a lot of time and patience.
Fast forward to 2012 and I wasn’t designing websites anymore, I was taking advantage of all the things I learned to do in Flash tough, making interactive resources in the multimedia department at a big publishing company in Portugal. At the same time I started attending my Illustration and Animation Master’s degree classes, where one was actually programming. To be honest, I never really understood what programming had to do with animation or illustration but now I’m thankful that I had that class. The teacher was really good, he was clearly passionate and knowledgeable about coding and that transpired in the way that he taught. Thanks to him I finally learned something about coding (made a game on my own #proud) and had my resistance to learning how to code being completely overshadowed by a sudden spark of interest and curiosity.
Back to the present, I realise that this class was the turning point, after this experience code stopped being an untamed mythical beast to become something much more approachable, and I think that helped me become a better designer.
With this new interest I managed to find solutions for problems that I would be incapable to fix in the past. A good example was the challenge of creating multi-resolution assets with the least amount of effort possible.
After some digging around online, I managed to find and tweak to my specific needs a script that would create all the assets with one single click. This was a real time saver. Luckily, nowadays, our design tools have advanced to a point where they also provide such functionality, but a few years ago that wasn’t the case, and knowing how to interpret and adapt code saved me a lot of time and work.
This is just one example of the many little improvements that a few lines of code can create in your life, but the thing that I came to value the most as a designer is being able to actually understand the development possibilities and restraints. If you don’t have a basic idea how things are made, you’ll be designing blindly.
You’ll see the devices that you’re designing for as some kind of magic boxes and you might have a hard time communicating with the people that are making the "magic happen". If you know absolutely nothing, you won’t have any arguments if a developer just tells you that something is impossible to do.
Should you code?
Designer or not, I think everyone should dip their toes in this water.
What I consider dipping your toes is essentially learning the very basics of a simple programming language and how a website goes from a few lines of code to something visual.
Let’s pretend that coding is card magic, this is when you teach someone how one magic trick is done and that someone realises that it’s all about misdirection and sleight of hand, nothing supernatural.
I personally think this should even be introduced early in school and it should be taught along side Math, Literature and Science. Why? Because we have most of our lives dependent on things powered by code. My personal experience tells me that having a simple introduction can help to demystify the whole thing, making the idea of programming more approachable for everyone.
Now, if you’re designing for software or websites, then I think this is the bare minimum for you. You need to understand what you’re working with in order to do achieve the best result possible.
Imagine that you’re designing for print and you don't know anything about the printing process, how to prepare the file, what materials to use or what type of finishings you can add to your work… would you be a complete designer? I don’t think so.
A pragmatic example is when you need to provide a style-guide that a development team will translate into code, the only way to truly know what you should be providing is by understanding what you're working with.
Even thought I'm recommending to dip the toes, it doesn't mean you can't dive in, actually you can go as deep as you like. It only depends on what you're passionate about and how much time you have to spare.
I believe in following your passion, and I think that in order to become good at something you need passion above anything else.
If you're passionate about something you'll put in the time, you'll practice and you'll endure until you reach your objective.
To become a better designer, there are many disciplines that you might want to dive into, based on my experience my advice is, go for it if you're passionate about it and only one at a time.
"I fear not the man who has practiced 10,000 kicks once, but I fear the man who has practiced one kick 10,000 times."
— Bruce Lee
This to say that you need focus to really improve or learn a particular skill, otherwise you won't be learning it properly and in the end you'll be using it wrong.
If you’re a designer and after dipping your toes you think you’re not interested in code, that’s completely fine. There are tons of other useful skills that you’ll love to learn, focus on those. I think there’s the need and a place for every type of designer, like they say, there’s a lid for every pot.
Now you might be thinking to yourself:
"How about the jobs offers that require a designer who needs to know how to code? I'll be missing opportunities if I don't know how to…"
I'll answer back with a question, do you really want a job doing something you're not passionate about? Think about it, the title "designer" is really broad, there are tons of subcategories and for each of them a very different type of designer is needed. They can sometimes be seen as completely different professions, you worrying about that is the same as an accountant worrying that his profile doesn't fit a job opening for a sales rep., it doesn't make sense, does it?
The best advice I can give is, understand what is your passion and put your heart and soul into it. Practice until you’re good and then keep practicing, if you do, then you should have no problem finding the right lid for your pot.
Short and sweet
Should you have a basic understanding how programming works?
Definitely yes, everybody (and I mean EVERYBODY) should.
Should you go beyond that, just because you're a designer?
Only if you're passionate about it.