Dev Ed 028: Learning Data Structures And Algorithms
In this episode of the Dev Ed podcast, the panelists talk to Dylan Israel. Dylan is a self-taught software engineer working as a developer and a content creator. His YouTube channel has over 60k subscribers where he aims to help people trying to learn programming on their own. He teaches a course on Thinkster.io called "100 Algorithms Challenge", aimed at developers preparing for technical whiteboard interviews or those wanting regular challenges to improve their skills, and has a collection of the top most commonly asked interview questions on algorithms and data structures.
Joe starts the discussion by throwing the fundamental question to the panel - What is the meaning of the terms "data structures" and "algorithms". Dylan explains that these are fairly common concepts in software development, and traditionally data structures represent the way data is organized and algorithms define how to parse through them while maintaining optimum performance using fewer iterations and reduced time. Others chime in as well and explain these terms using the analogy of building blocks and recipes.
After the basics, they discuss why should one bother learning data structures and algorithms in the first place. The main reasons mentioned are cracking job interviews especially for high paying jobs at large companies, efficient computing, forcing one to think differently and out of the box, studying time and space complexity leading to a better understanding of the software.
Joe mentions that what we learn in a computer science class is rarely used at an actual job, and asks the panel to challenge his statement that learning data structures and algorithms except for clearing job interviews, is inherently a waste of time. Brooke explains that learning about them helps in getting into the right mindset, whereas Dylan says that he has had a chance to use them in certain significant applications on his e-commerce platform, and Jesse adds that they help in honing developer skills to a large extent. Thinking on a level higher than what is expected in order to create efficient solutions, and understanding things well through problem-solving are some of the important takeaways from learning these concepts.
The panelists then discuss some great ways to learn data structures and algorithms. They share their own interesting interview experiences offering insight into what worked for each of them, and suggest books, online resources including courses, and emphasize that practicing a ton of problem-solving on a whiteboard/paper is one of the best ways to go about it. They also mention that recognizing repetitive patterns in problems is a good approach, and using a different language to solve can be beneficial too. They also advise listeners to take into consideration the opportunity cost involved in spending a significant amount of time learning data structures and algorithms, so that they can take an informed decision.
They talk about how much the knowledge of these concepts affects their hiring decisions and what exactly do they look for in candidates. They wrap up the show by each giving one piece of advice to someone preparing for a job - comparing solutions with others and learning from them, consistent attitude, test driven development, interviewing a lot and researching about the interview as well as the interviewing panel. They end the episode with picks.
Joined by special guest: Dylan Israel