You are absolutely 100% correct. People expect to be able to build things instantly, and when they can't, they get frustrated, disheartened and just decide that it's not worth it. That's just the way it is.The problem is with unreasonable expectations. Because C/C++ are billed as the most powerful language, people expect bigger results their first time out.
My point was, however - which you didn't address - is that it is easier to get up and running with python. You can start to build cool stuff, fast. You can go from no-knowledge to building a GUI app in probably a week or so. Can the same be said about C++? I am doubtful, and it is because of this that I do not recommend it. Again: motivation is critical for a beginner, and seeing yourself build something real is the best way to keep it going.
Having said that, what do you think will impress a beginner more (generally speaking): seeing themselves after, say, a week creating things like basic GUI calculators or a notepad-clone, or after a week still being in the console and just getting to structures and just beginning to grok those weird things called 'pointers'? For gods sake, why do you think so many people flocked to visual basic for a beginning language, and still do? Because it tells their subconscious they're actually accomplishing something.
Of course, you can argue as much as you want that this is dependent on the person, in which you would be right. But really ask the question to yourself - or an actual beginner - and the answer should be immediately clear as to what will impress someone starting off more. This thread you have posted in should already be evidence of that.
"This thing of which you look at does not exactly replicate in all ways what I already have, and therefore, you should not learn it because by definition it is already inferior in all possible ways."1. It (python) is not C/C++.
Fair enough. Keep in mind you probably *need* close to the metal. He doesn't.2. It lacks comprehensive close-to-the-metalness.
You sound like you have an exciting job, honestly. :] However, I doubt this new person using python will be worried about performing "a sigmoid calculation on a vector of floats using the GPU" using anything for a while.#2 is pretty important for a lot of scientific and engineering work, where every ounce of computing power needs to be sqweeeeeezed out of a system. Most of the applications I develop are pushing or exceeding the limits of todays COTS hardware.
Who knows. I might be developing web apps in 20 years, I might be dead, I might be homeless, I might work at Intel, or the apocalypse might happen.While this may not be an issue for 99% of programmers today, what about in 10 or 20 years? Will you still be writing web apps or do you hope to move on to something more complex?
Regardless, this is an entirely useless statement and, if anything, all you're trying to do with it is plant a seed of doubt by saying "in 20 years you're going to look back on what you learned and feel like an idiot for not listening to me because I was right, and you will realize everything you've done is insignificant and worthless, compared to what I have done." It also seems to imply that you think that if he doesn't learn C++ he'll be developing web applications or something 'boring' all his life, which is completely nonsensical if not just downright ludicrous.
So you're saying your success depends entirely on the tool you choose to learn now? As a greenhorn? I'm pretty skeptical of that in its entirety. If in 20 years you have exceedingly complicated tasks to accomplish, I would figure that 20 years experience will guide you more than just knowing C/C++ or whatever language you will be using. I would much rather hire someone that has 20 years experience in a good set of languages, than someone who's spent the last 20 years just doing the same thing over and over. If nothing else, it indicates that the 'jack of trades' is more open to change and adaption, and that's excellent, because programming is about adaption. Would you rather have the ability to move or only be dead in the water?When the time comes, will you have 10 or 20 years of experience in a languiage that can meet the engineering requirements of your complex tasks, or will you have 10 to 20 years experience with python?
It's just a tool, nothing more. Not a religion, not a mandate, not a constant. A tool. Tools get replaced. Better tools come around, and old tools can still have their place in a new world (no, not everybody uses top of the line power tools.) Pick the right tool, don't waste time on superficial bullcrap and you'll go farther than you would otherwise. I can promise it.
Perhaps the real problem is that you only have a hammer, so everything looks like a nail?