Thread: Programming language - Which one should people learn today?

  1. #1
    Registered User
    Join Date
    Jun 2007
    Posts
    14

    Programming language - Which one should people learn today?

    I realize C and C++ have been around for a long time. However...

    If someone has never really programmed with these languages, which language would you suggest he start with today so that he won't be behind times, so to speak, tomorrow?

    I know people still program with C. And it's still an old favorite of many people.

    Only someone heavily into programming can see the direction the industry is heading. The industry will never really move away from C but can someone also tell me towards which programming languages we are moving? Are there a couple of choices? C# and java perhaps?

    Any help would be appreciated.

  2. #2
    Registered User
    Join Date
    Sep 2008
    Posts
    76
    I learned c++ first and then moved to Java,still learning(This language is not gonna die).I love
    both Java and c++ but I had to choose one ,I chose Java.

    I would suggest you learn c++ first without taking too much tension in pointers but it depends on what you want to do in future ,if you want to develop client side and distributed application then learn c# from start,otherwise Java would be your best bet
    for writing server-side.

    More suggestions will come by other members.

    best regards,
    Chakra

  3. #3
    and the hat of int overfl Salem's Avatar
    Join Date
    Aug 2001
    Location
    The edge of the known universe
    Posts
    39,660
    > Only someone heavily into programming can see the direction the industry is heading
    Well, that depends on what "industry" you're interested in.
    - Big Iron banking / finance
    - Science / Research
    - Web
    - Embedded systems, say mobile devices
    - etc

    What you need is to learn how to program (aka, learn how to drive), then decide what particular kind of programming you're interested in (drive an F1 car or a truck).
    If you dance barefoot on the broken glass of undefined behaviour, you've got to expect the occasional cut.
    If at first you don't succeed, try writing your phone number on the exam paper.

  4. #4
    Registered User
    Join Date
    Jun 2007
    Posts
    14

    What would you suggest

    Salem, can you give me some specifics to the examples you gave?

    Also what programming languages do you think are going to be gathering dust in the next few years and which ones are going to be hot?

    None of us can see 10 let alone what's going to happen 2 or 3 years from now but we probably have a good idea. We all know Basic is pretty much passe, although people still do dabble in it, but no mainstream program today is being developed on Basic.

    Some languages are even derivatives of C like C++ and many programs are developed on C++ so it's probably safe to say C/C++ will still be a language developers will be using 5 even 10 years from now. The internet is developing at a rapid pace so maybe Java is where we are all heading. Unless of course the internet one day is "unplugged".

    Science/Math research programs have their own derivative languages of their own. Most are derivatives of C like the powerful Maple Mathematics software which uses C as a base.

    Maybe I should rephrase a little. Is there a programming language today newer than C or C++ that other languages will be derived from for the future?

    Of course nobody knows. But I would like to hear what peoples best suggestion of language to use for tomorrow other than C or C++.

  5. #5
    C++ Witch laserlight's Avatar
    Join Date
    Oct 2003
    Location
    Singapore
    Posts
    28,413
    But I would like to hear what peoples best suggestion of language to use for tomorrow other than C or C++.
    Chinese.

    Actually, I prefer English.
    Quote Originally Posted by Bjarne Stroustrup (2000-10-14)
    I get maybe two dozen requests for help with some sort of programming or design problem every day. Most have more sense than to send me hundreds of lines of code. If they do, I ask them to find the smallest example that exhibits the problem and send me that. Mostly, they then find the error themselves. "Finding the smallest program that demonstrates the error" is a powerful debugging tool.
    Look up a C++ Reference and learn How To Ask Questions The Smart Way

  6. #6
    & the hat of GPL slaying Thantos's Avatar
    Join Date
    Sep 2001
    Posts
    5,681
    Ignore languages completely. Instead focus on the concepts. Concepts really don't change that much while languages can. Once you know the concepts everything else is just syntax.

  7. #7
    and the hat of int overfl Salem's Avatar
    Join Date
    Aug 2001
    Location
    The edge of the known universe
    Posts
    39,660
    > Also what programming languages do you think are going to be gathering dust in the next few years and which ones are going to be hot?
    Avoid over committing to anything less than 10 years old.

    Cobol and Fortran for example (like the pyramids) have been around forever. The billions (and billions and billions, >1E11) of lines of code which already exist written in these languages mean they're not going anywhere any time soon.

    As Thantos says, ignore the language, focus on the concepts.
    The concepts take years to learn well, but a new language only takes a couple of months once you've got a solid foundation of concepts, and a couple of languages under your belt.

    For example, requirements and design are also key aspects which have absolutely nothing to do with which language you choose, or where the curly braces go.

    You may be looking at a 40 to 50 year programming career, so focus on stuff which will equip you for the long road, not some flashy toy which will barely last you to the end of college.

    Most likely, the next language is one which is going to make effective programming of multiple core processors a hell of a lot easier than it is at present.
    If you dance barefoot on the broken glass of undefined behaviour, you've got to expect the occasional cut.
    If at first you don't succeed, try writing your phone number on the exam paper.

  8. #8
    Registered User
    Join Date
    Jun 2007
    Posts
    14
    Przepraszam! I'm not looking for smartass answers like the Chinese answer from laserlight.

    So Salem you are saying to use these languages for your examples

    - Big Iron banking / finance - FORTRAN
    - Science / Research - COBOL or C/C++
    - Web - JAVA
    - Embedded systems, say mobile devices - ???
    - etc

    Multithreading looks like where programming should be, which one's good for that?

  9. #9
    Kernel hacker
    Join Date
    Jul 2007
    Location
    Farncombe, Surrey, England
    Posts
    15,677
    There is no ONE answer here. You can write accounting software in Fortran and scientific calculations in Cobol. It's just not the ideal languages for the subjects, but given a sufficient knowledge of the language, and some clever use of it in places, it will work.

    Cobol is often found in the Big Iron and Financial world.

    Scientific/engineering calculations are traditionally done in Fortran, but a lot of more modern code is written in languages such as Pascal, C or C++.

    Yes, Java is often used for Web-sites.

    Embedded systems are mostly programmed in either Assembler or C, and larger embedded systems in C++ or Ada. (Advanced mobile phones often use Windows CE or Symbian OS, both of which are using C++ for a large portion of applications).

    But you are still not getting the answer given by Salem and Thantos. Learning a language is relatively easy, if you know how to program. Salem's description of learning to drive vs. learning to drive a particular vehicle is correct. I picked up PHP in about two days to the level that I could write a fairly complex web-interface that accessed a five-table database (and I had very little experience with MySQL before that, but I had some experience in databases - and I have programmed in several other languages before then). Ok, some languages are probably more like learning to drive a fork-lift truck or a tractor (not in the sense that they are industrial/agricultural, but in the way that they work in slightly different ways - and require a bit more work to learn how to use the language). And of course, just because you can drive a fork-lift truck around in the car-park without hitting anything doesn't mean that you can put the pallet of fragile stuff on the 20ft tall shelf without a lot of practice.

    Languages fall into a few different categories:
    1. Functional languages, such as Lisp, Haskell.
    2. Procedural languages, such as C or Fortran.
    3. Object oriented languages, such as C++, Simula, SmallTalk.
    4. Stack based languages, such as Forth or PostScript.
    5. Assembler language - the nearest to the binary code that the machine actually executes. There are MANY of these. I know (well enough to produce operating system level code) x86 (16, 32 & 64-bit), AMD 29K, Motorola 68K, Digital PDP-11, Digital VAX-32, Zilog Z80, 6502. I also know a bit of 8051, MIPS and ARM assembler, but only enough to cause damage, really. [I did write the program for an eprom-programmer in 8051 assembler around 20 years ago].

    If you cover at least two to three of the above you have a good basis. Most languages in the same category will work similarly enough that a few days of practice will have you writing decent code, and a few months will get you far enough to do well. However, a language that is a different category will take more effort to learn.

    http://en.wikipedia.org/wiki/Categor...ming_languages

    --
    Mats
    Compilers can produce warnings - make the compiler programmers happy: Use them!
    Please don't PM me for help - and no, I don't do help over instant messengers.

  10. #10
    Disrupting the universe Mad_guy's Avatar
    Join Date
    Jun 2005
    Posts
    258
    Part of your job as a programmer is to adapt to constantly changing surroundings and technologies.

    If you are only beginning to learn how to program, 'what is used in the industry' should be of no consequence to your decision, you should do something that will keep you motivated, interesting and try and keep it fun. Motivation and a sense of accomplishment is more critical for beginner programmers than anything else, if you ask me. Because of it, I recommend Python as a first language normally, but that's not because I think Python will be 500x more popular over the next few years than any other language, it's because python is simple, easy and it will keep you engaged as a beginner; you get to write less, and do more.

    As you begin to mature, if you can't pick up new things quickly and go with them, learning and taking what you already know with you, you're going to be DOA and that's all.

    Hypothesis and speculation concerning the future 'next big language' or just 'next big technology' normally end up meaningless; who knows what will happen? You just have to adapt and go with it - if you can't, oh well. Not everybody can succeed, after all.
    Last edited by Mad_guy; 09-21-2008 at 10:02 PM.
    operating systems: mac os 10.6, debian 5.0, windows 7
    editor: back to emacs because it's more awesomer!!
    version control: git

    website: http://0xff.ath.cx/~as/

  11. #11
    C++ Witch laserlight's Avatar
    Join Date
    Oct 2003
    Location
    Singapore
    Posts
    28,413
    I'm not looking for smartass answers like the Chinese answer from laserlight.
    While I did mean that as a pedantic joke, the truth is that natural language plays a part as well, since it influences your ability to communicate and thus work effectively as a team. Also, it is more difficult to become proficient in a natural language than in a programming language. Ultimately, you may have it all figured out where programming languages are concerned, but if you cannot communicate effectively due to a language barrier, you will not deliver the desired product.
    Quote Originally Posted by Bjarne Stroustrup (2000-10-14)
    I get maybe two dozen requests for help with some sort of programming or design problem every day. Most have more sense than to send me hundreds of lines of code. If they do, I ask them to find the smallest example that exhibits the problem and send me that. Mostly, they then find the error themselves. "Finding the smallest program that demonstrates the error" is a powerful debugging tool.
    Look up a C++ Reference and learn How To Ask Questions The Smart Way

  12. #12
    Registered User
    Join Date
    Jun 2007
    Posts
    14

    Thanks

    Thanks, I appreciate all the replies.

    Some were very detailed and very helpful.

  13. #13
    Banned master5001's Avatar
    Join Date
    Aug 2001
    Location
    Visalia, CA, USA
    Posts
    3,685
    SQL and languages that support the .NET framework are a safe bet.

  14. #14
    Ethernal Noob
    Join Date
    Nov 2001
    Posts
    1,901
    Right now for my internship I'm doing a lot of web development, so ASP.NET, C#, javascript, and SQL (T-SQL specifically)

  15. #15
    & the hat of GPL slaying Thantos's Avatar
    Join Date
    Sep 2001
    Posts
    5,681
    I'm so sorry to hear that you have to use ASP. That is one god awful language. I assume since you are using that and C# you are using a windows server? If so I'm sorry to hear that also.

Popular pages Recent additions subscribe to a feed

Similar Threads

  1. Replies: 16
    Last Post: 04-16-2009, 09:21 PM
  2. Should it be legalized?
    By abachler in forum A Brief History of Cprogramming.com
    Replies: 168
    Last Post: 06-08-2008, 08:56 AM
  3. Which language to start with
    By slats in forum A Brief History of Cprogramming.com
    Replies: 51
    Last Post: 05-16-2008, 06:32 AM
  4. What Language to learn???
    By Serpentineocean in forum Game Programming
    Replies: 7
    Last Post: 06-10-2004, 09:07 PM
  5. Religious Bull****
    By Witch_King in forum A Brief History of Cprogramming.com
    Replies: 119
    Last Post: 10-23-2001, 07:14 AM