I am currently at the beginnings of my software engineering journey, as such I have vast amounts of knowledge, yet to be discovered; one of which are design patterns. Previouse to my software engineering class I have not had a formal introduction to what design patterns are, infact from my years of Googling coding information I have rarly heard mention of them either. That said I hope to change all of this to level up in terms of coding ability.
Design Patterns are established to help create a standard for new comers to follow; similarly I find that data structures are also like this. In a introductory Computer Science class a student will learn the theory behind data structures such as heaps, stacks, or hashes and end up implementing their own version based on the patterns set in place. Some design patterns are being used in the logic behind higher level languages and Classes. Just as much of this is black boxed to the users, there are APIs for the before mentioned data strucures in some languages.
Alot of articles on design patterns mention that they are eventually learned, via trial by fire, hence design ‘patterns’. We see this in everyday life with underlying no nonsensical efficient Maps or even the mental maps that we construct of common place that we visti in our lives. Going to shop at a store we visit weekly, we create mental mapes of the stores’ sections everytime we go. To make things more efficeint we remeber which way goes straight to the vegetables section instead of randomly guessing where in the store the seciton was. Physical maps are like design patterns in the sense that the map is there to show new people the location of where things are; reducing the trial and error of guessing which is the best/shortest path to take.