We're a London study group on Structure and Interpretation of Computer Programs (SICP). SICP is a classic programming text (even if you don't program in lisp) and the breadth and depth of the ideas in the book will certainly improve your craft. But don't take my word for it. Peter Norvig gave a review of it: ".... The book doesn't directly tell you how to design and write an object-oriented program using the subset of object-oriented principles that show up in the syntax of Java or C++. Rather, the book tells you what those principles are, how they came to be selected as worthwhile, how they can be implemented from the ground up, and how a different combination of principles might be more appropriate for some particular problems. This approach requires you to understand the range of possibilities, and to think about trade-offs as you go through the design process....there is no better way than SICP to learn how to address the truly hard problems." Each week, we individually read sections of the book, watch video lectures, et cetera, and then meet (starting Wed 16 Jan 7pm) in a "coding dojo" format to work through problems from the book and other exercises. Students, professionals, new and experienced programmers are all welcome.