Which Programming Language Should I Learn: A Comparison of C++, Java, and C#

In summary: Instead of studying Java or C#, I am confused about the difference between c++, VC and MFC and whether c++ is used in MFC and VC to create windows programs. Some people argue that starting with a specific language is not critical and that learning a development environment is more important. The standard environment for Windows programming is the Visual Studio environment, which allows for programming in C, C++, C#, and Visual Basic. It is a "drag and drop" environment that includes a lot of free software. Once the environment is learned, it is easy to write a windows program in any of the mentioned languages. Additionally, there are different types of programming languages, such as imperative Object-Oriented languages, and it is more
  • #1
AllenHe
74
0
I am an Alevel student, and I always wanted to study programming. I chose C++ to be my first programming language. But I am not sure whether this language is better than other languages such as java and C#. I am afraid that if I study c++, in the future it might be hard for me to get a job. Instead of studying Java or C#. :(

Another question is, what is the difference between c++, VC and MFC? I am confused. Is c++ used in MFC and VC to create windows programs or what?
 
Physics news on Phys.org
  • #2
AllenHe said:
I am an Alevel student, and I always wanted to study programming. I chose C++ to be my first programming language. But I am not sure whether this language is better than other languages such as java and C#. I am afraid that if I study c++, in the future it might be hard for me to get a job. Instead of studying Java or C#. :(

Another question is, what is the difference between c++, VC and MFC? I am confused. Is c++ used in MFC and VC to create windows programs or what?

As for what language is best, that's a theological argument that has taken place here MANY times. Do a forum search.

C++ is a language
VC is Visual C, a compiler for the C programming language (and probably C++ as well, I don't remember)
MFC is Microsoft Foundation Class, a set of functions that come with Microsoft compilers

C++ is not Microsoft specific, the rest of those items are.
 
  • #3
thanks, but what about the job market?
Which language is more demanded than the other?

I have read on the internet that you can't even create a simple windows program just using c++,so I am confused. Apart from c++, what else do I need to learn before I can create a simple windows program?
 
  • #4
If you can learn a programming language, any programming language the next will be easier. Which one you start with is simply not critical. You will need to learn several before you a finished, so learn one to start with and get on with it.
 
  • #5
Integral said:
If you can learn a programming language, any programming language the next will be easier. Which one you start with is simply not critical. You will need to learn several before you a finished, so learn one to start with and get on with it.

Good advice
 
  • #6
Okay, but is so tough to learn on my own. :(
I wonder how did the programmers learn their first language.
 
  • #7
AllenHe said:
thanks, but what about the job market?
Which language is more demanded than the other?

I have read on the internet that you can't even create a simple windows program just using c++,so I am confused. Apart from c++, what else do I need to learn before I can create a simple windows program?

It depends what job market; but I guarantee that if you learn one language well then picking up a second is so much easier. I've interviewed for several software jobs and when they asked me about "programming" they wanted block diagram type thinking not syntax. "Reverse these characters" or linked list stuff. These are the type of ideas that are common among programming in general, not really language specific.

I would highly recommend starting with a project instead of books. Programming to me is like rap, you could listen and read about rap but when you actually do it, it's different. Jumping into a cipher is where the real learning happens. Real talk.
 
Last edited:
  • #8
I'll try. But I still need some knowledge before doing it..
 
  • #9
AllenHe said:
thanks, but what about the job market?
Which language is more demanded than the other?

I have read on the internet that you can't even create a simple windows program just using c++,so I am confused. Apart from c++, what else do I need to learn before I can create a simple windows program?

Programming these days is NOT about learning a progamming language, it's about learning a Development Environment, and the programming language is just part of that.

The standard environment for Windows programming is the Visual Studio environment, which let's you program in C, C++, C#, and Visual Basic, all in the "dot net" framework which is a HUGE TON of free software that goes into your program without you having to do too much. It's a "drop and drag" environment, where you "write" the actually quite large amount of software to create, for example, a single control button by just clicking on a control button and dropping it onto your form. That's it ... you drag and drop and a whole ton of software goes into your code and that doesn't even COUNT the huge amount of Windows OS software that also gets used when your program calls it (but again, for something like the creation of a control button, YOU don't have to do anything ... it's all done for you by the environment)

Once you learn the environment enough to somewhat forget about it, you can write a windows program in any of the languages I mentioned, with no problem at all.
 
  • #10
Don't worry about the language, you made a good choice, anyway like was said before i think that if you learn a language like c++ then you won't have any problem to learn other languages.
Let's say that there are different types of programming language.
C++, Java and C# are imperative Object-Oriented languages, once you know one of this category language you almost know them all.
Anyway a good computer scientist doesn't store libraries and instructions in his memory but use manuals.
When you'll be a programmer or a computer scientist you'll always have to use the manual of the language you are using.

Sorry for my bad english
 
  • #11
+1 phinds, very good point.
 
  • #12
AllenHe said:
I am an Alevel student, and I always wanted to study programming. I chose C++ to be my first programming language. But I am not sure whether this language is better than other languages such as java and C#. I am afraid that if I study c++, in the future it might be hard for me to get a job. Instead of studying Java or C#. :(

In any real world programming environment, you are going to be using very many different languages, and a lot of real world programming involves make C++, java, and C# (and python and perl and fortran goodness knows what else) work together in one system.

If you are an expert in one language, you will be decent in another, and you will be expected to learn a new language very, very quickly. If you are an expert in C++, it should take you no more than a week to be able to program in Java and C# (and vice versa).

Another question is, what is the difference between c++, VC and MFC? I am confused. Is c++ used in MFC and VC to create windows programs or what?

MFC is are a set of libraries for Microsoft windows. Visual C++ is an implementation of C++.
 
  • #13
AllenHe said:
I am afraid that if I study c++, in the future it might be hard for me to get a job. Instead of studying Java or C#.

If you really learn how to program, language will not matter that much because the concepts are more or less the same across programming languages. The only real difference should is how often you have to reference some type of syntax guide.

As far as languages for jobs, it depends on the field you go into. I work primarily on embedded software running on real time operating systems. For that you use almost exclusively C, C++, or Ada. If you work outside of aerospace, I doubt you ever use or even have heard of Ada. Desktop applications you have C#. I think Apple has their own flavor of C called Objective C that they use, at least for iPad development. Web development will use Java and on and on.

So if you plan on having a career that involves programming, the main thing is to get as much experience as you can programming. C++ is a good starting point. Try programming non trivial things as well. After you get really proficient at a language, try programming in another language to see what it is like, but I think you will find most of them have more in common than not.
 
  • #14
I am currently taking advanced c++ intro c++ and intro python lol

I do know about half of intro C++ already but this is hardly ideal. I think it depends on how much spare time you have, I mean, some people have to work or have random other responsibilities, if your obsessed you can probably manage, I hope.

Generally, it seems you need to know different languages to do different things and projects are often coded in many different languages and made to work together.
 
  • #15
AllenHe said:
thanks, but what about the job market?
Which language is more demanded than the other?

The kind of job where they hire you based on knowledge of a particular programming language is typically a low-level "code monkey" position. For positions that require more professional knowledge, the focus is going to be on your college degree, not on whether you know some random language. Once you've learned a programming language, learning another is trivial. What's more important is the generic skills, such as debugging, or reasoning about the asymptotic performance of algorithms. If you're going to start out at a code monkey position and then develop yourself professionally, it also doesn't matter what language or languages you know. If the only language you know is x, then you simply apply for the positions that require knowledge of x.
 
  • #16
bcrowell said:
The kind of job where they hire you based on knowledge of a particular programming language is typically a low-level "code monkey" position. For positions that require more professional knowledge, the focus is going to be on your college degree, not on whether you know some random language. Once you've learned a programming language, learning another is trivial. What's more important is the generic skills, such as debugging, or reasoning about the asymptotic performance of algorithms. If you're going to start out at a code monkey position and then develop yourself professionally, it also doesn't matter what language or languages you know.

What about if you have a lot of open-source project experience(with a specific theme)?

Math or Physics degree is great--In itself; this seems hardly useful (by itself) directly to getting any type of engineering job(at entry level).
 
  • #17
scout6686 said:
I do know about half of intro C++ already but this is hardly ideal.

I've been programming C++ for 20+ years. I still don't consider myself an expert. One thing that's cool about C++ is that every time you master the language, they'll add have a dozen new features.
 
  • #18
twofish-quant said:
I've been programming C++ for 20+ years. I still don't consider myself an expert. One thing that's cool about C++ is that every time you master the language, they'll add have a dozen new features.

Yeah, I can see that; also, seems more what you do with the language(s) that determines your knowledge of the language (e.g. 3d engines/rendering or implementing hashes etc).
 

What is a programming language?

A programming language is a set of rules, symbols, and syntax used to create computer programs and applications. It provides a way for humans to communicate with computers and give them instructions to perform specific tasks.

How many programming languages are there?

There are thousands of programming languages, both old and new, that have been developed over the years. However, some of the most commonly used languages include Java, Python, C++, and JavaScript.

What is the difference between a high-level and low-level programming language?

A high-level programming language is designed to be more user-friendly and closer to human language, making it easier to read and write. On the other hand, a low-level language is more complex and closer to the machine's language, requiring more technical knowledge to use.

Do I need to learn multiple programming languages?

It depends on your goals and interests. Some programming languages are more suitable for specific tasks, so learning multiple languages can be beneficial. However, it is also possible to become proficient in one language and use it for various applications.

Can I create my own programming language?

Yes, it is possible to create your own programming language, but it requires a deep understanding of programming concepts and language design. It also takes a lot of time and effort to develop and maintain a functional programming language.

Similar threads

  • STEM Career Guidance
Replies
10
Views
1K
  • STEM Academic Advising
Replies
12
Views
1K
  • STEM Career Guidance
Replies
16
Views
3K
  • STEM Academic Advising
Replies
3
Views
860
  • Programming and Computer Science
Replies
8
Views
835
  • Programming and Computer Science
Replies
2
Views
1K
  • Programming and Computer Science
Replies
9
Views
1K
  • STEM Career Guidance
Replies
15
Views
3K
  • Programming and Computer Science
2
Replies
69
Views
4K
  • Programming and Computer Science
4
Replies
107
Views
5K
Back
Top