Is C++ worth learning?

Started by
34 comments, last by Way Walker 19 years, 4 months ago
Hi, This may seem like a thread waiting to be flamed but bare with me please. Considering I have no desire to create computer games (Okay well I do but I have higher priorities) what advantages would learning C++ have over learning C#. The reason I chose C# because that would be the option if I decided not to learn C++. I think C++ is too depthful for my needs, I want to be a computer programmer in later life and I feel C# is the future because of the speed applications can be developed using it, in relation to the speed of developing applications in C++. Also, whilst I'm posting could somebody give me some pointers on the neccessity of a Computer Science degree if I wanted to be a computer programmer, I would much rather do Mathematics. Thanks in Advance TomX
Advertisement
If you dont have any necessity to learn C++ to do games development, and not over serious about programming. Id go with C# its easy and has most of the things that C++ has, good for doing GUI programs if you want to go down that route.

If you like computers, problem solving and programming do a Computer Science degree. If you like mathematical theory and want to end up doing research or lecturing do a Mathematics degree.
*sigh* Learning to program isn't something that you just put time into & expect some kind of result from: "Is it worth putting time into learning blah.."
Just do it & find out.
If you only want to develop simple high level apps then yeah something like C# or delphi might be more up your street.
different languages aren't really that much about capabilities - If you want to do something with a language you can usually work out a way (not considering os & hardware etc). So it's about what level you are comfortable of thinking @.
Have you ever programmed before? Do you know how to "think" in code?
If you interest is purely educational then stick to something simple like delphi or I suppose c#.
Computer science dodad? Erm I'm a programmer & I have no such degree. no magical wall has appeared to stop me from coding though.
You want to become some programmer grunt in an office? Sorry I don't know of such things.
My advice would be to study what you think you can get the most from & with that push forward with life. Again I think it depends more on what you want to do than what you have educationally. Having stuff is good. But I think having subjects you know more about are more important than subjects you took because you thought you "ought to" & ended up dropping or mumbling through blindly.
But still all the best with life. Hope you find your path
_______________________________ ________ _____ ___ __ _`By offloading cognitive load to the computer, programmers are able to design more elegant systems' - Unununium OS regarding Python
Well I've not decided entirely what I want to be when I'm older but I've narrowed it down to like 4 jobs:
.: Computer Programmer
.: Cryptographer
.: Maths Researcher (Though I'm not sure what this actually is)

I have no interest in:
.: Maths teaching
.: Statistics

The problem with me taking a Computer Science course is that I, as stupid as this sounds, never want to stop learning new Maths things.

This kind of suggests I should be doing a Maths degree but this would put me at a disadvantage compared to programmers with a CS degree so I'm just not sure.

I was thinking of a 70/30 Maths/CS course, the 30% CS would be the most needed to know information about programming.

Does anybody here have any summaries of the utility of CS or Maths degrees they would like to share with me (and anyone else who might read it)?

ProPuke: Hmm, good points throughout... I have programmed before with Java and I assume I know how to "think" in code?

Thanks in Advance
TomX
If you get a math degree, you have most chances of getting a job in:
- Research, at university, if you are really good, but this *implies* teaching
- Statistics for insurance companies and such
- Accounting
- High school teaching

Thats about it. Most math graduates have no problem finding a job I heard, but they might not be the most pleasing jobs. The best you can hope for that would be strictly math is really research, but you have to be really skilled and do at least a masters degree, perhaps even more. My opinion (which you may not like), is that math is a tool. Maths are made to serve a purpose. I don't encourage you to study maths alone. If you learn maths, use it in some context. You could take a joint CS and math degree, that way you would have much more job opportunities.

About C++ and C#... Well. I'm developping a photon mapping renderer right now, and it would take the same time to develop it in any language... Its purely algorithms. The area where C# helps is graphical user interfaces, but thats not because C# is a better language, its because win32 is a crappy API, and microsoft never took the occasion to make a *real* C++ version of it (no, MFC does not count). I like the fact that C++ is powerful, and does not pretend to tell you how you should do things.

Is it "worth" learning it? Yes, but the fact is, as soon as you know a C++ like language you know them all. I would say, however, that if you learn C++ first, you're going to learn much more about programming than if you learn C# first (and remain scared of C++ for the rest of your life). C++ is simple, provided that you have some basic understanding of how a computer works, which you should, if you want to call yourself a programmer one day.

Not everyone will agree, but programmers who think that "its ok to ignore everything about how a computer works, programming is all about algorithms"... Are shitty programmers. True, skilled programmers can foresee all that will happen in the machine when the program is executed. True programmers know how it all ties together, and it helps them program more efficiently.

But then you have to ask yourself a question. Are you sure that you want to be a programmer? If you want to be a programmer, why don't you want to do computer science? Have you considered something else, like a joint maths and physics degree instead?

Looking for a serious game project?
www.xgameproject.com
Here's a useful link to the US Dept of Labor website: Occupational Outlook Handbook - Mathematicians. It explains a bit of what's out there and the outlook of the profession. Take a look around that site and look up other occupations. One thing to note is that they recommend having more than just a math degree.
Quote:Competition is keen for the limited number of jobs as mathematicians. Employment of mathematicians is expected to decline through 2012, reflecting the decline in the number of jobs with the title mathematician. However, master’s and Ph.D. degree holders with a strong background in mathematics and a related discipline, such as engineering or computer science, should have better opportunities.
Quote:Original post by Max_Payne
If you get a math degree, you have most chances of getting a job in:
- Research, at university, if you are really good, but this *implies* teaching
- Statistics for insurance companies and such
- Accounting
- High school teaching

Thats about it.

I'll have to disagree with that. Maybe it's just the way Math is taught in the US as opposed to Israel, but over here graduates with Math degrees are highly sought ofter by many high tech companies, and usually for the more interesting jobs. In fact, most Math graduates I've met ended up working in software engineer/architect type jobs.

shmoove
Why not learn both? If you plan on doing any gui windows apps then c# will quickly become your best friend. Although, from what I have gathered about the programming industry thusfar, understanding the concepts of programming (and where to find and how to use documentation) is alot more important than learning any particular language. With that said, unmanaged c++ won't hold your hand nearly as much as c# will. IMO, c# will be the future of windows and database programming. Maybe I'm wrong though...
I'll speak from the perspective of someone who (a) works in the games industry and (b) plays a big role in hiring people at our company.

When it comes to university, the nice thing is that you don't have to choose one area of focus or another. Like yourself, I love mathematics and always excelled at it (probably because I liked it so much). But, computers were my thing (programming), and it was the most "employable" skill I had that I also enjoyed pursuing.

So, I majored in Computer Science with a minor in Mathematics. I could have also gone for a double-major but quickly discovered I didn't love mathematics that much -- at least my GPA didn't! I also chose to take honors courses (which definitely satisfied my math curiosities) and senior-level courses (I had a particular professor who was brilliant and I took any course he taught).

As someone hiring others, I definitely, definitely look for a degree. Unless someone had some solid work experience, I doubt I would consider someone without a degree just because I don't want to be the first one to find out if the potential hire can stick to something and finish it.

Hiring is more about finding someone that can fulfill a certain job and less about what that person "knows." So, in that regard I would disagree with ProPuke about having a degree, and I think his signature (lamenting his unemployment) may explain exactly what I'm talking about.

Don't get me wrong: I'm not anti-non-degree. My wife couldn't do math to save her life (at any level) and so has never been able to earn a degree (bachelor degrees in the US almost always require a minimum of two math courses). But, if she was out hunting for a job in a professional field (graphic design is her thing) then I would recommend that she at least get a certification or a degree from a specialist school (like an art school) which doesn't require the more broad-based liberal arts education (which would include math).

So, bottom-line: if you're looking to be employed in a professional capacity, then you need a degree (best if it's in your profession), or at least some objective evidence of a long-term commitment (2 years +) to something, whether it's education or a related job.

And to return to your original question about C++ vs. C#: C# is great, it's not necessarily "simpler" ... someone would argue it's "better" because of it, but I won't debate it. Learn programming, then the language will be second-nature. C# is a great place to start as you'll get a lot of reward for your efforts, which will in turn encourage you to keep at it. C++ can often be infuriating, even to those who've used it for many, many years, and could sometimes do more harm than good during your initial learning.

The key skill that employer's will be looking for: problem-solving. Master that and everything else is just details.
I study computer systems engineering at UMIST (now manchester), and we learn almost everything there is to know about computer technology and software. Also we can build our own silicon chips, and circuit boards, so there is a high degree of maths tuition involved as well.
No bombs, No guns, just an army of game creators...

This topic is closed to new replies.

Advertisement