I've been designing websites for over 18 years, and mobile apps for ~8 years. My coding aptitude is about the same as my Spanish: I understand it, but don't ask me to write (much). I think we all fall on a different spot within the spectrum of novice to expert.
If you're a digital designer (web/mobile app/interface) I think you should be interested in code, but by no means do you have to learn to code.
It's like telling a print designer they had better learn to create their own typefaces. They don't.
If you're a digital designer (web/mobile app/interface) I think you should be interested in code, but by no means do you have to learn to code.
Mike, your advice is well-intentioned, and, at least for today, spot-on. However, with the way technology advances and competition, for both business and employees, becomes much more fierce, it'd be a mistake for a designer not to add Coding Skills to their arsenal. In 1-2 years from today it could be the difference between providing a good life for your family and living from paycheck to paycheck.
It's like telling a print designer they had better learn to create their own typefaces.
For me it's more like telling a Print designer they'd better learn how to design for the Web. I know many who were left behind because they couldn't adapt to a new environment in which design was flexible and iterative, rather than static.
I hear you. It's such a macro-level question, I find it counter-productive. Coding what? CSS? XCode? PHP? I think coding fundamentals are key. The stuff I used to do in Actionscipt (dating myself) is just as valid now as it was in the pre-iPhone world. You'll find loops, arrays, conditionals, and if-then statements everywhere.
I feel like it's a warning where no warning is needed. If you're a digital designer, you should already be interested in code.
For me? I like tinkering with Wordpress templates. I like customizing the CSS on my site. I like viewing the source code on new and interesting websites.
Understanding the possibilities and limitations of technology allows me to know what I can design, and collaborate with people on my team who have the technical chops to execute it. Do I need to know how to build what I propose? Absolutely not. Would it be a huge plus if I did know how? Sure.
But again, for me, there's a spectrum of understanding/skill.
not really. Having lead design teams and hired designers, I'd take a talented designer who can design over a someone who's ok at design and code.
Should designers know what code is? Yes.
Should designers be able to articulate what can be done with code? Yes.
Should designers be able to use code prototyping tools? Sure, if it's relevant.
Should designers write production code? Jesus no. That's what engineers are for.
My thoughts exactly Barry, there are some really talented folks out there who can whip up great design and quality code blindfolded, but most of the time it's better to specialise and be really really good at one thing and have top-level knowledge of the wider skillsets.
I wouldn't even know how to find the time. At Match I'm constantly swamped with work, more than I could ever do and much of the polish that we really should be doing gets neglected for this reason — and I've done so well here largely because I turn around work fast.
Maybe I can see where the people saying this kind of thing are focusing heavily on the Silicon Valley world or thinking somewhat futuristically about automation (as well as an arrogant assumption that since products mostly all use the same solutions now, that we've "figured design out" and design will just get more brainless)
I don't buy with this notion that if you know how to write code that makes you a mediocre designer.
Code is just a medium. How you apply it is what matters.
You can use it to solve computer science problems, architecture problems, product problems, or design problems.
When we talk about someone who's "good at design", what are we really talking about? Someone who can create a great visual representation of something? Or are we talking about someone who can craft a great solution based off some information?
While there may not be a ton of people who are good at creating visuals and code, there are a ton of people who craft great product solutions and write code, which if we're talking about "design" as more than aesthetics and visuals, makes that person a great designer.
Visuals and code could be considered two mutually exclusive disciplines. However the ability to craft strategy, understand research, create solutions to business/product/user problems, and write code are not.
The core design skills:
Understand psychology and HCI
Apply psychology and HCI
Keep current with academic psychology (big psychology replication crisis going on right now)
Do user research
User ethnography and contextual inquiries
Sell a solution
Create a product vision
Do stakeholder management
Do accessibility testing
Do user testing
Do heuristic analysis
Understand motion design
Understand colour theory
Increasingly: service design
Now in my career I've known a couple of extremely talented people with maybe half of these skills. The reality is there's just too much in design alone for one person to know all of it. I've met a few people who can do maybe a quarter of this plus code, but they are extremely rare.
Is it possible for one person to know all this? Sure.
Is it possible for one person to know all this plus code? Again, sure. Unlikely, but possible. I've never met one, but I'm not ruling it out.
Is it reasonable to expect a designer to learn to code? Sure, if they are specifically a production focused designer and someone else in the business is doing the research and strategy. I've met a couple of people like this. Often they're frustrated cause they just get treated as another developer and don't get to do the research and strategy aspects of design.
Is it good advice for designers to learn to code? Well, if you like production focused work, there are a lot of startups and ad agencies who'll hire you.
If you see writing code as simply factory-type production work, then you're just as narrow minded as the person who looks at "design" as simply aesthetics.
Gap analysis, Market analysis, User analytics, Specification, Product strategy, Information architecture, Understand psychology and HCI, Apply psychology and HCI, Sell a solution, Scenario planning, Create a product vision, Prototype, Wireframe, service design, Create personas, Do user research, User interviews, Do stakeholder management.
These are not designer skills. They're used in design, but not exclusive to people who:
Create comps, Art direction, Understand motion design, Understand colour theory, Understand typography
Many of the things you listed are shared responsibilities among product, design and tech. Building great products is a team sport after all.
I don't see code as simply factory-type production work, but I've rarely seen a business that's structured to take advantage of creative coders. Every designer / coder I've met has been frustrated by being pushed into production work.
I agree that building great products is a team sport. Good design comes from creative tension between people with different specialisations. Which is why the constant push to learn code instead of all those other design specialisations is frustrating!
If design is not a viable profession in the future why I should became a developer? I mean, coding and design are totally different. Yes, we both work in the digital work but that is all. When you say that to survive as a designer I have to became a developer, you are actually saying than I´m not going to be a designer any more, because if you want to be proficient in coding, believe me, you need to study hard at lest two or three years and you have to be upgrading your knowledge all the time. New technologies, new languages, new frameworks... If you want to be a pro developer you just have to be a pro developer. Beside, I did not choose design because of the money but because I love it. So, as I tell you, If design is not going to be a viable profession in a couple years (I don´t agree, by the way) maybe I´ll try to be a 3D designer (something closer to design than coding), a handcrafter, or a chef... but not a developer.
Agreed. Being able to write production code (clean, consistent, maintainable, performant, etc) is something that takes a lot of ongoing attention. If you can write production code today, but stop learning the new things, your knowledge will be out of date in a few years.
But being able to look at a bit of code and have a general idea of what it does is super valuable. You don't need to be able to write it yourself, or even edit it. Just a rough understanding will help so much in communicating with developers and designing things that are reasonable to build.
Nods head vigorously
Tools like FramerJS are fun because they enable designers to show a bit more flair and get a bit scrappy in code if they want to, and its really useful for showing complex interactions. But it's whole world away from all the intricacies of a production environment.
Yes, absolutely! (Sorry just noticed the reply notification from a month ago)
And if you're writing production quality code for a framer prototype, you're wasting your time. The whole point of prototyping is that it is much faster than actually building the thing. It should be hastily written code that is all copy/pasted and Frankensteined together.
In fact, I'm not even convinced Framer is the best tool most of the time. It certainly gives you a ton of power to create dynamic, complex prototypes, but something like Principle takes less than half the time and has 90% of the fidelity of a Framer prototype.
Hi, I'm a print designer turned UX and I can create my own typefaces.
Very cool. I think the most creative designers are multi-dimensional.
I think the better analogy is telling print designers to understand paper, and how printing presses work, or other printing methods. It's the manifestation of the designers work in the real world.
Understanding paper weights, how separations work, which colors lead to oversaturation, etc. all help the designer become better at their craft and avoid unintended side-effects.
I feel it's the same way with code. It's the same manifestation from concept to reality and leads to a better understanding of the medium you're working with.
Seriously, let's just sink these discussions from the homepage forever.
Another case for the downvote button.
Should developers design?
Should designers design?
Only if the boss's kid who is a whiz at photoshop doesn't have the time to
Farmers should know how to build their own tractors.
I believe what John Maeda is saying is that writing code is a primary design skill, not a complimentary one.
The idea is that more and more digital products, many with no visual interface, are designed with code.
It's not saying that writing code will help you design better; it's saying that in an increasing many instances, writing code is design.
Writing code is not design.
What makes you say that?
Design is how things work. And code is what defines how things work.
Of course, the designer doesn't need to be coding everything by hand. But we're responsible for communicating design intent to the people who write the code, and if we don't understand the processes and constraints that developers have to deal with, then communication breaks down and we design things that are difficult or impossible to build.
I agree, but I don't see how that invalidates writing code as design.
If design is how products work, and code is what defines how products work, how is writing code not design?
I don't buy that retro-fitting a 'classical' designer into an engineering mindset is the right way to design a product. I would have to think that it would be much easier and more efficient for engineers to adopt a product design mindset, seeing as they already use a ton design concepts when writing code.
You've got me backwards. I'm saying that writing code IS design.
Or more accurately that code is the final expression of design, and so it's a design task to make sure that the design intent survives the development process.
I agree with this, and don't disagree with anyone who says that designers should learn SOME code — enough to understand how development works and what is possible, how to communicate design intention etc.
I think, too, that good relationships and communication with developers in a collaborative effort will suffice, however. Developers appreciate being considered a meaningful part of the process and being collaborators, not just grunts who execute design.
With all the recent advancements from Adobe (see here: https://www.fastcodesign.com/3068884/adobe-is-building-an-ai-to-automate-web-design-should-you-worry) to automate both the coding AND the design process to an extent, I think these primary design skills—while having the foundational knowledge to know why things do or do not work together—is on its way out the door. I mean, just look at what happened to photography? These days, auto crop and white balance tools can make an 8-year-old's photograph look like it was taken on a DSLR by a seasoned vet. That said, I think originality is going to be the next frontier. How can we work with automated processes and still stand out above the noise? I'm not saying I'm right by any means, but this is just where all the obvious arrows seem to be pointing.
It depends on the resources and systems in the company you work for.
Now stop beating the dead horse.
But ma' exposure!
Nowadays you're not a proper designer if you don't write articles about how important is to learn to code and how much Dribbble sucks.
Will companies be willing to pay us more if we do understand code?
Yeah didn't think so.
Also getting a bit tired of Maeda, used to love his work 10-15 years ago but since he took the full startup/VC pill he's been a tiresome bore.
1) Maeda talks about designers learning to code but maybe he should spend some time designing a legible PowerPoint presentation. https://designintechreport.wordpress.com/
2) Have you tried reading any of his books? Try The Laws of Simplicity where he spends half the time fawning over his tenure at MIT while creating an tangle of rules that are hard to remember.
3) While we're at it, let's take a look at Maeda's website: https://maedastudio.com/ Designers, want to chime in?
I'll give Maeda one thing: he knows the art of self promotion. Does he have a valid point about designers learning to code? Yes, but it makes sense when they attain mastery in design and need a new challenge.
It's funny because Maeda's report doesn't focus on designers needing to learn to code. The headline is deliberately threatening and clickbait-y. In fact slide 27 of his preso explicitly says "Code is not the only unicorn skill" where he talks about the importance of writing skills for designers.
Why won't this debate die? I know some very successful designers that do not code. I know some very successful designers that do code. It just depends...
Most of the comments are short sighted.
Learning to code at 30 isn't going to help you compete with 20 somethings who can do both. They will be cheaper than you, and in all likelihood, they will be quicker than you.
Whilst I think learning to code is of great benefit to a designer working for the web (my experience only), you should be thinking of the bigger picture of your career.
Will you, at 40 or 50, still be designing apps or websites?
If you want to make a career of this, then you need to think long term. Where can you add value when you're 40? The answer may be that you need to be involved at a strategic level; the Art Director or Creative Director. Perhaps you want to continue day-to-day designing – in an Agency, or solo? If so, do you need to build up a list of contacts now?
The problem with most of these threads and articles is short-termism. If you think that coding is going to help you have a longer term career, then do it. But that's not the core of the problem.
That is another good question. How long is the professional life of a designer? It´s something that really concerns me, because you really think than all the designer of the world can became creative directors? There is no place for everybody. I´m trying to find my B-plan but maybe, this is something that should be explained to the students when they are young. "Hey, you can´t be a designer your whole live, In the future, when you will be 50yo you are going to be too old to work, think about that"
It seems to me that the natural path is to move towards strategy/operations as you get older. These are two things that young designers don't do as well as more experienced designers – frankly, they don't seem interested in this stuff.
I think a working knowledge of engineering technology is always helpful but there really is no need to be proficient; leave it up to the pros. Learn just enough to have a good conversation about engineering.
I can´t understand why the best way to survive in design is became a developer. Really, I can´t understand you.
I´m a designer not a developer, not a chef, not a plumber. Coding is not necessary to be a good designer. What coding languages have I to learn? Desktop development? Native apps development? Should I study 5 years to become a pro developer? Or you really think that coding is something you learn watching a couple videos or reading three books?
The infamous clickbait.
Video of his presentation if anyone is interested
Imagine we are in the mid-15th century, the title of this article would be "If You Want to Survive in Design, You Better Learn to Letterpress Print".
Why is this frontpage? God does the downvote button need to exist here
Went through the actual report and don't see Maeda stating anywhere what this article headline says. The report in fact states - Code is not the only unicorn skill. And even says designers should get good at writing, business, articulating etc. I guess the article is just clickbaity and we should stop reacting.
The writing a code is just a tool. It is very useful no doubt. But it useful like many other tools: 3d-modeling, creating motions effects, painting etc. In one design work, one of this tool may be essential but in another, it may be optional.
If you can use some specific framework for designers, like framer.js, it doesn`t mean you know how programming. It means you know framer.js and it is all. Writing the code, art of programming is more than that. It is something you have to dedicate a significant amount of time.
If you can use some specific framework for designers, like framer.js, it doesn`t mean you know how programming. It means you know framer.js and it is all.
See how devs (the less talented ones) react when you come to them with something made in one of these frameworks. They flip their shit if you work in something that doesn't tow the line in their framework du jour
I understand that designers have to understand code. Of course. It's like designing mobile and testing it on its phone. It's common sense. Tough, I don't think they have to learn code for it. That's why we work in teams, right ? I design with developers. They explain everything I need to know, I explain everything they have to know to them, and we build something together. I can do the basics but the rest is up to them. This way, I don't need to learn code.
Maybe get a better shirt.
Should Designers survive?
Jokes aside, Is there still any doubt about the benefits and advantages of knowing how to code in this age?
Even Designers who, for some reason, think that they don't need to learn how to code may have already realized that their arguments might actually be rooted in an inability to overcome obstacles and getting out of your comfort zone.
I like that John Maeda used the word "survive", for that's what it is. Digital selection.
Do you consider design as a practice to be something that requires you to be a lifelong learner of tools, best practices, trends, methods, and schools of thought?
Do you believe coding is not also this?
Do you believe it should be the responsibility of a designer to think both creatively and in the almost entirely opposite fashion in not only learning to code, but following the developments in the field and be a lifelong learner and practitioner? Do you think, then, that a designer should essentially be an expert in two rather different entire careers?
The idea that "coding" is simply a skill one can pick up like "hand lettering" and simply toss that in their skillset seems ridiculous and insulting to developers. Sure, one can learn an amount of code and utilize it — but is there no value in being a specialist? Is there no room to have other hobbies and areas of interest?
I for one engage frequently in consuming information and thought in the areas of psychology, philosophy, politics, narrative theory — all of which, I believe, in some way expand my knowledge of the others and supplement the way I think about design. Should I instead spend that time learning code, then learning new languages and technologies?
Should I stop taking time for myself? My family?
You should do whatever you want. Whatever makes you happiest.
As far as coding, the argument is that it can aid your design skills. At the same time, so can other skills. Personally, understanding at a basic level how to code a responsive site helps me when designing responsive things. Doesn't need to be overly complicated you know?
I think you should first learn how to learn. Then, have a good grasp of the fundamentals of Design and Development and everything else (new tools, best practices, trends, methods and school of thoughts) will be easier to pick up. Not "easy", but easier than starting from scratch.
Also, learn how to differentiate between what matters and what doesn't. You don't have to learn how to use every single JS library that is published, just like you don't have to read every single Design article or learn every new trend or tool.
Finally, determine the opportunity cost of the subjects you want to learn. For example, maybe learning how to code will give you more value in a shorter time than learning Politics. You could then focus on learning Politics at a later time.
Stop crawling around in my head and taking the words out of my mouth!
I'm curious, does he also challenge engineers to learn how to design? From my experience at Product companies, I can't possibly see this being a journey that would provide valuable outcomes. (Haven't watched the video yet).
I think that a designer should learn enough about coding/scripting to be able to understand what the technical requirements and resources for the project are, and the ability to be able to call bullshit on developers. I'm mixed on to what degree a designer should be able to code, but I will state that a designer who is a great coder will have more career opportunities and an improved ability to go their own way, if that's what they desire.
Every engineer I've worked with has specialised in one, maybe two frameworks. They work with it constantly and study to keep on top of changes. The idea that designers can pick it up while also doing research, strategy, prototyping, high-fidelity design, testing and iterating is just laughable.
I don't think there's much a debate about whether designers should code, I think it's more a matter of how much and what they should be responsible for. I absolutely think that designers should code and that a designer that codes well is best set for their future.
Now everything is an isomorphic web app, everything is React, or Vue, or whatever. Everything will be ES6 and use compilers. If you are a large service, eventually everything will be React components that transpool down to their React Native and React JS equivalents. I think it's going to be increasingly difficult to find designers who can contribute scripts for theses sorts of projects, and, in my experience, if a designer excels in these areas then they may not find themselves being deployed as a designer for much longer, favored instead for engineering work.
I think that instead, we should be preparing designers to prototype, to work with hard data sets, to expect them to design for interaction and for null states, and none of that really requires coding. I think you're just more cognizant of them if you're also a developer, but that understanding can be trained.