No-Nonsense Backend Engineering Roadmap

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
[Music] backend engineering it's the tech Wizardry that powers websites and apps handling data user interactions and keeping things running smoothly behind the scenes think of it as the engine of the digital world making everything tick it's a lot more than just learning a coding language though that's why in this video I'm going to walk you through this clear-cut guide to everything you actually need to learn to get hired as a back-end engineer feel free to skip over sections you already know by clicking the timestamps in the description backend engineers build a functionality that powers all software let's use YouTube as a simple example throughout the video when you go to your account you see your name photo number of subscribers videos and much more front-end engineers build the UI that you see but backend Engineers store and update the data you see when a new user subscribes to you backend Engineers update your data so you see your subscriber count increased in real time it can get much more complex than this though every user on YouTube has their own set of recommended videos backend engineers build the recommendation algorithms that identify what videos to show to each user they also build the systems that display which ads to show how to manage payments for YouTubers how to optimize video quality and so much more if you're interested in creating this kind of functionality that PO software backend engineering is likely right for you if you've never coded before you need to learn the basics of coding there are hundreds of coding languages so where should you start you may see people recommend python including myself in this video just over a year ago but in my opinion today python is not great for beginners because it oversimplifies too many important aspects of coding that you need to learn for long-term success I recommend beginners start with Java Java is one of the most used languages is easy to learn and in my opinion provides the best base to learn other languages the other language you can start with is goang it's a simple language as well and very easy to pick up and unlike Java which is more established in the industry goang is the fastest growing language for backend engineering as of 2024 if you're at this stage you might be wondering where do I even start to learn these coding fundamentals luckily course careers the sponsor of this video has a completely free coding fundamentals course you can take to learn everything you need to know before diving deeper into backend engineering and what's more is that if you like this free course they actually offer an additional backend engineering course which you can purchase with a discount of $50 by using my link in the description click the links in the description to try out the free software development fundamentals introduction course and get $50 off the backend development course now that you've covered the coding fundamentals it's time to move on to what takes up the majority of a backend engineer's time API development apis short for application programming interfaces are bridges that connect different software programs this concept is often over complicated but is really quite simple to understand everything stored in software is data and apis allow for different software to communicate data to one another for example YouTube has a public API that allows for accessing certain user data you could build a program that would get the realtime subscriber count of the top 100 YouTubers in your country you're just getting data that YouTube is making public through their API apis serve two main purposes for software allowing other software to work with their data and allowing their own backend and front end to communicate on YouTube the front end displays my subscriber count as nearly 21,000 what it's actually doing is calling the backend API and saying hey can you send me the subscriber count for code Bagel so I can show it to the user backend engineers build the apis specifying what data should be sent what format it should be sent in who should interact with it and more this is the most common thing a backend engineer does on a day-to-day basis so you should really get familiar with it apis work with data but what is data actually and how do we store it data is everything to software data is simply all the information the software has YouTube has basic data for users like their usernames sub subscriber counts liked videos and more but they also have complex data like their video preferences their ad viewing Tendencies things like that that are harder to quantify all of this information is what allows YouTube to make decisions on what videos to show you and what information to display to you we just talked about how this data is communicated in the API section but how is it stored all data is stored in databases databases contain models for important things we care about and these models have attributes that have information on these things a user model might have attributes like username subscriber count and more and a video model might have attributes like category and view count but a company like YouTube has millions of users what if we only want insights on users with over 1 million subscribers this is where a unique coding language called SQL comes into play SQL allows us to manipulate the data in all sorts of ways based on a model's attributes such as filtering by conditions sorting by alphabetical or numerical order things like that most backend Engineers do not learn how to work with SQL or databases even though data is the primary resource you work with if you learn it you'll be invaluable to any [Music] company once you have some data and an API to communicate it you'll want to move on to debugging and testing it you start it up run the program and uhoh the result isn't what you expected this is where debugging is necessary you need to learn how to look through your code and identify where there might be problems here's a nice three-step approach to debugging first start by trying to reproduce the problem so you know exactly where it's going wrong second add in some print or log statements to get more insight into what code is running and what it's actually doing and third once you find the bug and fix it run it again to see what works this this is a basic approach to debugging but it is harder than it sounds debugging is complicated and requires a lot of practice but this three-step approach is a good place to start now that you've debugged everything looks like it's working so you publish your code and move on with your day Weeks Later another engineer comes and makes changes to a related part of the code base they test their own changes and they work fine but when they publish their code your previous changes now stop working this is because while they tested their own changes they didn't think to retest if these changes would affect your code that's why testing is important testing is not just about manually testing the code you change it's about writing tests in the code that automatically run to make sure everything is always working as intended even when people change code in the future there are three main kinds of tests unit tests test individual portions of the code for YouTube this might be a test that test a function that calculates the total number of views integration tests test how different components interact with one another for YouTube this might be testing if the comment component receives the right user information when a comment is made functional tests test the functionality of the software from a user's perspective for YouTube this might be a test that simulates a video upload by simulating user interactions writing tests can be boring because it doesn't actually feel like you're building anything but this is essential for building a scalable system which is what we'll talk about right now up to now you should have all the fundamentals of backend engineering you can create apis to communicate data you can work with databases and you can debug and test changes you make now you've got a grip on things and it's time to grow as an engineer you need to learn how to design better systems system design is the process of creating a blueprint for software kind of like an architect design to building it involves determining the structure components and interactions of the system to meet specific requirements such as scalability reliability and performance for example YouTube users visit their own account Pages very frequently all of this info is provided to the user from YouTube's main servers but if this info isn't changing that frequently doesn't it feel redundant to always ask YouTube's main servers for this information that's why part of YouTube YouTube system design is using something called caches which are local servers nearby to users that store their info on the first load this way the info is fetched from the main servers once and then after that is fetched from the nearby local server to avoid sending lots of requests to the main servers this is just one simple example of a way you can optimize a system through system design knowing how to build stuff is the easy part of the job it's knowing what to build that's challenging system design is a very complex topic that most Engineers spend a lifetime learning and in the future I'll create videos dedicated solely to this topic thanks so much for watching this video If you like this video and want to see more content like it make sure you subscribe and hit the notification Bell and if you decided backend engineering isn't for you stay tuned because next Monday I'll be posting a road map just like this but for frontend engineers see you all in the next video [Music]
Info
Channel: Codebagel
Views: 176,631
Rating: undefined out of 5
Keywords: coding, programming, codebagel, compsci, computer science, comp sci, swe, software, engineer, engineering
Id: 4UgbU0nzprg
Channel Id: undefined
Length: 10min 16sec (616 seconds)
Published: Tue Apr 30 2024
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.