What Language Would You Recommend To a Beginner?

Nov

18

by Mike Fleming at 8:23 am (6 Comments) .NET, General


Someone asked me an interesting question earlier this week that got me thinking quite a bit.  Someone had a son that was interested in building web based applications and wanted to know what they should learn first.  The answer to this question could have many answers depending on who it was asked to.  Should they start with a scripting language (PHP, ColdFusion) or should they start with a more object oriented language (Java, .NET)?

I feel that one should start by learning the core basics of programming.  Get your mind thinking in a logical way that allows you to solve problems.  After all, that is essentially what programming is: You are solving a problem.  I am not sure that learning a script based language would fully accomplish this.  I ended up recommending .NET (C#) to start learning the fundamentals, then moving on from there. 

If someone asked you this question, what would your answer be?  I am very curious to hear the opinions of others on this topic, as I get asked this question more and more.


Categories .NET, General | Tags:

6 Responses to “What Language Would You Recommend To a Beginner?”

  1. John Barrett

    November 18, 2009
    9:17 am

    Interesting post!

    I would say that it depends what you are are trying to do. I started taking Intro to CS at university of Hawaii and it was java, and I used to say that this was the best starting point, but I have changed over the years.

    In general I would say java was a great starting point, as it taught core programming fundamentals, OOP, etc.

    Since then I moved to AS 3 and learning AS 3 was easy with the java background. Therefore in general I say learning the fundamentals & OOP can get you up to speed quickly on any language.

    I would say for the web, ColdFusion is a great starting point. I say this as I have taken lots of student help who knew basic html, maybe some javaScript and I got them up and running making dynamic web site in a very short time. Also, I would say that doing more advance web programming ColdFusion is great!

  2. James White

    November 18, 2009
    10:59 am

    I think C# is a good language and so is Java. However, I think the best language(s) to start with are C/C++. yes they are complex, yes they give you way more power than a beginner programmer will ever need, but C/C++ has impacted almost every language that has come after it directly or indirectly especially C# and Java. if you can wrap your mind around C++, then C#, Java, are a lot easier. I wish I had started with C++ years ago myself. I did later learn it, and was glad I did. I think from a scripting perspective, the first language to learn should be JavaScript, it sets the table for many of the scripting languages used today.

  3. Bob Courchaine

    November 18, 2009
    12:23 pm

    Given your description of what the beginner wants to do (“…interested in building web based applications”), I would recommend Coldfusion!

    Somewhere I heard CF referred to as a good example of a Domain Specific Language (DSL) for web applications.

    DSLs have the benefit of bypassing many hurdles encountered when compared to trying to do something with a more general language.

    Since the beginner is already placed in the web application domain, start using the best DSL for the job!

    Plenty of time to learn other tools as the need arises!

  4. Mike Fleming

    November 18, 2009
    7:37 pm

    James brings up an interesting choice with C++. I browsed around Google a bit and many folks also recommended learning C++ as a first language.

  5. Ben Nadel

    November 18, 2009
    7:52 pm

    How are they going to be learning? Self-taught? Taking a class?

    For me, I love to see how things work; as such, whatever the lowest-hanging fruit would be to write some code and have it work would be the answer.

    Sounds like something Javascript would be great at. Runs directly in the browser. NO compiler, NO additional software, NO application server.

    Also has OO and non-OO principles, closures, functions, event-driven programming; it’s a super robust language.

  6. Mike Fleming

    November 18, 2009
    8:02 pm

    Ben, much like yourself I enjoy seeing how things work as well. So while learning, anything you can do that works will boost your self confidence and push you onwards. I could easily see a beginner getting frustrated quickly learning C++.

    You also bring up another good question I am curious about. How do most people learn programming? I am one of those that learn the best through self teaching. I enjoy just building a small app using something new to further my skills.

Leave a Reply or Return to Top