So I've got maybe 4-5 years of coding under my belt, everything from assembly, PIC Micro C, Windows C, C++, C#, Java, VB .NET Now a lot of my projects have just been small tools for workplaces to help optimise certain things, usually start off fairly simple then expand into a rather medium sized app with 5-10000 lines of code. Some of the PIC micro stuff is into the 100,000 lines realm. Now I find I can code well but due to most of my experience being in coding C my coding style generally consists of multiple classes with loads of static methods. In Java and C# I make use of objects to simplify things but I still use a similar coding style, so whilst the coding is solid, the style isn't. I find with the medium size GUI apps I've been writing I generally just have a few large classes with a shitloads of methods and it soons gets out of control, I document and use a huge amount of commenting, variables that are almost sentence long sometimes so you can follow the code, it is just convoluted. I never studied any proper software engineering classes, did lots of programming classes but they were all centred around small PIC micro stuff and smaller apps where you can get away with just a few large classes. Is there some decent guides on the net to efficient design and which models to use and when, would be nice to get on top of this before it gets too engrained. All of my projects I've basically been the sole coder so I've been able to get away with just doing it my way for all this time.