What You Need to Know for Your Coding Career

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
it's 2011. i just watched the social network on dvd and i was amazed i was amazed at what one man can build in the comfort of his own dorm room with nothing more than a laptop a beer an internet connection and an idea an idea that can change the world yes you're right it looks really good it's clean and simple [Music] the site's live and as a bright-eyed young man i decided this this is what i wanted to do in my life i wanted to create things that no one else could create something that unless you actually know what you're doing you can't do it but how how do i learn to code what do i learn how do i get a coding job and how can i continue to learn to be the best programmer that i can be now the year is 2021 you're in that same position just trying to figure out all the answers to what you need to know for your coding career and i'm here to answer that for you [Music] now before we get started i want to talk about my start in tech this is a really positive and just all-around inspiring campaign put together by tech domains code.org and namecheap i remember when i was younger even before watching the social network just how interested i was in computers i used to play wow and i felt on top of the world when i could successfully install some mods and customize my in-game ui and when i hacked my xbox live account to customize my avatar which ultimately got my xbox live account banned until december 31st year 9999 but we don't talk about that i even took keyboarding classes for fun anything that had to do with computers i wanted to know it and be the best at it like typing 100 words per minute as a 12 year old but when i watched the social network that was a defining moment that was the turning point that's what began my start in tech after that moment i tried to learn to code i tried then i failed i tried i failed and eventually i quit until i came back to it in around 2013-2014 but i had to be inspired by a movie and then do a bunch of confusing research to try to learn all this stuff which i ultimately quit until i was actually able to go to college which i wish wasn't the case today's sponsor it's much more than a sponsor it's dot tech and namecheap coming together to support the efforts of code.org of giving children access to computer science this is done through infrastructure and providing tools and training to their schools code.org has already helped millions of children gain access to computer science and tech domains and namecheap are helping by donating 100 100 percent of proceeds from the sales of when you go and purchase your tech domain to code.org to increase access to computer science education to children who otherwise wouldn't i really encourage you to learn more about the cause in order to do so just visit the link in the top of my description and if you decide you want to support them purchase your dot tech domain there and 100 of your proceeds will go towards this campaign thanks again to tech code.org and namecheap in doing this and including me allowing me to help shred the word and keep up the good work look i know i said i wanted to do more videos outside and i plan to but this isn't one of those videos i actually want to talk about what you need to know for your coding career and first you have to understand your coding career so let me lay it out for you there are three main stages to anyone's coding career learning how to code getting the job and then performing at that job and you'd think these would take the same skills right unfortunately that's not exactly the case when you're learning how to code you're learning syntax you're learning the basics of programming variables loops data types data structures algorithms and a lot more if you're going through a cs program and you'll even get into building your own projects some simple some may be complex but then when you move over to the getting a job portion you all of a sudden need to become an expert in data structures and algorithms you need to know off the top of your head exactly how to reverse a linked list and how to invert a binary tree that is when you interview for these big tech companies or any of these other tech companies that want to be like the big tech companies because they think they're better or something but that's really the only time you need to know any of that off the top of your head for 99 of you you will never use but maybe once every five years any of them and when you do use them you just need to go in your favorite search engine do research for about five minutes and you have your answer but that's not the only thing different when you're working as a professional developer you do need to take the majority of what you learned when you first started coding but unless you were just on your when you were learning there's a whole lot more to the job than what you learned when you first started you must have familiarity with and even become actually fairly proficient in git in coder views and agile or whatever methodology that your your team uses that entails you learning whatever version control system they use and whatever project management system they use which admittedly the latter isn't really that hard but there's a lot more than just that chances are when you were learning you didn't need cicd or use code analysis tools like sonarqube for tracking code quality and vulnerabilities and code smells some y'all may not even have used git and these these are a few things that i want to talk about today what you learn on the job as a software engineer soft skills hard skills and maybe potentially salary although i have made an entire video on developer salaries in particular cities and what the cost of living was in those cities and random numbers to determine exactly how much you make as a developer in those cities so maybe we won't be discussing that in this video but i do recommend checking out that video after this one to give you a better picture of what to expect let's start off with the soft skills these are the skills that fit you into the workplace environment through communication and empathy and patience words that people throw around so much that you just roll your eyes when you hear them because they just define them for you and don't give you any practical use like their dictionary or something so let me break it all down for y'all in a practical manner communication when you're on the job and you're stuck on a coding problem ask explain how you're stuck how you've tried to solve the problem and if they have any recommendation as how to approach the problem when you and your team are loading up the next sprint full of tasks and you don't know what a particular task means ask there is a description section in the task for a reason so make sure y'all fill that out with more information so anyone who takes that task on understands exactly what is being asked of them and communication is two-sided if someone doesn't understand a problem or they're stuck on something make some time to help them and if someone doesn't understand a task but you do then make sure you elaborate and make sure that you are providing all the information for that task so whoever gets it understands it and not only that ensure that whoever you're explaining it to understands how you're explaining it to them you have to understand that you're a team and you're only as good as the worst person on your team so not only are you helping them but it'll benefit you and your whole entire dev team in order to help others come up teach them what you wanted other people to teach you when you were new empathy or putting yourself in the other person's shoes i'm not going to talk about people's feelings i'm going to say it like this when you're working on a particular task a feature something like that put yourself in the end user's shoes if you were using this application how do you want this feature to function and then build it that way or the more traditional route of empathy is uh to be compassionate the ultimate answer to anything that the majority of these soft skills is just be a good human being everything else in terms of soft skills can just be categorized as that just be a good human being that's really all i'm going to touch on with soft skills because in all honesty i don't i don't like talking about soft skills everyone has their own individual personality and i feel like they should embrace that personality but in a way that is adaptable to other people as well because you're not the only person in the room but you also shouldn't need to change yourself to fit the mold of what everyone else wants you to be but allow me to reiterate that also doesn't mean you should be an the hard skills obviously the programming languages frameworks tools and other technology and knowledge that you use to get the job you need to know that stuff you have the foundational layer of understanding what is going on here but of course as you code and as you go months and months and years and years into your career the more you use them the better you'll get and that will only come in time and practice but one that people tend to neglect are the ides and text editors you have to understand that these are made with features and provide extensions to make your job a whole lot easier when you started a new job a new team i would recommend asking around get recommendations on what ide they use what features and extensions they use what formatting they use now to be frank this should all be streamlined during your onboarding process but that's not always the case and you also have different options if you're a java developer you should have the option to use eclipse or intellij as long as you have the same formatting across the board you should be good so obviously ask if this isn't streamlined but even if it is ask around to the other developers on your team and see what extensions they use because there may be some things that are not mandatory for you to install during that streamlining process but there may be tools and extensions that your team does use or at least some members of your team to improve their coding experience so asking your team what they use what tools they use to build the project in which you are now working on it sounds like a good idea now let's talk about a few things that you may or may not know about but things that you will definitely need to know in your career first thing version control most of the time it'll be git this is not github this is not git lab git is a version control system that allows you to keep track of your source code history github get lab bitbucket these are companies that are providing git as a service basically they're just allowing you to store your git repositories on their servers and providing you with some fancy tools to make that easier so if i wanted i could set up my own git server on this nas server i have right here and i'd be good i don't i wouldn't need github or gitlab or anything like that just like i could host my own website on my own server but most the time people will use other services that provide web hosting for their websites and web apps like hostinger or lenode that way you can run and store everything on their servers but using any of those like github for example you will learn git in learning git you'll be able to transfer that knowledge over to whatever version control system that your company uses so version controller get learn it it's kind of a staple as a software developer and if you don't learn it now you're going to have to learn it as a professional software engineer anyway so might as well learn it now it is fairly simple especially once you get rolling and you'll be able to build a github portfolio as a byproduct project management kind of annoying i've actually completely changed stances on this for an independent developer like working on your own projects so project management software that is popular among developers is jira maybe trello maybe asana maybe people use monday.com i don't know it allows you to organize your project in an easy way for your team to work on the same project at the same time and effectively track it and there are different methodologies to doing this like agile or waterfall or whatever else people use but that's the overall idea i used to say use it for your own projects but i don't even use it for my own projects i mean do what y'all want but in my opinion don't bother using it for your own projects unless you're using it specifically to learn about it because it makes it feel more like a job and less fun maybe i'll have a backlog of tasks that i need to do but i won't throw it into sprints i like to just sit down with the problem in mind and get to work i want to enjoy the process tangent if i want and not worry about deadlines so it is worth understanding these methodologies like agile or the waterfall method or whatever other ways the developers work on a big project because you will need to use it in a professional setting but whether or not you use it on personal projects is completely up to you and i don't think it'll hinder you one way or another because it's not that complicated to learn it's not like you have to continually do it to make sure your skills are up to par it's something you can learn in an hour and be able to use it but again you will use it cicd another skill you will use but you may not use in your personal projects but unlike project management software i do see it being beneficial to use in your own personal projects i think this is a good skill to have in your arsenal before you get on the job so some ci cd tools are jenkins circle ci github actions and it stands for continuous integration and continuous delivery or deployment it's a pipeline something at your job you probably won't have to build but you'll definitely need to understand this is how it works when you start a new task you create a branch for that task then you code it up and you push your code up to that branch this is when continuous integration occurs it tests and builds your code against the current code base to make sure that everything is passing and that it doesn't break any of the existing code if it does fail it'll notify you you have to fix it you have to push it again hope that it pushes and merges then once you complete the entire task you want to merge that over into your development branch and this is when continuous delivery comes in it does the same exact thing it tests the code and builds the code against the current code base in the development branch and makes sure that everything passes and if it does it merges it and then once you're ready to update your production application you merge your development branch into your production branch and this is where continuous deployment comes in because you're deploying it it does the same exact thing it builds and tests your code against the current code base to make sure nothing breaks and then it deploys it into production all of this is automated except for the view manual of like hey i want to merge this now i want to push this now but then the building and the testing and the deploying all of that is is automated but don't get too caught up on this too early on wait to learn this once you have a decent understanding of coding and git at that point you'll probably be building your own projects and then you'll be able to integrate the cicd into your own projects as you add new features and you want to run that through the ci cd to learn it or if you actually deploy your own application then this is a good pipeline to have code analysis tools these tools identify bugs vulnerabilities code smells it rates your code quality it evaluates technical debt the whole nine yards you should be using this as a professional and if you're not then you should probably recommend it to your team an example would be something like sonarcube there are others out there but what i have used is sonarcube you connect your project to it and it evaluates your entire code base for all of this different information to effectively rate the code quality and guide you in the right direction into how to basically improve your score it's actually a really fun tool to use and it's kind of like you're playing a video game when your job for the whole entire day is to just go on sonar cube and improve those numbers improve the code quality by decreasing this the code smells and the vulnerabilities by eliminating those or refactoring some code but that's a whole thing that you have to set up with your project it's not too hard but i would recommend just taking baby steps in that direction by installing some sort of linter in your ide or text editor the one that is akin to sonar cube is sonar lint but there are plenty of other linters i don't really care which one you use it's the same idea but it catches the bugs and the vulnerabilities and some of that dirty code as you're coding so you can change it right then don't be overwhelmed with everything i just said don't go and try to learn everything all at once either i just want you to be prepared for the aspects of software engineering that aren't as well known to new programmers like what programming language or tech stack you use just integrate a few of these aspects as you go maybe install the linter today and see how that works with you and then the next time make sure you understand git if you haven't understood git yet and then if you're a little bit more advanced throw in a ci cd pipeline into one of your applications whether it's deploying or not see what you like see what you don't like and do what's fun for you that's what you need to focus on because at the end of the day you're always going to learn more if you're having fun while doing it so take it in stride enjoy the process and always be coding that was a bit of a new outro if there's anything i forgot to mention in this video whether it be about coding or computer science or getting a job or working the job i've probably made a video on it in the past so just check my backlog of videos and i hope they help [Music]
Info
Channel: ForrestKnight
Views: 335,836
Rating: undefined out of 5
Keywords: coding career, how to learn code, how to be a software engineer, software engineer, dev, software developer, computer science, forrestknight, coding, programming
Id: 5FySFg78cQI
Channel Id: undefined
Length: 16min 30sec (990 seconds)
Published: Mon May 24 2021
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.