Preface Im just kinda taking notes and taking the slides from a yt vid so i can maybe remember stuff / copy stuff for later also to partially increase my typing speed without looking at my keyboard and idk maybe get better at typing given i dont use the standerd asdf jkl; hand position rather i do shift+awr jop' layout and use alot of range for my index fingers and spread them out its not optimal but this is realy all i need coz im a gamer lmfao also [] is my ring finger and all numbers are my ring fingers wish i had an ergo keyboard lol https://www.youtube.com/watch?v=RBSGKlAvoiM&ab_channel=freeCodeCamp.org Example page, and literal first 6 minutes of the video Why Data Structures? They are essential Ingredients in creeating fast and powerfull algorithms. they help to manage and organize data. they make code cleaner and easier to understand. (even if it lowers efficiency) Abstract Data Types VS. Data Structures Abstract data type An abstract data type (ADT) is an abstraction of a data structure which provides only the interface to which a data structure must adhere to which a data structure must adhere to. the interface does not give any specific details about how something should be implemented or in what programming language. Examples Abstraction (ADT) Implementation (DS) List Dinamic Array Linked List Queue Linked List based Queue Array based Queue Stack based Queue Map Tree Map Hash Map / Hash Table Vehicle Golf Cart Bicycle Smart Car Complexity Analysis As programmers, we often find ourselves asking the same two questions over and over again: How much time does this algorithm need to finish? if it takes the length of the universe to complete its useless How much space does this algorithm need for its computation? likewise if it takes the entire bit size of internet its also useless