Studying a language is probably the worst way to learn it.
Languages are so simple to pick up these days: stackoverflow, teamtreehouse, git, etc. Latch onto a fun project with a fun mission, learn languages on the fly, and finish it. In a book, you wont learn how to debug that broken ruby gem. This will guide you in the right direction as well, it will force you to pickup pragmatic practices. [As opposed to sitting in the break room debating abstract factory patterns vs factory pattens]. After 13 years of coding, I just code on projects I enjoy now. I have to learn Go? Meh. Whatever. As a side note on php (my true love), I encourage the hate - it helps my pay.
Languages are so simple to pick up these days: stackoverflow, teamtreehouse, git, etc. Latch onto a fun project with a fun mission, learn languages on the fly, and finish it. In a book, you wont learn how to debug that broken ruby gem. This will guide you in the right direction as well, it will force you to pickup pragmatic practices. [As opposed to sitting in the break room debating abstract factory patterns vs factory pattens]. After 13 years of coding, I just code on projects I enjoy now. I have to learn Go? Meh. Whatever. As a side note on php (my true love), I encourage the hate - it helps my pay.
Java? Not until it gets the basic web functions, http://stackoverflow.com/questions/832620/stripping-html-tag...