DEV Community

loading...
Cover image for Modern Full-Stack Developer Tech Stack 2021

Modern Full-Stack Developer Tech Stack 2021

Andrew Baisden
👨🏿‍💻 Software Developer @CGI_Global 🖼 Content Creator. Sharing the mindset and content so you work hard to grow stronger than your past self ☯️
・3 min read

The developer technology landscape changes all the time as new tools and technologies are introduced. After having lots of interviews and reading through countless job descriptions on job boards I think this is a great modern tech stack for JavaScript developers in 2021. My framework of choice is React however you can swap it out for Vue, Angular or Svelte.

There are countless tools out there so I will only be covering a selection which when combined can be used in either personal projects or in a company. Of course many other project management tools exist out there for example like Jira, confluence, Trello and Asana to name a few. This is based on user experience and preference so feel free to make slight adjustments and personal changes to suit your own tastes.

It is much simpler to concentrate on a refined set of tools instead of getting overwhelmed with the plethora of choices out there which makes it hard for aspiring developers to choose a starting point.

Project Management

  • Notion - For overall project management, documentation, notes and wikis
  • Clubhouse / Monday - Clubhouse or Monday to manage the development process itself. Both can be Incorporated into a CI/CD workflow so builds are done automatically and changes are reflected in the staging and production CI/CD branches
  • Slack / Discord - For communication between teams

Design

  • Figma - Figma is a modern cross platform design tool with sharing and collaboration built in
  • Photoshop / Canva - Photoshop is the industry standard for doing graphic design work and Canva is a great image editing tool

Back-End

  • Node.js - A popular modern back-end framework
  • PostgreSQL - A popular SQL Database
  • MongoDB - A popular NoSQL Database
  • HarperDB - A popular hybrid NoSQL/SQL Database

Front-End

  • NextJS / Create React App / Redux - NextJS for generating a static website or Create React App for building a standard React website with Redux for state management
  • Tailwind - Tailwind for writing the CSS, as its a modern popular framework basically allowing you to avoid writing your own custom CSS from scratch leading to faster development workflows
  • CSS/SASS / styled-components - This can be used as a different option to Tailwind, giving you more customization options for the components in React
  • Storybook - This is the main build process for creating the components because it allows for modularity. With Storybook components are created in isolation inside of a dynamic library that can be updated and shared across the business
  • Jest and Enzyme, React Testing Library and Cypress - TDD using unit tests for the code and components before they are sent to production and Cypress for end to end testing
  • Sanity / Strapi - Sanity and Strapi are headless CMS, and are used to publish the content with the use of a GUI (optional tools)
  • Vercel / Netlify / AWS - The CI/CD provider combined with GitHub, it makes it easy to review and promote changes as they're developed

Mobile

  • React Native / Redux - React Native for creating cross platform mobile apps and Redux for state management
  • Flutter/Dart - Flutter and Dart for creating cross platform mobile apps

Discussion (115)

Collapse
efpage profile image
Eckehard

Edward
Just to be complete: This is only the topping. You first will need to get a good knowledge of HTML, Javascript, CSS, AJAX, PHP, SQL, possibly some JAVA just to read the manuals...

Then you can start learning to use all those crazy and most helpful tools...

There was a time you needed a drill to make a hole in the wall. Today you start programming a robot to build a machine that hopefully can call somebody that knows how to make a hole in the wall. It seems things have gotten really easier today...

Collapse
lukeshiru profile image
LUKESHIRU • Edited

PHP? In 2021? I mean it can be useful in some legacy projects, but this article is more focused in modern stuff ...... PHP is like suggesting jQueryUI 🤣

Edit:

Jokes aside, it seems there are some folks really passionate/religious about PHP, so to clarify, my point is that PHP might be useful when dealing with legacy projects, but not so much to start a new one in 2021. PHP used to be one of the languages you "have to learn" a few years back, but nowadays you can be an excellent web developer by just knowing CSS, HTML and JavaScript. I might argue that TypeScript is way more useful than PHP if you want to learn something more.

Not only that, if you'll complain about PHP not being here, then you need to complain about all other back-end languages such as Go, Java, .NET, etc. But the point of the article seems to be focused in JavaScript as the tags clearly indicate, and a "Full-Stack JS Developer" doesn't need to know PHP at all.

Collapse
damienpirsy profile image
Matteo Vignoli

Did you try the latest Laravel on PHP 8.1 and Octane? PHP's bad name is diehard, but I'm assuring you that in the last 3-4 years it did such a jump forward, it's like saying ES6 is still shit because you think at jQuery

Thread Thread
lukeshiru profile image
LUKESHIRU

Yup, when a new version of PHP gets released, I generally take a look. I used to do web before Node was a thing, so I was familiar with PHP, and I was kinda exited when they introduced "arrow functions", but still.. The thing is that nowadays I prefer Node or even Deno, and that's not only because job offers are way better, but mainly because I just like to use the same language in the client side and in the server side.

Thread Thread
develobat profile image
Julian H

But... That does not mean PHP is like jQuery UI. Not even legacy. Have you ever heard of Drupal for example? Cause you're just talking about personal preferences but missing the real picture

Thread Thread
lukeshiru profile image
LUKESHIRU

Drupal?!?! Even if you mention Wordpress instead of Drupal you're doing a better job advocating in favor of PHP. Drupal is and always was disgusting. At least other folks were mentioning stuff like Symphony, and you could add CakePHP and even CodeIgniter .... but Drupal?!?!

Thread Thread
develobat profile image
Julian H

It's still a personal opinion if you say Drupal is horrible,does not mean it's not used or that it's not modern enough for people to use it. You made this a discussion about whether PHP is modern or not, not about what is disgusting about PHP Frameworks or CMSs

Thread Thread
lukeshiru profile image
LUKESHIRU

Yup, I said that in 2021 is kinda weird to talk about PHP ... you're the one who started a different conversation by bringing Drupal to the table, and from my PoV Drupal was never good and will never be, even if Node didn't existed.

Collapse
christiankozalla profile image
Christian Kozalla

PHP keeps evolving both as a language (latest stable release 8.0.8 1st of July - 5 days ago) and PHP frameworks like laravel, symfony.. So you can have PHP in a modern tech stack.

Thread Thread
mjablecnik profile image
Martin Jablečník • Edited

Yes and also there can be Python/Django, Ruby/Rails, C#/.NET or Java/Spring technologies.. But this article is more about how you can be FullStack developer in more efficient way I think => Why you should learn 2 programming languages (JavaScript and PHP+Laravel or Symfony) when you can learn only one (JavaScript + Express or NestJS)?

Thread Thread
damienpirsy profile image
Matteo Vignoli • Edited

Knowing other programming languages is not being inefficient, is being a better developer : you learn new ways of doing something, new paradigms, new concepts...If you only use Javascript for everything you're seriously crippling your programmer's career and future: I simply don't like the idea of relying solely on a (badly designed though improving a lot) language, it will be much harder for me when I'll be forced to use something different (because it WILL happen, no matter what)

Thread Thread
mjablecnik profile image
Martin Jablečník • Edited

Yes learning new languages surely spread your knowledge.

  • And then you know that when you want to create Android application, you should know Kotlin/AndroidSDK,
  • when you want to create iOS application, should know Swift and iOS SDK. - When you want to create some static pages, you can use Jekyll, Hugo or Zola.
  • When you want to create some SPA web application, you can use Typescript/Vue/Vuex/NuxtJS or React/Redux/NextJS and Tailwind,
  • when you want to create some cross-platform Mobile application, you can use Dart/Flutter or ReactNative.
  • If you want to transform your SPA web application into mobile, you can use Cordova or Ionic,
  • if you want to create some backend REST API in very short time, you can use Python and Django or Flask or FastAPI.
  • If you want to create some small and powerfull microservices, you can use Golang with Gin or Chi framework.
  • If you want to create some Windows desktop application, you can create it with C#/.NET or (server backend runnning in windows).
  • If you want to create some desktop application for Linux, you should know Vala/GObject or Qt/QML.
  • If you want to create some multiplatform application, you can create it on Java platform in languages like: Java or Kotlin or Scala

If you know all this knowledges (and maybe others) so you also know that is very efficient when you are FullStack developer and you are creating Frontend templates, API connection from backend, REST or GraphQL API backend and Database models. (also depends on your knowledges of SQL and noSQL databases and their advantages/disadvantages). When you are creating this all in one language (TypeScript for example) so you can still be in one ecosystem which is huge and maybe share some data models between backend and frontend if it is possible.

Of course you can use Python or PHP or Ruby or C# or Java or Kotlin or Swift or Go or anything else for backend. But I think that when somebody is on start of their developer career and don't know any other languages and ecosystems and want to be a FullStack developer so it is very useful to stay only in one JavaScript ecosystem for simplicity. Of course in the future he can spread their knowledge but JavaScript/NodeJS is the best solution for start of your FullStack developer career..

Collapse
sereton profile image
Sereton

Laravel is 10X more polished and productive that any node-based stack. I would abstain to comment if I am going to display my ignorance so blatantly.

Thread Thread
alifarhad profile image
Farhad Ali

I agree. working with laravel makes it so much easier to build out stuff . React is cancer compared to the beautify and simplicity of laravel

Thread Thread
lukeshiru profile image
LUKESHIRU

Imagine comparing the most popular WebDev library with a serious disease just because you want to "defend" a language that is no longer indispensable for WebDev in 2021.

Thread Thread
sereton profile image
Sereton

How many Laravel apps do you have in production? I know the answer, 0. That "serious disease" is fully developed web framework at the same level of Django,Rails and pretty much ahead of the other offers.

Thread Thread
lukeshiru profile image
LUKESHIRU

I was answering to @alifarhad who said:

I agree. working with laravel makes it so much easier to build out stuff . React is cancer compared to the beautify and simplicity of laravel.

Chill. I was not talking about Laravel. If you want me to talk about it: Is Lavarel able to create components that you can send from the back-end and reuse/hydrate from the front-end?

Thread Thread
pictor13 profile image
Igor Pellegrini

How would it be reasonable to expect it from Laravel, when Front-end is JS?
Of course a car can't fly and should get an airplane if that's what you need.

Collapse
jasongodev profile image
Jason Go

Most often than not when companies hire full stack developers, even if they don't mention PHP, chances are they will throw a few PHP related tasks or maintenance of legacy apps. Also take note that all the server side rendering that has become famous with React and Vue are all native to PHP since forever. In fact, a lot of development patterns today in nodejs are already present in PHP a long time ago. PHP is still much a straightforward language for the web. It's the only language designed as first-class language for the web as far as backend code is concerned.

Thread Thread
lukeshiru profile image
LUKESHIRU
  1. If a company hires you to do JS/Node and then they ask you to do PHP, you should take that as a red flag, unless they are understanding that nowadays people don't learn PHP with HTML, CSS and JS as before. Nowadays knowing HTML, CSS and JS is good enough, you don't need PHP.
  2. SSR is not the same as PHP, unless you know some way of doing hydration with PHP and run PHP on the front-end. SSR does the initial render in the back-end, but then hydrates (in really smart ways) the components with their behaviors. Basically you code a component once, and use it in both the BE and the FE (traits of having the same language in both sides).
  3. There are patterns today in React that were present always in languages like Haskel. Is good to have the good things of other languages in JS land, that doesn't mean we need to "go back".
  4. JavaScript was designed for the web as well, and it can be used in both the front-end and the back-end.

The arguments in favor of PHP are "it was popular", "there are lots of work yet", "I like it", but the thing is you can create modern (2021) WebApps without knowing anything about PHP, but you can't do that same thing without knowing JS. If you complain about PHP not being present in a post like this, then you have to complain about Java, .NET, and much other BE languages that weren't mentioned either.

Thread Thread
devninjapirate profile image
Arian H.

I would just say its still popular. I remember reading last year ~80% of the web runs on php+mysql (mostly cause you have to deal with CMSs for most websites). Sure, a custom app/website you build yourself may not run php, but most of the web does. I do java/javascript work mostly, but the business still gets the occasionally php+mysql site i have to deal with (or create if they want something quick).

Thread Thread
lukeshiru profile image
LUKESHIRU

Yup, I mentioned it before, to deal with legacy PHP might be useful, but not so much for recent WebApps. The thing is you don't need to know PHP to be a Web Developer, is more like a "nice to have" (barely).

Thread Thread
devninjapirate profile image
Arian H.

It will say the php framework Laravel is a very nice/full framework and we enjoyed coding in it.
Our 3rd party devs even wanted to use a node/express framework but wanted something similar to it, so they adopted I think an offshoot called AdonisJS (at least that is what they told me).

Collapse
mattiatoselli profile image
mattiatoselli

Po**Hub is made with symfony, like Spotify. Just to mention sites with lot of traffic.

Thread Thread
mjablecnik profile image
Martin Jablečník • Edited

But this article is about FullStack developer and I doubt that Po**Hub or Spotify develop Fullstack developers.
There are probably separated into Frontend and Backend teams where every team use their own language and framework..
But why FullStack developer should learn 2 programming languages (JavaScript and PHP+Laravel or Symfony) when he can learn only one with one syntax and use it on server backend (JavaScript + Express or NestJS)?

Thread Thread
damienpirsy profile image
Matteo Vignoli
Collapse
faridsa profile image
faridsa

Sorry but just because you don't like PHP, doesn't mean it's bad. Your answer sounds incredibly cocky and dismissive, and that's not what one expects from a good developer.

Thread Thread
lukeshiru profile image
LUKESHIRU

I'm not saying is "bad", I'm just saying is not a good suggestion for 2021 WebDev... the same applies the other way around: "Just because you like PHP, doesn't mean it's good". I already said is a preference thing. If you like to deal with legacy, then PHP is a good option, but for new projects in 2021 PHP is far from being "the best option".

Thread Thread
pictor13 profile image
Igor Pellegrini • Edited

is not a good suggestion for 2021 WebDev

You are implying it is bad. There is no other reason to dismiss a language that does its job, that has a consistent ecosystem, that powers a lot of modern apps (yes, with JS frontend side of course).
One uses the tools that are necessary; sectorial mindset won't help the career in the long run.
Sure you mentioned what's "trendy" in 2021 (for reasons, of course), like in the OP's text; but popular and widespread is not an objective indicator (it counts for JS and PHP too).
PHP, for how much flawed or imperfect or still catching up with "modernity", is a consistent part of the market, in 2021 (and no: not just legacy project).
You dismissed it too easily, and it sounds (partially) biased. Hence, the critics in the comments.
Even JS is not the solution to everything and has its drawbacks. I'm not saying is "bad".
You can't even say that JS is "the best option", following your same reasoning.

Depending on mindset, style, educational path, project, requirements, one stack can be better than another.

You need more strict typing validation? You choose PHP (or Java), not Typescript. Need strong productivity? Again PHP (or Python or Ruby). You need flexibility? Probably JS is the right one. Governative project? Then use JS as less as you can and rely on as much other web tech standards as possible. Startup? Embrace all the new shit an JS as you want. Serverless? Again, JS is a better choice.

But you just can't rule out PHP "in 2021". It's just a choice as the others. In web development it's imperative to learn multiple technologies: it's one of the things that actually the "full-stack" in the title implies.
Nowadays there's the choice to have JS for either BE and FE; cool, good for some! (people, projects, requirements, etc.)

However I believe the whole issue is with the post's title; probably should have written "JS full-stack developer", to not be misleading people in this discussion (especially the lazy ones like me that scroll fast and just skim); cause nothing else is considered or mentioned by the author.

Collapse
nft_artsy profile image
The Volks NFT

@lukeshiru you should go to sleep, my friend. You are tired.

The internet is full with people like you. Throwing stupid opinions left and right without no foundation.

Thread Thread
lukeshiru profile image
LUKESHIRU

"Without no foundation" indeed! Double negative better expressed as "with foundation". Maybe I wasn't the one needing some sleep? 😅

Jokes aside, I already explained my reasoning in other comments, so if you feel the only thing you can add is to say "go to sleep, your comment is stupid", let's say that that tells us more about you than about my comment.

Cheers!

Thread Thread
alifarhad profile image
Farhad Ali

why would Laravel be creating components and mucking up the whole codebase with its barebones unopinionated approach like react when it is not even going to produce SPA. imagine having to download 1000+ npm libs made by Tom, Dick, and Harry just because there is no 1 simple way to get things done. well Laravel has that, and we don't need to hydrate shit. at the end of the day, Laravel is beautiful because it makes coding features 1000x easier than react and its node ecosystem.

Thread Thread
lukeshiru profile image
LUKESHIRU

It doesn't need to be a SPA, but does it make sense to you to load the entire site every time the user clicks on anything? And about that "Tom, Dick and Harry" expression ... do you believe Lavarel is made by a single person or that it doesn't have dependencies made by even more folks? Why is NPM bad but composer good from your PoV?

I understand if you find Lavarel easy and React hard, but that doesn't mean Lavarel is better or that everyone finds it easier than React...

Thread Thread
alifarhad profile image
Farhad Ali

laravel is 10000x easier & simpler to work work than react. you can't deny that, no matter what else you say.

Thread Thread
Sloan, the sloth mascot
Comment deleted
Collapse
ozzythegiant profile image
Oziel Perez • Edited

Wow, the people here stuffing down JS down your throat is staggering. This is what truly separates the juniors from the seniors: those that tout you shouldn't be using X language in today's day and age are really limiting their career progress.

PHP is at a turning point where with the new JIT compiler, it now has an opportunity to break out of its web shell and go into other fields like ML, data science, maybe even game development. I highly recommend trying PHP with all the improvements it recently had.

That being said, don't bash JS either. Yes, like PHP, it has flaws, but those that hate it usually end up having a bad time with debugging because they did not properly write or test their code. Learn to get past those differences and you can write good JS.

Point is, learn any language you want for back end. Stop fighting over petty things like what language or framework to use. Learn your fundamentals, data structures, algorithms, app architecture and so forth. Those are the things that matter. Don't let the trolls bring you down with their petty arguments (looking at you @lukeshiru ). Learn good coding practices and you will be on your way to a successful career

Collapse
lukeshiru profile image
LUKESHIRU • Edited

I wasn't trolling... and comparing seniorities is way more pitiful than saying that PHP is old. But whatever, Mr. Senior Dev (now that you can take as trolling if you want, but I guess that for someone that cares about seniorities, is a compliment 😅)

Thread Thread
ozzythegiant profile image
Oziel Perez

I never said I was a senior dev, just that there's differences between new and seasoned devs. I'm sorry that you can't understand why anyone wants to use PHP in 2021. The fact that you're here trying to argue that one shouldn't bother learning a tool that has proven to be resourceful for many applications says a lot about your lack of willingness to cooperate with other devs on their choices. One thing you should focus on is open-mindedness as newer tools in the future will replace JS and phase out that tech stack, even if that means switching back to older technology. Also, think about learning to communicate well so that you can succeed in working with teams. Spouting comments to get people to agree with you won't get you anywhere

Thread Thread
lukeshiru profile image
LUKESHIRU

That's what I'm saying, Oziel. New tools replace the old ones ... I completely agree that something will replace JS in the future, and when that happens I'll happily switch. I did PHP in the past, now I do Node. if someone is new in WebDev I recommend to skip old stuff and just go with the thing that will give them a job.

This post is about "JS Full-Stack" and folks came complaining about PHP not being mentioned, when Go isn't mentioned either, or Java, or .Net. PHP is no longer something you "have to know" in order to do WebDev, you can create amazing apps just using JS. If you want to extend that knowledge and learn other languages, that's great, but don't complain every time someone doesn't mention the language you decided to learn.

Will you agree with someone complaining in this post about "Turbo Pascal" or "COBOL" not being mentioned?

Thread Thread
ozzythegiant profile image
Oziel Perez

True this post is about JS Full Stack but the argument is valid that you should promote other programming languages and not just stick to JS. That's the main problem. JS is a crippling language. It doesn't do much to teach you about OOP or good programming techniques. You can get better mileage with PHP or Java or even Go. In other words, don't tell others that you should just "settle" for one thing; there's many other tools and languages to explore that can be useful for certain use cases. Node.js for example is single threaded, doing async operations using the event loop, whereas you can get better async performance with something like Go routines or even Kotlin coroutines. PHP is now more powerful than JS and should definitely be promoted above JS for certain use cases, where as other things like maybe WebSockets is where JS shines above PHP. Again the point is, definitely promote PHP or any other language without hating on JS as all have their pros and cons.

And as for Cobol, well, you'd be surprised to see what you can still do with Cobol nowadays. Sure it's not useful for modern web dev but you can still get some pretty secure programs done with Cobol

Thread Thread
lukeshiru profile image
LUKESHIRU

I never said "just settle with JS", on the contrary I said "don't settle with PHP", and I agree you shouldn't settle with nothing. That being said, JS is a multi-paradigm language, so you can learn OOP, FP and so on with it. Is not the best language out there, but is far from being the worst.

And again, I'm not saying COBOL, PHP and so on aren't used at all, I just said they aren't good recommendations for a modern stack.

Do me a solid and read my comments without taking them as trolling (because I don't like to troll), and maybe you'll notice that we are agreeing but you consider is good to mention PHP in a post like this, while I don't :)

Thread Thread
ozzythegiant profile image
Oziel Perez

Ok then don't call PHP outdated. Plain and simple. And, help promote other tools. You can't get buy with JS your whole career

Thread Thread
lukeshiru profile image
LUKESHIRU

I didn't said you can get by with JS your entire career. And PHP is kinda outdated for today's practices (the FP approach and closure is way harder in PHP compared to JS and Python), the module system and package managers for PHP are not as good as the one's in JS, or Go, and I mentioned this a few times, but you can't run PHP in the front end, so you loose great features such as SSR with hydration which has "the best of both worlds". When I say is outdated, I say it because modern practices are hard or extremely hard with PHP.

Thread Thread
ozzythegiant profile image
Oziel Perez

Actually, were getting there with WebAssembly. Pretty soon you can run any language on the front end. And, isn't SSR just traditional way of rendering websites? As in, Multi Page Applications? That's basically what PHP is all about, of course, without running as an SPA after initial page load. Anyways, how's it harder to do closures on PHP? It too has functions and a way to pass in variables from a higher scope, which, depending on your view point, is better because it prevents variable name conflicts from multiple scopes and explicitly states where you are getting such data. I mean, it's not that different. Makes it easier to reason about your code.

Thread Thread
ritin profile image
Ritin

Comparing Javascript with PhP is like comparing Oranges and Apples.
With Typescript Javascript gets the powers of Traditional Languages.
So now, Javascript can do everything a Traditional Language can do. But the reverse is not true.
Also, Real-Time Data-Driven Apps can only be written in Javascript.
Nice Topic for Discussion though.

Thread Thread
lukeshiru profile image
LUKESHIRU

SSR is traditional, yes. The tricky part is "hydration" and shared logic. I can reuse the same components and utils in the backend and the frontend with JS, but PHP is another story. Why would you choose to do PHP in the back and load WASM just to have it run in the front as well, instead of just using JS in both? The user will be highly impacted with the worst load times Dx

Thread Thread
ozzythegiant profile image
Oziel Perez

Compared to PHP, yeah, although there are some work around but PHP sucks at real time data. However, I would say Go and Java are fairly decent for that too. I've heard they use those languages for some game servers

efpage profile image
Eckehard

Maybe JS is not perfect at all. And maybe it does not make it too easy. But you can write well designed OO style code in Javascript.

It's like drinking: alkohol does not solve your problems, but neither does milk!

Collapse
ninadd profile image
ninad

Agree. Problem is you wanted a banana but with the banana you got the Gorilla and the whole Amazon rainforest with it.

Collapse
efpage profile image
Eckehard

"Well, maybe in react you do not get a banana without a gorilla (does he not even look a bit like Mark Zuckerberg?). But this is not a fault of OO, it is more a result of over-use of a concept, that does not apply very well to the task."

from: What´s wrong with the gorilla?

chimpanzee

Collapse
ritin profile image
Ritin

lol.
The "Monkey and Banana"
Classes and multple Inheritance.

Thread Thread
efpage profile image
Eckehard
Thread Thread
ritin profile image
Ritin • Edited
class A                     { public: void eat(){ cout<<"A";} }
class B: virtual public A   { public: void eat(){ cout<<"B";} }; 
class C: virtual public A   { public: void eat(){ cout<<"C";} }; 
class D: public         B,C { public: void eat(){ cout<<"D";} }; 

int main(){ 
    A *a = new D(); 
    a->eat(); 
} 

I…

  1. Bloated Code. Why should you have to write code for Class C and Class B? When All you want todo is use Class D

  2. You have to worry about the whole Heirarchy (eg, the whole jungle).
    Debuging becomes harder. On instantiation of D was B called or was it C?

The above example is the simplest to illustrate the point. Imagine production scenarios with deep heirarchy.

Thread Thread
efpage profile image
Eckehard

Why do you do it this way, if there is a simpler and better approach? You can use a hammer to drill a hole, but maybe that is the wrong tool for the task.

Collapse
sujoywebdev profile image
Sujoy Dutta • Edited

Really PHP in todays date!! You definitely don't need PHP, Java, or SQL(can go with NoSQL, if you know what I mean). Before mastering full-stack it's better in my view to master front-end and back-end if you really want to be a Full-stack. I have worked with many Full-stack developers none became in 1 day it takes time a lot of time. Moreover "Change is the only constant" I learned this lesson in my life that keeping up with the technology is the only thing you can do because it's changing very fast.

Collapse
kamlekar profile image
Mr_Green

This is like fire in forest. Strangely most seems fine with it. Developers should bring revolting change as I believe most of our work can be automated or handled automatically.

Collapse
admapop profile image
admapop

Oh wow the number of PHP maxis here is staggering.

I don't know why PHP developers are so... protective. We have a few in our company as well. But the reality is, we are migrating everything we can from PHP to Go and that's that.

If you're building a modern application, PHP has no business in it.

Collapse
mjablecnik profile image
Martin Jablečník • Edited

Nice article but I think that in Back-end you missed MySQL database which is also very popular same as Postgre..
And in front-end section you completely missed Vue and NuxtJS which can be also used by FullStack developers same as React and NextJS..

Graph of frontend frameworks popularity

Collapse
andrewbaisden profile image
Andrew Baisden Author

This article was geared more towards React and JavaScript developers because I was talking from my point of view. So anyone with a similar stack could see a possible path and make their own judgments. I also said My framework of choice is React however you can swap it out for Vue, Angular or Svelte

So I did not miss it completely its assumed that a Vue developer for example would know about NuxtJS. PostgreSQL and MySQL are similar as long as you know SQL you can use both.

Collapse
gleisser profile image
Gleisser

Useful content Andrew, for me coming from a Java background is really useful seeing the perspective of a Javascript full-stack dev. Thanks!

Collapse
nikola1912 profile image
Nikola Jovanović • Edited

Great article! Has anyone had any hands on experience with Notion? How does it compare to Jira, Confluence and Slack for medium scale projects? Can it actually replace them all?

Also would be interesting to see how it compares to the new GitHub Projects:
github.com/features/issues/

Collapse
davidwparker profile image
David Parker

Curious as to why you didn't mention Github or Gitlab or Bitbucket or... ?
And why would I use Notion / Clubhouse / Monday when I have all the project management tools already built-in to Github/Gitlab?

Collapse
andrewbaisden profile image
Andrew Baisden Author

I mentioned Github The CI/CD provider combined with GitHub. GitHub is the most well known and used by a lot of companies which is why I used it as an example. Obviously you can swap it out for Gitlab or Bitbucket.

Because many companies tend to use project management tools like Jira and Monday so it makes sense to get a familiarity with those type of tools now.

Collapse
davidwparker profile image
David Parker

Interestingly, I've worked with half a dozen companies and none used Jira (lucky me!) or Monday. All have used Github Projects + 1x Basecamp. Several used Trello too, but in addition to GH.

Collapse
efpage profile image
Eckehard

Hello Andrew,

nice writeup, you listed about 30 tools a full stack developer should use today. As I noted above, there are at least 6-8 languages/standards (html, CSS, JS...) you need to know just to be able to read the manuals.

It will not be necessary to know every detail, but we should read at least 20% of the documentation for every tool to get started. So, how long do you think it would take to get started? If I start from zero today, will the tools be still on the market when I´m finished reading?

Collapse
andrewbaisden profile image
Andrew Baisden Author

Yes it is highly likely that all of those tools will still be in use. Some are already established so they wont be going anywhere anytime soon.

Collapse
nikhilvaibhav profile image
Nikhil Kumar

Node js is a platform , a runtime environment which brought the power of javascript from browser to the machine.

Why you said it's a framework ?
I'm new to this hence asking you this question.

Collapse
macnick profile image
Nick Haralampopoulos

You are correct. Node.js is a runtime environment for Javascript. It can run Javascript outside of the browser and gives access to the OS and its functionality.

Collapse
aspiiire profile image
Aspiiire

Great article, I would add Adobe Xd and Illustrator for design, I think that they are more suited instead of photoshop!

Collapse
andrewbaisden profile image
Andrew Baisden Author

For vector design yes but not graphic design and image editing.

Collapse
feserafim profile image
feserafim

That's a very useful content. Thanks for sharing it. Could anybody have book suggestions for these kind of tech.
Cheers!

Collapse
madza profile image
Madza

Solid stack 💯😉

Collapse
siddmohanty profile image
Siddharth Mohanty

Loved this comprehensive yet concise list 💙

Collapse
siddmohanty profile image
Siddharth Mohanty

Loved this comprehensive yet concise list

Collapse
pterpmnta profile image
Pter Pmnta

Where is Ionic?

Collapse
riobrewster profile image
RioBrewster

Actually Graphic Designers use Illustrator much more than Photoshop. Photoshop is great for editing photos and adding effects, but Illustrator lends itself to SVG much better.

Collapse
luiz0x29a profile image
Real AI

Backend choose whats popular, oh you are going to have a good wakening when it starts needing to scale.

Collapse
nemethricsi profile image
Richard

Gatsby? Or Next Js is just ahead of them in every point of view?

Collapse
nemethricsi profile image
Richard

Gatsby? Or Next Js is just ahead of them in every point of view?

Collapse
analogmemory profile image
Alex

Would suggest Linear to be added to the Project Management list. Fantastic tool and great integrations with GitHub, Figma, Slack

Collapse
blackr1234 profile image
blackr1234

Still prefer using Java + Spring for the back-end haha~

Collapse
heyimtiaz profile image
Heyimtiaz

WOW

Collapse
evans22j profile image
evans22j

I'm a beginner my aim is to be a full stack developer not to work for a company but freelancing business. What is the right path in terms of languages and frameworks to focus on?

Collapse
andrewbaisden profile image
Andrew Baisden Author

There is no right path you just use the tools and technologies that you feel confident with. You could go down the JavaScript route, PHP, .NET, Java, Python, WordPress etc...

Collapse
draftproducts profile image
DraftMan

Where is vue/nuxt ? 😥

Collapse
varoondev profile image
Varoon S

That's cool.I have been trying to learn the react based stack. But it's to complicated for my tiny brain. For me- backend=Flask + relational database, frontend= html, css, vanilla where possible js.

Collapse
riobrewster profile image
RioBrewster

Actually Graphic Designers use Illustrator much more than Photoshop. Photoshop is great for editing photos and adding effects, but Illustrator lends itself to SVG much better.

Collapse
damienpirsy profile image
Comment marked as low quality/non-constructive by the community. View Code of Conduct
Matteo Vignoli • Edited

(Why is everyone so javascript-centric on these writing platforms? )

The impression is that you started programming yesterday...You just made a list of extremely recent tech (aside from a couple of exceptions) - you completely left out Java and all its frameworks (come on, SpringBoot? Hibernate? What about Kotlin?), Python, Ruby, PHP! Come on! and just placed Vercel and AWS on the same category, do you have an idea of what and how vast and complex is AWS?

If you are here for the Hearts and the Unicorns you can go to bed happy, but I wish there were more substance and more thoughts into this kind of posts.

Collapse
christiankozalla profile image
Christian Kozalla

I'd wish for more kindness and not being disrespectful when expressing criticism.
Additionally, I'd love to read a good article (maybe by you) about Kotlin, Springboot, Hibernate, Python, Ruby and PHP, please. As I don't have hands-on experience with these languages and frameworks 👍

Collapse
damienpirsy profile image
Matteo Vignoli

I'm simply not good at writing and I don't feel I'm in the position of teaching anything to others, although I have 10+ ys of experience in being a (actual) full-stack. Nowadays people follow a tutorial and two days later they start writing "I've been a javascript developer for the whole week. This is how I learned and what you should learn too".
I let the writing to those who are far better than me; that doesn't mean I cannot read and express my opinion on what others write, though

Thread Thread
christiankozalla profile image
Christian Kozalla

One can express their opinion on what others write and still be polite and respectful

Thread Thread
pictor13 profile image
Igor Pellegrini

Might sound harsh from far, but re-re-reading his comment I don't really find disrespectful or impolite sentences. Would you underline them please?

To be more clear: the last paragraph is referred to the content of DEV.to, not to the author.
Although I know by experience that the use of a generic "you" in a sentence is sometime read as a personal reference (actually it is not; but yes, might be misunderstood).

Thread Thread
christiankozalla profile image
Christian Kozalla

"The impression is that you started programming yesterday..."

But yes, re-reading helped me. His comment feels actually not as personally impolite.. Maybe it was just my first impression and the "overall tone"

Collapse
speederx profile image
SpeederX

Other than the other comment, just check the tag of the article.

  • Beginner
  • JavaScript

More than that, cannot be clear.

Collapse
damienpirsy profile image
Matteo Vignoli

Exactly, so what "Full-Stack Developer" has to do with "beginner" and "javascript" (only) tags?

Thread Thread
speederx profile image
SpeederX • Edited

Full-stack, doesn't imply you have experience. It just means it's related to a complete stack - contextualized to this post. I'm not trying to argue to say you're wrong, rather I'm trying to take an effort to contextualize and read the whole, instead of being misguided by my own mindset. I'm sure your anger comes from somewhere, but it shouldn't be exposed towards an article online of some experienced dev that is providing some introductive information.

Next for example is full-stack. It provides: frontend with backend, routing and if you get pg promise and postgre you can also access the database.
I don't think honestly it's a problem, to provide disruptive stacks which perform way better and are faster from a delivery stand point, compared to some other which require a lot of configuration and knowledge even just to start it - considering a beginner has to struggle a lot, focusing already on coding immediately is a big plus. Having to set up an environment back in the php 4-5 days, meant to have a debugger which said non-sense warning and errors most of the times.

This doesn't imply nothing tho. The effort nowadays is just shifted, otherwise we couldn't argue about this on this kind of website with this kind of UI, honestly.

Collapse
snickdx profile image
Nicholas Mendez • Edited

The Author is speaking from their own experience looking at job postings, descriptions and interviews. He stated that this for JavaScript developers and there are other tech or there.

He grouped Vercel/Netlify/AWS together in the context for CI/CD as a Frontend dev concern.

Is it that you didn't like his own subjective experience excluded other technologies?

Collapse
pictor13 profile image
Igor Pellegrini

You are right in bolding Javascript Developers, because it wasn't clear from the generic title.

In my case I would straightforward skipped the article because of it (it's not a topic I'm eager to read too much), rather than skimming quickly and deduce that it was JS centric.
As other commenters, I think full-stack means many other things and we probably clicked on the link with misleading expectations.
I had a gut feeling, when not reading "Full-Stack Developer Tech StackS", but the dopamine kicked already: I clicked expecting a comparison on trending techs for the year 2021, scrolled down to the list (missing the Javascript detail) and found out it wasn't of my interest.

It was a clash between (as explained by others below):

  • author omitting "JS" in the title of the post.
  • users still hoping to get more diverse quality content on DEV.to, and getting disappointed by the usual JS-centric post, useful for many beginners (as tagged) but redundant for many other devs.

Personally I learned from this post, that I should just unsubscribe from DEV.to's newsletter; cause it always catches my attention (with a nice UI, click-bait titles, short format) but it mostly doesn't satisfy my curiosity.

Collapse
samuelfaure profile image
Samuel FAURE • Edited

Thank you for this opinion Matteo, I am kind of tired too of the general low quality of dev.to, which was the problem with Medium and why many people migrated away from it.

I think dev.to is very post-bootcamp junior-fullstack javascript dev centric, which is not necessarily a bad thing, but disappointing for users outside of this specific group.

And lack of depth is a frequent complain I have, up there with "publishing for my personal or professional brand".

Edit: just wrote a note on it (see my history), if anyone wants to move the discussion there.

Collapse
damienpirsy profile image
Matteo Vignoli • Edited

Thank God I'm not the only one thinking this! You nailed it perfectly: "post-bootcamp junior-fullstack javascript dev centric", cannot be expressed any better than this!
I hope Dev.to editors will start raising the bar for content here, or we'll get a new Medium (just only dev focused) - free low quality xeroxed content or paywalled somewhat better content.
Sic transit gloria mundi.

Collapse
ellativity profile image
Ella Ang (she/her/elle)

You know I'm gonna say this, @damienpirsy ... While we truly welcome differing viewpoints on DEV, we do ask that contributions be constructive and helpful.

There was more frustration expressed in the way you wrote this comment than we'd recommend, especially if indeed the post author is a relative newbie. I'm confident that you have a lot to add to this conversation, and would have loved to have seen a comment from you along the lines of

I think AWS is a lot more vast and complex than you've given it credit for in this article. It doesn't belong in the same category as Vercel or Netlify at this point. AWS is so many things, such a humongous set of services, that you cannot compare it with them; I'm no expert so I cannot say what could be close to that (S3 + Lambda + Route + Api Gateway + DynamoDB maybe?), since it doesn't have a jamstack solution equivalent.
In fact, with a couple of exceptions, this whole list feels extremely recent. It feels to me (10+ ys full-stack experience) like you've underplayed the value of Java and all its frameworks (SpringBoot? Hibernate? What about Kotlin?). I would love to see a list like this that includes Python, Ruby, PHP, etc.

You have so much to add to the conversation. Please consider doing so in a way that helps other people to learn and grow.

Collapse
blankfella profile image
blank

Unfortunately this was taken as an offense, and disrespect, and the focus shifted in this reply to that, instead of focusing on the actual content of it, and that is sad.

If I had to rephrase it in a respectful and short way (and I'll do my best) it seems that to me this article should've been called "modern full stack js tech stack", if not then this article is a very niche full stack tech stack opinion and if that is the case then that is okay too, but sad because the title sounds now like a click bait more than instructive. again JS is my second loved language and this is my personal opinion to be taken with a grain nof salt :)

Collapse
badasscoder profile image
Badasscoder

JavaScript is easy. Java is hard. Ruby is hard. C# is hard. But big techs backend is backed in spring boot, ruby rail, dot net. Express is now consider to be king of market because of saturation.

Collapse
mjablecnik profile image
Martin Jablečník

And what about Python?? :)

Thread Thread
badasscoder profile image
Badasscoder

Python is obvious. Python mean django in web development. YEAH big companies use django too. In 2021 python is 1st choice. From server side to intelligence python is serving. Data scientist and ml engineers rich their projects with python along with different libraries. ML libraries are not written in python alone.

sum up: market trend does matter. Market don't need rail, don't need java and cpp for web. In Market JavaScript family, python are now getting popularity. SO this is the reason why people choose js and python,. Job is easy.