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

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.

Well, you may think that standards are too high, but on the flipside, yes: the expectation that you are able to deal with such a suite of tools is also out there. Maybe this reflects on the quality of the stack more than anything else - on the other hand, .Net and C# development is pitched as a reason to not have to know any of those things, too.
The problem IMO is out of the 100 or so developers I have worked with none of them fit that profile and IMO that's completely ok. Granted, I actually cover most of that except the networking side, and know a few other that come close. (Which is probably why I am standing up a continuous integration server today instead of actually coding.) But, it really just seems wasteful as the value of teams is they let people specialize.
Nobody said everyone should be a full stack developer - just that more developers should consider the benefits of becoming more proficient with the layers of the stack with which they're not competent.