As many others have already asked...why do you want to learn C++ (or any particular programming language)?
Let's give a for instance...."I grew up playing DikuMUD and I want to learn not just how to run my own server, but to make modifications to it as well." (I think Diku was written in either C or C+, not C++ though)
I want to create interfaces for people to run minor programs at my company.
I want to be a script kiddy and be a black hat hacker (or white hat, depending)
Great! That said, there are a lot of basic things you will need to learn besides the programming itself. Compiling, linking libraries, designing interfaces, etc. If you are designing for a certain platform and want an easy user interface developer, you might want to use something like Visual Studio (I think it was Visual Basic/Visual C++ back when I was interested in that types of stuff).
That said, if you are wanting to learn to program just for the fun of it....go down to the local Radio Shack (oh, wait...nm) order a Raspberry Pi from Amazon. Cheap, can do a lot of things, and because you are not working on your main Windows machine, WHEN you have a major screw up (not if...WHEN), you won't be re-installing windows and doing a lot of swearing. Now, I am not sure if it's still built like this, but I think the iRobot *(or was it the Roomba) used to have a fairly open architecture, so once you got beyond the Pi, you could buy one of those to start to progress towards building robots.
Thing is, even the best programming requires the basics. These are not best taught in a language where a misplaced or missing punctuation mark can screw everything up. Learn the basics in an easier language and then take those basics and apply them in other languages. Lot of advice given already on which ones you can use, so I would suggest listening to them.
Oh, one more piece of free advice....Document, document, and then DOCUMENT YOUR CODE SOME MORE!. Use LOTS...no...MOUNTAINS of comments. Write down what you think each section of code is supposed to do. There is nothing worse than trying to go though and figure out where your bug is, and why it is, if you can't remember what you were trying to accomplish with a particular subroutine. Your future self with thank you.
Let's give a for instance...."I grew up playing DikuMUD and I want to learn not just how to run my own server, but to make modifications to it as well." (I think Diku was written in either C or C+, not C++ though)
I want to create interfaces for people to run minor programs at my company.
I want to be a script kiddy and be a black hat hacker (or white hat, depending)
Great! That said, there are a lot of basic things you will need to learn besides the programming itself. Compiling, linking libraries, designing interfaces, etc. If you are designing for a certain platform and want an easy user interface developer, you might want to use something like Visual Studio (I think it was Visual Basic/Visual C++ back when I was interested in that types of stuff).
That said, if you are wanting to learn to program just for the fun of it....go down to the local Radio Shack (oh, wait...nm) order a Raspberry Pi from Amazon. Cheap, can do a lot of things, and because you are not working on your main Windows machine, WHEN you have a major screw up (not if...WHEN), you won't be re-installing windows and doing a lot of swearing. Now, I am not sure if it's still built like this, but I think the iRobot *(or was it the Roomba) used to have a fairly open architecture, so once you got beyond the Pi, you could buy one of those to start to progress towards building robots.
Thing is, even the best programming requires the basics. These are not best taught in a language where a misplaced or missing punctuation mark can screw everything up. Learn the basics in an easier language and then take those basics and apply them in other languages. Lot of advice given already on which ones you can use, so I would suggest listening to them.
Oh, one more piece of free advice....Document, document, and then DOCUMENT YOUR CODE SOME MORE!. Use LOTS...no...MOUNTAINS of comments. Write down what you think each section of code is supposed to do. There is nothing worse than trying to go though and figure out where your bug is, and why it is, if you can't remember what you were trying to accomplish with a particular subroutine. Your future self with thank you.