How I Would Learn To Code (If I Could Start Over)

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
how do i even get started with coding this was the most frequently asked question that i received coding is hard it doesn't make sense it's too confusing what's a code what's a compiler how do i build an app what's front end what's back end which language do i start with why is there a language called java in python and what the heck is up with moon all jokes aside learning how to code can be really intimidating in fact when i first learned how to code i felt like quitting almost every other day without the proper guidance and motivation learning how to code can feel like an uphill battle with yourself that's why i decided to break down the process to make your journey towards programming a whole lot easier so what is coding it's such a buzzword nowadays that we don't always have an accurate representation of what a programmer even does hollywood portrays us as spending most of our days tucked into a dark basement eating chips in an oversized hoodie and dm'ing memes to our co-workers for the majority of the work day okay well maybe hollywood got some of that right anyways in order to learn how to start coding we need to understand what coding is and how it fits into the bigger picture coding is just our way of instructing the computer or applications within the computer what to do usually these applications are used to add update or grab and manipulate information from the internet a vast network of other computers these applications can be something small such as tracking the food we eat each day and displaying the weather to helping entire rooms of servers cooperate with each other to launch a rocket or even compute large amounts of data in order to find patterns of benign and malignant tumors in cancer patients another thing to understand is that coding is similar to speaking a certain dialect of a language for example computers operate in ones and zeros binary code but it would be torture for us to only code in infinite variations of ones and zeros so instead we use a more human-like language to get our point across these are called high-level languages and no the computer doesn't actually understand these high-level languages but the compiler does you can think of a compiler as the translator between your code and the computer's understanding of the code when you code in python it eventually gets compiled or translated down to binary code so that the computer can understand what's happening so now that we have a basic understanding of why we code let's jump into how to actually start coding it can be overwhelming to decide which language to pick and despite many people's advice on the internet i would not start with just any language there are caveats to each language and while each gives you an opportunity to learn how to problem solve they're different nonetheless if you want to start off with back-end development or server-side programming i would start with high-level languages such as kotlin java or python java and kotlin are very similar and both utilize the jbm the java virtual machine and also include elements of object oriented and functional programming now if you don't know what object-oriented or functional programming is i would also take a step back and do some googling in order to understand what that even means if you're looking at creating pretty uis understanding both the language and the framework can be really important in this case many frameworks provide the outline for where to structure your code and also gives you more organization when developing web applications taking an online course on pluralsight or udemy on javascript or typescript would be the way to start here after you feel like you've started to master one of those i would look at trying to learn the functionalities of react and further node.js for server-side development and what about mobile app development if you want to create android apps i would look into using java with android studio if you want to try your hand at developing ios apps swift may be the better option and when i say try out these languages i mean actually take a structured course online there are plenty of free courses including harvard cs50 i'm a huge advocate for learning as you go but if you want to expedite your learning try to intermittently learn about concepts as well as actively trying your hand at a little bit of coding every day for example if you want to start out with kotlin you can get started with pluralsight's getting started with kotlin course welcome to my course getting started with kotlin kotlin is a new language for writing applications on the jvm it is a better java than java go through one lesson a day depending on how much free time you have but then make it a point to also spin up your ide and practice four and while loops switch statements exception handling and just the overall basic syntax after you've graduated from simple commands try doing an easy leak code problem in kotlin every day that'll also give you more exposure to data structures and algorithms which segwaying into data structures and algorithms you can start by learning how to use arrays hash maps lists and then learning the time and space complexity of storing and sorting data these are important to know because as you start to work with larger amounts of information dealing with bottlenecks in the system and just strategizing for the optimal time complexity to receive and update information you'll have to think of creative ways to create programs that allow the cpu to efficiently process that information these concepts are also needed for most interviews if you want to try your hand at more complex data structures and algorithms feel free to take a stab at trees graphs 2d arrays recursion and dynamic programming these are more advanced topics though so don't feel disheartened if you don't get it on your first or second try or even hundredth try like me the movement of data is also really important when understanding how to code after all without manipulating or sharing information your code wouldn't really be useful when we build apps we usually send requests or stream data to our applications whether it's a user clicking on the checkout button at an online store or the website displaying prices for products we're constantly moving and changing data back and forth between the client and the server there are several ways to do this but two important concepts to learn are http protocol and event driven messaging with http protocol i would spend time googling how we send requests and expect responses back and forth on the internet i would also try to understand the difference between get put post and delete in other words restful services not only that but it's important to understand what values are needed in a request to actually work for example other than the normal payload say a person's checkout items that they've selected a bearer token may be used to represent a user's session along with the scope client id of the application and content type make sure to read into what these things are oh and don't forget to actually send a request as well you can do this by downloading postman or insomnia and either running your app locally or trying to hit the endpoint there or you can even try hitting an existing api to see if you're able to get a response back it also helps to navigate to chrome pick your favorite website and right click to display the developer tools here you can switch between the network tab console and html elements of the page while clicking around on the website to see what's happening behind the scenes it helps to peruse through these tools to understand a what type of request and response are being sent back and forth b editing the html elements to see what you can change on the page in real time and see displaying any outputs that may show up in the console and let's not forget about event driven messaging i won't cover this too in depth but if http requests represent a poll for data as in any time we want information we need to interact with the client to ask the server for information then event driven messaging usually expects the server to push information to us whenever something happens for example if we're using a gps the server may be constantly pushing our location to us based on the satellite feed rather than the client or gps ui constantly polling or sending http requests to the server in order to ask where our location is at that time that wouldn't feel very real time if that were the case lastly understanding system design is crucial it's just a fancy way of describing the architecture of your application along with whatever interacts with it now i know this is a video about coding but there's no point in learning how to code if you don't learn the fundamentals of software engineering as well anyways when you think of the architecture of a house you may think of the blueprints of the interior and the exterior of a building there are bedrooms floors bathrooms a basement you can't just start hammering pieces of wood together or pouring cement without a plan likewise with coating you need a plan before you start executing the code you need to be able to understand again a more holistic perspective now instead of taking a view from outer space and understanding where the code fits into the internet we're going to take more of a bird's eye view and strategize the micro elements of a software system typically we need to know what our system is doing before designing it let's say we're creating a calendar people can schedule meetings with you and you can schedule meetings with them in order for this to work they need to be able to view your calendar to see if you have any available time slots and then update your calendar when they schedule a meeting with you and you need to be able to do the same this is the most basic functionality of our calendar app because we can assume that there will be more reads or attempts to view the calendar than there are updates or attempts to change values in a person's calendar we can design our system accordingly we may go with the cqrs model in this case and isolate the traffic of our reads and updates using two different instances of our server that way we can scale each instance up or down depending on how much traffic we get likewise we'll need to take into consideration the type of database and cloud storage we'll want to use based on how we decide to query the data if we need to cache any frequently queried values if a proxy is needed whether we need to add authentication and even if we need to use several apis to decouple our code again don't worry too much about the details yet i'm just listing things you'll eventually need to understand to become a better software engineer and thus a better programmer no matter where you start learning how to code taking a genuine interest in learning and developing skills outside of just programming will only help you become a better programmer sure the meet and bones is actually learning a language and implementing logic in an ide but the bulk of the learning happens when you put all the pieces together to make your code work for you [Music] you
Info
Channel: Pooja Dutt
Views: 83,720
Rating: undefined out of 5
Keywords: Software engineering, How to code, Learn to code, Mayuko, Women in tech, Microsoft, Amazon, Google, Learning Python, Learning Java, Software engineering salary, Work remote, Working remotely, Work from home 2022, software engineer, software developer, software engineering career, learnhowtocode, how to learn to code, learning to code, learn to code for beginners, python, how to learn programming, leetcode, recruiting, frying pan, nicholas t, pirate king, self taught programmer
Id: 5lTUhAX8o9s
Channel Id: undefined
Length: 11min 24sec (684 seconds)
Published: Wed Jul 06 2022
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.