Am I learning the right language? [Also: Practice Problems?]

Hey all, I'm a beginner to c++, so far I have covered variables, pointers, arrays, functions, dynamic memory, basic file i/o, data structures, control structures etc, and I am about to learn about classes.

My question is, is c++ the right language for me to be learning?
I know it depends on what I want to develop, in the long term would like to:

-Help to write operating systems
-Help write video games
-Write simple applications for myself to do things which are normally impractical

Should I stick with c++ or should I do something else? I am only 15, so I have plenty of time to learn.


EDIT: I thought that rather than create a new thread, I would simply edit this one. Considering my level of experience, can anyone recommend some practice programs that I could create in c++? I have seen the ones at cprogramming.com, but does anyone else have suggestions?
Last edited on
Well, most modern OS today are written in C and/or C++, so you're on the right track there.

Most video games are also written in C++, with some scripting probably thrown in there to handle some game play logic.

Depends on what applications you're talking about. Great thing about C++, is there are libraries out there for near anything you want.
For OS/Game development, C++ is the way to go. For programs that perform basic tasks for you, I would suggest using some kind of scripting language, such as Python, but C++ will do. If you're already this far though, just stick with it. Learning other languages will be gravy if you have C++ under your belt, as it is the most complex programming language out there.
BigChocaholic,
I completely understand what you are talking about. I too am 15 years old and now. I would consider myself more of an intermediate programmer now but I had the same problem - What is the "best" language to learn?

As you said, languages depend of what you want to do. And on that basis C++ is perhaps the best for you to start with. And as ModShop said, once you learn C++, you learning any other language will become much more easier.

C++ is a great language to develop games with. But to do that you will have to learn an API, such as OpenGL. And you can do that with C++.

Developing as OS is a lot more complicated. Developing an OS requires to do everything from scratch. Many functions, keywords which are native to Windows will not work. For example, system(), will not work if you are making a completely new OS because it is native to Windows. And you will also need knowledge on Assembly. But then again, Windows is written in C, C++.

As for the type of applications you are talking about, C++ is fine. However, if you wish to have an application, for example, autonomously send an e-mail to work saying that you won't be coming, you will have to learn a web-based language like Java.

But overall, C++ is, for me, the best language to start with because it is just so powerful and is so diverse in what you can do with it.

I am into robotics and I can use C++ to program micro-controllers to control robots. Of course, you need to have knowledge in circuitry and electricity and its formulae, but you can do that.

I started just like you with C++ and if there is any help you need, you can send me a message.

Neil010
-Help to write operating systems

Good old C (not C++), just like Linus Torvalds, and others.
C++ offers some features that you won't truly need in OS development, and which would rather get in the way instead of help. But I'm not talking from my own personal experience, so take it with a grain of salt if you wish.

-Help write video games

C++. Not because it's a good language. But because many people already contributed a lot of (free) game libraries for it, and using them will make your life much easier. Now here I can say from personal experience, games are much harder than meets the eye. To keep things reasonably simple, a ready-made library is what you need.

-Write simple applications for myself to do things which are normally impractical

Anything else. I'm not joking.
C reflects the design philosophy of the 70's: fast, light and fragile (because it's fast for a reason).
C++ doesn't improve much on it. It's basically a low level programming language with high level abstractions. In plain English, this means that the programmer has an important part in keeping those abstractions working.
So you're better off, exploring a modern, high-level language, like maybe C#, D, Python.
closed account (o1vk4iN6)
It's not really the language, some languages have specific qualifications yes, such as memory management in C/C++ opposed to garbage collection in Java. Learning the fundamentals, which can be applied to almost any programming language is what you should be worried about.

I would also suggest learning assembly, perhaps not right now but I think it's good to know at least the basics, when dealing with low level languages like C (I know it's a required course in University, at least my university which isn't saying much). It doesn't hurt to know how a computer will be interpreting your code.
Last edited on
Hello, I am student of computing and I have same question. I dont know about my level of programming. I have completed reading 3 books on c++. Now I dont know what I should do next?
asfandahmed1,

If you want to get into higher level programming, c# is the way to go.
Here's a good site for it:

http://www.freewebs.com/campelmxna/tutorials.htm

I'm not sure what you want to do, but c# is MUCH more improved over c++ and if you want to get into gaming development with graphics it's better than c/C++
Banana, do you know what you're talking about? C# is as much related to C++ as Java is. C# is closer to Java. C++ is still the de facto high performance language to use, considering its about as low as you can go and still have modern conveniences. All these .NET languages and Java just add another layer or more of abstraction which will naturally lose performance. Only API I can think of that uses .NET is XNA, and that's made over the top of DirectX, which I'm pretty sure is all C.
Topic archived. No new replies allowed.