
The Myth of the Full-stack Developer - andyshora
http://andyshora.com/full-stack-developers.html
======
opendais
What, in 2010, a full stack developer didn't need to understand UX? Did the
provisioning layer somehow magically vanish in 2010?

Its a bunch of false comparisons.

The simple facts are this:

1) Full Stack Developer == Generalist [ Do lots of things; not 100% as fast or
effectively as a specialist]

2) Specialty Developer == One area of profession-level competence [e.g. Front
End Developers would need to go and start learning all the other
areas/categories from essentially scratch since they haven't touched them at a
profession level in years]

I'm not sure why people need to come up with a bunch of silly comparisons that
are more complex than this and call generalists a "myth".

------
Semblance
What does "full-stack" mean in 2014? What it's always meant.

A full-stack developer is a developer who sees something that needs to get
done and does it, even if they currently don't "know how".

And these people do exist, and are every bit as valuable as you'd expect.

~~~
Mangalor
> does it

How? Especially if they've never learned the language/framework? This "Paul
Bunyan" fairy tale of the "just do it!" hacker who can solve any problem no
matter the odds just doesn't exist in real life.

~~~
jxjdjr
Hello. I am this person. I am a generalist, I am not the best in any one area,
but I have a broad range of skills across many domains. If I don't know how to
solve a new problem, perhaps in a new domain, I will leverage the broad
knowledge and learning skills to find out how to solve the problem. I won't be
as fast as a specialist and there will be a greater risk of failure, but there
is a good chance I will get the job done. I am not arrogant, I don't think I'm
a genius, I don't think I am infallible. It's just that I am a generalist who
likes to know a little about a lot, it's the way my brain works.

------
carsongross
The crux of the article is this:

 _" Do they believe they have familiarity with different layers, or true
mastery?"_

Full-stack guys never (that I have seen) have mastery of all layers, but
rather can perform at a reasonable level at all necessary layers to make an
app happen. They might have mastery of a few layers, they might lean on
infrastructure like herokou to cut out a section of the stack, whatever, but
they can get it done.

They are also always scary smart, and scary employable.

------
emeraldd
The idea of a "Full-Stack" developer brings to mind this:

[http://en.wikipedia.org/wiki/Competent_man](http://en.wikipedia.org/wiki/Competent_man)

In particular:

"A human being should be able to change a diaper, plan an invasion, butcher a
hog, conn a ship, design a building, write a sonnet, balance accounts, build a
wall, set a bone, comfort the dying, take orders, give orders, cooperate, act
alone, solve equations, analyze a new problem, pitch manure, program a
computer, cook a tasty meal, fight efficiently, die gallantly. Specialization
is for insects." — Robert Heinlein, Time Enough for Love

Except, of course, tied to software ...

~~~
Fuzzwah
For me it triggers a memory of this quote:

“Specialization is in fact only a fancy form of slavery wherein the ‘expert’
is fooled into accepting a slavery by making him feel that he in turn is a
socially and culturally preferred—ergo, highly secure—lifelong position.”

― Richard Buckminster Fuller

------
nathan_f77
First "DevOps", now "Full-stack Developer". I'm kind of tired of these posts
about labels. I would much rather work with someone who identifies as a full-
stack developer, because I think it's a sign that they're genuinely interested
in their field. My first impression of someone who solely does front-end or
back-end work is that they're scared or unable to learn new things. It's not
specialization, it's a lack of ability.

I didn't really choose to become a full-stack developer or get involved in
dev-ops / IT / sysadmin work. It's just something you have to do when you work
at a startup, because no-one else is going to do it. I'm really grateful for
the time I've spent reading the Saltstack documentation back-to-front,
learning how to set up RADIUS and EAP-TLS secured Wifi, setting up logging and
error reporting tools, setting up DeployStudio, Munki and Boxen to provision
new developer laptops, setting up the VPN, DNS, etc., even though that's not
in my job description.

Anyway, we're hiring full-stack developers at ZenPayroll [1]. Come and work on
some challenging problems with an awesome team!

[1] [https://zenpayroll.com/careers](https://zenpayroll.com/careers)

------
nawitus
The main argument in this article seems to be to define the term "full-stack
developer" as someone who is equally good at all the different bits of the
stack (or someone who is master in all of it). Then the conclusion is made
that people who call themselves full-stack developers are not really full-
stack developers, as they don't fit the definition.

However, most people disagree with that definition, and in fact use a
definition that fits their own skills.

------
hpcorona
Well, since a long time ago, i could not accept that some developers would
title themselves as "Front-End Developer", or "Web Developer"...

It's like WTF!!! You are a Developer, why would you want to stay just in web
development? if you're a developer you can move on anything you want anytime!!
Why are you locking yourself just into "Web Developer"?

Well, that's my rage... Lots of answers from friends, basically, they are all
afraid of tools they've never used, and they don't even bother to try them
out.

I like to do any kind of work, from deployment scripts, load balancers,
distributed computing, web front-end, desktop front-end, mobile, database,
hell, i like to be part of all the entire project!! I've have a lot of luck
because i've always been in small companies, and maybe we don't deliver the
best solution, but the solutions work, and work really well, i have developed
lots of systems, and they are not a headache to support, so i'm proud of what
we have achieved...

But recently, when people ask you "what kind of developer are you", you can't
just say "i'm a developer", because, i don't know why, but people assume that
you don't know Web, SQL, FrontEnd, etc... And magically, a "Web Developer" is
way better than just a "Developer". That happened to me lots of times, just
because my title said "Developer", people that didn't knew me don't consider
me for projects.

That's why i am now using the "Full-Stack Developer" title, you just can't use
any other title on today's market. I don't want to be doing just "Web
Frontend", or "Database Administrator", or "CI Manager"... Heck, i want to
participate in all the project.

And i agree with other people here, a Full Stack doesn't needs to be a guru on
every language/framework. You just need to know how to assemble everything to
make it work. And it WILL NEVER be perfect, because requirements change
everyday, but your stack can evolve to adapt to those changes.

Same goes for a "Frontend Developer"... A frontend developer can be really bad
frontend developer, but he's a frontend developer because he wants to do only
that and is happy whit that...

I believe a Full Stack developer is a guy that is not afraid to solve a
problem in any stack of the system, not a guru or a genius.

Well, that's my point of view.

------
meritt
2014 is not any more difficult than 2010. If anything, it's considerably
easier.

------
wildpeaks
Think of fullstack devs as smartphones: each function might not be as good as
specialized devices (a real camera, large desktop screen, photoshop, a
scientific calculator, etc), but having it all in a single device is not only
convenient, it even opens up possibilities that wouldn't be available if the
features weren't together on the same device, the same way fullstack devs
might not be as good on all aspects a specialized devs on each topic (although
we usually do also have deep knowledge on some of them), but they can also
spot & enhance interactions between them.

------
nidx
I consider myself to be a full stack developer. I started working on small
layers like every developer. Eventually through need, knowdge transfer and
bugs I developed the skills from hardware to software Linux/apache/mysql to
code (I'm my case usually php) to HTML and CSS and js. With a variety of tools
and frameworks along the way. These skills are required to face the variety of
challenges and new projects that come. Not knowing how to configure apache
would make me a worse developer.

------
dasil003
The idea that the 2014 stack is more complex than the 2010 belies the author's
youth and lack of perspective. 2014 is not especially more complex than 2010.
I mean granted there is more CSS and web technologies to know, that stuff is
certainly moving faster than it did in say 2000-2004, and so there is a higher
bar for what is possible. But the biggest difference between 2010 and 2014 is
better tools. And to be perfectly clear, by tools I mean very broadly anything
developers use to get the job done, languages, frameworks, browsers, services,
etc. Developers weren't learning and mastering fewer things ten years, they
were just mastering stupider things like IE6 layout bugs.

Assuming the same knowledge of contemporary tech, the 2014 developer can do
more with less than the 2010 developer. The stack is only bigger if you have
reason to make it bigger, which is far from a foregone conclusion. LAMP is
more effective today than it was in 2010 because HTML/CSS/JS/PHP are better
(and frankly LAMP was already moving off the bleeding edge a decade ago, not
in 2010). Now obviously the development of JS frameworks and nosql databases
has progressed significantly, so that potentially adds to the layers you can
employee and the things to learn, but none of those things are required to be
"full-stack". All that stuff could be done before, you just had to roll your
own or use earlier-gen tech that was maybe not as optimal. Certainly heavy
javascript was already well-entrenched by 2010.

The crux of the matter is defining "full-stack"? The author talks as if this
is about being up to speed with all facets of the latest web tech, but that is
a useless definition. There is simply too much tech now for anyone to know it
all in any meaningful capacity. Of course I agree with the author that there
are a lot of useless blowhards out there talking about being "full-stack"
developers. This is because we are well into year 2 or 3 of "full-stack" being
a cargo-culted buzzword that is latched onto by posers and wannabes from all
walks of tech life.

But like all such overplayed ideas, "full-stack" has a legitimate origin. It
comes from the fact that the web was really developed and evolved by two
distinct sets of people. You had the programmers who were back-end focused
(because javascript was not treated as a serious language for the first 10
years of its existence despite rapid ubiquity), and you had the web designers
pushing visual design, first through HTML and then additionally CSS. It took a
long time to close the gap between these two groups, and during that time, it
was very rare to find anyone with any talent in web design who could program
or vice-versa. In the mid-2000s once a few people started to achieve the
requisite 10k hours of practice, true full-stack developers started to appear,
and since then as the web became something that people had grown up with from
early childhood, the number of people who built things end-to-end on the web
only increased.

For a short time, "full-stack" was a pretty strong distinction because it
meant a passion and focus on the web as a unique platform at a time when most
top talent was immigrating from other disciplines. Today, however, everyone
attending a bootcamp as a career move is training to be "full-stack" because
that's simply what the HR people demand. It's completely orthogonal from
whether someone is a good developer, and it's at least partially orthogonal
from any list of particular skills—it just means someone can build both the
front-end and back-end of a web app in some form; the specifics and
expectations of which vary widely from job to job.

