For the past few days I have dedicatedly put my mind into how certain types of programs work, and looking up information. These programs consist of:
1. internet browser
2. IM chatbot
3. Instant Messenger
4. compiler
5. operating system
I eventually plan on making one of each of these in my lifetime, and I have a long ways to go unless I get hit by a car or just plain out right die over.
I have a pretty good understanding of the basics of c++, can't say I have it all memorized or I've used it all, but I do have the understanding most of the time. I understand these are difficult tasks. For the goals that require internet access; yes, I know the first step would be to look up tcp/ip; for compiler, it would require a greater understanding of how compilers work and the c++ language. And for operating systems; how the operating system works or go and get a linux kernel blaahh blah blah. Honestly, reading through all these things that explain how something works doesn't teach me anything about how to program what they are talking about or at least give me all the commands and their definitions and how they are used, and not too many people around the internet are very helpful.
what I have learned so far has been through hands-on and the availability of explanations, plus working with php before c++ helped a whole bunch. (working on a forum right now, but having trouble with the login, but ill get there. The forum has gotten better each time I have lost it...well, I mean after I restored the computer a few times without backing up my forum hehe) But, anyway, any ideas on books for these topics, since there doesnt seem to be too many options left for me. And don't say, search Google; these forums were created to help people, not make stupid, downgrading remarks. I come as a beginner, asking a professional for advice (in a sense). Thanks.
My first piece of advice would be to forget about the compiler or OS options for now (and for some time, probably). These are both big, complex pieces of software that are created by teams of very experienced developers over a long time. As a beginner you'll just find yourself continually frustrated at getting nowhere.
Of the first three, pick one and concentrate on that - probably the IM client is the simplest. You will need to find out details on the IM system you plan to interface with (or systems, if you plan on a general client to talk to several different systems).
Once you have narrowed your criteria down you can then search for specific information, and ask specific questions - and so will (hopefully) get specific answers. Currently the question is just too broad for anyone to answer in anything other than general terms.
Some time ago I had a book called Developing Your Own 32-bit Operating System. I don't know if it is still in print but it was an interesting book. I covered point 5 (obviousely) and point 4 to some extent.