If you're not intimidated by a little C, I highly recommend "Computer Systems: A Programmer's Perspective"[1] by Bryant and O'Hallaron from Carnegie Mellon. It was personally recommended to me by a PhD student from CM when I inquired about CS resources that would be directly pertinent to programmers, and it completely exceeded my expectations.
I took the class that this book was written for when I was at CMU, and it's an excellent book. If you're a programmer with some understanding of C (read: pointers don't fill you with terror), this book will give you a solid overview of systems programming (how programs are laid out in memory, basic assembly, optimization, cache behavior, sockets, multithreading).
[1] http://csapp.cs.cmu.edu/