LEARNING WITH OTHERS IS GOOD, I AGREE
I agree with you entirely that sharing code with another is a hell of a lot more fun; as well as, being a lot more highly 'inspiring'; than, is having to work at it all alone. In this sense, they don't even need to be a teacher; just somebody who's interested in learning the same programming language(s) as you are; and, who is also willing to share their knowledge as they go along; as well as, help you find/fix problems inside of your own codes; anyway, that's how I remember going about learning to write HTML documents. Though, I did learn to write BASIC/QBASIC programs, mostly, alone; and, with the help of web sites/books/-etc.
LEARNING SOLO IS ALSO IMPORTANT
If I'm being perfectly honest, though; then, I think that the vast majority of the learning process is done all alone. It's like you can have a running partner; who makes running a lot more fun through it being a 'shared' activity; but, still you will 'need' to run; -what if you're partner suddenly gets sick/or else, decides to quit?!-; you can't learn it by just merely watching others do it; nor can they do your own learning for you; instead, it has to be done hands on. So, learning on your own is truly an excellent thing; which teaches one how to be fully independent.
SOME PROGRAMING LANGUAGES I'M FAMILIAR WITH
I'd just like to state that I myself am a 'beginning' programmer; who started off learning, BASIC/QBASIC/-etc. I'm also very deeply interested in learning both of the languages you mentioned: C++/Python. As to C++; I don't know if you have to start with learning C, first? As to Python, I really appreciate the fact that it's FREE/cross platform/has an easy syntax; and, therefore, can be downloaded and used from anywhere there is an internet connection available.
SOME OPERATING SYSTEMS I USE
Before, I was using Windows platform to do development projects; Win3.x/Win95/Win98/WinXP/Win7. But, recently, I went to C|Net site:
download.com
...and, there downloaded 'wubi' which installs Ubuntu Linux onto Windows; thus, turning my computer into a 'dual boot' system; I now have a choice of working with either Windows 7 Pro/or, alternatively, Linux Ubuntu LTS 12.04 versions.
The really interesting thing I discovered about using Linux Ubuntu was it allows you to download, and, use many different programming languages, including C/PERL/LOGO/-etc. straight from the built-in software center; but, I'm entirely new to learning Linux; so, I'm sure, there must be loads more to go and learn...; in fact, that's the main reason why I decided to join up here at Unix.com; to learn more about how operate Linux.
LINKS
Oh, in regards to learning both PERL/PHP on Windows platform. I suggest you go check out: (dzsoft.com) where they allow you to both download/learn for FREE.
To learn Web Development, I usually go to...
w3schools.com
tizag.com
...and, of course, the standard...
w3.org
VIDEO TUTORIALS
With web teaching/learning materials becoming a lot more video based/as opposed to being all text based...; which, I think, is an excellent thing; mainly because it means you don't have to go to learning by having to sit and read through every single word on a page; instead, it sort of comes to you; you just merely sit back and watch to learn...just like you were watching 'normal' TV.
A good site to learn programming online is...
lynda.com
...where they have 100's of video tutorials; but, you have to 'pay' for it.
Me, I usually like to go and visit...
youtube.com
...where I can watch programming tutorials for FREE.
There is also,...
vtc.com
...who also have video tutorials online.
Sincerely, I wish you very GOOD LUCK; enjoy studying... ;-)