I really loved Mark Otto's sentiment here — design and development aren't separate jobs like, say, deep-sea oil drilling and copyright lawyering are. We're all working on the same spectrum with an increasing amount of overlap. http://markdotto.com/2013/04/22/designer-developer-spectrum/
There's definitely room for specialisation but our work is so much richer when we learn about the full stack. If you want to know more about design — just ask a designer :). We don't bite, we've just been a bit lazy with learning resources recently. HackDesign is a great start but the design community are well aware that learning to design at the moment is a mix of formal education, figuring shit out over years of making mistakes and a sprinkling of black magic. There's no Railscast to grok typography, and that sucks. We're working on it though :)
In my opinion, we are having some serious problems with the words we are using.
We are mixing aesthetics and stylizing with things like ui flows and product design. Just becasue it's called "Design" it doesn't mean it can only be done by people with "Designer" on their titles. It seems that the only reason we are separating "Development" as another dicipline incapable of doing some of the things we call "Design" it's because we don't call it "Code Design".
A visual designer is as capable of developing a useful and functional ui design as a developer. Even if one is called "designer" and the other is not. Stylizing is another matter.
PS: My point is that some of the activities we are calling "Design" are VERY different to some of the other activities we are calling "Design". We lump them together because, well, they are called "Design". But they are not equivalent, not even related really, or at least not more related that some of those "Design" activities and "Programming".
As a metaphor, Architecture is not Interior Design, nor is Structural Engineering. An Interior Designer, by definition, is as prepared to do architecture as a Structural Engineer... and even less so in some cases. But with the right training, both can become Architects. Or for an example closer to software, Game Designers come from a lot of backgrounds, from art to writing to technology. Their backgrounds affect the type of design they do and their focus (Jon Blow, for example, prioritizes the "mechanical" design of the game, while Edmund McMillen works mainly from an stylistic point of view), but all of them are doing great game design.
Yes. There is a huge difference between someone who has rote-learned to use helvetica, put lots of negative-space on the page and can mumble something about 'flat design' and 'skeuomorphics'; and someone who can actually sort out workflows for a user.
'UI flows' as you say are a black art. They require considerable individual thought for each application (and potentially every user). Often engineers if they put their mind to it could do this better than any 'designer'. Usually nobody does. I think this is usually because there is no reward for it - because it takes time and doesn't produce any clear result.
Its the same in architecture (buildings) - I know because this is what I do for a living. People sell themselves as 'design-architects' but don't design good outcomes for the building's users because actually there is no incentive for them to put the time in.
I think he means there are different aspects to web design. You mention in your post that when you tried to design a site well you "ended up with a totally hideous website, using jarring colors, and too many fonts, with really thick borders and dense type." That's not all there is to design.
For example I find I'm not very good at designing something that looks nice but I can design a site/app to work well for the user. The UX is good. Steve Jobs famously said "Design is not just what it looks like and feels like. Design is how it works." You and I may not be good at the aesthetic part of software design but that doesn't mean we should dismiss it all together. Software developers can still be good at 'how it works' and it's possible they might be better positioned than a UI designer to do this.
I don't mean to self-promote, but http://hackdesign.org may be what the author is looking for. You can move at your own pace, and the lessons are curated by some of the most thoughtful designers I know of.
We're pushing out a lesson on Color Theory on Monday, then David Kadavy (author of Design for Hackers) is up the week after. We've already got 4 months of great content so far, and 8 more to go.
I'm glad you self promoted... looks like a cool program. I signed up and am about to start lesson one (I've already seen the movie, but really enjoyed it so I'm glad to see it again).
I came to the comments here for the express purpose of mentioning Hack Design. I've been doing it from the start and I've learned a huge amount in the meantime. It's fantastic.
There's already all kinds of resources to purchase on design (including Design for Hackers, which Wells mentioned). And if you're willing to pay for it, that's awesome. But the thing is, most of us developers aren't, because we don't think we'll be good at it, we don't think we need to be good at it, we don't think it's worth the investment, we aren't "designers" and therefore don't want to spend the cash on it, etc.
But we really need everyone to understand good design theory, at least at a basic level. It streamlines the development process, and it may even prompt a few developers who hadn't really thought about it to do a little more with design.
What I love about Hack Design is that it is free and very casual, which means I can look into it in my spare time because of my own interest and motivation, without any investment and without any risk.
Also it should be noted that the course is largely comprised of a curated set of already-out-there blog posts, articles, tools, and other materials. Curated is the active word there; it's like a guided tour of the design community. The toughest thing about getting started with any new area of learning is knowing where to start, especially with something so vast and foreign to many of us as design. Having someone to point you in the right direction, let alone guide you step by step through the entire foundational process, is a huge leg up.
Okay, I'll stop gushing now. I just really enjoy and appreciate this course.
This is a very self-aware article, and very astute. I would add that developers should not be afraid of design: in many ways, it is no different from programming, in that it follows some logic and rules, and that you can learn it, with time and the gumption to do so. Learn by copying the greats, learn who the greats are by watching who others watch, and just study what makes things look good.
Design is not some scary magical quality you're either born with or not—I am convinced you can develop an eye, and you can learn by imitation and attention.
But by all means, don't overstep the boundaries of your expertise. Good advice for any work.
Design is different enough from programming that if you're trying to learn both at the same time, you'll eventually give up. I believe that if you want to be effective, you have to get to a point where you can express yourself fluently in code, without any hiccups at all, before you can give design a shot.
Because basically, design (at the beginner's level) is a whole bunch of little tweaks until something looks just right. If you are designing in the same environment you code in, say by making your tweaks directly to the HTML/CSS, you're just going to get frustrated if your tweaks take any longer than a second or so to make and reload your page. To use a car analogy, it's taking your mechanical know-how and suddenly jumping into a NASCAR pit crew. You're not just fixing the car, you're doing it lightening-fast and super-accurate. If you're not already shit-hot, you're just going to burn out.
Because basically, design (at the beginner's level) is a whole bunch of little tweaks until something looks just right. If you are designing in the same environment you code in, say by making your tweaks directly to the HTML/CSS, you're just going to get frustrated if your tweaks take any longer than a second or so to make and reload your page
That's actually a moderately good analogy - even though I disagree with your conclusion.
Approaching design like that is like the developers who approach learning development by writing crap and then randomly tweaking and tweaking and tweaking until it sort of runs and does what they want.
Neither is a particularly good approach to learning design or development.
I, as a self-taught programmer, would learn design if I knew how. I just couldn't find any good material on this. I'm wondering if it is because designers are bad teachers or what. I subscribed to one of those courses that popped up here in hacker news. It was terrible. All it did was send me weekly emails with videos about how cool apple products are, or tasks that were way too far away from the actual work. I'm sorry don't remember its name.
Does anyone know of a good book/tutorial/course to learn the very basics? How the hell do I choose a good colour combination? I've read about the colour theory. Now what?
This reminds me of the time I taught myself photography through online resources. All of the 'photo' tutorials taught how to use the camera, which a) doesn't teach you fundamentals on what makes a good picture and b) is not necessary with modern cameras.
What I found much more useful was tutorials on how to paint, because they started off by teaching artistic fundamentals, such as composition, colors, etc.
Design for Hackers is a good book. I learned a lot from it, one of them is that design isn't that hard, there are some tricks, but they are not that hard to learn, and they do help a lot.
IMO, a hacker should learn every aspects of software making, design included.
PS, I am not saying that this book is what you can used to learn how to become a designer, it's a good one for a developer to reasonably understand how design works. "Design for Hackers" is exactly what this book trying to achieve.
More often than not you'll either be strong in design/art, OR strong in programming.
There are of course amazing artists that are brilliant coders, but this would be far more rare than the norm, which is one or the other.
Saying that, I'm a bit of a hybrid, not a great designer, and not a great programmer ;-)
I suspect hybrid types are born of necessity; i.e. when one knows neither how to design a website, nor how to program. BA/MA graduates building websites for a living likely occupy much of this space.
I suspect pure programmers are those with a CS degree who found work right out of college, diving directly into Java/C-family projects for Big Co., what need for design/art?
More often than not you'll either be strong in design/art, OR strong in programming.
The question is though whether that's a natural law, or an artefact of the culture of those communities of practice. Personally I lean towards the latter.
I'm seeing a lot more dev folk get more than competent on the design side (and a few UX folk getting competent on the dev side).
I am a developer and I also prefer to leave the design to the designers. I learned long ago that I have no sense for it, and moreover I find it tedious, so my energies are best directed elsewhere.
Eh, I have no sense for writing programs in Go, and I find it tedious. I spent three days at it, and now it comes much more easily. The same goes with learning Spanish, or playing the guitar, or learning anything for the first time.
If you find the process enjoyable, you'll be good at it soon enough. If not, well, there are plenty of other things you can do, but it's not because you "can't".
Hopefully, this will be my first step into acquiring an ability to make things [...] that people see and say “wow!”
Overall, great article, but keep in mind that the goal of good design isn't to make people go "wow," it's to be invisible. The best interfaces are the one people don't even notice. Remember that you're designing for your users, not for other designers. It's surprisingly easy to forgot that.
Also, I recommend checking out "Design of Everyday Things" by Donald Norman. It's an excellent introduction into usability design.
Overall, great article, but keep in mind that the goal of good design isn't to make people go "wow," it's to be invisible
Or rather - it's only to make people go "wow" if making that happen is part of what the goal of the design is. Designs being invisible that should "wow" are just as bad as "wow" designs when they should be invisible.
The point of this really shouldn't be "I leave it to designers because they're better at aesthetic design" it should be "I leave it to designers because I'm already a good coder, and my time is more valuable".
Designing a really great product beyond choosing fonts, colors, and shapes (which is extremely hard, but you can Google good font pairings and color palettes) just takes time and lot of thought. Experience counts, but you have it. If you spent 2 weeks working on a UX, you'd do great work, I promise you.
I think my choice of the word "great" in the second paragraph was off, but I'll stand by the rest. I have a legitimate learning disability when it comes to aesthetics, going as far as not being able to recall what shape almost anything was 5 seconds after seeing it. I'm also excellent at web design, because it's really a logical, emotional, and time/test driven process more than aesthetic.
I'm also excellent at web design, because it's really a logical, emotional, and time/test driven process more than aesthetic.
Once you dig into some design theory - you'll find that visual design (and other elements of design) are a lot more "logical, emotional and time/test driven" than you think ;-) There are lots of rules of thumb and heuristics. Lots of applied knowledge rather than just judging things from an aesthetic POV.
Indeed the process of becoming a good designer is basically building up that aesthetic POV from the ground up. In a similar way that experienced developers see "ugly" code much more directly than beginners do.
Obviously I don't know you - but I've worked with folk who have said very similar things to what you've said about having no eye for aesthetics who have ended up with some fairly good basic design chops.
I am in the same boat as the author. You can get a lot better at design by starting to look with a curious and critical eye at well designed web sites and things like movie posters.
I'm still not very good, but I'm able to put together nice sites with the help of Twitter Bootstrap and wrapbootstrap.com templates.
Here is an example of what a non-designer hacker can put together in a couple hours with a wrapbootstrap theme, icon finder and images from around the web:
I've been going through the free book Designing for the Web, and while it has some older material in terms of code examples about CSS, it contains a great amount of useful information about and theory behind design. A section of the book that was very helpful to me is about how to research and gather ideas for the design process. http://designingfortheweb.co.uk/
I had similar thoughts. However, in the last year I've made a big effort to at least understand what makes design tick. I don't expect to ever become a guru designer, but there are benefits. A little knowledge goes a long way towards working better with designers, and much more useable prototypes.
Great design is art. You can master the principles, techniques, and skills, but in the end great design comes down to vision and imagination.
However that doesn't mean developers can't be really good designers. Anybody can learn how to emulate the good design of the present and create products which fulfill the design demands of consumers.
"Now, I leave design to the designers. I recognise that design and user interaction is a really insanely important part of a project, and that it should not be left to people who do not know how to do it. This includes developers, bosses, and even clients."
I'd rephrase that to "...bosses, clients, and around 65% of those who call themselves designers"
Sorry, false alarm. It seems to have been caused by a possibly corrupt Baskerville font on my computer, which caused certain character combinations like "er", "te", and "is" to have ridiculously wide spaces in between. Still, I have no idea why only Firefox was affected and not Chrome and IE.
Suggestion: Use web fonts. "Baskerville, Times New Roman, Times, serif" ain't a web-safe combination.
There's definitely room for specialisation but our work is so much richer when we learn about the full stack. If you want to know more about design — just ask a designer :). We don't bite, we've just been a bit lazy with learning resources recently. HackDesign is a great start but the design community are well aware that learning to design at the moment is a mix of formal education, figuring shit out over years of making mistakes and a sprinkling of black magic. There's no Railscast to grok typography, and that sucks. We're working on it though :)