Logic in a general sense is a great thing to learn about, but it isn't really directly useful in programming. Not more than with anything else, anyway. BOOLEAN Logic, though, is completely different.
Steps to achieving 1337 programming skillz:
1) Boolean Logic/Algebra. Optionally, you might also want to pick up an electronics 101 sort of book--something that will give you the basics on electricity and physical circuitry (no need to go too overboard on this, though, unless you find it particularly interesting).
2) Microprocessor architecture and basic assembly. MIPS or something similar would be a better place to start than x86 (it is much simpler and less convoluted, making it easier to grasp the concepts involved and faster to learn).
At this point, you should be able to design a simple CPU and feed it basic instructions. It sounds way more impressive than it is, really.
3) OS architecture, advanced assembly, C, C++.
4) Algorithms.
Some people argue that you should learn algorithms before you ever write a single line of code, but I found most of the really good books on algorithms assumed familiarity with programming concepts. YMMV.
5) UNIX/Linux, if you're not already familiar. Seriously, you're not going to get far anymore without some experience with this shit.
After all that, you'll find it is quite simple to pick up new languages. You'll also be much better equipped to tell what language is appropriate in a given situation.