The way I see design patterns, are those steps you just learn to instill into your development process. Sure you could code your project one way but how would that scale over time? I see design patterns as a standard way to write your applications. At first it may seem needless to write the extra code to get your application running but further down the line when code starts to becomes wildly, it pays to instill a design pattern to keep structure in your code.
I started finding out about design patterns about three years ago when I was working on a PHP framework. The framework was set up where it had directory for Models, Views, and Controllers. Little did I know this was a design pattern. I figured it was just adopted that way to keep things clean and organized. As I kept coding in the MVC project it started to dawn on me, how much it helps to have these separation of responsibilities. I was able to recognize where a big would be developed in by the time of error I was getting. If there was some issue going on with the user interface I automatically know to start off in the view directory. If there was something wrong with the data presented then I could go straight to the model. This made coding much more streamlined and manageable. There is never a need to sift through long lines of codes with comments everywhere explaining what the whole structure is doing.