I code for a while now and learned several programming languages. I programmed a lot of little tools and such. I think I master the act of coding itself pretty good so I have e.g. no problems with syntax, I got a pretty good understanding of what is going on under the hood (reasonable assembler knowledge) and so on.
My big problem though is: I just can’t design bigger/more complex applications. I learned the principles of OOP, design patterns, learned some basic lisp programming and all stuff I could find and thought it would help me with my issue.
But no matter what I try, how long I try: I just can’t get it right. My designs always seem wrong to me somehow. Cause of that I never drawn through a bigger project, i’m kinda never satisfied with the structure of my program.
Have you had a similiar problem? How did you manage to solve it? Got you any hints for me on how to go on?
I think experience is a key factor here. Every design fails at some point, then it’s up to you to improve it and learn from your mistakes.
In my opinion good software design is not something you can learn by reading a few books.