
Is it possible to become 'excellent' at both design and coding? - travissisti
Today I left my position at a tech startup (to join a different tech startup). My former boss and I have some differences of opinion, but I respect him a LOT, and he gave me some parting advice that really stuck with me.<p>He said, "You're going to be successful. You're very good at two things [design and front-end development]. You need to focus on ONE of them, and get from 'very good' to 'excellent'. Then build your career on that."<p>My career thus far (5-6 years) has been based on straddling the fence between the Photoshoppers and the code wranglers, and I'd like to think that I've gotten to where I am because of that mixed skill set. But my boss wasn't the first person to tell me this. I've had people from both camps suggest that I pick one discipline or the other and really become an expert.<p>A couple questions:<p>1) Am I selling myself short by trying to be good at multiple things, when I could be an expert at one?
2) Is it even possible to become truly excellent at more than one thing in one's career?<p>And a bonus question:<p>*) Are there any examples of 'generalists' who have built and/or led successful startups?
======
alexkearns
The beauty of being both a coder and designer is that you can create a product
completely on your own. This makes setting up your own start-up a lot simpler.

So, to your question of whether you should focus on one or continue to be
generalist, it depends what you want to do with your life. If you want a
career working for others, then it might be best to focus on one of the
disciplines.

If, on the other hand, you aspire to create your own products, or run your own
startup, then I would recommend you continue to work on both your skills.

Indeed, my advice for any developer who wants to do their own start-up is to -
once you have reached a good standard - forget honing your development skills
and start learning to design.

Learning another programming language or mastering another object orientated
design pattern does not bring you any closer to being able create a product
yourself. Learning an entirely new but relevant skill like design does.

For your information, I am a journalist who became a developer five years ago,
and who very early on in my development career sought to improve my design
skills.

I am the guy behind <http://www.gambolio.com>, <http://www.tiki-toki.com> and
<http://www.peopleplotr.com>, for which I did all the design and a good chunk
of the coding. Also responsible for <http://www.casualgirlgamer.com> and
<http://musicgames.co>

~~~
keisimone
Hi Alex, I am really impressed by your design skills. And having spent more
than 5 years learning programming and doing programming, I agree with your
point that learning designs brings an extra dimension to my work that another
language will not.

Any advice for the design skills impaired developer like myself?

------
adrianhoward
I had folk give me similar advice when I was young. It's dumb advice.

Imagine you go the coder route. When you going to specialise in there. Big
data? Databases? Embedded coding? 3D graphics? Game coding? Web app coding?
Front-end? Back-end? Testing? People can make careers out of any of them - and
many more besides. It's pretty much impossible to be an expert in _everything_
on the coder side.

Imagine you go the designer route. What are you going to specialise in there?
User testing? Icon design? Branding? Web design? Print design? Interaction
design? Information Architecture? People can make careers out of any of them -
and many more besides. It's pretty much impossible to be an expert in
_everything_ on the design side.

I've had a pretty successful career with a bunch of things from the developer
side and a bunch of things from the designer/UX side.... and some other bits
and bobs from other things like project management and business folk.

I'm really good at interaction design. I'm really lousy at visual design. I'm
really good at testing. I have no embedded coding skills. I'm great at...
well... you get the idea...

Design and Development aren't "things". They're communities of practice.
They're social constructs. New ones appear and disappear over time.

Pick "front-end developer" for example. Twenty years ago that role didn't
exist. A bit of layout knowledge. I bit of a design eye. A bit of development.
A bit of markup. And so on. Those skills existed - but there wasn't a 'role'
where you needed to be expert in all of them.

In another ten or twenty years I'll be surprised if anything like "front end
developer" exists in the same way (look at how folk using stuff like node.js
blurs the coding side of front/back end development for example).

Figure out what you want to do. Then acquire the skills you need to do that -
and be excellent at those. The choice isn't between being a design expert and
a development expert. Instead make a choice to be excellent at the things you
enjoy and are good at - and then go find career where you can use those
skills.

------
SeoxyS
I consider myself both a designer and a developer, and wouldn't have it any
other way. One day I will be pushing pixels, the next I will be writing an ad
targeting algorithm in Clojure.

Do you think it's impossible to be good both at Graphic Design and playing the
piano? No. Why should it be any different with development?

Your mixed skill-set makes you an easily differentiable and incredibly
valuable personality. I would hire you in a heartbeat, if you're both great at
coding and design.

As for your bonus question, here is some anecdotal evidence: I joined a
startup as employee #1 started by a generalist friend (and a non-tech co-
founder). For the better part of a year, we were the only two technical
people, both generalists. We made some awesome stuff, and now we're making
bajillions of dollars and have ~20 employees, 14 months after day one.

~~~
andrewfelix
_> I consider myself both a designer and a developer_

But do you consider yourself 'excellent' at both?

~~~
adrianhoward
_But do you consider yourself 'excellent' at both?_

Do you know anybody who is _expert_ in everything in design or development?

If not, why does it matter if somebody chooses to specialise in a subset of
design and development - rather than a subset of design or development.

~~~
andrewfelix
Read the OP title: _'Is it possible to become 'excellent' at both design and
coding?'_

~~~
subLimb
That seems like a very simplistic question, and adrian and seoxy are trying to
explain why that is so. There are MANY facets within both coding and design.
It would be simplistic to assume you could be excellent in all facets of
either one (because they are so broad). So why can't it be possible to be
excellent at certain aspects of both coding and design?

------
idan
Hybrid dev/designer here. My experience:

Being a hybrid is difficult because of these kinds of situations. Even if you
get to be very good at one or the other (or both), you're still perceived as
inferior by virtue of your supposed "lack of focus."

Bullshit.

I had a hard time with this until I realized that I bring something rare to
the table. The ability to traverse these two worlds is an immensely valuable
trait. People like you are often the glue that binds great teams together,
because you know both professions from the inside, and you're able to
communicate with each in their own terms. You can add value constructively
("Here's a possibility that either side isn't aware of because they don't know
what the other half can do") and prophylactically ("That's a bad approach to
the problem, because the other team will get stuck hard if you do it that
way"). You are uniquely able to hash out ideas to the show-somebody phase
quickly, because you know how to supply all the requisite ingredients.

At the end of the day, hybrids like you (and me, and lots of others out there)
have a harder time demonstrating value because it's assumed we are simply
shallow generalists. I'm sorry to say that the onus will always be on you to
prove them wrong, and you have to market these rare aspects of yourself. The
effects of your presence in a company are often diffuse and hard to measure,
which makes your task doubly hard. Welcome to the club.

There are many companies which are desperate for talent like yours. If you are
like me, you'll feel unfulfilled working exclusively on one side or the other.
Don't settle for a job that only draws upon half your talents—you are more
than the sum of your parts. Keep growing both sides of you, and make
"marketing myself" a learning goal for this year. :)

~~~
travissisti
Great points. I think you're dead-on in your observation that the hybrid's
biggest values often go unnoticed. Executives won't see or hear every little
thing you do that adds value; interfacing between design and dev is the big
one, I agree.

To be honest I've never given much though to marketing myself. Maybe I'll pick
up a Seth Godin book or two this summer.

------
shalmanese
I don't think it's possible to become excellent at both being a designer and a
developer but I do think it's possible to become an excellent
designer/developer and the distinction is important.

First of all, I think there's been a devaluation in the term "excellent";
every startup is hiring "the best people" and all teams are "A+". Under the
current, debased meaning of the word, it's trivial to be excellent at both.

But, to me, to achieve excellence requires becoming the embodiment of the
craft. An excellent engineer, when they have a spare moment of the day,
they're thinking about an engineering problem; when they encounter a problem,
they analyze it like an engineer; when they cook dinner, they cook as an
engineer would. They don't just merely work as an engineer, they live as an
engineer.

And because of this, you cannot serve two masters. Once you become excellent
at engineering, you can't become excellent at design because to get to an
level of excellence would require doing things which your engineering brain is
screaming at you are wrong to do.

What is possible, is to become excellent as a designer/developer which is,
instead, to focus on the embodiment of the inter-relationship between the two.
To look at all problems as a fundamental tension between the two world views
and an appreciation of how to thread the middle path.

~~~
travissisti
It kills me that everything is "5 stars", "10/10", "#1" these days. When
everything is special, nothing is special, right?

I like how you identify the designer/developer as a role in and of itself;
embracing the tension instead of picking a side. I've never heard it phrased
quite like that before, but I think it makes a lot of sense.

------
jorgeleo
You are focus in the wrong question. His advice is like saying: you are good
at tables and divs, pick one and be great. Design and front end goes hand in
hand, is really hard to be excellent on one and sucky at the other. His advice
refelects two things and neither are related to you:

1\. His view of the world is framed by specialization. You're a good pawn if i
can easily put you in a box that I can understand, but is hard for me to
imagine someone that s great at both things, hence you should pick one. The
lack of understanding is a defect on him, not on you being too general. If you
have both talents, great! Enjoy.

2\. He is a boss, and instinctivly will try to parent you because is a non
aggresive way to manage your behavior, something that he is pay to do. The
problem is that kind of relationshipss are hard to let go, so he has to give
you something, and whatever he gives you comes out of his vision on how the
world should work. This is not ill intended, his advice might be honest, but
without realizing it, limiting.

I think you can safely ignore it and move on into your new workmwith an
attitude of: do you want me to fix your front end? Because is not working
properly and it looks like shit.

~~~
travissisti
Thanks for the comments, jorgeleo. I do believe my boss had my best interests
in mind, but you're probably right that it's easier to put someone "in a box"
than it is reconcile the nuances of someone who evades classification. And
hey, I don't blame him; I like to organize, classify, and categorize stuff,
too. Everyone does. I think it's just human nature.

But your overall point is well taken. I'll focus on doing good work and try
not to worry about where I 'fit'.

------
jamesflorentino
Unfortunately, there will always be a multi-classing penalty of sort. (I'm one
of those people who code and design for web development, but masters neither.)
For design, I've learned that the essential trait is to set one's mindset and
philosophy on problem solving (as well as have an intrinsic taste for art).
For code, I believe it is quite similar. Except that standards and practices
constantly change. As a designer, it is your goal to meet and deliver these
standards. Personally, I find it hard to be extremely good at both although I
still consider myself competent.

My personal answer your question:

1\. Some companies/start-ups value designers who have penchants for design
while still being technically competent. e.g. someone who is familiar with
grids, typography, art movements. While at the same time is familiar to
version control, knows the basic structure of an app and the ability to build
it single-handedly. Although I think that they serve a better role as project
managers.

2\. I have yet to witness one. If ever I meet one, I'd like to know how they
were able to balance their daily information consumption.

edit: spacing

~~~
dsirijus
Multi-classing penalty, of course, applies. BUT there are classes that are
multi-skillful by itself. And you can be excellent in those, even if they fall
behind in any particular skill behind the more focused ones. That being said,
I've always played rogue or bard. :{-

~~~
rdavl
Bot of these comments are excellent, I love the comparison to multi-classing.
I think it really hits the point.

~~~
dsirijus
Yes, it's been well discussed in long sleepless nights, as any D&D subject. :D

------
forgottenpaswrd
Is not that you can not be an expert on both things. It is that you can not
"execute" on both at the same time because you don't have time.

Time is your main resource and nobody can do it all at the same time. Some
things take a lot of time just starting to work and if you change from one
thing to another during the day you don't do anything.

But don't believe me. Test it yourself. Measure your time, take your
smartphone timer and monitor yourself along the day, write it down how you
spend your time, not as you should, but as it really is.

If you are as good as you said you can pick one as your main area and them
choose someone who knows how to do the other. Having "taste" and knowing who
to choose is not as easy as it sounds.

(*) Yes, there are examples of generalist who have led successful startups,
most of them are done by generalists, if for generalists you mean someone who
is able to trust others doing the specifics because they know they can't do it
all. With a startup you have to be accountant, tax payer, product evangelist,
sales manager, marketing head, engineering head all yourself...

------
joelrunyon
One thing to note - there's value in people who can be "bridges."

It might make some specialists angry, but there's value in people who can take
a meaning in one realm of people and translate it to something meaningful in
another.

Designers and engineers tend to speak different languages, so being a person
who can communicate the differences and take what a code wrangler means and
turn it into a design (and vice versa) is valuable.

I think what you want to stay away from is being the "I know everything about
everything" guy - that sets you up for failure.

~~~
travissisti
Acting as a liaison between teams -- and even between members of the same team
-- is something I find myself doing often. Unfortunately, as @idan pointed
out, these kinds of things often go unnoticed by management; and even if they
are noticed, they're hard to quantify.

------
gojomo
If he was talking about '[visual/user-interface] design' and
'[algorithmically/architecturally-scalable] development', I could see there
being a tangible tradeoff in acquiring expertise. Effort spent on one may
offer little spillover benefit for the other, meaning larger returns to
specialization.

But '[visual/UI] design' and 'front-end development'? I'm perplexed that so
much of a culture of splitting these roles has arisen. In my mind they overlap
so much that enforcing a formal division, in either process or the recognition
of 'expertise', introduces wasteful mismatches of expectations and cost/value
estimates. That is, the dividing "fence" you say your career has been
straddling shouldn't even exist.

The cynic in me thinks the advice you've received, from the boss and 'people
from both _camps_ ', has been more about them defending their traditional turf
and comfortable silos than what you should do to be 'excellent'.

~~~
travissisti
To be fair, I do feel that the people who've suggested I make a choice are
looking out for my best interests. I would consider each of these people to be
a friend (including my former boss). But I do think you're right that people
like to classify things and put them in boxes. I don't fall into either box
and that may cause dissonance for some.

------
Kaizyn
Right now, the field has decided that the coder-designers are worth their
weight in gold. As such, at this moment and for the foreseeable future, you
are in a great position to pretty much write your own ticket wherever you want
to go in the startup world. This will occur even if you don't ever progress
your craft beyond being 'very good' at both design and front-end development.
For this reason, you now have a good opportunity to decide for yourself what
you will enjoy doing most without having to worry about pigeonholing yourself
into some particular job description.

Also, consider this: if you have become 'very good' at design and 'very good'
at coding in 5-6 years of applied practice, then how much further will you
push your skill with another 5 years of dedicated effort?

~~~
travissisti
Thanks Kaizyn, this is very encouraging. :) I consider myself very fortunate
to have a broad range of options.

------
Gabriel_Martin
Check out page 46 of the Valve handbook, I think their take offers some
insight:
[http://www.valvesoftware.com/company/Valve_Handbook_LowRes.p...](http://www.valvesoftware.com/company/Valve_Handbook_LowRes.pdf)

On the other hand, there's an argument to be made to the tune of: "Try to sit
in two chairs and you'll fall between them."

My opinion is that anyone who builds and/or leads a successful startup will
tend to wear many hats during the process, especially in the beginning, so if
you're goal is to found a startup, having a diverse skill set can't hurt. Even
if the founding team consists of individuals with their own unique skills, the
cycle of design, production, and deployment is one that requires a
collaboration between stages to be functional. Design leads to production,
production to deployment, and deployment to re-assessment and design once
again, etc. Stagnation in any of those areas is dangerous for the success of a
startup, and can come from a missing or weak link, and just as easily due to
poor transitions between phases. Being able support this cycle by tapping into
both skills is a great asset to a team, and a early hire or a founder, and I
believe that creates a strong argument for maintaining each skill set.

~~~
travissisti
I LOVE the idea of the T-shaped person -- that's a fantastic concept, and
seems like a great target for my own skill development. Plus, it makes me an
even bigger Valve fan than I am already. :)

There are certainly many, many skills that go into building and running a tech
startup, but I think the technical skill continuum looks (broadly) like this:

systems > back end > front end > design

The best teams I've been on have included members from each discipline with
overlap into their neighboring areas. When transitioning from phase to phase
(or, in the sort of rapid development that we're seeing more often today,
where several tasks are occurring in parallel) it's super important to not
have any gaps between segments.

------
mllerustad
Oh god. I'm doing the job search song-and-dance right now and you wouldn't
believe how many interviewers have asked me "So..... you do design, and you
also code. Which do you like more?" Which to me is a completely nonsensical
question. It's like asking if I prefer spreading peanut butter or spreading
jam. No, I like making PB&Js (or web apps). Why is that hard to understand?

Well, some of these interviewers are recruiters, and they have to put me in a
well-defined box in order to match me to a position. I have some sympathy
there. But the others... are more disappointing.

But: I've found that the people and companies that "get it", really get it,
and will reward you for it. Instead of asking about the "design" and "code"
boxes, we can have actually useful conversations about subsets of skills
within them (user experience research! graphics! Javascript! Python!
databases!) What with my technical inferiority complex and such, such people
value me even more than I value myself.

And for those that don't, well, when you create your own company down the
road, it will build things that are neither vaporware mockups nor asstastic
apps, and have a culture of "getting it" from the start, so you can eat their
lunch. :)

------
computerslol
Yes, it's possible. I don't suggest it.

The upside: you will develop the ability to create things that the
communication barrier between excellent developers and excellent designers
make very difficult.

The downside: You will have to be an expert in both to keep up with the expert
designers and expert developers you will work with later in your career... and
every company you work for will try to pigeon-hole you (as design and dev are
generally different teams with different management).

Your standard added value to the company will be in your efficiency. You will
work at 1.5x the rate of your coworkers (as you will design with development
in mind, and develop with design in mind). You will be golden every once in a
while when a project comes up that requires novel design AND novel development
(you will save the company a ton of man-hours in meetings).

Having both will generally move you to the top of the resume pile when you go
job searching, but they will hire you as one or the other (and you have to be
sure they will let you do both).

If you don't want to devote your life to it, I suggest you specialize in one.

~~~
gojomo
Isn't this only a problem at some organizations, for example over a certain
size/age?

And if you're a true 'double threat', stuck in an organization that doesn't
let your synergy be 1.5x+ more productive than others in specialized cages,
wouldn't that be a signal to move on?

------
thibaut_barrere
Being reasonably good at more than one thing always landed me interesting and
rewarding jobs.

I find that this is helpful to bootstrap a product, because it allows to
remain in low expenses mode while getting started.

But then you need to understand what to delegate at the beginning, and what to
delegate later on (even if you are reasonably good at it).

------
micrypt
I've been curating a list of people who balance both skills exceedingly well
for quite a while on here: <https://twitter.com/#!/micrypt/devigners/members>.
Suggestions are very much welcome.

~~~
mnicole
Great starting point, I'd love to see females on there. Not sure what it takes
to meet the developer status, but you might have good luck with lovely ladies
like @divya, @leaverou, @Sunfeet22, @stephaniehobson, @zahnster,
@denisejacobs. To toot my own horn, I'm @_mandynicole - a front-end designer -
even though I'm not a big Twitterer.

------
prateekdayal
I have done a lot of design/coding work for <http://muziboo.com> and
<http://supportbee.com>

While it may not be possible for you to be the best designer and programmer
for your company, you can learn enough to be able to start from an idea and
build a MVP and get some customer traction. At that point, you can start
hiring experts. No point hiring experts during the validation phase. As long
as you can code and make acceptable (read contemporary) designs, you should be
able to validate your ideas and bring in some traction on your own.

Even when I am hiring for my early stage startup, I would prefer people who
can do a little bit of both.

------
TorbjornLunde
I think there is simply too much stuff to know about in both coding and
design. There is simply not enough not time to become really knowledgable in
both.

However, I am not sure if you really need to be super knowledgeable to benefit
from knowing both sides of the fence. I’m sure it’s possible to become really
good at a subset of coding and design.

By the way: these are just my musings. I’m very early in my career myself.
Personally I’m aiming to become effective at programming relating to the user
interface of things, and design wise I focus my efforts on interaction design,
information architecture and visual design. I want to learn more than what I
just mentioned, but this I what I aim to be my core.

~~~
guynamedloren
> _There is simply not enough not time to become really knowledgable in both._

Please elaborate. Humans live a very long time.

Are you suggesting that design and code evolves so quickly that it is
impossible to keep up?

~~~
TorbjornLunde
Upon further reflection I don’t think it’s impossible, but I still think it’s
probably very difficult.

Both design and coding are both huge fields. I am not merely talking about
becoming a good designer and developer at once, but becoming one with a lot of
knowledge in both.

Just take the long lists of things that that relate to each field: Design:
interaction design, information architecture, illustration, visual design,
interface design, user testing, typography, color theory, composition,
accessibility, different design processes, brainstorming techniques, using
grid systems, cognitive psychology, sketching Coding: HTML/CSS, various
programming languages ranging from low level to highly abstracted, various
libraries, understanding of good software architecture, algorithms, maths,
understanding how computers work, understanding data structures

There is probably more stuff I forgot to mention. As I wrote in my previous
post: I think the key is to choose a subset of both sides.

~~~
Kaizyn
Do you suppose that medieval master craftsmen had to pick and choose between
being very good at using specialized tools to make things and being very good
at knowing about the 'human factors' that go into making an object appropriate
and desirable to people?

How is this any different? On one hand, you have a set of tools along with a
craft of making things with those tools. On the other, you have a set of
skills that help you determine the necessary characteristics of the crafted
artifact so that it is pleasing to its end user.

------
dsirijus
My design skills are on par with most of the designers I've worked with, and
pretty much same goes for coding. I'm not excellent in any, ignoring few
bright moments. I've also done game music, play few instruments, and the list
goes on. I DO NOT EXCEL in any of those, but that might just be my high
standards. However, in the companies I've worked I've always been THE most
useful person.

Earlier this year, I've started my own company and ran it sucessfully
basically by myself.

The point being - you probably cannot be excellent at both design and coding
but being very good at more than one skill makes you excellent in itself.

Exceptions to the rule always apply.

------
jahewson
It's great to have multiple talents, but people will almost always try to
pigeon-hole you, as a way to simplify the world around them. You may get
further by presenting yourself as 1-dimensional in different contexts, which
is a shame but that's life.

The real concern is that your colleague who is also a "good" programmer
currently and focuses on that one task will be a able to present himself as an
"expert" programmer in 10 years time (or at least as someone with considerable
experience, for what it's worth) whether or not his actual skill set has
improved much.

There's also Economics at work: companies tend to adopt a division of labour
between specialised roles as it is far more difficult to hire someone with
multiple skill sets. One person with two (relevant) skills usually costs more
than two people with one skill. This means that a companies' money goes much
further when they hire single-skill workers and scale the company to the point
where each worker has a full-time job.

This rule doesn't it apply when dealing with small companies (especially
startups) which may require individual employees to adopt multiple roles,
perhaps informally. Nor does it apply when multi-skill workers are essential
or significantly higher-performing: e.g. presenters of physics tv programmes
tend to be both good physicists and good public speakers.

In summary: 1) mostly 2) no, but people will pigeon-hole you anyway *) yes,
you have to be - this is where multiple skills may really give you an edge.

------
IceCreamYou
What you should do is what you want to do, and if you enjoy both topics, there
is no reason to pigeonhole yourself into one of them. It is possible to be
successful by focusing on breadth as well as depth, although the challenges
are different. You are the only one who can decide what is right for yourself
and for the kinds of jobs you want to pursue.

As far as whether it's possible to be excellent at both design and
development, the answer is clearly Yes -- if you have 10,000 hours to put into
each of them. It's pretty hard to find a role where you can focus on two
distinct areas for 10 years, but it's possible (though often when this
happens, one is professional and the other is a hobby).

However, you should recognize that both design and development are very fast-
moving areas right now, and so being an "expert" in one of them usually means
you are good at problem-solving and you can search online competently. So
there may be a lot more overlap than some people think, which would make it
easier to be an expert in both.

If you are interested in management theory, the traditional view is that there
is a tradeoff between specialization and productivity (think Scientific
Management, Division of Labour, etc.). A more modern perspective is that jobs
that require creativity benefit from job variety and task identity (basically
the ability to work on more aspects of the problem rather than just being one
small cog in a large machine).

------
rganguly
If you want to build a successful startup, your ability to wear many hats and
push more than one aspect of the product forward in the early days is super
valuable. If that's your goal, continue to straddle the fence.

If you're thinking about this inside of an organization, you have to decide
what kind of person you want to be: the nail or the glue.

It's possible to not specialize and to be super valuable. You can even lead
teams with this approach - as long as you're very cognizant of where your
people are better at one specialty than you (i.e. your designer gets to make
the tough calls, not you). When you straddle the lines, you're able to
translate between experts and to make sure all of the little details are
covered. Often, you are the reason that things stay together instead of
splintering apart: the glue.

But if you really want to be able to call the shots and be the expert in an
area, to lead the team and to be ultimately responsible for "X" - you need to
be focused on it. You need to have the most clear understanding of the
problems you're dealing with and the person who spends the most time working
on and thinking about it. Your value comes from having a sharp and accurate
point of view - the nail.

To those who say that you can be expert in both, the answer is that you're
fooling yourself. The world that we live in is such that it's impossible to
truly be an "expert" in anything. The best we can be is to be constantly
learning through practice, education and discussion.

It's impossible to constantly be on top of code and expert in design at the
same time because there's so much to learn about each area that splitting your
time leaves you behind the truly focused individuals.

------
travissisti
Having read everyone's responses, I think followup question #1 was the most
important one: Am I selling myself short by trying to be good at multiple
things, when I could be an expert at one? Simply being 'very good' at two or
more things is extremely valuable, even if means not being 'excellent' or 'an
expert' at either.

I think for now I'll continue down my current path. I like to code, and I like
to design, and I happen to be decent at both, and I think I would be
disappointed if I was somehow forced to give up either. So why not continue?
It's served me well so far.

I may never be able to hang with the hardcore code slingers or the hardcore
designers, but there's a ton of spectrum between the two extremes that is
largely ignored, and there's value to be had there. As @idan pointed out, it
might take some self-promotion and/or time to prove yourself (assuming you're
aiming for work at an agency or other established company), but once you carve
out your spot it will be clear how much value you provide.

And of course if your plan (like mine) is to strike off on your own, then who
cares -- you'll get a ton of mileage out of a mixed skill set. You can always
hire 'experts' down the road.

------
factorialboy
I'm a generalist, have built the frontend, backend and designed Review19
<http://review19.com> .. i've authored a book and managed product dev team

i hate the idea of restricting myself. However i concede that people who
specialists are in general better at what they do than generalists.

However as a generalist, i gain understanding from a broader perspective,
which is invaluable.

Bottom follow your passion, whatever that may be.

------
joelmaat
Front-end and design _is_ one thing. Get better at them, and build your career
on that. On the other hand, companies will usually try to box you in to one of
those disciplines. Don't underestimate how insane they will get as they try to
do it. If they succeed, then either way you should always find time to pursue
other interests, and to develop other skills, and to grow in your main field,
or else one day you'll be left ass out with nowhere to go. What you know now
can become old news _very_ quickly.

For your future to be bright, you should retain this "duality." And branch off
on your own one day (before the ship sails).

Specifically about the front-end vs. design question, what I've seen is that
most design+front-end folks reach a maturation point with the front-end
technologies (and it becomes mostly about keeping up), then spend the rest of
their time further developing their design skills.

I'll say it. I think that the best or most successful future tech
entrepreneurs will be the Front-end Engineers and the Marketers. They are
sitting there on the edge everyday with the users, and (overtime) they
intuitively learn exactly what matters.

Most of the others fail.

------
michaelpinto
your problem is that you use the word "excellent" but don't bother to define
what exactly that means.

for example: how about in terms of being an "excellent designer" we say that
means something like being a winner in the annual AIGA design competition. and
how about as an "excellent coder" we don't mean someone who is just good, or
even great -- but someone who has actually contributed something to the field.
this could be a new language or crafting the next twitter.

so by really embracing what "excellent" means the chances are you won't be in
the top 1% of two somewhat different fields. if you want a good example of
this from another world think how many rock stars can go on to become oscar
winning actors? now can a rock star be an actor -- of course! but it would be
a real rare bird for someone to be brilliant at both. so yeah we all LOVE
elvis, and his movies were all enjoyable -- but he just wasn't an excellent
actor.

side note: i'd also dare say that if you're looking at design as being
"photoshopping" and at code as being a "code wrangler" you're looking at the
production end of each process rather than the planning and/or architecting.

------
tete
Can you really split it? I mean, when you think about HTML 5 you have
something in between. It has so many ways to connect data/functionality with
design. With HTML 4 it was like backend, HTML, CSS, JavaScript. All separated.
But now you have HTML 5, you have data in code (data-attributes), lots of
semantic web features, tons of JS APIs, Canvas (2D, 3D), asynchronous
connections, do stuff like templates and while you can split all of this you
need to know about everything. Actually it's different. You need to learn
everything. If you read the HTML5 and related specs you see exactly that.

Of course, if it only comes to design in the pure CSS or graphics way that
works, but everything that gets to HTML is different.

It's really hard to consider HTML(5) (that one spec, as compared to other
modules) a pure markup language any longer. Of course you can use it like
that, but than you won't use a lot of features.

So in other words. You have to become both or else you will end up very far
from being excellent.

I also think that's even a bit of a problem. I always thought it was good to
look at web design and development in separate ways, but in many cases you
will end up using the tools that would fit. On the other hand that thing is
also kinda true for being an administrator or developer in a way. You can get
out much more if you have experience in both fields.

But hey, that's what happens when you work on computer stuff (or computer
science if you want, but it often isn't). You have lots of pieces and levels
of abstraction working together.

Also isn't it the best to not focus on what you learn, but just have a look
what you find interesting? If it's interesting you will focus on it, learn and
work quicker and you'll know what to look out for when you need a job.

Oh and people often switch to other languages and learn completely new things,
doing completely different things and become excellent. It's not like these
things are too distant from each other. So I guess it will work.

Okay, now instead of philosophy an answer to your question.

> Are there any examples of 'generalists' who have built and/or led successful
> startups?

DuckDuckGo I think. Administrator (FreeBSD and various servers), developer
(Perl) and of course the website, which I as a user actually love a lot, even
if someone who actually knows about design maybe would disagree.

~~~
travissisti
Ah, good call on Gabriel Weinberg of DuckDuckGo. He is obviously very talented
in many areas.

------
nimbleNima
Everyone wants to compartmentalize you. Many cannot interpolate the steps
required to go from being very good to being excellent, so they scoff, and
they try to impart advice. How are "very good" and "excellent" even
quantifiable? Let them say what they will. Nod, respectfully. Then carry on.
You belong in another crowd--a rarer crowd. You absolutely may be a designer
and front-ender. I'd even speculate that these two crafts complement each
other in making you better at both. You won't mindlessly design something that
is artistic, yet up in the clouds (because you have a foundation in usability
and functionality). Similarly, you won't create an unappealing and thoughtless
front-end, because you have an affinity towards--and respect for--beauty. Your
boss meant well, I'm sure, and in most respects, it certainly is a good idea
to narrow in on your expertise, but these two trades, particularly, do not
conflict. Whenever faced with two choices, those who truly distinguish
themselves are the ones who say, Fuck it. I'm doing both.

------
plq
First, know thyself. If you don't have talent, or you do but can't stand
hunting that race condition for days, or can't obsess on the tone of green
that will convey that company's corporate identity better, you will fight an
uphill battle for skills that others master much more easily.

That said, I'd say that the general advice goes like this: If you want to work
in a corporate environment with lots of managers to report to, specialize as
much as you possibly can. That's "knowing everything about nothing" as my
adviser in grad school used to say. Companies with a high number of employees
tend to prefer specialists. They of course need people with a high range of
skills in upper layers of management, but you won't get there first thing you
set your foot through the door, it'll take you years.

But if you'd rather work in a start-up environment, or just be your own boss,
you need to know everything from the tradeoffs of apache vs nginx to which css
tags render differently in Firefox and Webkit.

That's more a lifestyle choice, in my opinion. You can get successful both
ways.

------
davestone
1) There's a reason the word polymath exists.

*) Sitting on the fence between design & development is hardly a generalist. Add philosophy, psychology, sociology, linguistics, anything really. And, yes, there are... [http://en.wikipedia.org/wiki/List_of_people_who_have_been_ca...](http://en.wikipedia.org/wiki/List_of_people_who_have_been_called_a_%22polymath%22)

------
guynamedloren
Only one way to find out - lets see your work.

More seriously though, I can relate. I'm in a pretty similar position as your
own. The biggest advantage you have is that you can bring ideas to life, 100%,
without ANYBODY else. And that is very, _very_ powerful. You are not limited
by your skills or abilities, but only by your ideas and personal drive.

------
trafnar
I'm in the same boat. I've had many bosses give the same advice. It's
bullshit. Bosses like to define you as one or the other. Companies that
appreciate your mixed skills will appreciate you greatly and pay you a lot. If
you start your own business you'll be in the perfect position.

------
fusiongyro
Yes and no. You can't be amazing at programming from the kernel up to the
front-end and be amazing at designing from the front end all the way to
marketing and UX. Reminds me of Forrst. About six of us had checked just
"developer"; seemed like almost the entire population had checked both
"designer" and "developer" and were proceeding to ask really basic programming
questions.

On the other hand, there is seemingly limitless employment for people who can
both design and implement a website. But that employment doesn't pay as well
as just one or the other, even though it's easier to do just one or the other.
The people who need these skills wrapped up in one person need it that way
because they're too cheap to hire two people. The people who can afford
someone special can afford two or three someone specials. In fact, the people
who need you to be both probably would like you to write the backend as well,
which you've sort of implied you don't do. So if you're in the market for
employment with two decent skills, you stand good odds of being outcompeted by
people with one excellent skill.

The problem with this line of reasoning is, where do you draw the line? I
think the distinction between front-end developer and designer is pretty
tenuous. If I show a developer a binary tree and ask them to calculate the
height mathematically, I expect to hear the answer "log base two" without
delay. Most of the front-end developers I've met have encyclopedic knowledge
of Javascript, the DOM, several JS libraries and the various browser quirks,
but could not solve a pure coding challenge offline with no time limit and
their choice of printed technical literature. If you fit this front-end
developer profile, but can also design, you belong to an interesting and
fairly small class of people who really can do essentially the entire front-
end themselves. I laud these people and I'm not at all convinced that to be
effective at one you have to give up on the other. On the other hand, if
you're a kernel hacker on the weekend and doing front-end development and
design during the week, I think the advice is probably sound. You're not going
to be able to be one of these front-end wizards while also doing totally
unrelated stuff.

------
doug1001
Can one excel at both prongs? I don't know, but i do know that one person can
(and has) created excellent Web Apps, entirely on their own. The fewer people
involved in building something the lower the coordination costs (time spent
communicating, noise introduced into the spec because the reader/listener
never comprehends with 100% accuracy). This doesn't mean the smaller team
wins, but it is a primary reason why the bigger team doesn't always win.

As an aside, while again i don't know if excellence in design and coding are
achievable by the same person ,i suspect _parity_ probably is. For instance,
i'm an average coder and a bad designer, but with enough practice mediocrity
in the latter should be attainable.

------
pogosian
I assume that excellent probably means world's top 3% in both professions, so
you want to be one of Apple's lead designers and one of Google's lead coders,
which is pretty hard but still possible. I think the best route is to get
immersed in each sequentially i.e. take a designer's job for a couple of
years, then switch to programming and so on.

But I think there's even bigger advantage to your talent because:

\- you can create a good looking and working product from scratch and launch
it all by yourself

\- when your product takes off and it's time to hire more programmers _and_
designers you will be able to pick good ones since you are both.

------
alan_cx
Isn't this just a matter of perceived classification?

I mean, how can one be an "expert" in design, when design its self can be
broken down further? Or go up a level and call yourself an expert in web
sites? Higher still, IT, then electronic technology. And there are plenty of
people who regard themselves as IT or technology experts, right? Then, if you
subdivide it too far you become an expert in something so small its not worth
it. Who wants an uber expert in <tr> for example!!!!

When it comes to getting a job, just focus your CV to what the job specs are.
So, for example, have a "designer" CV for designer jobs.

------
SatvikBeri
It sounds like your problem is less about what skills you have, and more about
how you're positioning yourself.

Try billing yourself as an "X" who differentiates himself by being good at
"Y". For example, my skills are psychology, math, data, and some programming.
This sounds like a disparate skillset which could be completely useless. But I
position myself as "An Analyst who understands the business from both the
technical side and people side.", and follow it up with examples of how the
synergy between my different skillsets has helped me contribute massive value
to the companies I've worked for.

------
gdubs
Architects are expected to have both aesthetic and engineering skills, and the
great ones (Shigeru Ban, for instance) are clearly excellent in both areas.
Leonardo Da Vinci is probably the most famous generalist. Steve Woz said that
if you want to be a true artist (and he believes that excellent engineers are
really artists), than don't expect to find happiness working for other people.
Bosses simply have their own agenda, and fitting you into a hole is probably
easier/more convenient.

------
duncanwilcox
I think you need to know enough of both to be excellent at one or the other.
Design freedom and constraints in software come from what code allows. Code
structure is all about the interaction design (and somewhat about visual
design as well).

That said, if you want to do both you'll inevitably work on smaller projects,
you won't have the time to do more and get to market in reasonable time.
You'll also refine each skill at half speed — 10.000 hours each to become
expert.

------
shawnb576
Assuming you're competent in both, e.g. you are good enough to be
professionally productive in either and can ramp/dial your skills to match,
this is dumb advice.

Especially because good designers that understand how software works are
freaking hard to find. Half the time I've spent with designers ends up in
"yeah, good idea, but it doesn't work that way...".

In fact, for bootstrapped start ups, you're a gold mine whether you do the
design or just own getting it done. Want a job?

------
Brajeshwar
I know, and I guess many of you, few people who are good at both. And we know
if from their works. To put a rest to people advising you to choose one -
you've to show to them that you're good with both. Once you do that, no-one is
going to ask you to pick one.

If your boss and/or friends advised you after seeing your work, I'm sure
they've a reason.

Are you really that good with both or 'just' good doing both?

In any case, you'll be a good (co)founder for sure but you might not be a good
employee.

------
skilesare
Do not EVER EVER give up your skill set. You can rule the world if you can
code AND design. Quite your job. Be your own boss. Find one client that can
meet your expenses and the sell like crazy to rest of the world.

If I was half as good at coding and competent at design I'd be making 3x more
per year than I am and the start ups I've tried of the years would have had a
fighting chance. If you're stuff looks like crap no one will give it a chance.

------
antninja
I think one can be excellent at both design and front-end development. That's
what _web design_ is all about anyway. It's made of CSS and Javascript and
Canvas animations, not just Photoshop mock-ups.

Back-end development, however, is a full-time job. Not installing a CMS but
making a new one. Doing two full-time jobs would require sacrifice of
excellence or of one's private life. There are just too many things to learn
in each activity.

------
LinuxLars
You bet there are. Unless you have funding for a big team, you'll need to wear
a lot of hats to keep startup costs manageable.

Personally, I like that. And if someone needs a "heads down" whatever, one
thing day in and day out, that's not a gig I'd enjoy anyway. I like to have
several hats, and like to learn new things all the time to keep my brain
active.

So, it's all really about you, what you enjoy, and how you market yourself.

Best of luck!

------
jordhy
Have I got a great advice for you: Go to under-developed countries! Those are
filled with great designers/developed that have learned and mastered both
crafts in order to hire less personnel and deliver quality service at a low-
cost.

Coming from Latin America, I did so myself, know about many people that have
done it and we constantly shuffle between tasks. This is really quite common
in our region.

------
arunoda
For a successful startup best thing you need to have is not neither Designing
skills or development but how you going to reach your customers and market
your product.

But having a good discipline in both you've mentioned, you find it lot easy to
do your business later on, because you know what to do and where you should
go.

------
qvomo
This example sums it well: Steve Jobs.

Whichever one you pick, keep in mind that your long term goal is to go from
micro to macro.

------
gbog
I hate to be the one to tell this to you but what your ex boss probably tried
to tell you is that you are not the kind of guy who can be excellent at both.
He didn't meant that nobody could, if he has two cents of common sense.
Whether he is right or not is for you, and time, to decide.

------
pm90
OK, so this is one question that I have always wanted to ask, and now seems
the right time to do so....does one need to study design in college? If not,
how do you learn it? (This question might have been asked before; if so a link
to it would be really helpful. I'm genuinely curious)

------
chris_wot
You should feel lucky that you have this ability and keep doing what you are
doing. You aren't selling yourself short in any way!

Why do they feel you can't become an expert in both? This specialization
advise you are getting... is it coming from those who are only good at one
thing?

------
vangpk
We only have one life and finite bandwidth but you one has to see the big
picture to innovate. Keep seeing the big picture and try to draw the big
picture. I tried the same it with great success until today:
www.katsiafas.com/visualperception

------
djloche
Why not become an expert at both? If you ever decide to have your own startup,
being able to do the work yourself vs having to pay something else to do
becomes your greatest asset in the initial stages.

~~~
GregoireSuave
Depends on what you're talking about. I can totally see a developer having the
front-end design skills necessary to make a site functional yet decent
looking, but I'd rather have a full time designer polishing the graphical
elements or suggesting changes. The actual graphical design work that goes
into most websites is not that high, and trying to do everything yourself is
going to lead to stress and misery.

------
travissisti
Wow, I'm stunned by the response! I expected to get, at most, a handful of
comments.

Apologies for the delay in responding -- I'll go through and add comments as
appropriate.

Thanks everyone for the advice, suggestions, and anecdotes!

------
andrewfelix
When you're young you'll be able to do both well. As you get older I think
you'll find yourself wanting to spend time on one more than the other.

Excellence in both is rare. Shaun Inman is a remarkable example.

------
tomorrow_today
It comes down to task bandwidth and specialists are often dead weight and
bottlenecks except when they're not, but that's not often. Stay diverse. Stay
dangerous.

------
ranman
Yes. Don't be excellent AT something. Just be excellent.

------
IvoGeorgiev
It's really simple, no long answer or discussion is required - think of what
prevents you to excel at both. Nothing.

~~~
tomorrow_today
Time and resources. If you have these, then no external issues should prevent
you from excelling at both.

------
r15habh
Become 'excellent' in one and good in other

------
toomim
* Steve Jobs

------
coyr
Just continue with passion whatever you want to do

------
grey-area
I consider myself a generalist, and have really enjoyed working across several
domains (primarily design and programming) - it is quite possible to pursue a
profitable career while not fitting entirely into the boxes that bosses and hr
would like you to fit into. We've just launched a startup over at
www.coolplaces.co.uk for which I did the design and programming, but I am not
a reliable judge on whether it is excellent or not :) FYI I started in fine
art, and have worked for a living in design and programming.

There are many advantages to being familiar with both programming and design,
and many similarities between the disciplines at a deep level (thinking
through a problem holistically, balancing constraints, incorporating and
developing ideas from clients). I think those advantages more than pay for any
disadvantages which come with not being a specialist in one subject. In fact
knowing something about several disciplines will often help inform your work
in both and allow you to bring ideas form one to another - that's why many
education systems require students to pursue a broad coarse of studies
alongside their more narrowly focussed specialism even in higher education.

As an example of cross-fertilisation helped by working on both, for design I
use version control to store my work, which is a practice imported from
programming which I think many designers would love to have. For most
designers, the equivalent is to keep 50 files in a folder marked design-1,
design-2, etc. There are also collaborative systems like ticketing systems
broadly used in programming which apply very well to managing client
expectations and letting clients track your work and prioritise certain bits
of it.

Looking at present day startups, I think you could say that a startup like
37signals qualifies as having many generalists - whether you classify them as
excellent or not is up to you, but they are certainly successful. For more
examples, look at the banner on this website <http://designerfund.com/> \- I'm
sure many of those companies contain many excellent generalists that you could
take inspiration from.

Looking back to the past for examples, there are many many examples of
polymaths who have excelled in several disciplines, like Leonardo da Vinci,
who was both an excellent engineer (often overlooked), inventor, and hugely
creative and influential in the art world (which he is of course famous for).
Which I'd say is definitive proof that your boss's conclusion is wrong _in
general_. It is still possible your boss is right about you and your future
direction, it seems unlikely if you are passionate about both areas that you
can't grow in both, however it is possible that you are far more suited to one
than the other and would benefit from specialising. Without seeing your work,
I don't think anyone here could say.

Personally, I would simply take note of what your ex-boss has said, and
continue to do whatever interests you, and work in areas which you feel
competent in, and enjoy. If you find that throughout your career, lots of
people are advising you to choose one path over another, it should lead you to
either try to improve your skills in the area they highlighted as less than
stellar, or move toward specialisation if you don't feel any desire to improve
in that area. If your clients continue to be happy with your work in both
fields, why would you feel the need to specialise?

I don't think you can extrapolate from this particular bit of advice to you a
general statement about the possibility of impossibility of generalism, and I
think given the evidence from the past, the present, and other posts on this
board, the answer to your central question above:

 _Is it possible to become 'excellent' at both design and coding_

Is a definite YES. Whether you will or not is up to you.

------
batista
1) "Excellent" is a vague notion. Regarding coding for example, do you mean
Knuth level excellent, Torvalds level excellent, Brad Fitzpatrick level
excellent, some RoR "ninja" level excellent? All those (and more) are very
different levels, still one can consider each as "excellent".

So, mainly what you want to ask, is: is it possible for one be competent in
both design and coding. That is, produce good results.

Well, it is. There are people that are good at both, and have launched
products with success.

I said good, not excellent, and here's why:

Nobody cares about actual "excellent" in a startup.

What you should care about is "good enough". Excellent is the enemy of
shipping stuff. If Facebook tried for excellent, it wouldn't be built with
messy PHP code and butt-ugly graphics when it was released. If Linus wanted to
release something excellent, he wouldn't release a half-baked implementation
with tons of problems, drivers missing etc in 1992. You get the point.

I also find advice like "You need to focus on ONE of them", "excellent" etc,
non pragmatic. It's pop advice acquired by reading too many bullshit business
self-help books. The reality is, especially in a startup, people have to wear
many hats at one.

------
ifix
Heinlein said it: Specialization is for Insects.

