I feel familiar with basic programming things like loops, recursion, function calls, classes, inheritance and such and have read introductory books on the language features of java (like headfirst java) and c++. I have also read headfirsts book on design patterns and read books about best practices like test first development etc.however I do not feel educated to write whole applications, because whenever I start writing a small (but not trivial) program many (design) questions pop up and I am not in contact with anyone who could give me advise. therefore I am looking for:
- a tutorial/book that explains how two write a full (but not small as the usual textbook program) application and also explains why certain things were done in a certain way
- a manageable (but not too small) open source program (java would be best), that is nicely written and I can learn from