Hacker News new | ask | show | jobs
by FooBarWidget 4151 days ago
In my opinion "full stack" is what all developers actually should be.

15 years ago, it was normal that, as a developer, you know how to administer a server, know how Unix works, know how to setup/debug the database. Maybe know a bit of C.

Fast forward to 2015. Lots of developers are purely frontend developers and don't know how to setup a server, or don't know how to administer the database. This is now the norm. The developers who could do all that stuff (as they should) are suddenly "full-stack developers".

3 comments

You do realize that not all developers work with the web, right?

A lot of us actually don't even touch the web all day long, not even for fun.

I've been developing professionally for 20 years and never encountered the term full-stack until it was used to describe a web developer who could implement design (not necessarily do the original design work), implement the front-end, and implement the backend. It seems to have now grown in scope to include mobile app development in at least one mobile platform as well as fully client-side frameworks like Angular, Ember, or React (which weren't in widespread usage when the term began to be used much more frequently, as I recall.)

This definition including hardware down to the transistor is just silly, and its the equivalent of non-web devs chiming in with a "Hey we matter too!"

While true, it's probably safe to assume that in the context of a "full stack" discussion, "developer" can be taken to mean "web developer".
The community needs to stop being so imprecise with language. "Developer" is a broad category, and I shouldn't have to figure out from the context of the discussion what "developer" means. In fact, I often run into discussions where the context isn't there.
At the same time, In consider myself a database developer. A software developer that specialized in database driven apps. This used to involve desktop clients ten - 15 years ago. Now its far easier to go with Django and use a web app for the front end. (So I guess I am full stack no).

I would assume that most decent devs no matter what their specialty will be able to get a very basic HTML page working. Or am I making too many assumptions?

Where did the parent mention the web? I happen to agree with them that developers should be able to handle any level of abstraction, at any layer. But this doesn't have to be with web technologies - not all servers are web servers.
The OP said "In my opinion "full stack" is what all developers actually should be."

It's not what all developers should be. For a lot of us, it would be a complete waste of time to learn technologies that we do not use, let alone have access to.

You can be full stack with various different stacks. I use LAMP, so I am pretty out of date with any .Net technologies. But I would consider myself full stack to an extent.
I have no idea how knowing databases or HTML is going to help someone write embedded code for RC controlled drone. And I am mystified by the idea that knowing ARM asm is going to help but a website, MMO, or tax prep software.

At best full stack just means knowing one level deeper than necessary.

So, if you know a little HTML, you can write a simple diagnostic page for your drone, or a product page for it.

If you know a little SQL, you can throw a SQLlite database on the drone to easily track points and query the data of multiple drones being collected.

If you know ARM assembly, you can write optimized math routines for your MMO running on mobile clients, or on low-power boards in a server farm. Or figure out why your web server is crashing in weird ways on your server. Or why certain overflows in your tax software aren't being trapped.

"Full stack" means knowing about the rest of the tools so you can improve things beyond what CodeProject would let you do.

Obviously it means the stack YOU ARE USING, not all kinds of alternative wild technologies that are out there. If you are using something that depends on a database somewhere in the stack, then knowing how to administer that database is definitely something a 'full stack' developer, in that context, would need to be able to do.
I only hear the term "full stack" coming from people who mean "web developer" when they say "developer", forgetting that there is more to life than web-apps.
On big complex projects in "classically-organized" enterprises you can be successful for years without writing any html, js, css, sql or doing any administration at all.

As a backend dev you get your data from web-services which are written by the web-services team (or another company) which in turn receives optimized database queries/procedures from the database team. You pass the data after processing to the template/fronted which is is the domain of the fronted-guys.

Deployment is done by the ops team to servers which are administered by the infrastructure department in the data center.

My first job as junior-developer was in such organization and it is quite enjoyable to have experts for every domain to learn from instead a lot of "Jack of all trades, master of none" people. The other benefit is that you can put all your effort in to mastering your particular domain.

The drawback is obviously that you are isolated in your tier and don`t learn as much as if you would do a project "full stack".

> In my opinion "full stack" is what all developers actually should be.

I've never seen guys who grok C, ASM and Perl being fascinated by JS and CSS3.