The GoF book is great as a design patterns reference (despite its age), but I would personally recommend Design Patterns Explained by Shalloway and Trott if you are new to the concepts.. Its much better at teaching you the thought process of why and when and when not to use design patterns, which is probably more important than the design patterns themselves.
But if you really want to learn more about algorithms, check out this book:
http://www.amazon.com/Algorithm-Design-Jon-Kleinberg/dp/0321...
As for programming languages, the java + eclipse combination is excellent.