Transcript for:
Computer Science Degree: A Reality Check

you just completed your four or fiveyear computer science degree you struggled through those difficult math classes you took all those useless electives and you spend tens if not hundreds of thousands of dollars to get this piece of paper that should mean that you're ready to go out into the workplace get a high-paying job and start an amazing career as a software developer right well actually that couldn't be further from the truth unfortunately a computer science degree today really doesn't prepare you for what you actually need to land job and I'm sorry to be the one telling you this but there's actually a lot of other things you need to do if you want to land a job as a software developer this video aims to be a reality check for a lot of you that are going through the degree right now or ones that are considering doing it sure it can be a useful asset but you have to combine it with a lot of other skills otherwise you're going to be very disappointed when you graduate the degree and there's not a lineup of companies waiting to hire you so with that said let's get into this video where I break down the truth about a computer science degree and what you actually need to do while you're in the degree or after you finish if you want to land a job let's begin with the unfortunate reality first of all most of what you're learning in a computer science degree you do not need to know and it's not going to help you land a job only about 25% of the curriculum that I learned during my computer science degree I actually needed to know for a job and I found useful later in life most of the things that you're learning you just don't need to know unless you're going into a very specialized role in which case you need the math you need the theory and maybe you need some of the other electives that you're forced to take but for 90% of you a lot of what you're doing really is a waste of your time and you're purely going through it to get this degree now beyond that having a computer science degree does not correlate to your ability to code I know many people that have a computer science degree that really can't write code to save their lives they are not good software developers and they're never going to land a software development jump some people just shouldn't be software developers and having a computer science degree or not isn't going to change that fact it takes a certain personality type and a certain work ethic to be able to land these type of positions and unfortunately some people just can't do this now a lot of companies actually realize this they know that having a computer science degree has a weak correlation to who makes a good software engineer that's why they're either dropping their computer science degree requirement or they're adding additional steps so they can actually screen people that would make good Engineers look at big companies like Google Microsoft Facebook Etc none of them require a degree and they have a strict interview process to get the best signals possible for who actually makes a good software developer lastly whether you have a degree or not most of what you actually need to know to land a job you'll learn outside of the degree this is just the reality when it comes to software development things are changing very quickly universities can't keep up with what you actually need to know every few years it's a new framework or language or a new requirement for certain jobs you universities can't roll that into the curriculum quick enough and that means you need to stay up to date you need to be learning constantly and you really need to put a lot of things into practice that you just don't get when you go through a computer science degree the reason I'm telling this to you is that a lot of people think getting this degree is just their magic gateway to a great career and a high-paying job unfortunately that couldn't be further from the truth and whether you have one or not most of the work you'll do that will help you land a position will be outside of that degree so keep that in mind and please please don't think after you get this piece of paper that you're ready and you're going to have a lineup of companies waiting to hire you because that's going to be a hard reality check so with all that said let me break down what you actually need to learn if you want to become a software developer so I'm going to give you a general list here of the main topics and skills companies are actually looking for especially in their junior hires now keep in mind that if you were to just focus on this it would take you significantly less time than going through a computer science degree and even though you don't have that requirement a lot of jobs will still hire you in fact most jobs that list a computer science degree as requirement will wave that if you exceed the expectations and I've had that happen to me and many other people I know for example we have a student going through my software development program with course careers he finished the entire program and landed a job in under 4 months before that he had very limited experience he did not have the computer science degree he was able to land a job in just a few weeks after getting out of the program and that's because he spent 10 hours per day studying these topics and actually learning exactly what he needed to know with the right guidance rather than going through this degree where he had to spend four years learning a bunch of useless things and then on top of that learn a lot more you can check that out from the link in the description if you want but it's just a case study to prove to you this is possible and although a lot of people will tell you you need a degree that's absolutely not true and I have countless examples of people that have done it without it regardless let's go through the list here of what you actually want to focus on and what you'll need to learn whether you're in the agree or not now the first thing that companies are really looking for is that you have the ability to build something on your own you're independent you can problem solve you can figure things out and you understand how to build something like a large application now this doesn't need to be Twitter or Facebook or something insane but you really should have a fundamental understanding of what the front end is what the back end is what an API is and how data flows throughout an application a lot of time companies will ask you to explain projects that you've worked on and this this is what they're looking for how you made different decisions how you architect the application and the fact that you figured these things out on your own and you were to able to build something completely from scratch as a software developer that's what you're doing most of the time figuring out problems making decisions deciding if you should go with this approach or that approach that's what companies will really be looking for the fact you can actually build something completely on your own now the next thing companies are really going to focus on is your problem solving and critical thinking they want to know that you're able to figure stuff out if you reach a problem and you don't know how to solve it you can persevere you can go and use various resources and you can eventually come up with the answer now that may end in you asking someone for help or debating a solution with a coworker or someone above you that's totally fine but they want to know you have that skill set which is something that's very difficult if not impossible to teach you they can teach you the best way to go about implementing something how to work in a new code base they can give you feedback on your code but they can't teach that inherent problem solving ability which is really what a good software engineer needs to have now beyond that another thing that a lot of companies are looking for is your ability and willingness to write clean and maintainable code while you're doing these kind of leak code style interview questions they'll be paying attention to the style in which you write code things like your variable names how you separate things out they want to make sure that even if you're not perfect at it right now it's something you're working on and that you'll do in their codebase because it's very very important next they're also going to want to make sure that you know about efficiency so that's why they'll ask you things like what is the time complexity of this algorithm why did you go with this Choice over that choice they want to make sure that you don't just write code to solve a problem but you write code as optimally as you possibly can you're thinking about various different solutions and you're making decisions and problem solving along the way as you can tell a lot of this really gets down to the core on your ability to critically think and to problem solve and to use the tools like programming languages and Frameworks that you have available to you to solve a problem another thing the companies will look for is your ability to work in a team and to work with Version Control software like GitHub do you know how to make a pull request do you know how to work with a repository have you done something like this before sure they can teach you and they can train you how to do it but it's an added bonus if you already know this and you know how to work in a team environment now I know that's a pretty General list but I'm just trying to get you to think about what an interviewer is thinking about when they're asking you questions now obviously beyond that depending on the role you're applying for there's going to be a long list of requirements of different tools Frameworks languages that you know and that you've worked with if you're going for something like a python development position maybe it's a web development role obviously you're going to need to know something like Jango you're going to have to be really comfortable with python and have a lot of experience with it if you're going for a frontend developer rule knowing something like react understanding things like JavaScript CSS HTML you get the idea there's specific requirements for specific roles but regardless of what you're applying for you need to have those core skills and again a lot of those skills are just not taught to you in a computer science degree and you need to go out of your way to develop them so with that said let's move into the next section here which is how you can actually be competitive when you're applying for these roles so I just gave you that kind of General framework of the things you'll need to know and what companies are looking for but beyond that you also want to specialize now what I mean by that is you need to make yourself stand out as a really good candidate for a particular role now this could be a backend developer position a front-end developer position this could be be for devops this could be for something like machine learning and AI it doesn't matter what type of role you're applying for but there's always a specialized set of skills that you'll need to know that will really make you stand out and push you that much further than the people that just came out of for example a computer science degree if we think of your standard computer science screw curriculum you maybe learn one or two programming languages you probably don't even work with a major framework like react view angular Etc and you really just know the basics of coding in like a vanilla programming langage language maybe you learned python maybe you learned Java maybe you did a little bit of C++ but you're not an expert in any of those languages you haven't really built that many applications with them and you haven't utilized major Frameworks now compare that to someone who went through a really specialized program where they learned everything about react they learned everything about front-end web development they know JavaScript they're a complete expert who do you think is going to stand out more for a front-end web developer position I think you know the answer it's pretty obvious so my next Point here is that if you want to stand out and you want to land these positions not only do you have to have everything I mentioned before but you need to know those specific Technologies tools languages Frameworks techniques whatever it is for the job position now what I recommend you do in order to learn those is first of all go and search for a bunch of different developer roles look at them see all of the requirements see the things that stand out in a lot of different job descriptions what's the main language people want you to know what's the primary framework you need to have experience with what type of projects they want you to have built before if you can do that you can give yourself a really solid guide of the things you should learn and you can really stand out and tick all of those different boxes for the job requirements so that's the idea learn all of those core skills get really good at problem solving building applications understanding software development as a whole and then specialize within the particular type of role you're looking for so that you actually stand out and you're competitive for that position moving on let's talk about credibility and actually proving this now of course it's great to go into an interview and say yes I'm the best software devel veler I built all these applications I know this this this language and this framework but anybody can do that what you really need to have now if you want to land these roles is credibility you need to prove yourself you need to demonstrate that you actually have these skills now how do you do that well the first way to actually do this is to speak with confidence when you're in the interview I know a lot of you are just coming out of a computer science degree you're feeling that impostor syndrome maybe you don't actually know everything you need to land a rooll you don't want to let that be known in the way that you're speaking and the way that you're presenting yourself and coming across one of the main advantages I've had in a lot of interviews that I've done especially when I was a lot younger and didn't have all of these skills is even though I didn't quite know everything I would always speak really confidently I had a lot of practice being on camera hearing myselft talk seeing how I moved my hands and my body language and I knew how to present myself in a way where no matter what I said it was really believable and it seemed like I actually really believed in myself that is a skill that will help you so much in every every area of life and really really comes across especially in an interview I hate to say fake it until you make it but you don't want to speak really softly and quietly and like you don't know what you're doing and you're nervous and you're not really sure and you're begging for a job you want to speak with authority like you know what you're talking about and you're confident that you are the best person for this job I know easier said than done but a really important thing that I think a lot of us should work on more and more now beyond that obviously you have to have some things to back this up people are going to ask you for evidence and that's why you need a really strong portfolio and you need to have actually built a lot of different projects now these projects can be anything but they should be fairly large and they should involve the different components I talked about before building a front end building an API building a back end understanding the data flow and showing someone hey I know how to build every single one of these components my specialty is in this specific area this is how I decided to build the project this is the decisions I made this is why I chose them and this is what the end result ended up being interviewers really like to ask you questions about the projects that you've built and if you can make really interesting ones that stand out a lot of times it's a really good discussion point and you can really walk through and demonstrate your knowledge and discuss at a high level how you architect a project I personally recommend having three really solid portfolio projects that you've worked on for a long time maybe a few weeks each and these are things that are really going to be a staple of your resume and really allow you to elaborate and prove yourself in an interview rather than having 25 rum projects that are just okay or decent I recommend spending your time on just a few of them really fine-tuning them making them really visual easy to understand and interesting and I guarantee you you're really going to see how much that helps you in an interview setting now beyond that presenting yourself well speaking with proper English having proper grammar spelling everything correctly on your resume having something well formatted showing up in a nice shirt looking clean these type of things are really going to help you out and it's unfortunate that a lot of these things aren't actually taught in a computer science degree or in University and so many people their entire life never actually learned these skills I can tell you as someone who's looked at hundreds of different applications interviewed a lot of people and have been doing this for a long time most software developers really suck in this area presenting themselves and having confidence they might be really really good at development but they don't know how to put that on paper they don't know how to demonstrate those skills unfortunately perception is a reality and if it looks like you suck in the eyes of an interviewer you do suck even if you are really really good so please focus on those things if you want some help with that I do have entire sections on that in my programming course with course careers now guys that's going to wrap up this video I just want to give all of you a little bit of a reality check kind of wake you up to what's happening and give you that extra push of motivation to go out there and learn these additional skills I know this was slightly vague but I want you to understand that a computer science degree is really not the end if anything it's just the beginning and there's so much more you need to do to land a job it's unfortunate I wish it wasn't this way but that's just how the industry is most of what you're learning is outside of that degree and you need to get that into your head as quickly as possible with that said I'll wrap it up here if you enjoyed make sure to leave a like subscribe to the channel and I will see you in the next one [Music]