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.
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.
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.
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.
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.
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?
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.
Lead Developer, business owner, US Army veteran. I build things for the web. My website is a bunch of HTML pages that didn't need a framework. Yours can be too!
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.
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.
Lead Developer, business owner, US Army veteran. I build things for the web. My website is a bunch of HTML pages that didn't need a framework. Yours can be too!
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.
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.
Lead Developer, business owner, US Army veteran. I build things for the web. My website is a bunch of HTML pages that didn't need a framework. Yours can be too!
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
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.
For further actions, you may consider blocking this person and/or reporting abuse
We're a place where coders share, stay up-to-date and grow their careers.
Full Stack Devs really exist.
What is a full stack dev? A "jack of all trades"?
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.
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.
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.
Yes, we exist. I design, write markup, styles, and handle back-end code and design database models.
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.
I can solder 😂😂
Exactly, I have also seen bad examples of full stack. But that doesn't change the fact.
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.
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?
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.
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 🤣
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.
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.
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.
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.
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/
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.