How to Become a Full Stack Developer | Full Stack Developer Roadmap 2021

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
all right so in this video we'll be discussing about the clear and complete road map to becoming a full stack developer in 2021 and beyond let's go so before getting into the technologies you need to learn as a developer to become a full stack dev let's see what a full stack developer actually is so very broadly speaking a full stack developer is a person who is able to deploy applications end to end that means you are able to create front end you are able to create back end you are also able to create some sort of database depends i mean in today's world there are so many ways to create a database but you're also able to create a database and deploy this application online that means you are able to share your application with other people so they can use it or chase it buy it sign up for it do whatever they want if you're able to do this and you understand a lot of parts along the way then you are a full stack developer or if you even know the technologies responsible in the way then you're a full stack developer so simply speaking a full stack developer is a front-end developer plus back-end developer plus a little bit of devops guy who knows that what needs to be done in order to deploy a website on a live server now the server could be anything it could be aws it could be any cloud provider it could be worsel it could be nettlify anything but you need to understand basics of how internet is working how your website is deployed and so on now the second question is why do you want to become a full stack developer in today's time well there are a lot of good reasons to stick to first of all full stack developer actually means freedom what do you mean by that let's say even if you are working as a developer job and you're a front-end developer you will not be able to create your own projects your own site projects deploy them share with other people if you do not understand basics of back-end and deployment almost any good project will require some sort of understanding of back-end and of course deploying something so if you're a front-end developer or even if you're a back-end developer who has not touched html or css anytime soon then you will be facing some problems if you want to work on your own projects which need a ui interface so full stack developer means that you are free to create an experiment with technologies you like and i'm assuming that you like programming here so this gives you freedom that means even if you're a front-end or a back-end dev it almost always is a good decision to actually enhance your knowledge and become a full-stack developer in today's time of course the benefit of job and internship is always there so if you enhance your skill sets in full stack development you enhance your probability of getting a raise getting a better job and so on so it's a win-win for everyone and it's not that hard i mean you just have to follow a sort of structure in your learning and you have to be clear on what you're doing and that that will be all all right so let's now discuss how do you become a full stack developer what are the technologies you need to know i'm assuming that you are somebody who knows absolutely nothing because this keeps us in line with people who actually do know nothing so maybe you can just pick up wherever from the point you know something right so the first thing you need to learn is about internet fundamentals and everybody is excited about jumping directly to html and css and even react these days and any other you know for the framework but what i believe is if you're starting off or even if you're a little bit into your journey you should take a pause and actually figure out what you are even doing i mean you're learning web development but do you even know how web works at a broader scale i mean you should know what technology you're actually working with fundamentally what are the components what is dns how ip addresses look like what are port numbers because you will face these things eventually when you are a back-end developer and even more so when you are you know a devops guy or some somebody who is deploying servers but if you have a little bit of understanding this will also help you in front end because as front-end developers you will also be debugging the network requesting network queries it really really helps if you are aware about what internet fundamentals are how internet actually works and just getting your basics right of course the next thing i would say is to start with html and css now here are two routes where you can you know go the first route is you actually start with front-end development and the second one is from back-end development i believe you should start with front-end because you get a lot of output really quick that means you're writing hello world in html refresh you're done similarly if you're trying to do it you know on a backend language like python first of all there's a confusion on what language you should pick python node.js ruby so many languages to pick from but front end fortunately or unfortunately just restricts you to three languages when you start that is html css in javascript so start there start with html css javascript it's relatively simple it's relatively easy and you would be able to get up and running in no time now especially in the field of web development i like to say that you have to learn technologies in a multi-pass way that means you cannot just learn html once and be done with it you would have to eventually revisit some parts of html some parts of css again and again when you are on javascript or when you're on react or when you are on some other technology and that's fine but make sure you're not stuck in the loop of learning something to the finish because that's not gonna happen especially if you're a beginner i learn a lot of javascript things a lot of new things in javascript all the time that does not mean that i'm not able to work with javascript on production projects or you know any serious projects so you don't need a hundred percent knowledge in the topic so don't aim for that that you're learning about every single nit and grit about a language or a framework you just need the basic core understanding of the technology which you're learning so make sure you understand this one this is super important because people get stuck with 10 more courses or something or 15 more courses of something else but that's really not required because you will eventually learn that over time when you are learning different things different new things once you've figured out how you can work with html and css i would say the next good step is to jump directly to javascript nothing else no react nothing fancy yet no css frameworks yet just stick to basics html css and javascript javascript would allow you to actually add interactivity to your element so the first time you will be learning about javascript you will most likely learn about syntax obviously and then in the front-end context you will be learning about event listeners how you can make a button interactive when you click on that what happens and stuff like this so this is again super important because these are fundamental building blocks i mean you won't be necessarily using all this information in all your projects but this is fundamentally important stuff which you will be learning in the javascript fundamentals area all right so once you're familiar with basics of javascript i would recommend taking a step back again and pausing for some time and learning about chrome dev tools or firefox tech tools whatever works for you these devtools will be extremely helpful for you to debug your programs because at this point you are at a stage where you can develop minimal functional programs right you can build small games like i still remember my first game was rock paper scissor which was just pure html css javascript with a little bit of jquery but i won't recommend jquery in today's time but yeah you can develop a lot of simple games at this point you'll face a lot of errors along the way when you're building such projects i would make sure to stop and make sure you understand the chrome dev tools area how the elements tab work how the console tab works how the network tabs work a little bit and then move forward because this will give you more clarity on how to get unstuck the major roadblock which you will have today or you know the time when you're learning this is you will get stuck and the fastest way to get unstuck is to actually have proper debugging skills and chrome devtools is an awesome tool built for web developers so yeah make sure you understand that all right let's quickly revise what we have learned so far html css javascript and chrome devtools these things allow you to build a fully functional application now you know you can build some small games something which you can show to the world but how do you show this to world well the first thing is you need to put your code online right because when your code is online on some host then only you can deploy it right and get a live url and something like that so the first thing you need to do is you need to learn about version control system like git for example and use git to push it to a public site like github so what github would allow you to do is at least for now it will allow you to share a link to your code not the website but to the code so that's step number one and then you can use github and link it with other providers like github pages or warsaw for example or netlify to deploy it directly on a live url and i mean the free tier of all of these websites is very generous so you would never run out of um you know credits or anything and you don't have to pay anything to anyone for hosting the github pages versailles netlify anything you can find which is free should be good enough to start now when you're deploying it on github with kit and you're pushing it to sites like warsaw or netlify you will see that you are using a tool over and over again called npm or yarn so these are package managers built for node which actually works for front-end as well so you can install front-end packages as well even if you have not used it yet npm or yarn is a super important tool to have in your bucket that is you should know about how to install packages how to remove packages what in fact is a package.json file because all of this information would be extremely relevant in just the next course which is react right so this will be super helpful if you understand how dependencies are managed in the web development world why because a lot of times you will never be creating a lot of things from scratch you will be making use of open source which is the work of other people which they have made publicly available and just directly installing those packages so you need to make sure that you understand how the installation how the removal process works how the dependencies are managed what are lock files things like these so this is also super important so make sure your next step is about learning these things so so far we have covered html css javascript devtools version control system like git and the npm and yarn package the next thing is to learn a framework because now you have basic understanding of how to build a small simple application push it and get a live public url now it's time to make it more sophisticated more feature rich and soon you will realize that a framework would be much better in terms of handling state and a lot of logic and re-rendering compared to doing it yourself through plain javascript now this is the area where front-end starts diverging a little bit that you now have options to choose different technologies now you can go ahead and choose angular view swelt react a lot of frameworks are there but my personal recommendation from my experience as well as the current trends is react so react is a super popular as well as simple to start library it's not a framework because it does not ship with a lot of opinionated things so it's basically giving you a lot of power to do anything you want but react is super simple it's super popular but like i said react does not ship with opinionated things that means you can get confused real quick on how to exactly solve a particular problem for example let's take the example of network requests there is no fixed way of doing this in react should you do a network request with a use effect hook and a fetch or an axios or should you have another library created on your own so there's a lot of confusion in few parts in react one of them is of course network requesting for this we need to stick to certain libraries which are now the standard more or less so the standard for this i would say is react query there are a bunch of libraries like use swr or even a polographql client but if you are doing anything which involves just simple api endpoints i believe going ahead and using a react query framework or the react query library would make much more sense so adding these two three four more tools alongside react will make you super powerful because now you have a complete text stack to build a lot of medium to large scale applications as well and this used to be a long list but now this has actually turned out to be quite a few items first of all you need some ui library which i do recommend either material ui or tailwind or both so you're covered there second i recommend react query like i said for making network request so that makes it extremely convenient and third i recommend internally digging into react features and understanding how things like context for example works and how things like single turns work and how architecturing or react application works because once you understand these two three things as well you will be extremely powerful with react so once you have your tech stack done with react means you have some solid tools with you which are react based and powers that framework i would say the next thing is learn a little bit about testing now this might be something you might skip it's completely fine at this point but if you do get time i would inject the testing part right here now what does this testing mean this testing only means at least what i feel right now is just learn about end-to-end testing with cyprus cyprus is an extremely fun tool when you download it you will be able to see once you are able to set it up and run scripts you will see a lot of automation happening so it's kind of like you know just having a robot say go to this website click on this button you know this drop down will happen just assert if this exists or not things like these very fun stuff and very easy as well plus a little bit of testing will go a long way when you are working on some medium or large-scale applications which especially happens when you're doing a job right now you have learned about html css javascript react and the associated ecosystem it's time to learn a little bit about backend and then devops as well so how do you get into back-end web development again you would be eager to start with a language or something but what i recommend is start with linux fundamentals first of all if you have windows download wsl if you cannot just switch to linux somehow because you need a terminal you need a bash prompt you need a terminal to play with as a developer you will make your life extremely hard if you shy away from terminal because you will be needing terminal a lot in the devops space when you're working with servers when you're deploying something when you're doing something so you need that so the first thing is learn about linux fundamentals what is bash what are shells how to do simple shell scripting how to browse a file system in linux what are permissions a little bit because you will get stuck with this as well eventually when you are deploying it on an ec2 or something what are like sudos common commands in linux and understand a few things overall things not to go deep into memory and c groups and stuff like this but just stick to minimum basics you should be comfortable when you're given a linux system just using command line once you do that it's time to pick up a language a programming language which can run on servers fortunately you already have learned about javascript and javascript comes as node.js on the end that means you can use a lot of your learnings from javascript and write http servers and back-ends and complete back-ends with a technology like node.js which basically is just javascript so again this is a point where technologies diverge a little you can pick python you can pick xyz something else but i do recommend sticking to javascript and sticking to node.js because it's just less cognitive overhead because if you pick up another language and you are working on a full stack project you will actually be context switching between a couple of languages which kind of becomes tiresome i have worked with php and javascript in the past which some people might say is the worst combination ever php on backend javascript on front end i have worked with python and javascript as well but i feel that node.js and javascript is the smoothest combination ever because you are basically just jumping into the same language so you don't have to context switch all the ways the variables are defined the functions are written and so on so node.js makes a lot of sense if you want to go the full stack route your node.js learning would be much faster than your javascript learnings thanks to your prior javascript experience but there's still a lot more to learn in node.js which i hope you will keep on learning as you proceed but your fundamental basic understandings of creating http servers what are actually servers this will your first course the internet fundamentals here would help you a lot what are servers what are ports how these things work just learn about these things how you can do some os level things with node.js file creation file deletion how do you write to files things like these a little bit about buffers and how these things are implemented and a bunch of things about operating systems as well right so this will be a solid start to your backend programming all right the next step once you enter into backend is to learn about a database which is again super important choice because you have two choices here primarily the first one is a sequel database and the second one is nosql database i personally like mongodb the nosql database but i would however recommend you guys to start with a sql database because sql databases have the traditional columns and row format and they are basically very strong in terms of the acid properties and you know the support as well the community around it as well sure it's strong for as well but i would say high volume startups which have a lot of database operations you will see the databases running in production are sql nosql database are more common with the analytics part and where the data is unstructured for example just big data or analyzing huge chunks of data and you just have to throw it in a database that is where nosql plays in but yeah i mean this is no rule there is no such thing as you cannot use one another so feel free to start with any database you like my opinion however is to start with a sequel database like mysql and get into the idea of databases what they are how they work why they are even needed stuff like this once you figure that out you can also explore mongodb and other nosql options and then decide which one you like the most at this point it will also be important to invest some time in learning about web security and web fundamentals because now you are interacting with databases and especially with sql databases there is a very infamous attack called sequel injection which happens a lot of times if you are constructing the queries and things yourself so sequel injection is one of the actual serious things wrong with the web which happened especially with people constructing developers constructing their own queries they don't want to do this plus there are all these other attacks cross-site scripting cross-site request forgery all these attacks you should be a little bit aware about because you don't want to ship applications which are vulnerable to production to masses so having this understanding a bit is super critical as well at this point again because you have almost all the knowledge i would say spend a little bit more time with ci cd that is continuation integration and deployment and you would have done a lot of work with it already i mean whenever you're deploying your front-end projects as well till some extent you would have worked with it but at this point i would say just take a very small course or something on things like github action for example and how do you write a proper ci cd process cicd pipeline how do you write test and how do you integrate it into a single pipeline because now you want your pipelines to fail if your test fails and pass and auto deploy if your test passes so learning a little bit about ci cd at this point will be super helpful as well once you do that try to learn a bit about caching how do you cache data on systems now the most popular way is through using in-memory database like redis for example so learn about redis and how you can cache your database queries and in general how the key value database system in redis works and why caching is important so caching is a super important topic not only just web development but in computer science in general and you should pick it up once you're covered with fundamentals of database a backend programming language and ci cd and you're able to deploy it to live website at this point i would also say dive a little bit deep into one of the many cloud providers whether it's digitalocean whether it's aws whether it's google cloud just pick one and try to explore all their services the most common being the compute service that is the service which gives you some sort of virtual server for example on amazon it's ec2 on digitalocean it's droplet so learn about these services how you can create a virtual server ssh into it deploy an application exit it and view it online start with this and explore more services especially in the serverless domain and manage services so serverless compute is lambda for example managed services is like s3 or dynamodb so learn about whatever you have learned so far whether it's database whether it's storage anything and then try to look for the managed versions of it managed variants of it on cloud because these managed variants would almost always be heavy production ready right so that means they would be able to take a lot more load than your simple code and yeah at this point you would be more than knowledgeable to decide what for the technology you want to learn and that was the point right at this point you are a full stack developer who can deploy end-to-end applications and who has the knowledge of what the next step should be and that was the point of this video code dam's full stack learning path includes this exact breakdown of whatever we discussed but in a more structured and obviously content-based way and in a very interactive learning way where you will be building multiple projects along the way working on real systems that is we will be giving you linux computers right inside your browser thanks to the cloud technology and you will be building a lot of interactive projects and completing a lot of exercises along this way super helpful especially in your early stages of both front end and back end and of course you can pick up any course you want once you complete your full stack learning path like i said it's up to you what you want to decide what you want to do once you are a full stack developer i would not say this is an easy journey this is a hard journey and it should be hard because the reward is really good if you are a full stack developer full stack developers and developers in general are some of the top paid people at the moment right now so if you want to be one if you want the independence of creating your own micro sas products or you know just creating small startups or even getting high-paying jobs this is i believe is a great way to start in a great investment of time and money both to do so yeah that is all for this video do check out the full stack learning path on codam you can find the link in the description we'll keep updating the learning path we keep updating it as well on a weekly basis adding more content renewing the previous content and adding more projects and interactivity to the existing curriculum and if you buy it you not only just support yourself but you also support us in order to create more such valuable content and publish it at a much lower price almost like a 100x lesser price compared to a typical offline bootcamp so yeah that's all for this video i hope you enjoyed it and if you did make sure you leave a like leave a comment on what you think was the best take away from this video what are going to be your next steps and that is all for this one i'll see you in the next video really soon [Music] you
Info
Channel: codedamn
Views: 128,135
Rating: undefined out of 5
Keywords: web development, Full Stack Developer Roadmap, full stack developer roadmap 2021, full stack developer roadmap, how to become a full stack web developer, web development roadmap, javascript, how to code, free web development resources, web development roadmap 2021, web dev 2021, web developer, web dev roadmap, web development tutorial for beginners, college students, web application development, mern stack, full stack developer guide 2021, how to learn to code 2021, codedamn
Id: IIDuE0dnXlo
Channel Id: undefined
Length: 23min 48sec (1428 seconds)
Published: Sun Aug 01 2021
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.