Learning how to program requires a firm grasp of logic and
mathematics. These are learned over a lifetime. There are some people
who, regardless of how hard hey try, will never understand computer
logic. There are others who are born with it.
Languages -can- be "picked up", certainly, provided a basis of
knowledge has already been learned. It is very easy for someone who
has coded in UNIX C for five years to learn Visual C++ API. MFC can be
a different story.
It is very easy for someone with a background in Java to learn to
write VB Scripts, and thereby learn Visual Basic. Come to think ot it,
it would be very easy to teach a simian how to learn Visual Basic.
Because of MS's introduction of the .NET framework, interviewing a
potential programmer can cover a lot of different bases:
1) Are you familiar with C#?
Good answer: I've coded C and C++. C# won't be much of a stretch.
Bad answer: Isn't that a piano key?
2) Are you familiar with database structuring or queries, especially
those pertaining to the .NET framework?
Good answer: I've used MySQL (or DB5, or Oracle, or...)
Bad answer: Queries? Aren't they all from San Francisco?
3) Are you familiar with web interfaces and/or security?
Good answer: I've learned to program in ASP, or can use PHP
scripting, or CGI, or...
Bad answer: I use AOL.
Programming is a lifestyle, not an occupation. Serious programmers
come home from their job writing GUIs or DLLs or COMs and sit down and
work on their own personal projects (usually in a UNIX environment, am
I wrong?)
So, I will STRONGLY disagree that a language can be "picked up".
Languages can be learned over time, and mastered over an even greater
amount of time, but a successful candidate will have several years of
experience in logic based and/or object oriented programming, and you
can only hope their will apply good programming practices to whatever
it is you'd like them to learn. If not, you're sinking your own ship
there.
More toward the earlier question of "What is C++ good for?"
I'll just say, C++ is the answer.
You need to find out the question.
-Crypticant
"The great thing about Object Oriented code is that it can make
small, simple problems look like large, complex ones."