I'm 61 years old. Recently retired nurse anesthetist....started working towards a Masters in CS Online....just finishing my first semester...doing great. Just wanted to say I love your channel and have been following you over the past few years and I found your channel very inspiring and even encouraged me to finish my CS studies that I migrated away from over 30 years ago. DSA course coming up next semester. Every little bit helps.....Keep up the good work!
Actually, hash tables are the easiest besides linked list to understand lol there's no tricky traversals, transplants, swaps, etc. Very, very simple. Hashing function maps item to location in table by converting the item to a number. Modulo that number with the length of the table and that's the index to put it in. Handle collisions by using a linked lists to chain them, or by probing. Done.
@@alexbarrineau3338 Really? Linked Lists are pretty simple to implement, but kind of useless. Also. C++ has the STL (which has `std::list` and `std::forward_list`). Hopefully your college wasn't teaching C++98
I much prefer this sort of content regarding programming rather than the "pro tips" for landing that coveted FANG software engineering job, etc. As you mention in the video, its easier to dream about getting a job in software than it is to sit down and do all the nuts-and-bolts grunt work to gain a deep understanding of what software can do and how it's implemented. So, I personally would prefer it if you made a lot more videos like this one. BTW, I'm a big fan of the Open Source Comp-sci degree. I'm a totally noob, and I'm slowly working my way through it during the lockdown. Thanks for all your efforts, Forrest!
*In JavaScript:* An element inside an array can be of any type, and different elements of the same array can be of different types: string, boolean, even objects or other arrays. This means that it’s possible to create an array that has a string in the first position, a number in the second, an object in the third, and so on. JS is awesome.
As a computer science graduate and professional for 3 years, I could say that you really are a nice teacher. Also please add more visuals to beginners. For example you would have added three different linked list graphics while you were talking about them.
In your time as a computer science student, did you have times where you felt discouraged or frustrated with learning the material? If so, how did you push through it and what would you recommend to dissuaded c.s. students to stay positive? Thanks for the videos!
If I may answer this on his behalf, and as a software development student (working on my last 2 projects @ WGU), when ever I am discouraged, stuck, or completely dismayed, I take a break. I am discovering now the joy and pain of mobile application development on the Android OS. After a couple hours of study, I will take a break, go on a walk, or shut my eyes for 15 minutes and take a "power nap". But you must get back on the saddle and continue to push forward. I convinced myself recently, no matter what I feel about my current course of study "I can't do this" will not be in my vocabulary; it won't be an option. The only option is "I will learn this" therefore the only option is *when*. Since I'd rather it be sooner than later, I committed to immersing myself, which means making mistakes, and even scrapping entire solutions and starting from scratch. While learning about one subject, I also found it useful to research and study a similar area independently. (For example, while studying Java concepts pertaining to the Android OS, I would take a break from that and watch videos on LinkedIn Learning about .Net application development using Visual Basic and C#.) tl;dr take an effective break; remove "I can't do this" from your vocab; and, find a similar subject to study in parallel
He coded and was buried in bugs. On the 3rd day he rose again. He optimized into heaven and is seated at the right hand terminal. He will come again to review the promoted and the dead.
I don’t know if it’s your lack of intimidation on the subject matter, your Germanic lineage, or simply your beard that makes these elusive concepts make so much sense!!! Or maybe I’ve been banging my head away at this keyboard for too long, but I want to thank you for your effort.
Actually have a midterm for my data structures class on monday, just went over stacks and queues. This was a great condensed refresher on what i’ve just learned. Could not have been better timing so, thank you! :)
About the intro, I think alot of people would like to learn, but when on RU-vid you're just surrounded with so much more entertaining and interesting things that it's hard to click on something that is likely to be purely educational. Even I only clicked because I have an exam about Algorithms and Data structures in two days...
Ah, I remember the days of being scared of arrays. Now I'm back to being scared of arrays because in most of the languages I work with daily arrays aren't really arrays anymore.
Thank you for this! I love information like this. I took a data structures class and I feel like I learned so much and its just all leaking out of my ear now haha. Thank you for this, now I know what to study a little more when the semester is over.
What great timing. I'm taking a data structures course this semester and even though we just finished learning the 4 data structures you mentioned. The way you explain them and with the examples your provide, helps with the retention. I look forward to that part 2!
Awesome video, hearing a professor ramble on for multiple lectures does little to ease the mind about what I should REALLY be taking away from the things they say, having an outside source confirm that yes, these are important, is super reassuring.
4.5 out of 5 STARS. You known, I'm pretty proud of you for making and uploading this video. I am commenting on behave of the crazy ones, which are in the group of learning the nitty gritty of Computer Science. Thanks ForrestKnight.
Please do more of these. I am familiar with these but I always could use a refresher. I'd also love to see basic tutorials on how to set these up with some examples. The code snippets you put up certainly help still. Great video Forrest.
Would you be able to do a video walking through different types of trees and their applications? Love the way you explain and dive into concepts. Keep it coming!
I would love to see more raw informative videos like this! I feel that a lot of RU-vidrs, when talking about programming, often shy away from actually explaining the bigger concepts, almost gatekeeping them. Great vid.
Greetings Mr. Knight, I just started my basic HTML and HTML5 on free code camp, I came across your channel and find your explanation easy to follow and understand. I have subscribed and I will continue learning from your precious input to pave my way into programming and coding one step at a time, thanks for this data structure expose, means a lot even when I don't really know what it means yet, keep up the good work Mr. Knight.
Since Python is so huge, you might want to mention dynamic arrays/Python lists. A dynamic array CAN be resized, and Python lists (which are dynamic arrays) can even hold values of different types in the same list, i.e. int, float, string, etc.
Appreciate you bro! I'm in data structures now at my university and I really think I want to be among the elite who dive deep into this topic! Just picked up the book, "A Common-Sense Guide to Data Structures and Algorithms" by Jay Wengrow to start. I'm about to nerd out on this one. Knowledge is power and I thank you for sharing yours.
Loved this video! Funny enough I was looking for the data structures you left out in here, but hearing all these together were good to consolidate the similarities and differences. The part 2 would be greatly appreciated whenever you can! (:
I enjoy watching your videos, Forrest, but forgive me for being pedantic - “data structures are a way to ‘structure data’” is tautology and almost there, but it begs the question: “why do we need to structure data?” So it looks pretty to the human eye? So it’s organized? I think this point gets lost a lot, but from my perspective it’s really about efficient access and/or storage. We reach for them because they provide us certain characteristics and to make our programs faster or more efficient in time or space complexity
It doesn't "beg the question" which has meaning in truthology, psychology, philosophy, some subject matter I forgot about that dealt with logic fallacy. It "prompts the question," "urges the question," or "farts the question." Sorry, it's a peeve.
In a linked list - which by definition is stored in non continuous locations - if you determine the insert location by hashing, you can get "random access". An ancient company called sentinelCorporation had a DBOS file storage which was essentially this.
I'd say instead of Linkeds, graphs are more important to learn because a LL is a type of graph, but there are so many more structures that are graphs too like binary trees and a lot of the beginner algorithms like depth-first search are working with graphs.
You are making lists in Python unless you explicitly declare the item as an array. This is an array: array_1 = arr.array("i", [3, 6, 9, 12]) This is a list: list = [3, 6, 9, 12] Ruby arrays are actually lists, but Ruby's developers decided to ignore the industry standard of calling fixed length arrays as "arrays", and capacity resizable arrays as "lists". I use a lot of different languages and silly type naming differences like this are extremely irritating. Another good example of this is C# calling the collection generally known as a map a "dictionary".
@@philsburydoboy thank you for your answer and clarification! Really!! It is always great to learn something that I thought I knew! That is something that I will look later!
You can very much delete and insert things from an array without creating a new one as long as you respect the boundaries. And in many languages, like C and C++, you can store different types in an array with the help of a union. And arrays don't have to be fixed size as long as you're aware what happens when you need to grow an array. i.e std::vector in C++ which is just a fancy dynamic array.
You are the most amazing person who explained the Data Structures so simply. Please make the second part of the video, explaining the other too. That will be of great help. 👍
This was a fantastic and very informative video! Summed up what my professor couldn't teach in a whole semester. Please continue to the other data structures!!
Just discovered your channel a few days ago. Honestly your content is fantastic and really helpful for a budding software developer such as myself! Keep up the good work!
Great video. Didn't get too in depth, which is nice since people can just research further what they are interested in. I'm mostly commenting to help with the RU-vid algorithm. I'm teaching my wife to program and have been on the lookout for good, simple, and concise RU-vid videos to show her. I tend to be... well, let's just say, not concise, and often find my long explanations go over her head. This video nailed exactly what I'm looking for. Thanks for the great content. ♥️
Nice video as a review or a quick what-is-this kind of question. Brief, good. I would love to see more advanced structures building on this, such as trees (red-black, avl), matrices (including sparse), and other structure that would be needed by some basic algorithms (sort, search, insert, delete, etc) ... in more videos. Well done, Forrest.
Somehow this guy started to show up in my youtube feed I'm kinda happy about that This guy is very nice, he has good thinking, respect to people and learning, good guy 👍 I subscribe
Great work on explaining bud. I love that both of us have this much of common backgrounds: WOW, data science, swift, ml and deep learning, and even hurt ear :)
These videos are always the most helpful for me. I am a computer science undergraduate so I always need something new to improve or do. Thank you so much.
The video is great but maybe it's worth mentioning for viewers who don't know these things that arrays can be of different data types and variable lengths depending on the language. E.g. python where an array can have any data type and change length. Also I loved the video style and would love to see more like these :)
I want it all Regarding what you said at the beginning, would you consider making a "You Need To Know" playlist with videos like this? I already know a lot of them but I'd love watching you go over all of them, even the more specific ones. Perhaps you could make design patterns videos as well?
I just found your channel today and I have to say, you're a blessing. I wanted to brush up on these concepts and this video helped alot. Thank you so much for this
sir make a second part of the data structure vids...its very very helpful I just remembered everything I learned through this video thank you, waiting for the second part. God bless you
I guess I got a decent education in High School, since I remember all of this stuff just as well today, despite veering off into design territory and having not programmed for many years. It would be definitely interesting to hear about the other structures you mentioned, as I recall that's stuff we tackled in Uni, but never applied or seen outside of an academic exercise.
I loved the fact that you take some pains for at least mentioning the applications of Data Structures like Stacks, Linked Lists and Queues which thereby augments there significance for budding programmers like me, Thanks. Would love to see more emphasis on the applications of the programming nuances in future videos, Bless You !
Studying for an Algorithm and datastructures exam on thursday, so i have learned this at this point, but please do make another video explaining those data structures, maybe with more visual elements showing the operations of chained hashing or linear probing. I know this will help my successors learning this cause, as this video puts a baseline of knowledge of data structures. Thanks a lot, and remember your videos makes a lot of us get great grades in development courses :D
The intro is so ON POINT! It is sad how a piece of information, content about core programming doesn't get any attention vs memes and "inspirational" quotes about programming are way overrated.
It's funny. As you were talking about Arrays and stating that they can only hold one specific data type in them, I, as a PHP dev, thought to myself "Well, acutally...". ;p Also, the fixed length is debatable. With push, pop, slice, shift (all PHP) etc. you can change that dynamically. Even C# and probably Java too (correct me if I'm wrong) can do something similar. Although technically speaking, C# recreates the Array completely after alteration and then drops the old one from memory. But then again C# has dynamic List types that have basically the same functionality as PHP Arrays.
Not going to lie, I pretty much use arrays like a carpenter uses a hammer. It is the thing that keeps everything organized and together and I recall things through it.
Thank you Forrest! Great content. I rarely comment but wanted to to say I would love a video covering hash tables and the other data structures you mentioned.
Im in my last year of college I don’t know why I clicked on this video and expected to learn something haha. Good job though. For those of you starting out this is important.
For students, maybe learning about maps should come right after learning about arrays? I've never taught, but grasping the utility of maps was a level-up for me.
I've never commented on your videos, I've watched hundreds. This is the content I am starving for! From basics to as advanced as you can imagine, please whip us Java and C# programmers into action!!!
What's up Forrest, can you share your thoughts on the GPT-3? The GPT-3 is a massive neural network that has the capacity to write code and even essays by itself. Thank you, excellent video btw.
Yes! Please create another video on the rest of the data structures. I bet that if you go over their implementation on a future video would be even better!
@@B1SQ1T That said, if I'm not mistaken (which I very well can be, I'm a beginner), Python List is not really an array. Rather it's a hashtable (i.e. dictionary) indexed by ints. If I'm wrong, please, correct me so I don't spread bullshit.