Here’s a list of some books I recommend. Good stuff, ya?
First the Ruby Books:
If you program computers, you need to learn Ruby. Why? Unless you have already learned Lisp, you need to know Ruby to understand some programming paradigms that other languages just do not have. Go learn Ruby, and then go back to using Java at your fun day job.
You also want something on security (yes you do!):
You need security. You do not need it because you feel insecure. You need it because if you do not understand how hackers take over your computers and their applications, then most likely your code and systems are vulnerable. Get these books, download yourself a WebGoat or a Hacme Bank and play them for a weekend instead of your WiizStation 360 for a change.
Feed your Unix fancy:
I think understanding Unix is critical to any successful computer career. Almost every operating system out there except Windows is a type of Unix. You should understand Unix first because it is very simple. Really it is! Go understand Windows afterward if you like; that is a very valuable skill, too. However, you should build a foundation of understanding Unix first, and if your foundation is solid you can build much taller buildingsâ€”you can even put Windows in them! But if you build your knowledge with Windows alone then all someone has to do is throw a rock at you and all your knowledge will crash down while you are shredded by glass shards.