Are you here to confess the confusing, inconsistent mess you just jammed into your company's repo? Have you ever opened up one of your old projects and thought, "What is this? What was I thinking?" Even bad, smelly code can function. In "Clean Code" Uncle Bob Martin expands on a set of rules and best practices for writing good, clean code and reducing WTFs/minute. Buy it. Read it. Share it. Your co-workers will thank you. Your future self will thank you.
High Performance Browser Networking
Seven Languages in Seven Weeks
This is the mind-expanding drug of software books. It goes in depth with seven really groovy languages (Clojure, Haskell, Io, Prolog, Scala, Erlang, and Ruby). You'll learn new concepts and get a better understanding of the trade offs made by different languages. Even if you never use any of these languages again, it'll make you a more well rounded programmer. Plus, you get to add seven new languages to your resume... maybe.
The Pragmatic Programmer
A fantastic best practices book. Very pragmatic. Hunt and Thomas pack years of experience into simple, practical programming advice. It's highly recommend for everyone by anyone who's anyone. Full of useful tips, techniques and pitfalls to avoid. Fun fact: it was the first book in the "Pragmatic Programmer" series. #surprise
The Mythical Man-Month
It seems like every week there's some new, shiny language or framework to learn. Fortunately, people don't change all that quickly. The Mythical Man-Month is a project and people management classic that's more relevant than ever today. Learn why adding more developers to a late project only ever makes it later and other gems. It's a great book for managers and developers alike.
Don't Make Me Think
This isn't exactly a "programming" book but it's still a must-read for programmers. It's basically the book on web and mobile usability. It doesn't matter how clean you code is or how elegant your abstractions are, if users can't figure out your product, it's useless. If every dev was forced to read this, the internet would be a much friendlier place ... or at least the interfaces would be.
SICP (The Wizard Book)
It may look like an 80's choose-your-own-adventure book, but it's really a freshman Computer Science textbook from MIT. You may have heard how "understanding Lisp will make you a better programmer even if you never use List." Well, this book is a great way to understand Lisp (specifically, Scheme). It also goes into a ton of intense CS fundamentals. At the end you even get to build a compiler... in Lisp! #hardcore
Cracking the Coding Interview
Feel free to skip this one if you're a purist who only hacks on open-source projects beside an effigy of Richard Stallman. For everyone with an interest in "gainful employment," this book is essential. Sooner or later you're bound to run into a whiteboard interview and working through this book all but guarantee you'll be prepared for it. It's got lots of great advice and practice problems too. You could be Linus Torvalds himself but if you freeze up on a simple sorting problem and start yelling obscenities at your interviewer... you probably aren't getting the job.
Working Effectively with Legacy Code
Hooray! Legacy code! Everyone's favorite thing. Maximize your fun with this awesome book about working effectively with all sorts of legacy codebases. So wheather you're maintaining the US nuclear arsenal on floppy disks or just supporting a ecommerce site that only works on RHEL5, this book is for you. Seriously though, it's a great book. Well worth the read.
Code Complete 2
"Complete" is an understatement here. This book is massive. Literally like 1,000 pages. It covers how best to proceed in almost any situation a programmer might find themselves in. Get it. Read it 5 times. Profit. Despite the title, it's not a really a sequel, don't worry if you haven't read "Code Complete 1."