Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

About programming languages.

  1. Sep 4, 2012 #1
    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?
  2. jcsd
  3. Sep 4, 2012 #2


    User Avatar
    Gold Member

    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.
  4. Sep 4, 2012 #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?
  5. Sep 4, 2012 #4


    User Avatar
    Staff Emeritus
    Science Advisor
    Gold Member

    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.
  6. Sep 4, 2012 #5


    User Avatar
    Gold Member

    Good advice
  7. Sep 4, 2012 #6
    Okay, but is so tough to learn on my own. :(
    I wonder how did the programmers learn their first language.
  8. Sep 4, 2012 #7
    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: Sep 4, 2012
  9. Sep 4, 2012 #8
    I'll try. But I still need some knowledge before doing it..
  10. Sep 4, 2012 #9


    User Avatar
    Gold Member

    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 lets 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.
  11. Sep 4, 2012 #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
  12. Sep 4, 2012 #11
    +1 phinds, very good point.
  13. Sep 4, 2012 #12
    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).

    MFC is are a set of libraries for Microsoft windows. Visual C++ is an implementation of C++.
  14. Sep 7, 2012 #13
    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.
  15. Sep 8, 2012 #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.
  16. Sep 8, 2012 #15


    User Avatar
    Staff Emeritus
    Science Advisor
    Gold Member

    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.
  17. Sep 9, 2012 #16
    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).
  18. Sep 10, 2012 #17
    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.
  19. Sep 11, 2012 #18
    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).
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook