Are PHP devs still full-stack?

Sort of looking at this from another perspective, but aren’t we moving right back to the dumb server/ smart client scenario of yesteryear? You know, where big mainframes were serving raw data up to the client’s GUI program? Was there even this discussion back then? Maybe there shouldn’t be now?

Because, it is simply evolution, even if we are moving back to that mainframe type of computing, with the evolutional difference being the crazy scale the Internet adds to the picture.

So no, I don’t think today you can be a “full stack developer”, because if you are or try to be, then you are a “jack of all trades - full stack developer” and you are in pretty much master of none. If you are, you are the rare sort. The technologies evolve too rapidly (and not only on the front end either), which makes it difficult to be even a master of one.

In Germany there is a fantasy animal that describes a “full stack developer” today. It is the “eierlegende Wollmilchsau”. Instead of trying to explain it or translate that animal in words, I’ll let a picture explain.

There is no such animal!

Scott

4 Likes

But think of the club sandwich…

1 Like

Your examples above and your original statement seem to imply personal failings, while omitting the equal possibility that the person isn’t lazy or ignorant, but simply chooses to invest their time and energy in what they like to do more, in a marketplace that allows that.

1 Like

kaf, you are fundamentally conflating two different arguments, and seem to be speaking from the position of somebody who does mostly client work, or works in small teams.

develops for the web but does not do html/css/js then I just consider them lazy. If you are a web developer then using front end web technologies is simply a part of your job.

Absolutely not. I have been developing exclusively APIs for the last 3 years and have no once needed to write CSS.

At various companies you have various developers who do different things. While there are still API features to be built, improved, refined, or deprecated, there is still work to be done on the API. If we don’t have a new feature that the iOS team want, or there are bugs on the API because I spent the week f**king about with the frontend website - something I am far less strong at doing - then our company wont last very long.

You are conflating “I am not a fan of working on frontend stuff, thank god I dont have to do it anymore/often” with “I dont bother doing it because im a lazy shit and I dont want to.”

Developers CAN be a “jack of all trades” and many are, but I am rather happy with my ability to focus strongly on one section instead of trying to keep up to date with THE ENTIRE INTERNET, because that would not only make me a week all rounder, but it would have meant I didnt get to write books and teach others about some really in-depth API backend stuff.

Again, don’t assume that all PHP developers need to write HTML and CSS, just because you and yours do.

There are only web developers and incomplete web developers.

I am also not a web developer. I am a software engineer.

Those of you who feel they are above JavaScript need to get over yourselves. You are not special. And you are doing yourself a great disservice by continuing your career path with blinkers on.

Hahaha. Ok. :wink:

4 Likes

I think it’s a matter of change over time and definitely what you are building. Originally back in the “bad old days” of PHP, it was mostly used as a language with which to inject backend data into HTML.

The architecture of monolithic applications require that you have some fluency in both. Take a CMS like Drupal for example - It’s nigh impossible at least in the current version to completely separate the two layers. So some understanding of the languages are fine but the concept of a “Front End Developer” and “Back End Developer” don’t exist in that space unless you are quite literally churning out code that only developers or site builders will use and even then you have to have a basic understanding of structure to produce the arrays required and hooks in your template files.

Switching gears, a lot of high scale modern applications need the API approach. In fact, the concept of decoupling the consumer from the provider is key in those environments. Also, as PHP advances further into the OO world then having HTML coders with no understanding of inheritance or polymorphic behavior makes it difficult for those folks to even work in a modern framework. Many of those frameworks do decouple consumer and provider by default. (See: Any framework with controllers)

I’m not sure we are there “yet” with all PHP developers not being full-stack. But we are damn close at this point.

It’s all about the money. I think budgets and the market you are targeting effects this greatly. For a lot of studio’s that focus on SMB’s it’s quite common to have ‘full stack’ developers.

It’s only when the budgets start to increase and the systems become more complex you start to have a clear divide.

I have been working with client and server technologies for nearly a decade not one more so than another. So I would consider myself a full stack developer and at the very least a professional in delivering services in those realms as I think the word master is a little self-delusional within any context. As for technologies involving so rapidly I would disagree. While we do have new frameworks, cms’s and middleware it all comes back to code that you either understand or you don’t. When there is an understanding of the underlaying technology learning things built on it isn’t that big of the jump or at least I don’t think it is. I think of myself as a problem solver able to solve ANY engineering problem thrown my way, whether it be front, client, devops, etc. I would also say I’m better than MANY people I have worked with who specialize in one or another because I have a thorough understanding of how EVERYTHING fits together and impacts another.

@oddz - please don’t get me wrong. Knowledge about the concerned technologies to deliver a product or service is always an advantage and in some situations, could even be considered necessary. It is a fact (and Phil’s point above) that you can be a much better professional, if you concentrate on your skills in one area of the “technology stack”. In some business scenarios though, jacks of many trades are required, simply because the number of available staff is limited and the complexity of the concerned technologies is large. However, the work of these jacks of many trades, in the areas they aren’t really specialized in, is in most cases a lot less efficient, than if specialists had been available to do the work. And because these jacks (or janes) have to spend a good amount of time working in their less specialized areas of the technology stack, they have less time to hone their skills in their area of expertise, which means their level of professionalism might suffer some too.

And I did say above, there are exceptions. If you can do all things well in a technology stack, you are worth your weight in gold! Kinda like the egg laying woollymilkpig. :wink:

Scott

This is very true. Very good front end developers are painfully difficult to find - it’s been very much my experience that a good front end developer can command a much higher salary requirement than a full stack or a backend PHPer.

I am also of the opinion, if you are specialized, you can command a higher salary. Most success coaches will also tell you that too. Specialize to earn more. Think about it like sports professionals. Would you be a golf professional and a tennis professional at the same time? Certainly both sports have balls you have to hit to win and you could probably play both well, if you did. But, you could never become the best at both.

Scott

2 Likes

Good analogy - might have to steal it :wink:

1 Like

So long that you can adapt and adjust to a changing market and not get pigeon holed to the point where you can only work for a very limited number of companies.

Having marketable skills is valuable.

Yup. I don’t know how many people I’ve known over the years who got laid off/left behind because technology changed and they didn’t keep up. The speed of web development changes just makes it worse, plus the diversity and regionalisms of languages/frameworks/concepts just exacerbates that fact.

1 Like

I use to think that way but in my experience I have come to disagree. People who claim to be “masters” or specialist in a specific technology are rarely any more valuable than those who know everything. Maybe I’ve just been working with some low quality “specialist” but I don’t think so. I don’t mean to speak down of colleagues but I’m beginning to feel that very way with one of them I’m working with currently. Than again I’m the type of person who will always find a solution to a problem and I expect that from anyone I work with regardless of whether or not it is within their “expertise” or not.

In my experience the people at the top, lead developers and what not are ALWAYS full stack developers, not just specialist in a single area. In all my cases they have been individuals who specialize more in devops than anything else but are also capable of anything else dev related. Specialist are probably more valuable when it comes to freelancing but when it comes to internal teams you want someone who knows about everything leading the charge not just someone who knows about html and css… that is pretty useless when it comes to the scope of software for larger organizations.

So there is some truth to that, but there are fields/industry where specialist are worth more. Take the Insurance Industry. I specialize in API and Predictive Analytics. I had 3 job offers within 3 weeks of searching for a new job because of my specialty. I’m sure I can have the same number of offers in the same time frame should I want to leave my current employer.

People who know that section of Insurance, and know it well, save a lot of time and can find meaningful data/conclusions that can be made on a given book of policies. Sending someone who has never done it before into such a project is a near nightmare (I’ve successfully cross trained many individuals at my current employer however – it is teachable).

Other fields that may think similar: Medical and Financial. There is a good reason they higher individuals who have prior knowledge in those fields or have specific specialties (be it API or integration with X, where X is a well known vendor/application in the given field).

You wouldn’t believe how many projects are placed on my desk, but I’ve worked with X and Y and Z before at my prior employer, so I know their systems, their APIs, how to integrate it well into our architecture, etc.

Not all fields are this way though, so I definitely understand where you are coming from and even in the industries I listed, there are departments who don’t care if you specialize in a particular area. They simply need a programmer who can easily adjust, find and fix issues, developer new features, etc.

This is a truth and another part of being a professional programmer in my book. Some people call themselves experts and aren’t at all and you’ll have noticed, I tried to avoid that word in my posts. Being a specialist and a (self-proclaimed) expert are two different things. I found an interesting article, which I linked to earlier in another thread.

Do you suffer from the Dunning Kruger Effect?

Still, the general rule is to specialize to earn more. With PHP, as a programmer, it is hard to specialize with just the knowledge of the language and general programming. You could specialize in certain types of applications, like Phil with his APIs. Even then, you need to know a lot more than just about PHP to do it, still, it is a specialty. The more “specific” and “unique” you can get, the more you can earn. :smile:

Scott

See you’re talking about something completely different which I would agree with. Specialization in a specific industry/field is much different than specialization with a specific technology. Regardless of technology those that have a thorough understanding of business practices and workflows able to translate them to technical requirements and execute with minimal instruction are always more valuable than anyone else. I agree with that but that is MUCH different than specific technologies. I think this is especially true with the industries that you have cited but continuous throughout.

I agree with pretty much everything you’ve said there but I’d still suggest that there comes a point in terms of project size or scale where the guy leading the charge needs to know something about everything, rather than everything about everything and therefore recognise when there’s a need to delegate to the person that knows more about a particular area of focus. As I mentioned before, I think there’s a ceiling somewhere where it’s more appropriate to get someone in on the team that knows their Embers from their Angulars and can do less/sass/compass/grunt/bower/yeoman/jasmine/karma in their sleep even when the full stack guy is perfectly capable of becoming more than proficient in filling in the current gaps in their knowledge in these areas given the time to do it.

You put a full stack guy on building out that SPA and then tell him you need to integrate a kafka pipe to an hbase cluster on the back end and the context switch needs to be accommodated in the project plan. Whereas if you’ve got a guy that’s already au fait with the kafa/zookeeper/hbase backend and you say to him “Can you do this?”, he’s gonna come back with “Sure boss - before lunch or after?”

I would imagine a few charge-leaders have been getting their butts hauled over mobilegeddon flavoured hot coals today.

I’m still not saying that a full stack developer can’t be good at both, but a full stack developer that’s better than a front end dev and a back end dev put together (and therefore worth the double salary) is an exceptionally rare beast - the “eierlegende Wollmilchsau” that Scott pointed out.

1 Like

I didn’t mean to insinuate that all developers who don’t do front end stuff are lazy shits. Just that those who work in environments which would benefit from them knowing both have a responsibility to know both. I have recently encountered teams of programmers where some of them just refuse to do front end work and offload it to other programmers. Their attitude is that they are “Software Engineers” and they are above that stuff. Even though the people they are offloading the work to have the same job description. I have found this to be an attitude which is becoming more prevalent. Not just in PHP but in .Net circles as well.

I am also not a web developer. I am a software engineer.

You see this is what I am talking about. If you are developing web applications your are a web developer. Putting the word engineer in your title does not change that. In my role I have been called a Software Engineer and a Web Programmer, and a web developer. Names are irrelevant. However it does indicate that you consider yourself separate from those ‘web developers’ working on the front end.

My position is that a front end developer cannot be competent at their job without extensive knowledge of the server side. And vice versa.

There seems to be the attitude here that programmers working on one end couldn’t be competent at the other. The reason I don’t like this attitude is because it trains HR departments to only hire junior developers for front end work because all the senior guys will only work on the server side (because the are “engineers”). In this practice everyone loses as to be a good front end developer takes just as much skill. Especially now days with so much being done on the client.

speaking from the position of somebody who does mostly client work

Actually I’m mostly a server side programmer. About 60-40. Except when I’m doing mobile apps where I find so much more of the business logic goes on the client.