Web Development Principles: Front-End Vs. Back-End

Written By John Sonmez

As hard as it might seem, a lot of programmers don't know the different between front-end and back-end development. And I don't blame them. Actually, this is ok.

So, in this video, I'll explain more about the difference between front-end and back-end development. What are the main differences between these two fields of software development?

The Front-End Development is the part that users interact with. Everything that you see when you’re navigating around the Internet, from fonts and colors to drop-down menus and sliders, is a combo of HTML, CSS, and JavaScript being controlled by your computer’s browser. The Back-End consists of a server, an application, and a database. A back-end developer builds and maintains the technology that powers those components which, together, enable the user-facing side of the website to even exist in the first place.

So, wanna know more about the difference between those 2? Watch this video and find out!

Transcript Of The Video

John Sonmez: 

John:               Hey, what’s up, John Sonmez from simpleprogrammer.com. I gotta check my mic here, my battery. I thought I’d answer this question. I just was writing some chapters in my new book. I’m writing this book about—called the—tentatively called The Complete Career Guide for Software Developers and I was talking about front end versus back end in there and so I looked and I saw this question. I thought, “Ah, this is perfect. I’ll just answer this question since I’ve been writing about this topic” which I find kind of boring, to be honest. I like to do the more opinionated stuff but, yeah. I’m at this part right in book where I’m defining things and talking about stuff that I’m not really super passionate about but you’ve got to get through it, right? I’m trying to bring at least some humor to it. That will make it a little bit more entertaining, but it’s stuff you got to know. I can’t create a book about a guide to software developers or complete career guide without giving you all the stuff that you need to know.

Before we get into that I do want to take a moment to thank hire.com for sponsoring Simple Programmer. They’re pretty awesome. I don’t get along with a lot of companies that have wanted to sponsor Simple Programmer to be mentioned in a YouTube video but I do because I like what they’re doing. I like their philosophy. I like the way that they work. I really like this idea of flipping the job search around. You could check it out for yourself. Go to hire.com/simpleprogrammer. You’ll also get a bonus. Normally they give you $1000 when you get a job through them. They’re going to give you 2 if you go through that link. Check it out. See it for yourself. It’s a totally different way to apply for a job. I definitely recommend it. Let me know your experiences by the way with them. I’d love to hear from all of you.

Let’s talk about front end versus back end for the new programmer. This email says, “Hey John, I just discovered your videos about a week back and I really find your channel useful. Perhaps you could help me with a dilemma of mine? I’ve been really interested in coding for sometime now and shows like Silicon Valley have pushed me in this direction.” I haven’t seen that show, but I heard that it’s pretty interesting. I don’t watch TV. “I wanted to know whether it’s better for a programmer to specialize in either front end or back end programming or they should know a bit of both. I didn’t really understand the difference and have been jumping between Python and HTML for sometime only to properly start HTML again. I’m wondering, is there any demand for front end developers especially with the rise of websites like Wix and Squarespace. Should I jump back to Python or continue on my path and check out the backend layer of my career? Much appreciated, John.”

There’s confusion about what is front end and back end. I have a definition of it. To me, front end development is working on the user interface and the UI type of code that goes with that and back end is anything that’s not seen by the user or whatever it be, what happens, the business logic that happens after someone clicks a button, submits a form, all that stuff connecting with a database. All that I consider back end.

Different people say, “Oh, front end work means just doing HTML and CSS and JavaScript.” Well, _______ [inaudible 00:03:18] of the job, but just creating the design of the page. I call that web design. I don’t know. There are so many terms, so much confusion, but to me, front end is like I said, it’s creating the web page and the visual elements of it and some programming. There’s logic that goes into user interfaces that doesn’t have to do with the business logic of the application. That’s where I draw the line, to me.

What should you do and do you need to know a little bit of both? You need to know a little bit of both, of course, right? You can’t not know back end development, right? I mean, what are you going to do, just create user interfaces? I suppose you could. The back end stuff is where the real programming happens if you think about it like business logic, algorithms that stuff. There shouldn’t be a whole lot of logic in the front end. There’s going to be some and things are kind of blurring because we have JavaScript frameworks now where we’re able to pull data from the database or we’re able to like—where we have more complex things and sort of the wiring code and even an MVC type of code in the front end. We’ve got some business logic and an application flow type of wiring and code in the front end so that makes things a little bit more accomplished. It kind of blurs the line whereas before I think when we just had—you had HTML, CSS and a little bit of JavaScript and then you had server side rendering it was pretty clear. Server side rendering we can call that back end and we can call the HTML and stuff the front end.

Even at that point I would’ve called the server side rendering part the front end and I would have drawn the line and said, “Okay, when you actually get into the business logic, now you’re in the back end.” Regardless—it doesn’t matter that much. I would say though that having both of these skills, knowing how to do this right because what I think is really valuable for a software developer starting out is you need to be able to create an application all by yourself from the very beginning to the end. That means that you need to be able to create the user interface. You need to know that HTML, CSS, JavaScript. You need to know some server side language to be able to—it could be Python, it could be ASP.NET, C# framework, whatever you want. It could be node. Then you need to be able to connect to database and get data, insert data because if you have that basic knowledge then you’re really useful.

Now, again, some people would say, “Wait a minute John, are you saying being a full stack developer? Are you saying don’t specialize?” No. I’m saying that you’re not going to be an expert in all of those areas but you have to have functional knowledge. If you can build an application, that is a valuable skill because you’re not going to get stuck. You’re going to be able to fit in and help out and understand what’s going on in the system. A lot of times when you’re working as a software developer problems happen upstream that have to be traced downstream. If you’re like, “Well, I don’t know shit when it comes to the database” well you’re not going to be very useful on the team. You can’t just throw your hands up and say, “Oh, I don’t touch database stuff. I’m a front end developer. I don’t touch any of that back end stuff.” You’re not going to be so useful. You see what I’m saying?

I would—pick what you want. you could specialize. If you’re not particularly good at design, I did a video on do you have to be a designer to do development. I’ve done some videos on that. if you’re not particularly good at design, you don’t like design and front end, it’s probably going to be a little bit painful. You might be able to hack the code, except you’re going to look at what you’re creating like me and you’re going to be like, “That looks like shit.” That’s what I do when I do front end developing, so I prefer back end development.

I can write an algorithm and figure out how to design the architecture, the back end of a system and make this whole framework and stuff like that. I enjoy that. That’s kind of—decide what you want to do and specialize into one of those areas. Pick a specialty within that. it’s not just your structure that can’t be front end or back end but you want to pick something niched down. You should be able to do—you should have that capability.

If I had to pick one, if you said, “Well, what is the most valuable?”, I would say front end simply because there’s more jobs where you’re going to be expected to create something that faces the user, the web page of something like that even if you can’t design it but you’d be able to hook that up and understand especially with the web 2.0, JavaScript frameworks and all this stuff.

Anyway, I hope that helps you. This is definitely a confusing topic between front end and back end. Like I said, I don’t think it’s all that interesting. You just want to write code. You want to be useful to be able to write an application. You’re going to have to know a little bit of both to be able to do that but you’re probably going to pick one place where you primarily focus and spend your time. Yeah, that’s it.

If you like this video subscribe to the channel. If you’d like to join the Simple Programmer community and support the channel, check out the patron page. Some really cool stuff, some really cool rewards there and I don’t really talk about the Facebook group enough, but we’ve got an awesome Facebook group where we’ve got Simple Programmer community together answering questions, talking with each other, talking with me, I’m active in there. If you’d like to join that it’s pretty dang cheap honestly to get in there. It supports the community, it supports the channel, you become a member of it.

Anyway, that’s it. Again, if you like the video, subscribe. I’ll talk to you next time. Take care.