Do You Need To Learn Data Structures & Algorithms As A Developer?
Key Takeaways
The video discusses the importance of learning data structures and algorithms as a developer, highlighting their role in whiteboarding interviews and software development, with a focus on systems design and efficient software writing.
Full Transcript
as a developer do you really need data structures and algorithms let's talk about it [Music] what's up everyone my name is james quick and i also run a youtube channel where i do weekly videos on web development topics but today i'm filling in on the traversing media channel to talk to you about data structures and algorithms now this is a topic that has gotten really hyped in the community developers are kind of questioning is this something i need is this something i'm going to want to have experience in in the future and specifically is this something i need to have an interview so that i can get a job i think that's a lot of people's biggest worry so there's a couple different perspectives on this and i think the answer changes depending on a few different things typical answer right it depends but i think it depends for some specific reasons that will be beneficial for you so we'll talk about do you need data structures and algorithms in your job interviews we'll talk about how to get better at them we'll talk about what it's like to use them on the job or not depending on if you actually need them and then we'll talk about how data structures and algorithms can actually benefit your career so a couple of different topics that we'll walk through now let's start with the early developer in mind let's say you're you went through a boot camp or you just graduated from college or uh you're self-taught or you're at an early stage of your career and now you're looking to interview for your first position or a new position the reality is although data structures and algorithms also kind of represented as whiteboarding interviews are common it's actually in my experience more common to have interviews that have no whiteboarding at all so i'll tell you a little bit about my experience coming out of college and getting my first job so i never had any white boarding interview coming out of college the most technical conversation i had was about object-oriented programming specifically with my background in java in college so class or questions about classes and interfaces that sort of thing but i never had to do an actual whiteboarding session now i also interviewed at microsoft one of the top tech companies in the world and i never had a whiteboarding interview what i did have was conversations about things i had built and being able to explain how the different pieces of these technologies fit together from my perspective as an interviewer when i am interviewing for some someone else that is actually the thing that i look for most for the things that you say you've worked on for the projects you have on your resume have you actually understood how you put all that stuff together or were you just copying pasting following tutorials et cetera so the way you talk about your projects is super super important and i think it's really good for people to know that data structures and algorithms and whiteboarding interviews are not a requirement to get a job there are tons of companies out there that hire without doing those types of interviews so i actually want to share a tweet from a friend of mine lawrence lockhart who talked about his thoughts on data structures and algorithms so you have a link to that tweet including a few other resources in the description below but one of the things that he linked to is a github repository of a ton of companies that hire without whiteboards you can scroll through this is a really really big list of companies that hire without having to do that sort of interview so there are tons of opportunities out there to get by and to successfully get a job in tech in programming without ever doing a whiteboarding interview so the caveat to that though is if you want to work at some of the top tech companies some of the fang companies something like google google is stereotypically known for their whiteboarding interviews and i've actually gone through this process twice so you may have heard about it before maybe you haven't but if you get to the final interview step you go in person typically i'm not sure what it's like now post covid but before covid you go in person to do a series of six to seven to eight different interviews over the course of of an entire day which is very intimidating and about six of those are actual whiteboarding sessions where you have the interviewer working there with you to work through a problem while you whiteboard and explain what you're working on now if you want to be successful at those and if you want to go and get a job specifically at google specifically at companies that do whiteboarding interviews you absolutely will need to know data structures and algorithms the good thing for you is one there again there's plenty of companies that don't require this sort of interview and you can also go out and do your research for what companies do or do not require those types of interviews by reaching out to people who work there reaching out to people at hr or talking to someone at hr after applying for a position so early on in your career you can kind of control what types of interview process you go through based on what you're interested in and i want to touch a little bit on what are the types of questions or what type of scenarios might you see in an interview if not a whiteboarding session well first you'll probably talk to hr about a fit for the culture and general requirements for the role and then you will probably have in-person or maybe now virtual interviews where you'll talk about previous experience again this is really important to me talking about things that are on your resume and being able to articulate what the pieces were and how they fit together showing your understanding of the stuff that you say you've worked on now you also have probably a series of behavioral questions these are uh pretty stereotypical tell me about a time when tell me about a time when you struggled with a teammate tell me about a time when you had to solve a difficult problem those sorts of things are extremely common and i think you should absolutely be well-versed in answering those types of questions now another thing that you can expect is potentially a take-home assignment now this is a little bit different than the whiteboarding interview because although you are solving a technical problem with code you get to take that home and you have x amount of days or however long to solve that problem where you also probably have the ability to google so it's not the live in front of people with all the pressure it's take it home and just show me that you have the ability to figure out which i think is much easier for people to manage than it is for people to whiteboard in front of interviewers and then recall all these data structures and algorithms off the top of their head now it's really interesting for me that the data structures and algorithms play such an important part in this whiteboarding interview because at the end of the day they're basically patterns that you'll want to be able to recognize if you really study data structures and algorithms you'll start to associate different algorithms different data structures with different problems so if you have that pattern recognition if you recognize those patterns you can go out there and be more successful this is actually very similar to how standardized tests work here in the united states with something like the act or the sat where you have a series of questions that change every year every test but there's a bunch of patterns in there that you can follow so if you are preparing for those types of interviews we'll have a link in the description below to a couple of additional resources that talk about pattern matching with interview questions so you can go and prepare with those now in general outside of that how do you actually get better at data structures and algorithms well the number one piece of advice i have is not to just blindly start with something like leak code or hackerrank those are great platforms to go and try to solve problems and see what your understanding level is but most likely you're going to need to spend some time learning about this before you actually get into solving problems so i recommend starting with any amount of resources you can to start from the basics of data structures and algorithms practice those build your way up and then go and actually apply them to these leak code and hacker rank and all those sorts of problems they're great you just need to get some background first so one of my favorite resources is the javascript algorithms and data structures master class from colt steel he's one of my favorite instructors on udemy he's great and he has an entire course dedicated to the entire topic that we're talking about specifically in the javascript ecosystem so i highly recommend going and checking out that course i'll have a few other resources in the description below that you can check out as well but there are plenty of opportunities to learn these and get better at them by practicing if you invest the time all right let's talk about the practical use cases of data structures and algorithms on the job again let's start from an early perspective of someone early on in their career the interesting thing about memorizing data structures and algorithms or or not is that rarely are you actually having to build those types of things from scratch so if you think about sort one of the common questions that people get in interviews and white boarding interviews is how do you write a sorting algorithm from scratch whether it's starting with bubble sort or getting more performant with something like a merge sort how do you do that from scratch well the reality is rarely do we actually build those things from scratch if you think about a programming language the search functionality that's built into that language has probably already been optimized to the point where you don't have to optimize it anymore so a lot of those things although they are interesting and they are kind of helping you build foundational knowledge of how things can be solved more efficiently a lot of them you're not actually going to build from scratch now i personally have this experience where i did a lot of data structures and algorithms in my computer science degree in college and a lot of that stuff i haven't used but i will say that i did build a foundation a base of being able to think through problems from a performance perspective and then understanding the different types of data structures and trying to associate those with those patterns that we talked about earlier so i definitely think this has helped me but it's not something early on in your career that i think is really really crucial i think especially for applying for that first job or being in that first job there's a lot of additional skill sets that become more important now one additional factor of this is you should have mentorship around you so as you're building things you should have a senior developer that's reviewing your code or mentoring you along the way that can give you pointers to say hey this thing could be more efficient if you use this other data structure or this other algorithm which is now a clue for you a cue for you to go out and do your research and continue to learn and build your knowledge base so even if you don't need them for your job interview it still is a useful set of skills and knowledge to have as a developer as you grow in your career now this becomes incredibly important when you're working at companies that have really really big applications or companies that have really really strict performance requirements i'll give you an example of this when i worked at fedex we worked on a sorting system for sorting packages so after a package is scanned the sort decision where does this package go next needs to be determined in milliseconds not seconds under 100 milliseconds as an idea there and so with that sort of time requirement now you have to make sure that the algorithm you have for coming up with the solution of where does this package go next needs to be very performant those are things that obviously become really really crucial when you have those sorts of timing requirements now additionally we mentioned the idea of working at google and why they do whiteboarding interviews etc you think about the scale of the amount of data and the algorithms that google will have to solve these really really big problems well obviously those need to be super important so as you progression your career always take the opportunity to continue to learn more about your craft learn more about these data structures and algorithms but they are going to be especially important if you end up working on really really big applications and or applications that have really really intense performance requirements so how can data structures and algorithms benefit your career well as i said it's going to continue to make you a better developer along your learning journey you probably already know this as developers but the learning journey never ends and so data structures and algorithms is a way for you to continue to add on knowledge set and continue to grow as a senior and staff and whatever the title is developer now this also translates to knowledge that you can pass on and lead a team with so if you look into architecture for developers or architecture of applications understanding how to put these pieces together in an efficient way is obviously very important which data structures and algorithms can help lead to so this can lead to more opportunities it can lead to more leadership opportunities it can lead to more mentorship opportunities and it can lead to you being able to advocate for yourself of being a more and more educated and more and more proficient developer as you go throughout your career so do developers need to know data structures and algorithms my take is that early on in your career no you don't need them unless you're specifically interviewing at jobs where that is a requirement during the interview to go through these whiteboarding sessions is it a nice to have yes but especially early on i think there's a lot of a lot more things that you can do to expand your knowledge base to get that first role and be successful in that first role or an early role than specifically data structures and algorithms from a whiteboarding perspective but data structures and algorithms is key to the idea of computer science and writing efficient and proficient software so it's something that you're going to need to develop i'm curious what your thoughts are with data structures and algorithms and what your experience has been with whiteboarding interviews how many of those have you had versus not had where you didn't have to solve a whiteboarding question let us know in the comments below thanks for checking out the video and we'll catch you next time
Original Description
A short discussion on learning data structures and algorithms as a developer.
James Quick YouTube Channel:
https://www.youtube.com/c/jamesqquick
Tweet from Lawrence Lockhart - [https://twitter.com/LDLockhartJr/status/1561250018006294528?s=20&t=Sb2aRdbdmveSWt1-JVsBUw](https://twitter.com/LDLockhartJr/status/1561250018006294528?s=20&t=Sb2aRdbdmveSWt1-JVsBUw)
Hiring without Whiteboards - https://github.com/poteto/hiring-without-whiteboards
Interview Patterns - [https://twitter.com/LDLockhartJr/status/1561251161134473217?s=20&t=Sb2aRdbdmveSWt1-JVsBUw](https://twitter.com/LDLockhartJr/status/1561251161134473217?s=20&t=Sb2aRdbdmveSWt1-JVsBUw)
JavaScript Algorithms and Data Structures Masterclass - [https://www.udemy.com/course/js-algorithms-and-data-structures-masterclass/](https://www.udemy.com/course/js-algorithms-and-data-structures-masterclass/)
👇 Follow Traversy Media On Social Media:
Twitter: https://twitter.com/traversymedia
Instagram: https://www.instagram.com/traversymedia
Linkedin: https://www.linkedin.com/in/bradtraversy
Watch on YouTube ↗
(saves to browser)
Sign in to unlock AI tutor explanation · ⚡30
Playlist
Uploads from Traversy Media · Traversy Media · 0 of 60
← Previous
Next →
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
Changing Your DNS/Nameservers
Traversy Media
Create a MySQL database in cPanel
Traversy Media
Install & Uninstall Joomla Extensions
Traversy Media
Adding and linking an article in Joomla
Traversy Media
Create a Joomla Blog
Traversy Media
Import & Export A MySQL Database
Traversy Media
Use A Custom Font On Your Website Using CSS
Traversy Media
Connect Joomla Site With Dreamweaver
Traversy Media
Remove Phoca Gallery 3.2.3 Footer Text
Traversy Media
Drupal 7 Security Update 7.19 to 7.20
Traversy Media
Add An Addon Domain In Cpanel
Traversy Media
Pull A Heroku Rails App and Database
Traversy Media
Create a Custom Joomla 2.5 Module - Part 1
Traversy Media
Create a Custom Joomla 2.5 Module - Part 2
Traversy Media
Create a Custom Joomla 2.5 Module - Part 3
Traversy Media
Joomla SEO Tutorial - sh404sef Configuration
Traversy Media
Font Dragr
Traversy Media
Convert an HTML Template to Joomla 2.5/3.0 - Part One
Traversy Media
Convert an HTML Template to Joomla 2.5/3.0 - Part Two
Traversy Media
Rockettheme Rocketlauncher Joomla Site in Under 10 Minutes
Traversy Media
JQuery FAQ Slider Tutorial
Traversy Media
301 Redirect With htaccess File
Traversy Media
Convert HTML to Wordpress Theme - Part 1
Traversy Media
Convert HTML to Wordpress Theme - Part 2
Traversy Media
Easy JQuery Widgets
Traversy Media
Codeigniter App Part 1 - Creating the Database
Traversy Media
Codeigniter App Part 2 - Installation and Configuration
Traversy Media
Codeigniter App Part 6 - Login/Register System
Traversy Media
Codeigniter App Part 7 - Models List CRUD
Traversy Media
Codeigniter App Part 8 - Models Task CRUD
Traversy Media
Node.js Part 1 - Install NodeJS on Windows
Traversy Media
Node.js Part 3 - Building a Static Page Server
Traversy Media
Node.js Part 4 - NPM
Traversy Media
Node.js Part 2 - Install MongoDB in Windows
Traversy Media
Create a Joomla Quickstart with Custom Sample Data
Traversy Media
Install MongoDB in Ubuntu
Traversy Media
HTML5 Web Storage
Traversy Media
Create a Joomla Bootstrap Template From Scratch
Traversy Media
Ubuntu Server 14.04 Setup Part 1 - Installation
Traversy Media
Ubuntu Server 14.04 Setup Part 3 - Set Static IP
Traversy Media
Create A Wordpress Widget - Part 1
Traversy Media
Create A Wordpress Widget - Part 2
Traversy Media
Create A Wordpress Widget - Part 3
Traversy Media
Create A Wordpress Widget - Part 4
Traversy Media
Get Started With Sass on Windows
Traversy Media
Build An HTML5 Template With Bootstrap and SASS - Part 1
Traversy Media
Build An HTML5 Template With Bootstrap and SASS - Part 6
Traversy Media
Build An HTML5 Template With Bootstrap and SASS - Part 4
Traversy Media
Build An HTML5 Template With Bootstrap and SASS - Part 5
Traversy Media
Build An HTML5 Template With Bootstrap and SASS - Part 3
Traversy Media
Build An HTML5 Template With Bootstrap and SASS - Part 2
Traversy Media
Build An HTML5 Template With Bootstrap and SASS - Part 7
Traversy Media
Build An HTML5 Template With Bootstrap and SASS - Part 10
Traversy Media
Build An HTML5 Template With Bootstrap and SASS - Part 8
Traversy Media
Build An HTML5 Template With Bootstrap and SASS - Part 11
Traversy Media
Build An HTML5 Template With Bootstrap and SASS - Part 9
Traversy Media
Build An Audio Player Using HTML5 & jQuery - Part 1
Traversy Media
Build An Audio Player Using HTML5 & jQuery - Part 2
Traversy Media
Youtube Data API v3 & jQuery To List Channel Videos
Traversy Media
Using Bootstrap With Ruby on Rails
Traversy Media
More on: Systems Design Basics
View skill →Related AI Lessons
⚡
⚡
⚡
⚡
Bloom Filters, Explained Properly
Dev.to · Daksh Gargas
Prefix Sums: The Preprocessing Trick That Makes Range Queries Instant
Medium · Programming
I Thought I Was Ready for the Interview — Then One Simple Math Question Destroyed Me
Medium · Programming
Week 2(Day 10): LeetCode Two Pointers(slow & fast): Remove Duplicates from Sorted Array (Brute…
Medium · Python
🎓
Tutor Explanation
DeepCamp AI