The division between front-end and back-end development is strong. As it should be because they handle completely different things. You probably already know about front-end development. That's all the stuff with HTML, CSS, and JavaScript. It's the relatively cooler part of web development to me.
But just like the tip of the iceberg, there's way more happening behind the scenes than any user needs to know. The back-end is where all of those database calls and authentications and the other validations that help keep your data secure happen. This is what's looming behind every website.
You'll usually get to focus on just one programming language for the back-end which can be easier learn than the three you need for the front-end. One thing you'll have to watch out for are the different back-end frameworks.
With C#, you have the MVC framework, ASP.NET, and whatever other ASPs there are out there. In PHP, there's Laravel, Cake, Yii, and some other funny sounding ones. I'm not even going to touch Java. It can just stay over there.
When you start working on the back-end though, you'll be focused on working with data. Every time someone submits a form you have to make sure the information is in the right format, that it doesn't have malicious code, and that it's being written to the correct table in the right columns.
You'll also be responsible for bringing data to the user from the database. If you ever log into your bank account online you are witnessing the database being queried. As a back-end developer you'll need to know how to match the right data with the right user credentials. If you mess this up, people's sensitive information can get hacked pretty easily. That's why back-end developers get paid more honestly.
As a back-end developer, you don't even have to know front-end development and vis-versa. The two layers are so separate that you can master one without ever touching the other. When you write code on the back-end, you can give the front-end developers access to it through APIs. That way they can get the information they need to make the user interface and you can keep full control over how the data is brought in, filtered, and displayed.
If you can do both front-end and back-end development, then you are pretty incredible. Especially if you can do both at a high level. Usually it's good to pick one side to focus on and then start to dabble with the other side as you start taking on bigger projects. There is one little dangerous thing with back-end development.
Unlike the front-end side, the back-end programming languages are pretty different. PHP isn't even object-oriented so there's that. When you commit to learning a back-end language, make sure that you are learning one that will get you a job you might want. Some languages are more popular in different areas and it's important to look into that before you really start investing time and money into learning a new skill set.
Hopefully that was a little insightful. What do you guys think? Either way you go you can't really go wrong. There's such a demand for both front-end and back-end developers that it's a little weird.
Hey! You should follow me on Twitter because reasons: https://twitter.com/FlippedCoding
Top comments (5)
"...You'll usually get to focus on just one programming language for the back-end which can be easier learn than the three you need for the front-end..." A backend language (PHP/Python/C#/etc), SQL of some flavor, and the Powershell or Bash for administration. 3 minimum. With the momentum of web tech. a developer has to be constantly learning new tools for the toolbelt.
THEN the frameworks, components, libraries, shims, etc to actually get an application functional.
"...The two layers are so separate that you can master one without ever touching the other...." True. Separated by a network and communication protocols.
"...front-end developers access to it through APIs. ..." Only if you have a separate application. Some apps render the frontend assets server side and then response with an entire HTML document. This is the old way, of course, but it still has its place.
"... PHP isn't even object-oriented so there's that...." 100% untrue. As of PHP 5.3 was the initial release to support the OOP paradigm. It was released June 30 2009, now End of Life. Subsequent version have only made PHP's support of OOP even stronger. As an aside, GoLang, Rust, Haskell are not object oriented either but enjoy a solid following and have there place. Not being OOP is not a detriment. Again, tools for the toolbelt. PHP, however, has been an OOP language for nearly a decade now.
I think there's so much more to a back-end than people think. Many people just think of back-end as the server that gets requests and accesses some database to return data to the front, but in reality the back-end is SO deep, as you said, there's a whole bunch of routing, communication, authentication, validation, type checking, querying, updating etc that goes on behind the scenes. It's so easy to underestimate the functionality and workload that a back-end actually does.
good point! and I also did like what the author has written and said.
David corrected some of the statements already.
I want to share my article because the terms can mean different things based on the context
coder.today/backend-vs-frontend-it...
I do not think full stack is nearly as impossible as it used to be. The article misses what in my opinion is one of the most important backend stacks for web/mobile apps, which is node.js, for instance utilizing GraphQL on a serverless architecture. When using Javascript over frameworks such as express, with modules like passport for authentication (to mention one of many), back-end development is suddenly opened up to those that typically only did front end. My guess is that in a few years it is expected for web developers to know it all (language will become irrelevant).