View Poll Results: First language should be:

Voters
628. You may not vote on this poll
  • Assembly

    24 3.82%
  • C

    136 21.66%
  • C++

    79 12.58%
  • Java

    72 11.46%
  • Lisp (or variants of it)

    26 4.14%
  • Perl

    25 3.98%
  • Python

    265 42.20%
  • Ruby

    35 5.57%
  • Doesn't matter really

    83 13.22%
  • Other

    63 10.03%
Multiple Choice Poll.
Page 1 of 17 12311 ... LastLast
Results 1 to 10 of 170

Thread: First Language

  1. #1
    Join Date
    Apr 2007
    Beans
    14,781

    First Language

    This thread is a poll on what language a complete new comer to programming should be. I hope it gets informative for a new comer to programming.

    Be aware that anyone can vote on the poll, and these are not expert opinions but those of forum members interested in programming, with varying experience.

    Python is what I recommend.

    There are many approaches to learning, some people recommend starting with a low level language (Assembly) and working up, other recommend starting with a very high level language and working down, others recommend starting in the middle. I recommend learning a language which allows you to learn the important concepts of programming while breeding good coding habits. Python is well suited for this, plus it is easy to read and learn, while being powerful.
    Last edited by LaRoza; August 20th, 2007 at 02:32 PM.

  2. #2
    Join Date
    Oct 2006
    Location
    Austin, Texas
    Beans
    2,715

    Re: First Language

    Did it just let me vote C AND Python... I hope so...

    I voted both because it depends on the person, but either of them should be a good point of entry into programming depending on what you plan to do.

  3. #3
    Join Date
    Jun 2006
    Location
    CT, USA
    Beans
    5,267
    Distro
    Ubuntu 6.10 Edgy

    Re: First Language

    This poll is meaningless: programming is not democracy but meritocracy - it is not "one man one vote" like in this poll. It should measure not popularity of the language but merit of both language and the person who voted. For obvious reasons, you cannot measure merit of person who voted.

    OK let's get opinion from known programming guru, who wrote very popular books about C++ and Java (and none about Python), Bruce Eckel. Check his old blog, many interesting articles like this one.

    I do hope this become sticky: people need to learn opinion of experts, not poll opinion of random forum members. No real expert has time to waste to hang around forums for beginners like this one. I am not real expert either, but I did talked to Bruce once and can play expert in TV
    Last edited by pmasiar; February 4th, 2008 at 03:02 PM.

  4. #4
    Join Date
    May 2007
    Location
    Paris, France
    Beans
    927
    Distro
    Kubuntu 7.04 Feisty Fawn

    Re: First Language

    Quote Originally Posted by LaRoza View Post
    Python is what I recommend.
    I don't know much about Python (never really tried it) but it seems to be quite an easy language, that will allow one to concentrate on the real problems: architecture & algorithms. This is my best bet for many wannabe programmers out there.

    For someone determined, I'd recommend C++ though. Granted it's very hard. IMHO this comes from the fact that it mixes both low & high level concepts, which are *both* important to master for any serious programmer. If you don't mind learning and not getting immediate gratifying results, then go on with C++. Expect to have hard times though.


    My final advice would be:

    1) learn the mid level concepts (decisions, loops, procedural programming, some OOP is nice too). Python seems perfect for that.

    2) temporarily forget what you just learn, go for assembly. It will teach you how the machine really works.

    3) learn basic C++, it will allow you to mix (1) and (2) and hopefully you'll learn a bit more.

    4) learn high level stuff (you should master GoF patterns). This is pretty language-agnostic.

    5) stick to C++, learn state of the art OOP, and meta programming.

    Once you get to (5), being an average programmer with language X (not expert, mind you) should take no more than the week that is needed to understand the language's syntax.



    Note: I had the very same thread idea a few days ago, but postponed it. I also hope it gets stickied (I too am tired of those endless "what should I learn first" threads).
    Not even tinfoil can save us now...

  5. #5
    Join Date
    May 2007
    Location
    Paris, France
    Beans
    927
    Distro
    Kubuntu 7.04 Feisty Fawn

    Re: First Language

    Quote Originally Posted by pmasiar View Post
    This poll is meaningless: programming is not democracy but meritocracy
    [...]
    people need to learn opinion of experts, not poll opinion of random forum members. No real expert has time to waste to hang around forums for beginners like this one. I am not real expert either, but ...
    You sure made a point. I'm no more an expert than you are, but from what I know about you, you seem to be in the development field for at least as long as me (15+ years). So even though we're not "experts" (and we may well never become ones, it's very hard work, maybe too much for me at least) I guess people may be interrested in hearing our opinions anyway.

    I agree on the point you made about the poll though, this doesn't give any indication about the voters' experience and insight, so the poll itself is kinda worthless.
    But the discussion may be insightful anyway.
    Last edited by aks44; August 17th, 2007 at 08:04 PM.
    Not even tinfoil can save us now...

  6. #6
    Join Date
    Jun 2006
    Location
    CT, USA
    Beans
    5,267
    Distro
    Ubuntu 6.10 Edgy

    Re: First Language

    I read somewhere about experiment in a high school: students who spend 3 months learning python before switching to C++ or java (i forgot which), were able to cover more ground than students who did not "wasted" 3 mnonths on Python. Next time I will keep the link...

    But here are good links too: (I;ll add more later)
    http://public.wartburg.edu/trumpet/2...03/python.html

    Syntax is only about 10% of the problem: to become programmer, you need to learn how to build data structures and process them, modularize your design, compile/run it (and interpret syntax error messages), then finaly debug it and remove inevitable semantic errors. In all these areas, Python excells over C++, and learnig it in Python will be faster.

    Of course, learning it all in C++ will make for stronger willpower, but will take beginner **much** longer.

    I would recommend C as **second** language, after learning basics in Python.

    Actually, I would recommend people to start programming before they are 12 in Game maker, without any text editing. Getting started before 12 is important, i read somewhere that around 12 some brain structures are settled, and it is **much** harder to learn second language if your brains are hardwired to single grammar only at 12. Games are fun, you can create a playable game in just couple hours!

  7. #7
    Join Date
    May 2007
    Location
    Canada
    Beans
    374
    Distro
    Ubuntu 10.04 Lucid Lynx

    Re: First Language

    Programming is neither a democracy nor a meritocracy because it is not an organization and it is not a system of government (it is the process of writing computer code).

    When one guru says one thing, another might say another. Every language has its advantages and its disadvantages. What I've found is that scripting languages often have a simpler syntax and more higher level constructs built into them. So when Bruce Eckel states that Python allows you to get more done this isn't surprising granted that scripting languages are meant to allow you to code faster. Lower level languages allow the programmer to have more control over their environment and are designed to have less abstraction (for example in C and C++ the programmer controls memory management, but a number of other higher level languages have garbage collection).

    The opinions of all programmers matter. Someone who's a guru and has been programming for a long time might not remember how difficult it was for him/her to learn to program. Also, some experts/gurus learned to program using languages that are no longer commonly used. Learning a language that is more common means that there will be more support, tutorials, books, and people who know the language that are available to help a person.

    I agree that more information is necessary than just what language you recommend and why you think it should be used. In order for a thread like this to be useful it is important that people mention their programming background along with some suggestions. So I guess that I'll start.

    I have a University degree in Computer Science. I know how to program/script using VB, Java, C, C++, Prolog, Scheme, SML, batch, JScript, VBScript, PERL, and bash (and I also know ASP, ASP.NET, and a little PHP). I first learned how to program using Turing and VB back in high school.

    The programming concepts that I think a person should learn about are:
    variables, conditional statements, loops, functions, recursion, objects/classes, reading from and writing to files, error handling, memory management, manipulating numbers, manipulating strings, regular expressions, and threads.

    Learning a programming language isn't enough to write good programs though. A person should also learn about:
    Run time complexity, proving that a program terminates, proving that a program is correct, proofs in general (of a logical, mathematical, or computer science related nature), algorithms, design patterns, debugging strategies, logic, and mathematics (subjects in algebra and discrete mathematics are closely related to computers).

    With respect to learning a language, I think that it's a good idea to learn both a high level language and a low level language. C and C++ are good low level languages that should be easy enough to find information on, and Java is a high level language that has a good amount of available information and tutorials on it (I've never used Python). Learning to script using bash is a good start for someone with little background. Once you learn how to program using one language it should be easier to move to another language because most popular languages have common elements (such as conditional statements, loops, error handling and so forth).
    Last edited by bigboy_pdb; August 17th, 2007 at 09:01 PM.

  8. #8
    Join Date
    Dec 2006
    Location
    Australia
    Beans
    1,097
    Distro
    Xubuntu 15.10 Wily Werewolf

    Re: First Language

    No offence, but this poll is meaningless.

    The key to choosing the first programming language is what the learner wishes to accomplish at the end of it.

    My own experience is that those who learn very high level languages first without exposure to lower level languages, tend to be able to write code quickly, but design their software poorly; while those who learn lower level languages first tend to be slower at producing code, but design their software better (ie. more maintainable, extendible, etc).

    The best thing IMO, is to learn at least one very high-level language and one lower-level language. It doesn't matter which one first, as long as you get enough exposure to both. Nice combinations are C++ and Java, C and Python, Java and Ruby, and so on.
    Last edited by samjh; August 18th, 2007 at 01:22 AM.

  9. #9
    Join Date
    Jun 2006
    Location
    CT, USA
    Beans
    5,267
    Distro
    Ubuntu 6.10 Edgy

    Re: First Language

    I agree with you that programmer needs to learn both high and low level language. But John Zelle the professor of computer science at MIT thinks that order matters, and Python is the best intro language.

  10. #10
    Join Date
    Dec 2006
    Location
    Australia
    Beans
    1,097
    Distro
    Xubuntu 15.10 Wily Werewolf

    Re: First Language

    Quote Originally Posted by pmasiar View Post
    I agree with you that programmer needs to learn both high and low level language. But John Zelle the professor of computer science at MIT thinks that order matters, and Python is the best intro language.
    He is one of several tens of thousands of computer science professors across the world. I've had good relations with at least two such professors while at university, and that doesn't make my word or their word authoritative.

    Funnily enough, opinions on which language is best differs depending on the backgrounds of the person answering the question.

    Back at uni, one mechanical engineering lecturer was adamant that C++ had to be taught if anyone wanted to learn about programming for engineering applications. Two of my mathematics professors differed in their opinion, but one chose MATLAB, while the other preferred Maple. One of my software engineering professors (who happened to be the head of the School) preferred Java, while others wanted Haskell, C, or Assembly.

    So there is really no definitive answer, and the experiences of one professor doesn't satisfactorily address the question at hand, either.

Page 1 of 17 12311 ... LastLast

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •