I know some simple plain C++ and have even learnt some basics of MFC programming in Visual Studio.I can create simple desktop applications now.
But the problem basically is that,I feel all that I have learnt is messed up.I learnt some flash actionscript,C++,then left programming itself for a long time and so I know stuff in bits and pieces and am not confident.I end up seeing limitations in my project plans.(Like when I decided to make a game,I started thinking 'how will I draw the graphics,how will I make an interface,how ill I put an installer' and so on,well this is just one case).
So I generally lack knowledge.
So,what do I humbly start to learn ?
I lack even the very core knowledge of computer hardware working,memory allocations,how programs actually work.....etc
I can write simple algorithms using the syntax I already know,but this is no way sufficient.I often stumble across C++ codes(online) and it seems like Greek and Latin to me(even the syntax many times).
I am interested in hacking stuff(like putting games,softwares,apps in my cell phone,modifying stuff) but all these seem way beyond my current abilities.
So,summing it up,
I want to able to come to a stage where I can develop anything I want,and I am capable of understanding all thats required for it.
Where do I start reading to become a programmer who doesn't see limitations and can go on with the task continuously?
Your question(s) is very broad. But I think that basically you are on the right path (at least in my opinion). Learning to be a skilled programmer does involve a lot of bits and pieces that you get acquainted to along the way. You said you already learned to work with a few different things like MFC and others. This is essentially how it goes. You start with a problem, say doing simple 2D/3D graphics game. Then you go question by question. If the first question is "how will I render/display the graphics?", then obviously by a little web browsing you will eventually find a few ways to do that (e.g. Direct3D, OpenGL, OpenInventor, SDL, etc.) you pick the one you like or think is the most powerful or standard or useful, learn it like you learned MFC, by making simple applications and incrementing the complexity. Then you move on to the next open question. After a while, you will be "specialized" in certain libraries and types of programs. But moving towards the "generalized" skill of being able to work with any library, that is a combination of skill with the programming mechanics (syntax, programming idioms, OOP, subversioning, cross-platform development, etc.) and with using libraries which means to be able to download a library, solve the dependencies (linking and including), and understanding the library's documentations to learn to use it. These are things that take time to develop and there is no shortcut. Reading books that are comprehensive about the C++ language (not just basic examples, but discussions of paradigms and pros and cons of certain design decisions) and reading on the subject of coding standards and practices is always a plus.
If it seems that you have enough programming skill to do a basically decent job with the coding, I suggest you just jump into what you want to do (it seems you have a good idea of that). Just go step-by-step, in the order you prefer.
Thanks Mike.Do you know of any specific books that suit my requirements?
And what about hacking stuff?Is it possible using C++?How do I go about there?