Hacker News new | ask | show | jobs
by casion 4140 days ago
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.

4 comments

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.
So a C# .net developer should know what?

Basic .net developer: (1 or more JS frameworks ex: Angular), HTML, JavaScript, CSS, C#, .net, LINQ, ORM(nHibernate), XML, SQL, T-SQL, …

Full stack: That plus, basic network administration (TCP-IP, BGP, routing tables?), basic windows administration (installation, security, back, scripts, deployment, troubleshooting), basic IIS administration (setup, matinee, troubleshooting), basic DB administration (deployment, troubleshooting, backups, clustering, profiling etc.), basic team foundation server administration, ...

Then to get an actual job you should know exactly the correct stack, including whatever wacky tools the team likes…

PS: And people wonder why they have trouble finding good developers.

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.