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

What programing language should i learn?

  1. Mar 4, 2010 #1
    im currently a grade 11 student in vancouver, already took all my gr 12 courses except for english so i get an easy in gr12 XD

    i was wondering, for sci/eng what is the best programing language to learn and were could i find some resources for it

    so far after a brief 20-30 min search i came up with

    Fortran and C++ and im leaning towards fortran but i see a few negative points for it...
    1. i cant find any tutorials/self teach/beginers guide for it except through fortran77
    2. there seems to be alot of critism of it, being old and such
    3. it seems to be dying

    im more afraid of spending 2+ years on a language and find out that its obsolete or than anything
     
  2. jcsd
  3. Mar 4, 2010 #2
    Take AP Computer Science or IB
     
  4. Mar 4, 2010 #3
    my school dosnt have that :/ and its too late for IB (and the ib at my school is piss poor, liks srsly...)
     
  5. Mar 4, 2010 #4
    Ah right, forgot you are in grade 11; you can self-study AP Computer A, if you don't like that you can apply for concurrent studies at Langara (given that you completed info-tech 12)
     
  6. Mar 4, 2010 #5
    but thats going to take a whole year >_> (to get the infotech 12) and langaras abit far =_=
     
  7. Mar 4, 2010 #6
    Summer school, but it's too late now...
     
  8. Mar 4, 2010 #7

    sylas

    User Avatar
    Science Advisor

    If it is a straight choice between C++ and fortran, I would say C++.

    The downside is that it is more complicated.

    The upside is that it is more widely used; and more in the style of other modern languages.

    But consider learning both! The hard bit is learning to program. The syntax stuff you can pick up quickly and a reference book at your desk helps with library differences. The advantage is that you get to appreciate two ways of doing things. And once you can do that, you'll be able to pick up other languages as well in a hour or so, enough to try a quick easy program with them.

    No doubt, you'll only have classes for one of them. In which case, I'd go with the C++. But even so, if you have access to the compilers, it can be fun to try a program or three in another language, just to help appreciate that it is all about the design and the algorithm; not the language you use to write it.

    (Of course, there are designs that work better on one language than another. C++ is the more flexible in this regard as well, which is also partly why it is the more complicated.)

    Good luck and which ever way you go, have fun! -- sylas
     
  9. Mar 5, 2010 #8
    Python is my favorite starter language 'cause it's a good all around language, it's rather easy to learn, and it happens to have tons of scientific computing libraries. If the choice is between C++ and fortran77, I agree with sylas that C++ is the better choice because it's far more widely used and C (close enough to C++ that knowing C++ will help you learn it) is much more useful for engineers.
     
  10. Mar 5, 2010 #9

    DavidSnider

    User Avatar
    Gold Member

    C and C++ probably won't go completely obsolete for a long time because it's still the one of the most widely used languages for low level programming and there is a ton of existing code out there that is cheaper to modify than to completely re-implement.

    However, software is getting much larger and more complicated every year and in order to manage such large systems effectively they are constantly coming out with new tools and programming languages to make it easier to manipulate them at a high level.

    The tools (including programming languages) will go in and out of fashion all of the time, but the fundamental concepts of computer science will not. So, as long as you have a good abstract idea of what is going on you'll pick up everything else pretty easily.
     
    Last edited: Mar 5, 2010
  11. Mar 5, 2010 #10

    Borek

    User Avatar

    Staff: Mentor

    Once you know how to program in C/C++ learning FORTRAN will be much easier. You just have to throw away 75% of what you know and instead learn rigid and dumbed down FORTRAN syntax :wink:
     
  12. Mar 6, 2010 #11
    You can't go wrong with C++. It's somewhat of a standard for developing a foundation. But it IS complex and may not be the best to self-teach.

    I like Python. It was developed by a mathematician. It's excellent for developing and seeing answers to quick and dirty problems. Whatever language you pick, try to get an up to date text on algorithms and data structures.

    Way outside of the box, check out http://www.softronix.com/logo.html . You'll never use Logo in "The World", but it's an excellent learning and thinking tool.

    I don't think there's a way to ensure you'll use the language you study. But it's best to get a good foundation first.
     
    Last edited: Mar 6, 2010
  13. Mar 6, 2010 #12
    Logo?

    *Wiki*

    I never knew that it had anything more than turtle graphics.

    @OP: C++ is good to start, it gives you a grasp of what's going on. Python is good too.
     
  14. Mar 6, 2010 #13
    Personally, I started on Java and think it was wonnndeerrrrrful

    C++ is good too, but a little less forgiving.
     
  15. Mar 7, 2010 #14
    The list processing is strong. The graphics can be a diversion, but it can be a thinking and learning tool. I'm surprised more schools don't formally show it to math minded kids (grade 8+). But like I said, way outside-the-box...
     
  16. Mar 8, 2010 #15
    I guess C++ is better than Fortran. I definitely won't recommend Fortran as a beginning language mainly because its syntax aren't that fun. But if you want a more basic language for mathematics and showing off, I guess go for it. If you want to actually program and functionality, C++ is far better and more reliable.

    Now, I still prefer JAVA since it was my first language and I feel that it's a good language to grasp computer programming concept. It is also the most popular language as of now. The downside is that it's really slow, but it works (and I like it's universal characteristics). Python is another good language. Scheme is good for learning purposes as well, but the syntax are pretty bad and it's not that useful. But it does have its plus.
     
  17. Mar 8, 2010 #16

    sylas

    User Avatar
    Science Advisor

    I agree with this. I had taken it that the choice was either/or between C++ and Fortran.

    But if Java is an option, that would be better.

    If the question was being asked by a teacher, I would definitely say Java rather than C++. C++ is very large and easy to make mistakes. Java is doesn't have so many options or different ways of doing things... and for a first learning language, that is important. It doesn't take long to learn C++ if you have Java under your belt; the syntax and concepts are very similar. Still, you can start with C++ if that is what is on offer at your school.
     
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook