It really depends on what you feel you're missing and what you're hoping to do (definitions of "daily work" vary widely). If you're looking to get up on theory by doing your own program of sorts, you could do worse than start with these (in roughly this order):
Structure and Interpretation of Computer Programs - Abelson, Sussman, and Sussman
Introduction to Algorithms - Cormen, Leiserson, Rivest, and Stein
The Art of Assembly Language - Hyde
a digital logic book (not sure which is most recommended), and an architecture book (see reply by tftfmacedo)
Modern Operating Systems - Tanenbaum
Introduction to the Theory of Computation - Sipser
Compilers: Principles, Techniques, and Tools - Aho, Lam, Sethi, and Ullman (a.k.a. "Dragon Book")
Programming Language Pragmatics - Scott
A database design book (one that covers Relational Algebra, not just a book on SQL), and maybe a book on Networks. Also, Roy Fielding's paper on REST is both academic and applicable (and more approachable than you'd expect of a Ph.D paper). If you want to go all the way, an undergraduate program usually also has Calculus, Discrete Math, Linear Algebra, and Statistics. Some schools would also require Physics and Differential Equations. I'm sure I'm missing some topics, too, particularly electives.
If you can get through those and the associated problem sets, you'll have a better foundation than most.
Also, a worthy introduction to the field would be The New Turing Omnibus by A.K.Dewdney.
In fact, I'd recommend this book first, for it gives self-taught programmers a taste of nearly everything in computer science (and thus equips them to know which branch they'd like to pursue next).
start with algorithm analysis and basic data structures etc in CLRS. (ch 3,4,10,11,12) and then go back and fill in the more advanced concepts. dasgupta, papadimitriou, vazirani is good too http://www.cs.berkeley.edu/~vazirani/algorithms.html
for the compilers book, it's necessary to go through the assembly, and some of sipser (need DFA/NFA/context free grammars), as well as structure and interpretation of computer programs.
OS could come after the algorithms and preferably after assembly but before the compilers book.
So far the comments in this thread cover Functional (SICP, Haskell books), Logic (Prolog Books), and Procedural/OO (Almost everything else) Languages, so I figure I should add a reference for Stack/Concatenative Languages:
Structure and Interpretation of Computer Programs - Abelson, Sussman, and Sussman
Introduction to Algorithms - Cormen, Leiserson, Rivest, and Stein
The Art of Assembly Language - Hyde
a digital logic book (not sure which is most recommended), and an architecture book (see reply by tftfmacedo)
Modern Operating Systems - Tanenbaum
Introduction to the Theory of Computation - Sipser
Compilers: Principles, Techniques, and Tools - Aho, Lam, Sethi, and Ullman (a.k.a. "Dragon Book")
Programming Language Pragmatics - Scott
A database design book (one that covers Relational Algebra, not just a book on SQL), and maybe a book on Networks. Also, Roy Fielding's paper on REST is both academic and applicable (and more approachable than you'd expect of a Ph.D paper). If you want to go all the way, an undergraduate program usually also has Calculus, Discrete Math, Linear Algebra, and Statistics. Some schools would also require Physics and Differential Equations. I'm sure I'm missing some topics, too, particularly electives.
If you can get through those and the associated problem sets, you'll have a better foundation than most.