DevQuestions with Tim Corey
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.
DevQuestions with Tim Corey
168 What Is A Front-End Developer?
Use Left/Right to seek, Home/End to jump to start or end. Hold shift to jump forward or backward.
What is a front-end developer? What do front-end developers do? Is it just for web development? How do I become a front-end developer? These are the questions we will answer in today's episode of Dev Questions.
Website: https://www.DevForge.com/
Ask Your Question: https://suggestions.iamtimcorey.com/
Sign Up to Get More Great Developer Content in Your Inbox: https://signup.iamtimcorey.com/
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_02What is front-end development? This is a question that gets asked a lot and also maybe not asked enough. So we're going to cover this in today's episode of DevQuestions. Now, if you have a question, go to suggestions.iamtimcorey.com, leave your suggestion there for your question, and hopefully you'll see it answered in a future episode of DevQuestions. Now, front-end development is a very popular term. It's one you'll hear a lot. And if you Google front-end development, you'll actually get a lot of wrong answers. So let's talk about what is front-end development because it's kind of a nebulous term, and it's one we should define a little more clearly because you may want to learn how to be a front-end developer. Or maybe someone's told you, hey, you're good at this, you should probably be a front-end developer. But what does that really mean? Well, a front-end developer deals with a user interface and user experience. So it's building something that the user directly interacts with. Now, they interact with the entire application because let's say you're, you know, you're a simple CRUD application, an application that creates, reads, updates, and deletes data. Well, they don't just deal with the UI. When they use the UI, it's calling the business logic and the data access and all the rest. But what the user sees, what they actually click on and drag and move and all the rest of the stuff, that's the front end. Now, there's still a lot of gray area in there. So let's talk more about what is user interface, what is user experience, and you know, what are some examples. Before you go on, I do want to point something out. And this is where I think a lot of, if you Google this, you'll get a lot of wrong answers. Because when you Google it, you'll see just web examples. You'll see front-end web developer, front-end developer, and it's all about the web. And that's not the only thing that is front-end development. You can be a front-end developer for desktop applications. You can be a front-end developer for mobile applications. So there's not just for the web, but the web is the most common thing when we think about front-end development. And we'll talk more about why in a little bit. But let's get some examples of front-end development because maybe you've seen some of these jobs or you've done some of these and you can relate to what they're talking about. The first kind of grouping would be Angular, React, and View. So these are JavaScript client-side user interfaces for the web. And so those would be examples of front-end development. HTML, CSS, and JavaScript, also examples of front-end development. You don't have to have a framework in order to do front-end development. But that's not all. WPF, Winforms, .NET MAUI, these are all, this all can be front-end development tools. So those are also examples. Also, Blazor, MVC, RazorPages, these are examples of front-end development. So if you want to be a front-end developer, you could use any of these tools and do front-end development. You don't have to be locked into, for example, just React. There's a lot of different options for front-end developers. But I want to be a little more clear here because this is where the next bit of confusion comes in. There is often frameworks used in front-end development, design patterns that are used with front-end development. For example, the MVVM design pattern or the MVC design pattern. In fact, Microsoft has a project type called ASP.NET Core MVC. That's for the design pattern model view controller. So is that full stack development? No, that's front-end development. Even though there's in theory three, I guess you'd call them layers, three different sections, that's still all presentation layer. That's all still talking about getting something in the hands of users, showing them something, getting information from them, and so on. So MVVM, MVC, these are front-end design patterns. Okay? So I think maybe that clarifies a little bit more of what a front-end developer could do. But let's talk more about, you know, I said it's not just web. Well, web is probably the easiest thing to identify as this is front-end development, and it's probably the most likely to be just front-end development. If you are a React developer, you're probably just a front-end developer. And I said I'm not saying just as in putting you down, I'm saying that's the category you're in, is front-end development. And I've hear a lot of people say, well, I'm a full stack developer. Well, a full stack developer would talk to databases, would write business logic not just in React. You'd have to be behind an API. That's the back end. So usually what happens is you are just in the front end with the React code. There's a lot of complexity there. You can even write some business logic inside your React code, but that's still just presentation layer, which would mean just front end. Same with mostly with Blazor WebAssembly or other things. However, you can also mix things together. And that's why mobile and desktop, especially, aren't necessarily known for being front-end tools, because more often people are doing full stack development with them. So they are not just writing the UI or building the UI in the presentation layer, they're also building the business logic in the data access. And sometimes they're doing it all in that front-end project. That's a mistake, but for small projects, it's fine, but it really should be something that's separated out a little bit better. So that's why we often think of web development when we talk about front-end development, because it's a much clearer separation. Because with especially client side with Angular React View, Blazor WebAssembly, these tools they rely on APIs. So it's a very clear boundary because they have to have their data from somewhere else. They can't get it directly in almost any case. Therefore, that's all front end for the Angular React, Blazor WebAssembly View, those kind of things. Whereas the back end would be the API and back. So that's a little more clear. Whereas with a win form application, I can't tell you a number of times I've seen a WinForm application where the code behind calls the database, which means it's technically full stack development. We're going to talk more about that in two weeks. But it's just a mess. That's messy development, is what it is. But when it comes to talking about front-end development, that's why we talk mostly about web development because of that clear separation. So let's talk about what do you need to learn to be a web front-end developer? Because, okay, you know, if you want to be a front-end developer for Winiforms, WPF, those type of things, well, you need to learn C sharp. But and you also need to learn that UI like XAML or something like that in order to do the display work. But when it comes to the web, what do you need to learn? Well, you need to learn HTML, CSS, JavaScript, not frameworks first, HTML, pure HTML, pure CSS, pure JavaScript, source control. Then you need to think about do I need a framework? Probably, because frameworks usually do a lot of the grunt work for you, a lot of the groundwork to kind of allow you to build on something that's already there, an existing foundation. Be careful, you don't have to always use a framework. You can get by just fine with HTML, CSS, and JavaScript and build something powerful that's a lot simpler, which is better. But once you get to a certain complexity level, a framework's gonna be a definite help, which means you'll probably need to learn Angular, React, Vue, Blazor, MVC, Razor Pages, one of those or more, but you need to learn one of those. And then you'll need to learn the system for getting third-party packages. For example, NPM, if you're talking about JavaScript, or NuGet, if you're talking about C sharp, and so on. So that's a lot of stuff. HTML, CSS, JavaScript, source control, framework, and then the package manager. That's six things you have to learn. That's a lot. Now, the upside of being a front-end developer is that it's a very popular thing to do. And so because of that, there's a lot of support out there. You can get started pretty easily because there's a lot of tutorials out there to get you started. And there's even some good job opportunities because of the fact that this is a very popular thing to do, is to have web front-end development as a whole job. So there's a lot of opportunity out there. There's a lot of tutorials out there to help you get started, and it's a pretty popular thing to do. Now, the downside, whenever you hear something's popular, well, the downside is there's a lot of competition. So, especially when it comes to getting started, there's a lot of people that have also said, this is a popular thing to do, I'm gonna do it too. And so they're also starting from the same place you are. So there's a lot of competition to keep up and make sure that you are putting yourself ahead of others when it comes time to apply for a job. There's also the downside of you have to rely on others because you know you have to rely on API being built and how it's built and so on. You have to rely on somebody else to do that for you because you're focused on presentation, which means you really have to work in a team environment or build on top of an existing API. It's not really as easy to do solo development because of that. So now the downside also is there's lots of languages to learn. Like we point out six different major categories to learn. So that's a lot to try and get any depth on. And again, you're trying to compete with a whole bunch of people who are also doing the same thing. So having depth is going to be important. And then change happens quickly. I I have seen a lot of people that say, I know HTML because they know how to write a div tag or an H1 tag, and they've not kept up with the latest in HTML5 and all the things there. Or people that complain it's so hard to center an item on a page on the web. And that's that was true, sure. But now with CSS3, we have multiple options to do it very, very easily. So you need to keep up with that. So you have to keep up with the HTML5 changes and the CSS three changes, which these are ongoing changes, by the way, but also JavaScript and how it's changing as well. And then if you've chosen a framework, you have to go even more in depth to learn all those changes because those changes usually happen yearly. So now you've got all these different things happening at once. You've got to have to track six different areas to make sure you know what's going on and keep track of those changes as well as continuing to go deeper. Now, that may sound like a hard thing to do, and it is, and change happens quickly, but it is possible and you can definitely do it. And I would definitely not want to discourage you from doing it. I just want you to go in eyes wide open, knowing these are the things I have to do. So, as a front-end developer, your goal is to have a large breadth of knowledge. So you have to know about a lot of different technologies while at the same time trying to be as deep as possible in that wide range in order to keep your skills up to date, in order to keep yourself relevant, in order to keep moving you forward in a very crowded market. So that's what a front-end developer is. That's how, you know, that's what they need to know and how they need to work. Now, what I'm gonna do is on Monday. So normally we have on YouTube, I have two videos that come out a week. Monday video, it's usually a coding video or something around coding. And then Thursday is the dev question video, which is also a podcast. So if you're listening to the podcast, well, there's also a video of this. And if you're watching the video, it's also a podcast of this. But what I'm gonna do is on Monday, which is a coding video, I'm gonna cover how to become a C sharp front-end developer. So we're gonna go over the different types of front ends, what you might want to learn and not learn, and how you can make the most of your time to become the deepest so that you can be as uh skilled as possible and as desirable as possible to employers without just kind of burning out. Because there are some shortcuts, some things you can do that make your life easier, especially if you're a C developer. Because we can use things like Blazor instead of using a different front end or a different framework so that we can reuse existing skills, which allows us to have deeper skills right away in our front-end framework of choice. So learn more about that and how to go deeper and kind of practice that as well. So we're gonna do a practice as well where we have a challenge. We're gonna say, hey, if you think this is for you, here, try this out, build something with just a front end. I'll give you a challenge on Tuesday, and then on Friday, I'll show you how I did it. And we'll do the same thing the next week with back-end development and the following week with full stack development. So those are coming up, but this has been front-end development. I hope it gives you a good kind of overview of what it is, but we're gonna try and get our hands dirty a little bit in just one part of front-end development to see if this might be something that you're interested in or interested in learning more about. All right, so until then, thanks for listening. And as always, I am Tim Corey.
SPEAKER_01Thank 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.