Don't get me wrong, teachers are good and respectable people, but they spend their time theorizing about stuff, teaching it. You learn a lot by teaching, but if you are teaching the same things over and over, you tend to lose reality. Other people have spent 10 years "in the industry" and this guy spent 10 years in a classroom.
I met my C++ teacher in a computer shop today (by coincidence) and we chatted for a while about programming in general , programming jobs and mainstream programming languages.
What you really want, is to learn both. And some more. Whatever you learn, if it's just one language, you will always be "the x language programmer". There will always be languages tooled for a certain job and companies want people to get a job done. If you know how to get many jobs done most efficiently, you are good. If you know only one tool, for only one job... well, you wouldn't want to be "the hammer guy" in a construction company, right ?
I told him that i like C\C++ and i would love to get a C\C++ programming job. He told me that lots of students who got hired by companies didn't care much about C++. He suggested leaving C++ and getting into something called JDeveloper and Java because thats what companies mostly want (as he claim. I don't know what the hell is JDeveloper) , and C++ will become obsolete sometime in the near future.
To the contrary. Java is used to help beginners understand OOP concepts without the hassle of pointers or other C++ traps. C++ will never be an academic language. It might die in the future, but I can't see how C++ should be used primarily for teaching when it's so easy to make mistakes using it. Pascal is used for teaching. Java is used for teaching. You don't learn to drive in an 500PS Ferrari and you don't learn to program in C++ if easier models for learning are available.
- C++ is turning into an academic language. (helps beginners unerstand the OOP concepts)
Correct in a way. GUIs are easier and faster built in Java or C#.
- Companies choose Java (or JDeveloper) over C++ because you can make programs in much less time.
- C++ needs lots of coding to mak applications with a GUI whereas Java (or JDeveloper) don't. (or atleast much less coding)
No companies prefer console programs. Specialized software, yes. But also server systems. Can you imagine a server running Java ? Welcome to lag-land. Servers that have a high load will be written in unmanaged languages, which means C++ right now. And behind every great client is a server doing the clients work.
- Companies who need C++ programmers are either "old" companies (like prefer using console programs) or companies that make specialized software, "because C++ can deal with the system better internally" as he put it.
There is no best language. There is always one or more languages best suited for a job. And companies want to get jobs done. Only a few care how you do it. They care for time and money. Learn as many languages as you can, so you will grasp the concept behind them. If you know 5 languages, learning the 6th is just a matter of finding the right book to look up the syntax.
ok this actually scares me. I'm thinking "he doesn't know whats he's talking about" but it sounds kinda serious. What do you guys think?
Is there a problem best solved with C++ ? Yes, there is.
Is there a problem best solved with Java ? Yes there is.
Will there be a problem best solved with hjke8 ? Yes, there will be.
Don't switch to hjke8, at least not until someone put a meaning behind those random letters on my keyboard. Learn both C++ and Java and you will be able to chose the tool best suited.