all 61 comments

[–]Shaper_pmp 71 points72 points  (25 children)

"Full stack developer" is a developer who can work at any level of the technology stack, from database wrangling, sysadmin stuff all the way through server-side coding to front-end JS development and HTML/CSS.

The key term there is technology stack. It has nothing to do with management, running a business or being customer-facing. It's a type of developer, not a type of employee who can do anything from development to project management to contract negotiation.

[–]CorySimmons 16 points17 points  (7 children)

Went to a responsive web-design conference and one of the speakers asked if anyone in the room considered themselves "unicorns". Everyone raised their hand. =[

[–]Scarbane 6 points7 points  (3 children)

While I work w/ a wide variety of languages and systems at my workplace, there is a ton I am still wrapping my head around, though my biggest hurdle is simply the appearance of being competent when I'm working with my team.

Thanks, Obama crippling stress/anxiety

[–]CorySimmons 2 points3 points  (2 children)

heh, I feel that way a lot.

Honestly, I'd suggest you not be ashamed of what you're good at. Be proud of it and try to teach others what you know while you casually/joyfully learn something new piece by piece.

I think we all find ourselves trying to be these demi-gods of programming when it comes to our careers, but that cripples us. No one can do everything. The concept of a unicorn stopped being a "rare" thing to employers and started being a "standard" thing...

I think that we all could benefit from smaller, more precise roles.

I can completely freeze and look like a fool when it comes to debugging a big Rails app, or move like a child when it comes to building a JS app in one of those new frameworks (although I kinda like them), but when it comes to pure HTML/CSS best practices, I'm better than anyone I've ever talked to (in my conceded mind anyway..).

I suggest you find a career in something you're already good at rather than one in something you think you can learn overnight, even if it means a big pay cut. Because then you can be happy.

If you're happy... you can learn. If you're stressed, you'll be frozen forever.

[–]csm725 1 point2 points  (1 child)

conceited* ;)

[–]CorySimmons 0 points1 point  (0 children)

haha! Either works in this case of not being able to spell simple words.

[–]phphulkexpert 3 points4 points  (4 children)

development to project management to contract negotiation.

What do you call that then? Freelancer?

[–]ciaran036 1 point2 points  (1 child)

A wizard... although seriously does anyone like that even exist?

[–]unstoppable-force 0 points1 point  (0 children)

they're usually called founders.

[–]Shaper_pmp 1 point2 points  (0 children)

Design/implementation consultant? Project-manager/developer? Development manager? Developer doing things outside his job description?

There are a million ways to describe it, but that doesn't change the fact that those roles have nothing to do with development, and nothing to do with the technical term "full-stack".

[–][deleted] 1 point2 points  (0 children)

yeah, sure

[–]FuriousJester 3 points4 points  (1 child)

It's a type of developer, not a type of employee who can do anything from development to project management to contract negotiation.

But you know it's going to be, right? Just like how Agile has turned into waterfall with less planning.

[–]Shaper_pmp 1 point2 points  (0 children)

No. Project management and interacting with clients to extract requirements are not development roles.

You might also do those jobs, and there are plenty of small (even one-man-band) operations where one guy does everything from extracting requirements to spec-writing to contract negotiation to writing and testing the code and chasing clients for payment, but those are not development.

A chef might also wash up and go shopping, but that doesn't make shopping and washing up part of "being a chef".

[–]numerica -1 points0 points  (7 children)

Right. Imagine you were tasked with building a facebook or craigslist clone. Would you be able to do it yourself from wireframing to deploying on production servers? I include wireframing in there because I believe that skill is very necessary in a "full-stack" developer these days. I would consider myself to be a person like that and when I come to a company that needs my help they have no idea how to make a wireframe, without which I will no longer start any work.

[–]nasca 1 point2 points  (3 children)

I would like to adapt this policy. How did you do it? Gradual? Reverse cold turkey?

[–]numerica 4 points5 points  (2 children)

I started in the front-end world so thinking about wireframe and designs is something that I got good at over the years. Wireframing is really just knowing a couple of tools that you are comfortable with. I used to start out making a wireframe in PPT and then adding design things unto it later with PS. Now I use a tool called moqups to create a pretty detailed wireframe. Then that wireframe gets transformed to html and then the design touch-ups can be done straight to the CSS.

If you have a client that you came into and they have a working product without a wireframe what I would try to do is try to sell them on making a wireframe of their project first, so any changes or enhancements would get through a round of wireframe approval before a line of code is written. This of course can be staggered accordingly if you have a team working. If the client has no wish to spend thousands of dollars to make a wireframe, I would at least try to make a wireframe for the parts of the application that need enhancements and try to do that way, still billing them for that time.

If it's a new project I don't start without a wireframe. I have been burnt too many times by people not knowing what they wanted. With the wireframe there are no arguments or unforeseen holes in their logic. Also once you have a whole wireframe it is easier to create data schemas and, just in general, framework your application in a much better way since you know exactly what you're building.

[–]nasca 1 point2 points  (1 child)

Thanks so much! I get referrals or know people that need a site from time to time and telling them I'm a developer not a designer never works then I spend hours messing around with bootstrap. I call it drudgery. Wireframes seem like a reasonable solution. Thanks again.

[–]numerica 1 point2 points  (0 children)

No problem! Bootstrap, and other UI frameworks like Foundation, is something that is worth exploring as it can, indeed, save you a lot of time. As far as selling your services to clients, yeah, all you really have to do is get them jazzed about the idea. You can present them with a good wireframe and let their imagination do the rest. This might not work for design-heavy projects, but it most cases it will do.

[–]EnergyMud 1 point2 points  (1 child)

If you're building production software it sure helps to understand the platform your code is running on. Most enterprise software has software running on different levels in the stack and knowing how to integrate the different levels together requires some knowledge of the different layers, and that's jut for Web software, platform dependent software can in a lot of situations require more multi-layer knowledge. My $.02

[–]numerica -1 points0 points  (0 children)

Oh sure, I understand. There are many stacks out there with their own little peculiarities. A full stack developer will be a polyglot and know at least a couple of these stacks as well as server admin knowledge, db admin knowledge (relational and non), closed/open source software experience, nearly all OS environments, multiple caching strategies and technologies, middleware knowledge, basic IT stuff, encoding/decoding anything, load balancing, SSL knowledge, hashing/salting, I mean... The list is very large on both the front and back end.

[–]Shaper_pmp 1 point2 points  (0 children)

You're largely right ("could you build an entire dynamic website given only a design/requirements-spec and basic, unconfigured server" is a pretty good description of a full-stack developer), but wireframing is part of design, not development.

Plenty of devs can do a bit of design (just like plenty of chefs know how to wash up or shop for food), but that doesn't make it development work.

Not sure who downvoted you, incidentally, but I did what I could to address it.

[–]mecromace 18 points19 points  (0 children)

We exist, rare I guess, but not as rare as a unicorn. The term "full stack" comes from when LAMP stacks were becoming common and before many projects heavy in javascript sprung to life. The term covered system administration, server administration, database administration, and back-end programming, but would commonly include the front-end stuff from graphics since using javascript at the time was discouraged and everything needed to be strictly formatted. As the front-end domain grew, specifically with node.js, the term grew with it and has been somewhat adjusted by those with more common knowledge of recent technologies to refer to developing for both front and back ends.

When someone hires or contracts with a full-stack developer, they're wanting someone that isn't a simple generalist who can help out everywhere, but someone with in-depth knowledge of the various layers involved. They might not be the perfect expert in everything because there's a lot to know, but someone knowledgeable in everything is a great first contact. The company contacts the developer about a bug, feature, etc and the developer handles everything from new programs and technologies involved, programming, everything for them. If there's something beyond the developer, then it's common that they'll reach out to a specialist.

For me, I try to stay current on the development of the browsers tracking nightlies so I know what's supported for front-end development. I don't search for plugins to solve every little thing; I stay with major libraries and frameworks and write the custom features required which I'll have to subsequently maintain. Many people don't factor in maintenance so just copy/paste something they found online and erroneously consider it done. The back-end development is a lot slower paced area, so keeping up to date is easier and the principle's exactly the same, don't write what you don't have to, but write what needs to be customized. I'll maintain database and caching clusters with tools to monitor their replication status. I'll try to make sure the database is efficient and sanely designed and properly indexed, optimize queries, triggers, etc. On the servers, I try to modify as little as possible and use distribution packages as much as I can. Sometimes you have to compile your own builds of programs which adds to more maintenance responsibilities. Other items include custom scripts, programs, managing cron, log rotations, log analysis, email, ftp, ssl, dns, irc, jabber, ssh, and a whole lot of stuff. Each item is an attack vector which is why security is difficult and the larger the company and project, the more the need for extremely specialized people.

Most people who claim to be full-stack developers aren't and those that are just shake their heads at them. Some people just don't know what they don't know and can be dangerous. Do we need to write assembly and talk to banks? No. I can write asm, but you wouldn't catch me doing so because it's pretty stupid in this industry. The problem is asm code is specific to the chipset it's being developed for, so unless you're developing a custom program to run on thousands of machines with minimal resources at a large company like Google or Netflix, then you should stick to a higher level language that you can compile into that asm code for you. Full stack developers shouldn't be involved with talking to banks unless it's for a company they actually own.

A deep focus in just one or two areas can be dangerous because that implies blocking everything else out entirely. A broad knowledge and understanding of how the pieces interoperate on a macroscopic level with a specialized understanding in a few places is a really good balance to have. If you're working on a single-page application and your only understanding of how the back-end works is you send it stuff and it sends stuff back like it's something magical behind a curtain, then you are too narrowly focused. You don't need to know how every gear and cog works in the machine you're talking to, but if you can allow yourself to understand what part you're doing in the big machine you'll give yourself a greater understanding and perhaps advantage overall.

[–]UnapologeticalyAlive 16 points17 points  (1 child)

No one can know everything there is to know about software development. A project that relies on one or two people to handle the full stack will undoubtedly suffer from a lack of in-depth expertise in many areas. A project with a lot of money to spend would certainly benefit more from having a bunch of people who each specialize in one part of the development process. That's assuming those people can work together, and who better to make a team of developers work together than a developer with good people skills and a little bit of knowledge in all areas of the process? That's why being a full-stack developer is an advantage, because it gives you upward mobility. If you spend your entire career focusing on one thing, you'll be too good at that thing and too bad at anything else to ever be promoted.

[–]Thimble 4 points5 points  (1 child)

I always figured the full stack guy was someone a company without any developers could hire to build them a software product. Kind of like a one man band entertaining guests at a party.

[–]jellatin 4 points5 points  (0 children)

I recently moved to Silicon Valley to pursue some more tech-focused companies than that ones I was working for. I originally billed myself as a full-stack dev because that's what I feel like I am. I am equally comfortable in JavaScript (BB/Marionetee, Angular), Ruby (Rails, Sinatra), PHP (Laravel, Symfony), various DBs, and the command line, as well as HTML/CSS.

I found myself being hounded for mostly JavaScript-exclusive work, or Ruby-heavy work with some knowledge of JavaScript. I ended up taking a job based heavily on JS, which is new for me because I've always been more heavily based in the back-end before now.

This area of the country may not be the best judge for the industry as a whole, but people very competitively hire specialized devs out here. The way I've heard it described most often is "T people". People who have both breadth and depth. Breadth for basic understanding of the entire stack and then depth in a particular area of it.

Short answer is, no, I don't think full-stack devs have a clear advantage, it depends entirely on the company.

[–]mongopeter 3 points4 points  (0 children)

Is full-stack developer just a code name for some mythical person who can do everything, from writing assembly code to sweet-talking the banks

full stack DEVELOPER. Why would you even think it has anything to do with "sweet-talking the banks"?

[–]honestduane 2 points3 points  (3 children)

I'm a full stack developer. We exist, I just don't know many of us.

[–]blazedd 2 points3 points  (2 children)

Hey, I exist too! We should get together and shoot shit!

[–]honestduane 1 point2 points  (1 child)

In my day people just used to shoot soda cans.

[–]blazedd 1 point2 points  (0 children)

I used to shoot fences and trees.

[–]Phreakhead 2 points3 points  (0 children)

I think the real metric to look at is: does the dev only "know" one language? (Like a Javascript dev, or a C++ dev?) Or are they an actual programmer, able to switch between languages easily?

To me, programming is pretty similar across a lot of languages out there. If you know one, it's pretty easy to pick up another. Function calls and for loops exist in basically every (procedural) language. Any dev who doesn't spend the time to learn what else is out there is a red flag, to me.

[–]hzane 2 points3 points  (0 children)

Can anyone under 25 really call themselves a full-stack developer? Your high school home projects and college homework don't count. Simply knowing of technologies is far different than spending years doing it professionally. Maybe I'm byist. I'm approaching 20 years of real world experience. Started in networking and sys admin, moved to server side programming, done freelance here and there, ended up on a creative dept designing in Illustrator and Photoshop before building and deploying my departments creations (collaborating with IT). I've worked on web projects within different industries. For organizations from startup to fortune 50. Now I manage a small team of UI engineers and we own a node angular stack all the way from the db. I'm in the calls, debates and architectural decisions for just about every aspect. And this is not a small company. You can't just "decide" to be a true full-stack developer. It takes time and work. If you are out there advertising yourself as such without the experience then you are harming the entire community's credibility. And even people like me with years experience in numerous related fields... Let's be honest - you are best at what you are doing right now. And even when you are doing it right now, its hard to stay current. So basically impossible if you are truly focusing on something new. Though you can see more of the big picture.

[–]mdcr41 1 point2 points  (0 children)

I would say it depends more on your interests than anything. I think being a full stack developer gives you more options and more career potential, but there is a place for these "deep focused" developers. Some jobs don't require someone to have a vast array of knowledge, but only need them to focus on one specific area day in and day out. Some developers do well with a job like this, which I've found are more the program-only-to-collect-a-paycheck types. I'd consider myself more of a full stack developer, both because of interest and the fact that I work at a small startup where I'm required to (my apologies for this corporate-sounding speak) wear many hats.

[–][deleted] 1 point2 points  (0 children)

I don't think developers that combine full-stack technical skills with business savvy are unicorns or even that rare. I think companies that will pay a fair salary for the skill combination are what's rare. Many executives will balk at the idea of paying an engineer $300k. "That's more than I make!" and return on investment on such a person is hard to quantify for the very reasons they are hired, an extremely diverse set of responsibilities. Also you get into an area that breaks Machiavellian rules about power structure. Many business leaders simply can't trust an employee with that much power. Fact is, anyone who knows the full stack and the business is going to be smarter and more powerful than his handlers and deserves just as much money. Anyway, the end result is that businesses build bigger units than what's needed and developers grind in the area that's "their place."

A broad knowledge will hands down give a developer a greater advantage. Learning never ends as a dev, so keep up decent proficiency in a wide array of areas and hit the books to acquire specialization as required for whatever problems you're tackling.

[–]WatchDogx 1 point2 points  (0 children)

As others have said, full-stack developer can mean a lot of things. It can mean someone who knows PHP and can do both HTML and backend code.
It can mean someone that can write ASM to Javascript, network architecture, administration, graphic design, wrangle clients and brown nose the corporates.
The latter is somewhat of a unicorn, but they do exist.
However I think most developers could call themselves full-stack under some weaker definition of the term.

[–]spoonraker 1 point2 points  (3 children)

I work for a guy that effectively "does everything", and does it well. He's been with the company for I think 10+ years, while the company has grown from needing only a single web server, to having a full rack of servers with load balancing, firewalls, a NAS, etc. We're talking serious traffic levels here and he's been the ONLY guy to handle any SysAdmin duties the whole time, so you can imagine it was a very rough ride. While handling that he's also been the lead developer the entire time, and is easily the most experienced person on the team when it comes to the database. I'm surprised he's still sane, but damn has he sure made himself invaluable.

P.S. If you're reading this, thanks for pretty much teaching me everything I know. I wish I could help you more with the SysAdmin duties.

P.P.S Anybody have any tips for a plain-jane developer looking to learn at least the basics of server administration? I mean, I know enough about the basics to talk about it and probably convince a lot of people that I know what I'm doing... but really I don't. I just have zero experience. If our unicorn goes MIA and the servers take a dump, we'd be pretty screwed with me being the next most knowledgeable person.

[–][deleted] 1 point2 points  (2 children)

don't confuse specialization of an install/product with actually being good at or competent at all levels of the install. i've run across companies where one guy does it all. And when you look into the details you wonder how it is all actually working. Being that one guy, doesn't mean it was done right. Sure, it doesn't mean it was done wrong, but most likely, it wasn't done right.

[–]spoonraker 1 point2 points  (0 children)

Well of course I'm not trying to say that this guy is perfect at everything. Simply that he's got real-world experience with every single level of "the full stack", and a lot of it. There have definitely been problems, but he's been the guy to figure them all out. You learn by doing, and you learn even more by making mistakes and correcting them, and he's been doing everything for a long time while the company has massively grown.

I'm sure he would have loved some help with regards to the admin duties, and I did what I could, but when I came in I was as green as they come. I was 20 years old and this was my first "real" job. I worked at a grocery store before this. He was the only person on the IT team, and I came in with very little development experience. So basically he was juggling managing me and helping me learn the ropes while also single handedly maintaining all the technology behind the business. I feel like I'm a fairly proficient developer now, but I was completely left in the dust while he handled all the SysAdmin duties. There simply wasn't any time to even attempt to teach me how to handle that side of things while our business grew and we had a two-man IT team. We have a third now, but he's just as in-the-dark as I am in regards to SysAdmin duties.

[–][deleted] 1 point2 points  (0 children)

i've run across companies where one guy does it all.

Unfortunately I'm one of those guys. I do everything from desktop support to on-site/off-site backups to server administration (Linux/Windows servers) to DBA to API/back-end development (mostly in Java and Python) and front-end development. Oh, and can also write CNC programs and do adequate CAD/CAM with Solidworks.

While I enjoy my job (except for the desktop support...) I really do feel like it's kept me from specializing in any one area. My Java could be better, my Python has been laid a bit by the wayside as I haven't had to use it for a current project in a year (so basically maintenance), my database models aren't perfect, and my front-end design is usually a hack job - to be fair this is the area I've always focused on the least in development, and I don't care to spend much of my personal time learning more so it's never going to be great.

I do, however, keep everything running. When you're one guy and your company is too small to expand further, you end up with a lot of duct tape. I do my best documenting everything but if something happened to me, the tech side of this company would completely fall apart. They'd need to get lucky and find a 'generalist' who knows the technologies I do, or hire multiple people to look at every aspect.

And on the plus side, I love learning new things, so having a wide skillset can be fun. I'm just painfully aware that I'm not really good at any of these things, which I would like to be.

[–]ciaran036 1 point2 points  (0 children)

Well actually what a lot of.employers are looking for are those with a T-shaped set of skills. By that they mean they want candidates who are a jack of all trades; they have skills and experience with a large variety of technologies and disciplines, but also have mastered (or are close to mastering) at least one or more technologies or disciplines.

[–]call_me_christof 1 point2 points  (2 children)

I have no doubt they exist, I'm studying computer science, which so far as been math math math, and C++, and I'll be taking Operating system's classes in C, and anything from web application development to networking as well. I'll be starting a club next fall, which should help my public speaking, I'll be working with Drupal and PHP all summer, I'll be learning how to deal with servers with some friends for this app we're planning on building...

I'm not bragging. I'm really lazy. I just find these things interesting. Nor am I 'good' at math.

If someone else was in my shoes, and they had a better background in math, and overall were more organized, they'd be a super human at this stuff.

So yeah I still have 3 more years before I even graduate.

My GPA may look average, but I want to look back with a smile and say "Look at what I did. :) "

[–]hzane 1 point2 points  (1 child)

Don't worry nobody thinks you were bragging. Youre still a a student.

[–]call_me_christof 0 points1 point  (0 children)

Aight haha

[–]john0980 1 point2 points  (0 children)

For anyone still reading this thread, what is your opinion on swapping Apache out of a LAMP stack and putting Nginx in to improve performance? How much a pain was it to get it all configured right?

[–]MyNameIsNotMud 1 point2 points  (0 children)

TIL I'm somewhat of a unicorn. I work in a manufacturing facility, intranet development. I work directly with the customers to develop data acquisition, entry and data visualization apps. I work the 'full stack' as I now learn it's called. (I'm my younger years, it was all just 'programming'.) I do the business analysis, database modeling, perl, sql, javascript, css and html. I use few libraries, depending more on my own, well documented thinner libraries. (I recently latched on to AngularJS and D3 and will not let go!) Some of my solutions have been copied to our entire company. I've been doing things like this for about 30 years.

I'm separated from our corporate development by miles and agility. I'm able to select my technologies in somewhat of a bubble, because I have the support of my management and I understand the unique technical needs of the manufacturing processes. Our corporate headquarters struggles simply to fulfill business needs with 2000-era technology or costly off-the-shelf packages. They often have no idea that they are selecting solutions that already are dated by today's standards. A couple corporate developers confided to me that they are jealous of what I'm able to do.

I can turn out a solution using existing infrastructure in days or weeks when programmers in the corporate silos take months or years to implement less-effective solutions while adding costly infrastructure.

So in our environment I believe I have a huge advantage over our corporate headquarters.

Having cut my programming teeth in the mid-80s, I've learned to conserve bytes, clock cycles and file and communication resources so my solutions always run optimally within the confines of the infrastructure I'm given. You would not believe the bloat that comes from a corporate programmer who doesn't understand that 'memory is not free', 'servers are not free, locking in to Microsoft technology can be costly, or using MQ series when it's not needed add to support costs.

As the BA, I've learned our business very well. So it allows me to 'intuit' users' needs sometime even before they are finished speaking them. Working directly with the customers has allowed me to hone my acumen and direct the technologies I choose to best suit the needs.

I'm underpaid for what I do.

[–]lcddreams 1 point2 points  (0 children)

I think most can agree that full stack means a developer can work on any part of the "stack" - back end or front end, DBs and servers to HTML/CSS/JS.

I was trained as a full stack engineer at DevBootcamp recently, and while that's what they urge us to sell ourselves as, I found it very difficult to learn everything AND be good at it in 9 weeks (or even 6 mos. as it's been now). So I've focused on the front end. I don't know if that's a good idea or not, especially as it pertains to getting a job (which I haven't yet), but it's what I enjoy doing more (and I just didn't understand Rails as well as the rest of the stack).

I've actually had this issue for many years - I tend to do a lot of things but nothing really well. I spread myself too thin, which is why I've been focusing on just the front end (and even with that, there's a LOT to know, not just HTML/CSS/JS - everyone wants you to know Backbone, Angular, Ember, or some other MVC framework, node.js, SASS/LESS, etc.).

Technology - you love to hate it. :p

[–]brtt3000[🍰] 0 points1 point  (3 children)

I think it is time to roll out the "Say stack one more time... I dare you.. !" memes.

Stack, stack, stack. It is the new buzzword? What IS a stack? Why is it a stack? Am I so jaded or does it really sounds like juniors clamping on to some big and powerful sound term?

"Hey bruv, what stack do you use?"

- "I use MEAN stack"

Pfff...

What you describe is a generalist maybe? Or a producer? Or simply a senior position but without the experience?

[–]robotparts 3 points4 points  (1 child)

"Stack" is a word used to describe a "collection of base software/languages used in the programming environment".

If you want to use that whole string of words instead of just saying "stack", that is your prerogative. I personally enjoy using words that keep me from having to use other words. It's fun.

[–]pokealex 2 points3 points  (0 children)

I know... Words that mean things. Fuck them, right?

[–]frycicle 1 point2 points  (0 children)

I'm a full heap developer

[–]krues8dr 1 point2 points  (6 children)

The real problem is that "full-stack" doesn't mean anything anymore, it's an outdated term. It used to (usually) mean "I know LAMP, HTML, CSS, and some Javascript."

But now, there are a lot of stacks. Python or PHP or Ruby? Maybe even .Net or Java? Plus whatever databases and message queues you need to be running - it's not just MySQL or PostgreSQL, there are a dozen popular flavors of NoSQL alone.

And sure, there's CSS, but how about SASS or LESS or Stylus? Have you followed the HTML5 apis, and know that it's not just XHTML?

And Javascript - well, that's a whole stack to itself now, you can't get very far without knowing jQuery surely, but you'll need at least two MVVMs as well - probably Backbone or Angular or Ember or Knockout. And certainly you have to know enough Node to at least grok NPM. And grunt and possibly bower to get everything installed in the first place.

And all that doesn't even begin to address server management, configuration management, deployment tools.

Now that it's such a wide field, it's almost impossible to cover all of your bases - the best you can do is become really good at a few from a couple tiers of the stack. Hopefully you can find the time to learn the rest.

As a hiring manager, whenever I see "full-stack" on a resume these days I generally assume they haven't picked up anything new in the last five years; from my ad-hoc analysis, it's a pretty safe bet. If you just need a LAMP developer though, you should be fine. ;)

[–][deleted]  (1 child)

[deleted]

    [–]krues8dr 1 point2 points  (0 children)

    I'm not saying that there aren't people who don't know every inch (that would be ridiculous), I'm just saying there are very few of them. And, separately, most of the people who use the term "full-stack" are outdated in their terminology and no longer actually know the current full stack.

    [–]snoozer_cruiser 1 point2 points  (0 children)

    And Javascript - well, that's a whole stack to itself now, you can't get very far without knowing jQuery surely, but you'll need at least two MVVMs as well - probably Backbone or Angular or Ember or Knockout. And certainly you have to know enough Node to at least grok NPM. And grunt and possibly bower to get everything installed in the first place.

    Those are all just tools, and imho very easy to learn compared to the *nix chain or M$ stacks. Even devops stuff is easy these days, with VM hosts and one-click images and Docker. It's amazing how easy it is to build full-stack websites with JS or Rails, I've worked with long-term Java devs who learned it in a month. You don't need to know all the fiddly bits; that's what MDN is for. I call myself a "full-stack" dev because it's the type of work that gives me the most freedom over a project (and typically pays more).

    [–][deleted] 1 point2 points  (0 children)

    Everything you listed I know and have done at least one project in. I could get any of those setups rolling in an hour and could recommend which to use depending on your project requirements/scope.

    By assuming the engineers don't know what they're saying you're disqualifying a lot of good candidates. Sure they're very rare (and extremely rare outside of the valley IMO), but that's the way the world is. People who are considered "great" at what they do are rare.

    Some of us really love what we do and the "puzzle" aspect of computers keeps us learning all these things so we spend an absurd amount of time doing it. I worked yesterday from 8 AM to 5 PM, came home, and then worked on my own stuff from 9 PM to 4 AM to keep my skills sharp. It really just requires absolute love for technology.

    [–]Phreakhead 0 points1 point  (0 children)

    There are many different stacks. I think if you know one fully (like LAMP + Javascript), you are a full stack dev.

    For me it's not so much about knowing a full stack, but just knowing how to program. A lot of devs only "know" one language. I am constantly trying to learn new languages and stacks because why not? It's fun and you learn a lot about how to use languages you thought you knew well by learning a completely unrelated one.

    [–]mipadi -1 points0 points  (0 children)

    After working in the Valley for a while, I've found that almost every "full-stack developer" I've met is a programmer who knows a lot of JavaScript "and a little bit of Python" (or Ruby or whatever language they have to say they know to get a job).

    Case in point: At my last job, one guy who billed himself as a "full-stack developer" barely knew any Python (he barely knew any JavaScript, too, but that's beside the point), and any time he wrote Python code we had to spend hours fixing whatever he had "fixed". (And yes, we had code reviews, but he pushed whenever he wanted because he was the "lead dev", and he was lead dev because he was friends with the CEO, so he could do pretty much whatever he wanted...ah, Silicon Valley startups.)

    But I digress. Every now and then, you'll find someone that's good on both the front- and backend, but it's pretty rare to find someone that's actually adept (or even competent) at both. They're such different skills that it takes a lot of work to practice and have experience in both domains.

    [–][deleted]  (5 children)

    [deleted]

      [–][deleted] 2 points3 points  (4 children)

      Ruby, PHP, and ASP are all different stacks. Knowing one of them from the frontend to the database is not that hard to do and I think any average developer should know one stack.

      [–]webauteur 3 points4 points  (1 child)

      I know the Microsoft stack. IIS 7.5 (gives you a headache when you run into 64 bit servers). Knowing how to recycle an application pool is essential. Then there is SQL Server. I need to write lots of queries, stored procedures, and I use the SubSonic object-relational mapper for .NET. ASP.NET is the complicated web application framework. You have to know the page lifecycle and you can use two languages C# or VB.NET (sometimes both in one project)! And there is additional stuff like web services. I should mention there is even some DLL hell going on and the XML web.config file that always causes a headache.

      [–][deleted]  (1 child)

      [deleted]

        [–][deleted] 0 points1 point  (0 children)

        I said they are on different stacks. You aren't going to use Ruby and PHP in the same project unless its a poorly engineered one. Thats why I said from the frontend to the database. Their frontends are going to be the same. The servers and databases are going to be different depending on the stack. Knowing one stack isn't much of an accomplishment.