DEV Community

Discussion on: Tell me an unpopular software opinion

Collapse
ankitbeniwal profile image
Ankit Beniwal

Full Stack Devs really exist.

Collapse
daniel13rady profile image
Daniel Brady

What is a full stack dev? A "jack of all trades"?

Collapse
daniel13rady profile image
Daniel Brady

I ask because I think people use the terms "front-end developer," "back-end developer," "full-stack developer," "Java developer," etc. in different ways.

Sometimes an "XYZ developer" term seems to describe the skill set possessed by a developer, and other times it is used to describe the specialization area of a developer.

When talking about skill sets, the term "full-stack" makes some sense to me: it emphasizes that a developer has learned a little about a lot and is comfortable diving deeper anywhere, including new territory.

But when talking about focus areas or areas of specialization, I think the term "full-stack" can be confusing: it seems to say "I'm good at everything," but a) that's not true, and b) every tech stack is different.

Thread Thread
daniel13rady profile image
Daniel Brady

Also, the terms "front-end" and "back-end" refer to different things depending on if we're talking about web development or not.

Personally, the only modifier I tend to use with the terms "developer" and "engineer" is "software." Anything more feels like I'm putting myself in a box, and it might be hard to get out of later on.

"I'm a software engineer with ___ experience using ___ technologies, and I want to learn more about ___ by working on ___." More verbose, perhaps, but also a more accurate characterization of myself.

Thread Thread
jasonelkin profile image
Jason Elkin

I think you've hit the nail on the head. Web Devs too quickly silo themselves into front or back-end and limit themselves to understanding only part of the product they're working on.

So often I've seen features implemented in the wrong place in the stack. Not because the Dev was bad, because they didn't want to learn a language on the "other side" of the stack.

This should be more than doable for an average Dev (being multilingual is, after all, a thing) but for some reason the REST API seems to represent a cultural divide between the front-enders and back-enders and us full-stack Devs are viewed suspiciously by both.

SOLID, TDD, Agile, all apply to both "sides" of the stack. It's certainly possible to be a good Dev on both sides - so long as you don't measure being a good dev as simply someone who can remember all the native functions in that language.

Collapse
peiche profile image
Paul

Yes, we exist. I design, write markup, styles, and handle back-end code and design database models.

Thread Thread
jasonelkin profile image
Jason Elkin

But can you solder? 😜

One of the fun games to play with people who call themselves full-stack devs is to see just how "full" their stack is. So often it's just a bit of JS and PHP.

Thread Thread
ankitbeniwal profile image
Ankit Beniwal

I can solder 😂😂

Exactly, I have also seen bad examples of full stack. But that doesn't change the fact.

Collapse
jsbeaulieu profile image
Jean-Sébastien Beaulieu • Edited on

I think that while they do exist, they all tend to have a specialty and, more importantly, relatively important shortcomings. I've yet to meet an actual full-stack that doesn't suck at one part of the stack, be it CSS, server configuration, DevOps, whatever.

Myself included. I suck at doing responsive layouts.

Collapse
piq9117 profile image
Ken Aguilar

This is not so uncommon. There are a lot of people who can program the client all the way to Assembly. The question is, is this an efficient way to work in a project?

Collapse
jsbeaulieu profile image
Jean-Sébastien Beaulieu

Depends.

If your team and project scopes are small, hiring "full-stacks" make sense. There simply wouldn't be enough work for a full-time front-end developer in many places.

However, I've also seen places hiring a full-stack in hopes or getting rid of the need for an actual front-end developer for their product. Or hiring front-end devs who can use Firebase in hopes they won't need a back-end.

This rarely works, and when it does, it does quite poorly.

Collapse
lukeshiru profile image
Luke Shiru

Every "full-stack" I knew is either great with front and bad with back, or vice versa. But this post is about unpopular opinions, so I guess is ok 🤣

Collapse
scott_yeatts profile image
Scott Yeatts • Edited on

This is semi-accurate. I'm specialized in front-end, but have built a TON on the backend.

HOWEVER, I don't look at a backend specialist and say "Anything you can do, I can do", I simply approach every conversation with humility and acceptance that there may be a better approach, and I can't possibly know everything there is to know about all aspects of code.

I'm not bad at backend. But I can realistically assess that while I might be able to architect a cutting-edge front-end with all the bells and whistles, I can simply do an adequate job on the backend. That said, I have had the experience of writing a breadth-first sorting algorithm for a backend implementation covering millions of nodes that completed in 5 minutes vs the previous 6 hours (written by a backend specialist who I would say is VERY good)... so I definitely wouldn't say I'm BAD at the backend...

As a community we need to embrace the fact that there are universal coding patterns that can be applied on the frontend and backend. While I might specialize in tools for the frontend, that doesn't prevent me from using those patterns in work on a backend.

Thread Thread
jsbeaulieu profile image
Jean-Sébastien Beaulieu

This is what I'd call "experience" though. How long have you been working in the field?

I do agree with you, though. People will have to come to terms with the fact that any decent web developer can learn most parts of the stack just fine with some effort and a tiny bit of interest.

Thread Thread
scott_yeatts profile image
Scott Yeatts

Define "working" ROFL (Kidding)

Getting paid? A little over 10 years now.

But writing web code? Let's just say I remember writing code at a time when CSS didn't exist.

And absolutely it takes experience. I would look sideways at someone calling themselves a "Full Stack Engineer" on the first day of their first job without some significant background information haha.

Thread Thread
jsbeaulieu profile image
Jean-Sébastien Beaulieu

I'm 3 years in, have worked on production environments maintaining and developing PHP/Node.js back-ends as well as React/Vue front-ends, and CI/CD infrastructures...

I'm still having a lot of trouble calling myself "full-stack". I'm way too junior to pretend I know both well enough.

Thread Thread
scott_yeatts profile image
Scott Yeatts • Edited on

First: Sounds pretty "Full Stack" to me. Second, make sure you have a specialty that you feel like is your "go-to" (Front-end, back-end... and even though "DevOps" is a mindset, it CAN be a specialty too).

If you've got that, but you wouldn't "little Bobby Tables" if you touched another piece of the stack, then you're full-stack.

You DO need a realistic assessment of your own skills. If you're mid-level in the front, but junior in the back, be honest about it and ask for mentorship and guidance from a senior backend engineer, but don't be afraid to pickup those stories either :D

xkcd.com/327/

Thread Thread
jsbeaulieu profile image
Jean-Sébastien Beaulieu

Pretty much the opposite situation for me! I'm primarily back-end, but learned JS, then React/Vue, then CSS out of sheer necessity, then realized I wasn't half as bad as I thought I was at it. I still suck at layout, especially when responsive, but I'm getting decent at scaling things in mostly sensical ways.

I'm probably getting to mid-level in back-end at this point, maybe? And I learned DevOps-y stuff by scaling up my team's growing architecture past their FTP and manual CRON jobs on a single VM.