Irony of youtube. A lot of youtubers put up videos questioning whether college degree is still needed in this era, then comes these videos with stuff taught in colleges. College syllabus are outdated, especially in developing countries, but these are basic blocks which everyone should learn. This video is a good introduction on basic but required topics.
@@AbhinavKulshreshtha Why would you need to go to college to learn these data structures and algorithms? I have a degree in electrical engineering, but after finishing school I decided to get a job in web development, so I learnt all of these on my own and became a full stack ASP.NET Core and Angular developer.
@@walrus-splice-renewable There is more in being software developer than web. But I am not saying that you cannot learn these stuff without going there, I am saying that these things are covered properly there. It is good that these topics are introduced here but how many viewers will spend time to learn, implement, understand use-cases etc.
@@walrus-splice-renewable making CRUDs and forms on a web site is not programming. The more you will be in the industry, the more you will know, that interesting stuff requires serious background in studying, preferably in math, for a software dev
I had quite a few coding interviews and I've never ever been asked a data structures or algorithms question. Perhaps this is just me but I dont think you need to stress about this to get a programming job these days. I've had a lot questions poking at my knowledge of various web technologies and ideas for general problem solving. One example question was "how would you go about moving around 200mb of data on a node.js server?" Again, if your looking for a tech job, dont stress about data structures and algorithms.
This is really great Kyle! Data structures and Algorithms are a big part of the hiring process and I try to do an algo every day or so to keep my skills up. Linked lists are definitely something you need to understand inside and out. Most common coding interview question in my opinion and you will more than likely NEVER use it in the job lol
This video was really straight to the point... No need to go through 10 hours of courses and get confused about all of these structures like I had to go... Great job Kyle!
Can you make a video on real algos and data structures used in web dev? It's so much easier to understand, remember and see the potential of these concepts when applied in real applications :)) Enjoying binging your videos so far
Do you think algos and structures form the video are not real? :) React apps and HTML DOM are basically trees(not binary, but just tree). Recursive functions use call stack, which is stack data structure. Queues are widely used to execute tasks concurrently. Event loop in JS uses queue to store and retrieve tasks/events/promises. Every object in JS is a map/dictionary. Memoization is caching of results during some kind of computation. Any kind of relations between objects can be represented as graph, e.g. routers in web frameworks like react and angular are basically state machines(special case of graphs). Basic CS things are everywhere, you just not always realize them :)
@Taco says Hi. I can give my personal opinion only :) It's not an easy question. The answer depends on your skill level. Most of the modern fancy technologies are based on inventions of 1960-1990. So I'd recommend just to google "greatest computer scientists" and try to learn briefly what they did and what problems their inventions solved. After that you would try to learn their articles related to the things you are interested in. Personally I currently learn articles and videos on concurrent systems, concurrent algorithms and their mathematical verification by Leslie Lamport. Some of that great guys are still alive and it's even possible to email them if you have some good questions regarding their works :) From my experience some difficult ideas are easier to learn from their origin. But If you feel that articles are too hard for now(and that's completely fine), then you can try to read some easier stuff about algorithms, data structures and general programming, e.g. Grokking Algorithms, Grokking Simplicity, Structure and interpretation of computer programs JavaScript edition - the last one has free web book. Also you can try to read something about state machines and how they are applied in programming. Some basic math: Sets theory, Predicate logic, Graph theory, Discrete math overall. The best is not just learn, but also find how it's applied in programming, e.g. Sets theory is widely used in relational data bases. At some time later you may get to the point when you learn your language and frameworks, you have nice salary and fancy title, but it still feels like you've missed something - Something Important that holds you and prevents from the further growth as engineer. I believe this missed thing is computer science foundations, math and their interrelation with engineering. If you get to this point at some time - turn to the wisdom of the greatest computer scientists :) So just try it, have fun, and maybe you can find how deep the rabbit hole goes :)
And one more thing. It's infinite ocean of knowledge to learn. And it takes a really long time. Don't try to force things. Learn everything in your comfortable pace, take time for good rest and for life :) Only this way you can get better in long run and still feel happy with what you're doing.
So, the title of this channel is 'web dev simplified'. These things in this video though, a senior FE or BE dev will probably NEVER use. Ive been doing web dev work since the 90s and I can count on one hand the senior web devs, web architects, or team leads that knows these things deeply and can code them without looking up something. What they DO know (and extremely well) is their tools (like vs code, or phpmyadmin, or chrome dev tools), their platform (like shopify, netlify, or AWS) , a couple of technologies (react, or sql, or Go) and a couple of techniques (like REST, CRUD, error handling). That said, even though youll never use a binary search tree as a FE dev working as an angular developer, these things are good to know, and this video has a lot of things that would carry over into other areas, such as game development, finance, higher math, AI, optimization techniques etc, and the knowledge applies across all languages.
Most dictionaries will accept either plural form. At the end of the day a good employer will care more about how you use them to benefit the company than they will about how you pronounce them.
I have been looking for a video like this forever. Just wanted something that listed out the different algorithms so I can dive deeper into each one and learn them. So many videos want you to watch 8 hours of them talking about 1 algorithm or data structure which is fine but I like to see the 10,000 ft overview first to setup a learning plan vs trying to chase down each algorithm that may or may not be used in interviews. Thanks man.
In contrast to what these plumbers are telling you, learning computer science basics from the beginning will set you up with a proper foundation, and all the web-building technologies will make much more sense. For example, data structures (along with algorithms) are all about managing memory storage and memory access - and understanding that will make all of HTML, CSS, and JavaScript easy to understand from the beginning. When you watch a tutorial, you’ll know why the teacher is doing what they’re doing.
@@ib6435 OK gay-for-pay, you could simply watch an hour video on introduction to algorithms and data structures, or a "memory addresses in 90 seconds" and learn what you need to know, saving n days of recursive self-questioning and mental overflow.
Ohh man,I never get bored while watching your tutorials because those are on point, easy to understand for absolute beginners and with real life examples which makes it even easier to understand even better.. Thanks Kyle!!
Awesome vid man. I do gotta say it cracks me up every time you say memoization lol, sounds like Elmer Fud trying to say memorization. Keep up the great work webdev!
Great. Cool to have some visual explanations of fundamentals. With tech advances, It seems that every day more and more problems need you to think hard and figure out an algorithm that uses trees and concepts alike. Thanks bro. 🤙
Breadth/Depth search is mostly chosen over the width or the depth of the graph, whatever is the heaviest. Those graphs are rarely squares. This asymetry is usually known even before using the graph and injecting values.
Thank you. This was great. Can you do an example for each, except for those you already have an example for of course. In addition, I think design patterns are another popular topic out there, which I get asked a lot. I want to know how you tackle this question.
Thanks a lot for explaining these important topics in a matter of minutes. I request you to create more such videos with more in-depth knowledge on DS and algorithms. Love your channel. ❤️
What's so interesting to me is how heavily focused interviews are on algorithms and data structures rather than actual experience. I get it and its very important to know then, but when I was interviewing, almost everytime I was given an algorithm before anything else. The most common question I got was about linked list. It is what it is though. Gotta play the game to win. Thanks Kyle. See your soon!
F(Xn)=F(Xn-1) => Fibonacci sequence. Binomial convergence- search function => the best Sum( of n of 1/(2^n)) => converges to a search result number, thing or an array, depending on the loop iteration. BIG key point is determining how deep you search, depending on the time required to determine the result.
Thank you for this video, One advice : give a real life example of a useCase to be able to understand why do we use them, i'm not a fan of just explaining without examples.
I just gave up to become a developer who works for someone else! I'm working on my programming skills and I live on the back of my family for now. I hope someday I can build something and live with the royalties that my product brings in!
This was a very good video on beginner CS topics but I really disagree that these are essential to an interview. I work for a large company and for every person we interview, the biggest takeaway question is “will this person fit well in our team?” 100/100 times I will take someone who has no clue what a binary tree is but shows technical aptitude and is a great team member, over a person who has outstanding technical knowledge and is totally useless in collaborative settings and writes code in a vacuum. If you’re prepping for an interview, sure be ready to answer some technical questions to prove your aptitude, but you need to focus more on the personal aspect of showing how you can fit with what that team needs and play to your strong suits. If you’re not an amazing back end developer, don’t pretend to be an expert on development of these low-level structures and algorithms - in no way am I ever going to need some junior developer to rewrite these well established and well documented concepts. I want a junior deveoper who understands they don’t know anything and are willing to adjust and pivot to fill the holes on whatever our team is struggling with.
Instead of all these kind of irrelevant algo's for a js dev. People could've asked what's an "ArrayList" and why are js "arrays" are secretly "ArrayLists"? Or what's a hashtable and why most of the times js objects are implemented as hashtables, yeah I know they were implemented as linked lists somewhere. It's much more useful to know this stuff, than an abstract binary tree, which you probably never use.
Very cool stuff, though if you go for an interview for a "web dev" job and they starting asking you about this stuff, either they have lied about the job description or the interviewer just looked up generic programming interview questions and hasn't got a clue.
hey webDev.......i need to wrap my head around unit and integration testing using mocks and jest. please create a course on advanced api testing and db mocks.
I don't remember, in the CLR(S) course that they talked about linked lists (I know them from previous courses in the college and in Pascal from 2nd-ary school...) In the CLR(S) course, they talked mostly about stacks, queues, hash tables and RBT (Red-Black trees)... And yes, the O (Big o) notation is the superstar... most of the questions asked about the Runtime complexity with this O notation :)
From my past experience at frontend interviews ... Finding circular redundancy in Linked list without using additional memory 2 sum Changing default javascript functions for example changing behaviour of toUpperCase Finding midpoint of linked list Application of trees BST validation algo Balancing parentheses Prime numbers using generator Prime numbers with high input range
I understand the pictures but I don’t know how to code them into a program.😭😭I don’t know if I will find an internship soon. Please can you make a video where u code these data structures?
I'm here after the vid saying ' I got my first fullstack dev job knowing html, css some js,'you can do it just apply', and here's a huge 'but' , perfectly discouraging 😅
Hi brother, It's good to see this video specially last two but I want to learn all which can be use in JavaScript program. Is there any book or any reference so I can learn deep in algorithm?
The only thing i CAN'T understand is big O notation, I just can't understand how to calculate this complexity by myself if, for example, I created some algorithm.
Thanks for the video. How would you use those in real use cases for web development beside landing a job ? Always asked myself as the only data structures I've been using are objects/dictionaries and arrays basically...
Well... truth is that you won’t need them 99.8% of times in web development. I don’t even know why they are still including algorithm questions since you don’t really use them but i guess knowing about them its better than not knowing 🤷🏻
Doubly linked list is a good data structure for a carousel. Splay trees (a variant of binary tree) can be used for very efficient spell checking. Stacks can be used to improve efficiency of deliveries. Ex. the first item Amazon packs in a delivery van is for the last address on their route (FILO - first in last out). Queues are used to schedule time intensive tasks in the background like performing analytical queries or batch processing that would timeout an HTTP request. An example would be an email marketing campaign. You press a button to start the campaign and send emails to 100k email addresses. The 100k sends will take a while, so instead of waiting for the routine to complete and give you a success or error response, a job is scheduled to send those emails and then you receive an update as to whether or not it succeeded via email or maybe a push notification sometime later. The queue is used so that if many people are starting campaigns at one time, the server is not overloaded performing all these intensive routines at once. Often these routines spawn new processes which is limited by your number of CPU cores. When a core or process becomes available a new email campaign is started and popped from the queue. Merge sort is used for large datasets that don't fit in RAM (probably used in a background task handled by a queue). Dictionary/map provides constant lookup time. Imagine an ecomm site with an infinite scroll catalog that had to search an array before providing quick view details. Graphs are common in social networks, i.e. tracking followers. They're also used in navigation apps and dependency managers. Binary search is most commonly used in finding elements in binary search trees. Breadth first search is common when you don't need to traverse the entire depth of the tree to find what you're looking for (js element.children is a good example). Depth first search or DFS is used when you do need to traverse the entire tree. One example is js document.getElementById. You potentially need to search the entire tree depth to find the matching ID. DFS is also used in directed graph structures by package managers to determine which dependencies to install first. Caches use memoization to reduce db lookups and speed up page loads. Recursion is used to traverse trees. Recursively traversing the DOM tree is particularly relevant for web dev. In my experience Big O is most helpful in determining whether or not your implementation can scale. A lot of frontend functions will be performed on small datasets, in which case big O is not as important, but for functions that handle larger datasets (animations or API endpoints that perform heavy calculations like choosing which box to ship items in) it is immensely helpful in determining the bounds of your application. You can use this information to set rate limits on API calls or as a guide for setting horizontal scaling rules.
I haven't implemented any of these things since I learned them, because why would I reinvent the wheel just so I can prove I understand wheels. Makes no sense. Just because I can't build a calculator physically myself doesn't mean I can't use one and it doesn't mean I don't know when to properly use one over something else like mental math, but that's the interview game I guess. Extremely archaic and nonsensical. Thankfully I never had to deal with this crap when interviewing. Just had to build a few applications.
@@charleskhedia242 Yes, this is my second interview for a company, i badly failed in my first interview. Can you tell me about what type of job you are applied?
This channel has many great contents but this sounds too abstract. Would,ve been too much help if you touched even slightly about on their application.
I have an interview on 2nd March, currenty am just fucking losing it reading question data structures and stuff. I have to say I don't like dsa I just don't. There was a reason why I chose to become a DEVELOPER and not a PROGRAMMER. All the companies man just same shit dsa dsa just leave it for gods sake
WDS: Recursion is simple Me: .... *Winces* Math Prof: Given the following alogrithim, state the recursive formula along with it's asymtotic runtime. You have 5 minutes. *Presents a non homogenous 3rd degree linear recursion* Me: When will this recursive nightmare end? 🤔😭
Can i be a web dev? :( i have self doubt but trying my best to build my dream projects. and thank you so much for listening to my request. ur my hero. Once i become a web FE dev, i'd like to pay you off sth one day. i promise you