The developer technology landscape changes all the time as new tools and technologies are introduced. After having lots of interviews and reading t...
For further actions, you may consider blocking this person and/or reporting abuse
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...
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
Agree. Problem is you wanted a banana but with the banana you got the Gorilla and the whole Amazon rainforest with it.
"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?
lol.
The "Monkey and Banana"
Classes and multple Inheritance.
What´s wrong with the gorilla?
How does virtual inheritance solve the "diamond" (multiple inheritance) ambiguity?
I…
Bloated Code. Why should you have to write code for Class C and Class B? When All you want todo is use Class D
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.
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.
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.
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.
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
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.
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)?
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)
Yes learning new languages surely spread your knowledge.
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..
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.
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
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
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.
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.
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.
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
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..
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.
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
Po**Hub is made with symfony, like Spotify. Just to mention sites with lot of traffic.
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)?
dev.to/damienpirsy/comment/1g3mm
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
Useful content Andrew, for me coming from a Java background is really useful seeing the perspective of a Javascript full-stack dev. Thanks!
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.
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.
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!
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.
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).
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/
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?
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.
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.
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
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.
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
The backends listed are extremely limited and not actually part of reality.
Whether or not anyone wants to admit it, market share is an important factor in deciding what is "modern." Relevant reality check: kinsta.com/php-market-share/
Modern software/web development should be ultra-light on system resources. Partly because it saves money but also because it saves the environment from needless waste. NodeJS is a massive memory and resource hog - about 150MB RAM per instance + many, many seconds of CPU and disk I/O to spin up and that's before it does anything vs PHP which is about 13MB RAM per PHP FPM invocation and most of that in shared libraries and starts instantly. NodeJS is 10x as heavy on critical system resources compared to PHP so you need approximately 10 times the amount of hardware and therefore 10 times the cost. Your local bean counter in Finance would look at the strict cost numbers and tell you to write PHP whether you like it or not. Facebook runs on a modified version of PHP known as HHVM - if NodeJS were better, they'd be using it...but their engineers know better. Firing up a Javascript engine is expensive and that software doesn't run as well as you think it does. V8 is pretty efficient for Javascript, but it's still Javascript - a not great language.
On the database side of things, MySQL/MariaDB are still relevant and powerful relational database backends. However, even SQLite is more than good enough for most websites. SQLite paired with a custom-built arbitration TCP/IP server in PHP can vastly outperform a more traditional LAMP/LIMP stack (I've done that myself to significant effect). And for sheer performance, nothing beats ANSI C/C++ or even Assembly language. Although in a web environment, writing C/C++ is probably a bad idea at best, so Rust comes in handy to offer at least a seatbelt between you and the windshield.
On a related note and to show that I know what I'm talking about with regards to language performance: I wrote a C++ program about 3 years ago that took live dispatches from the local fire department from an attached radio, recorded and generated MP3 files of each audio snippet, and shoved the result out onto a web server...because even PHP and Python weren't fast enough to process the incoming audio data - on a Raspberry Pi 3. That is, even the smallest loop in the fastest scripting languages were still too slow to handle basic analysis of the incoming realtime audio data feed! In addition, the C++ program ran at a nice cool 1% CPU (spiking to about 5% when processing detected dispatches) while PHP and Python where chugging 100% CPU the entire time and literally unable to keep up with the data feed. I can't even imagine what a NodeJS version would have looked like. It probably wouldn't have even started running in a reasonable amount of time and therefore missed entire dispatches let alone keep up with PHP, which had slightly better throughput compared to Python. Granted, the Raspberry Pi is seriously underpowered hardware, but the point is that no scripting language in existence can handle super basic realtime audio processing on the Pi and, for anyone reading this, that knowledge and reality scales up to production environments. Sometimes you need to pull out a compiled language or write specialized software for a specific task but, apart from that, we as devs should be responsible with system resources as we write software. I'm NOT saying everyone should give up on scripting languages. They have obvious benefits like having defenses against a garden variety of attacks built into them. But scripting languages don't perform as well as you might think and the decision to use a NodeJS backend (and Docker too) requires either a lot of prior bad decisions or at least a distinct lack of knowledge of how computer systems are designed.
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?
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.
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.
Great article, I would add Adobe Xd and Illustrator for design, I think that they are more suited instead of photoshop!
For vector design yes but not graphic design and image editing.
Where is Ionic?
That's a very useful content. Thanks for sharing it. Could anybody have book suggestions for these kind of tech.
Cheers!
laravel is 10000x easier & simpler to work work than react. you can't deny that, no matter what else you say.
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).
Loved this comprehensive yet concise list 💙
Loved this comprehensive yet concise list
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.
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.
Solid stack 💯😉
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?
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...
Thank you, for this post.
For me there is no modern stack. I'm happy with my magical tech stack.
dev.to/ismaelfi/my-tech-stack-as-a...
Very cool. This is mostly the stack I'm interested in. The only problem is I have no idea what to build with it
I have an article for that too! 50 Cool Web And Mobile Project Ideas for 2021
Backend choose whats popular, oh you are going to have a good wakening when it starts needing to scale.
WOW
Still prefer using Java + Spring for the back-end haha~
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.
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.
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.
Gatsby? Or Next Js is just ahead of them in every point of view?
Gatsby? Or Next Js is just ahead of them in every point of view?
Would suggest Linear to be added to the Project Management list. Fantastic tool and great integrations with GitHub, Figma, Slack
Where is vue/nuxt ? 😥
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.
@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.