Well, I for one would not recommend youtube for learning... While I've never seen the videos, I cannot wrap my mind around possibly learning something from videos limited to 10 minutes a piece... Also, don't believe books that state you can "learn in 3 weeks" or something. Softcoder is NOT exaggerating with taking years to learn!
Starting in any language is a good idea. Java is probably best if your ultimate goal is C++, since it's similar syntax. Python is probably the easiest major language to learn, but it is much different from C++ in syntax.
You'll spend lots of time with the console, making completely useless programs while learning the fundlements of the language. Do NOT negelect learning object orientation, since that's one of C++'s best features. Make sure you understand classes, pointers, references, etc, etc;
When you first try to make a non-console program, you should try a pre-made engine. This is a bunch of classes and functions that make coding much easier. I would recommend Irrlicht for beginning. For example, this is (working) code which imports and displays a 3D animated MD2 Model:
#include <irrlicht.h>
using namespace irr;
int main()
{
IrrlichtDevice *device = createDevice( video::EDT_SOFTWARE, dimension2d<u32>(640, 480), 16, false, false, false, 0);
if (!device){
return 1;
}
device->setWindowCaption(L"Omega is Awesome");
IVideoDriver* driver = device->getVideoDriver();
ISceneManager* smgr = device->getSceneManager();
IGUIEnvironment* guienv = device->getGUIEnvironment();
IAnimatedMesh* mesh = smgr->getMesh("path/to/model.md2");
if (!mesh)
{
device->drop();
return 1;
}
IAnimatedMeshSceneNode* node = smgr->addAnimatedMeshSceneNode( mesh );
if (node)
{
node->setMaterialFlag(EMF_LIGHTING, false);
node->setMD2Animation(scene::EMAT_STAND);
node->setMaterialTexture( 0, driver->getTexture("path/to/texture.png") );
}
smgr->addCameraSceneNode(0, vector3df(0,30,-40), vector3df(0,5,0));
while(device->run())
{
driver->beginScene(true, true, SColor(255,100,101,140));
smgr->drawAll();
guienv->drawAll();
driver->endScene();
device->drop();
return 0;
}
While many parts seem like a jumble of a mess, it will all make sense once you learn the Irrlicht engine. Of course, don't jump the gun, because you'll need a lot of knowledge of C++ before you reach that stage.
Happy learning.