I am Tim Corey. I teach coding online and my inbox is full of questions from current and future developers. I wish I could sit down with each of you and share the answers I know will help you go further, faster in the world of development. This podcast is the next best thing. On this podcast, I will answer the biggest questions people are asking! Send us to your suggestion for a future Dev Questions at https://suggestions.iamtimcorey.com/ To keep the podcast coming, like, subscribe, rate, and share it with your friends and colleagues. See why thousands of students have chosen to learn to think and code like a professional developer at www.DevForge.com.
Use Left/Right to seek, Home/End to jump to start or end. Hold shift to jump forward or backward.
0:00
|
11:14
What is a back-end developer? What do back-end developers do? Do they just write services? How do I become a back-end developer? These are the questions we will answer in today's episode of Dev Questions.
Welcome to the Dev Questions Podcast with Tim Corey. Join us each episode as we tackle the questions you are asking about a career in software development, understanding the industry, and new technology. If you're just starting out or you want to grow stronger as a developer, this is the place to get your questions answered. Now, here's your host, expert developer and online educator, Tim Corey.
SPEAKER_02
What is backend development? I've heard about that term, but what does it really mean? And where's that line? Is there a clear dividing line between back end and front end? What does that even mean? So that's the question we're going to tackle in today's episode of Dev Questions. And it's one I've heard a lot. Now, if you have a question that you just want to get answered, go to suggestions.imtimcorey.com, ask it there, and hopefully you'll see your question answered in a future episode of DevQuesti. Now, for this, we've this is a series, a three-part series, covering front-end development, back end development, and full stack development. This is episode number two in that mini series, and we're talking about back-end development. Now, if you have a question about front-end development, that's last week's DevQuestion episode. We've also jumped into a C sharp series, like coding series, where you learn about how to build a front end this past Monday. And we're going through and I'll do the same thing next week. We'd learn how to build a back end using C sharp on next Monday. We'll also have a challenge where we talk about hey, here's a way to see if you're ready to do back-end development or what it might take and to see if you might like it. And we'll do that on Tuesday, and we'll answer that challenge on Friday. So that's kind of a series we're in right now. We're talking about today, though, back-end development. So backend development is support for the presentation layer. Now there's a lot of stuff in there. There's a broad range of things you could do and even specialize inside of that, but that's generally what back-end development is. It's behind the curtain. You know, if the presentation layer is the stage where the actors are, this is everything behind the curtain. This is all the support. This is all the things making that presentation happen. So that includes data access, business logic, API development, services, including most microservices, and a lot more. There's tons of stuff that you could do inside of back-end development. And you could be a back-end developer who has a totally different job than a different back-end developer because it's so broad of a category. So let's talk about the languages you might need to know in order to be a back-end developer. And the good news is you pretty much need to know one language. Now, which one language? It's kind of up to you. There's lots of different options out there. For example, Java. That's a language you can learn for backend development, C sharp. Now, obviously, this is a C sharp channel. We focus in on C sharp stuff, but C is a great language for backend development. So is PHP or Node. These are all options for being able to write back-end development code. Now, I say code because really back-end development is often what people think of when they think of software development, because it's the writing of the code. It's not about trying to make things look right or trying to get the user flow right or working accessibility things. It's about writing the actual lines of code. And that's most likely going to be back-end development. There is writing of code in front-end development, for sure. But that's what people think often is they think of back-end development when they're thinking about the idea of being a software developer. So what do you need to learn? Well, you need to learn one language at least to be a back-end developer. You don't have to learn six, seven, eight. It's not like the front end where you have to learn HTML and CSS and JavaScript just to be a web developer and then all the other things as well. This is really just your one language, whatever language you're going to build in, but you need to go pretty deep in it. You need to learn architectural patterns. At the very high level, things like dependency injection. So you have to know how to set things up and how to arrange things to be most efficient, not just to throw things at it, but to make your life easier as you build out your application. Now, I'm going to mention something now that gives me a twinge, and that is data structures and algorithms. You need to know them. However, this is something that has been done wrong a lot. And in fact, I'm not a huge fan of even college students learning data structures and algorithms. It sounds great, and you know, I've even had software developers say, you know, they have to know these things. But really, what happens is I feel like it's the cart before the horse. Because what you're doing is trying to then fit in these patterns before because you have to use patterns rather than saying, I have a need, what pattern will fill that need? So be careful here. You definitely need to know data structure's head. And data structure just means it's a fancy word for how do I store my data in memory? Is it an integer, a string? Is it a list? Is it an I enumerable? Is it an array? What are the different things I can put my data in and which one would I choose for which situation? And then algorithms is just a fancy way of saying code structures. So I do things in a certain way because this is most efficient. That's all those things are. Well, you need to make sure that what you're doing is making your code better and easier to maintain, not just implementing these things because you learned about them. So be careful there. But as a backend developer, you need to know these things. You also should know about database design. And this, some people get a little uptight about this because they're like, well, I'm a software developer. I don't have time to learn about database design. Then you probably shouldn't touch the database. Okay. And you might say, well, I have tools for that. No, no, no. If you don't know about database design, you shouldn't use tools to touch the database. Because that those tools aren't perfect. They need someone who knows about design. So you need to know at least some about your database design. Or you need to work on a team where you have a database designer. Okay? Then also you need to know about source control. Whether it's front end, backend, doesn't matter. You need to know source control. So those are things you have to learn. Essentially, you need to go really deep in one language. So we talked about the front end and said, hey, it's a wide uh set of things you have to learn. You still have to go deep, but it's a lot of you know breadth here. With with back end development, it's not as much breadth, but you have to go a lot deeper. You have to really get in, know the language well, because that's what's going to set you apart. Now, what are the upsides and downsides of backend development? Well, the upsides are there's lots of tutorials to get you started. And there's good job opportunities. These things both apply to back-end developers. In fact, with a Stack Overflow survey, we had a conversation with that a couple weeks ago. Uh, we talked about the fact that back-end developers from that survey, now it's not everybody, but backend developers from that survey get paid more than front-end developers. And there's more of them and they have more opportunities. So be careful not to say, oh, well, because it's super popular for front end, there's nothing for back end. There's lots of stuff for backend. Okay, so there is good job opportunities. Now, the downsides, you have to rely on others to display your data. So you still need to work in a team. You're probably still building things that need somebody else to do something with. And another downside is you do need to learn that language deeply. You have to go really deep in order to make sure that you can compete in the marketplace. And finally, it can be hard to get just a back-end role. Now, I guess there's lots of opportunities for backend developers, and there are. But oftentimes what happens is with any role, things sneak in. So you're a front-end developer. Cool. Can you talk to the database over here? You're a back-end developer, great. Can you just write a little UI for us, a little web UI for us? Like that's that's what happens everywhere. That's why there's so many, there's a term for the people who uh become database administrators that didn't expect to be. Okay, it's called the accidental DBA. It's you kind of backed into it because you're like, oh, hey, you're smart. You you've learned how to use C sharp to talk to SQL. You must know about all about SQL, therefore you're the DBA. Okay, it happens a lot. So it happens with any field, but you're gonna find that when you wanna be a back-end developer, you are gonna have to know a little bit about front-end stuff because it will be helpful in your career. And it's gonna happen, people are gonna ask you to do something that's a little outside your normal expertise. So that's a back-end developer. It's different than the front-end developer, it has different requirements, it's more depth than it is breadth, but it does mean a much deeper depth in order to be a back-end developer. So you can start at a shallow level, don't get me wrong. But as you grow and as you become a better back-end developer, that's when you become more competent and more able to get better paying jobs. So that's what a back-end developer is. Now, on Monday, we're gonna talk about how to become a C sharp backend developer. We're gonna learn what that is. We're gonna start writing some code that shows off what a backend developer might do. And also then on Tuesday, we'll have a challenge where I say, hey, here's a here's a challenge for a back-end developer. Here's what you have to do as a backend developer. Try and get this done. And then on Friday, I'll show you how to complete that challenge. So I will do it as well. That way you have the opportunity to try it out yourself and see where you're where you have gaps and where you need to fill those gaps, and also can kind of see how to round those skills out on Friday. All right. Until then, thanks for listening. As always, I am Tim Corey.
SPEAKER_01
Thank you for joining us for this episode of Def Questions. Tim is committed to making it easier for you to become a developer. If you would like to help make more content like this possible, please like, subscribe, rate, and share Dev Questions. You can also send your questions to questions at IamTimcorey.com. Until next time, remember, you are too smart and your time too valuable to waste it making all the mistakes Tim did. When you're ready to learn to think and code like a professional developer, head over to imtimcore.com and enroll in a course.