When it comes to creating software, every programmer has encountered or utilized a design pattern in some way. This is because design patterns are just general, repeatable approaches to solving a problem or to implement a goal. Design patterns in software engineering can provide architectural layouts to help modularize and encapsulate code, making it easier to understand and make it much simpler to add functionality to a program by providing a template which you can customize to your own preference and needs.
From my experience with the Javascript framework Meteor and database program MongoDB, I was able to utilize the flexibility provided by Javascript to its fullest extent. An example of the significance and how prevalent design patterns are in my current work are the combination of the design patterns centered around the model view controller (MVC) architecture to decouple changes to the database from the user, but also allowing for user input to request for data through observers (functions that detect user action and allows the program to output some response). This could even include utilizing user input to create new instances of objects from the data, called factories. The functionality provided by design patterns help me create larger and more useful software that would otherwise take much longer time to create from scratch.
For the average software engineer, the usefulness of design patterns are tried and true and learning about them can help you better plan out the layout of your program and built it efficiently.