The Best First Programming Language

"<language> as a first programming language"

  • (3 Pages)
  • +
  • 1
  • 2
  • 3

32 Replies - 2781 Views - Last Post: 01 May 2009 - 07:45 PM

Poll: The Best First Programming Language (46 member(s) have cast votes)

Which language is the best for absolute beginners?

  1. Java, C#, or similar (21 votes [45.65%])

    Percentage of vote: 45.65%

  2. Python, Ruby, or similar (2 votes [4.35%])

    Percentage of vote: 4.35%

  3. C++, Objective-C, or similar (6 votes [13.04%])

    Percentage of vote: 13.04%

  4. C or similar (8 votes [17.39%])

    Percentage of vote: 17.39%

  5. Haskell, Lisp, or similar (2 votes [4.35%])

    Percentage of vote: 4.35%

  6. PHP or similar (1 votes [2.17%])

    Percentage of vote: 2.17%

  7. Javascript, ActionScript/Flash, or similar (1 votes [2.17%])

    Percentage of vote: 2.17%

  8. Other (explain in post) (5 votes [10.87%])

    Percentage of vote: 10.87%

Vote Guests cannot vote

#1 c0mrade  Icon User is offline

  • D.I.C Regular

Reputation: 20
  • View blog
  • Posts: 412
  • Joined: 16-November 07

The Best First Programming Language

Posted 25 April 2009 - 10:00 AM

There are tons of posts in each language section with the title "<language> as a first programming language".

I couldn't find one central thread about this, so let's get everyone's opinion in one place!

Let's discuss what language is best for absolute beginners to learn. These beginner programmers will be learning the very basic aspects of software development; logic, debugging, problem solving, etc..

In the poll, I tried to group similar languages together. There is really no point having separate categories for C# and Java in this context. If there are any languages that do not fit in the poll, or if you cannot decide what category your language fits in, please post and hopefully I can have the poll amended.

I'll start with my opinion, which I have copied from a post I just made in one of these "* as a first language" topics:

c0mrade said:

I always recommend C as a first language (not C++, plain C). With modern higher-level languages there are a lot of unavoidable features designed to make advanced programming easier that just get in your way when your trying to learn how to program.

C is a very simple language, and will let you learn the basic skills of a programmer, such as logic and debugging, without having to learn more than you need to.

For example, in Java, just to say hello world you need to create a class ("public class MyApp { ..."), add a method that is both "public" and "static", then write the call to print "hello world". The problem with this is that beginning programmers have no what a class is and why it is needed, and they have no idea why the method should be public and static. Plain old C has none of this overhead.

That said, I don't think it really matters that much. Starting out will be tough, but we all get through it one way or another. It's just about how easy those first steps will be. Also, I'm sure the best choice greatly varies from person to person.

This post has been edited by c0mrade: 25 April 2009 - 10:01 AM


Is This A Good Question/Topic? 0
  • +

Replies To: The Best First Programming Language

#2 no2pencil  Icon User is online

  • Head MFIC
  • member icon

Reputation: 5066
  • View blog
  • Posts: 26,448
  • Joined: 10-May 07

Re: The Best First Programming Language

Posted 25 April 2009 - 10:08 AM

View Postc0mrade, on 25 Apr, 2009 - 11:00 AM, said:

I couldn't find one central thread about this, so let's get everyone's opinion in one place!

& in each of those topics, I'll bet the most common answer was "There is not one that is best".

Why would anyone whom wants to do software development start out with PHP? Just as anyone whom is going into Web development would not waist their time learning C/C++. It's more about the content than the tools.

There is no best language to start with.
Was This Post Helpful? 0
  • +
  • -

#3 KYA  Icon User is offline

  • g++ jameson.cpp -o beverage
  • member icon

Reputation: 3089
  • View blog
  • Posts: 19,137
  • Joined: 14-September 07

Re: The Best First Programming Language

Posted 25 April 2009 - 11:04 AM

WTF, why is C++ linked with obj-C and then another choice is C or similar?

C++/C should be a selection slot imho.

If OOP is the criteria then C#/java/C++/obj-C should all be linked together.
Was This Post Helpful? 0
  • +
  • -

#4 baavgai  Icon User is offline

  • Dreaming Coder
  • member icon

Reputation: 5642
  • View blog
  • Posts: 12,359
  • Joined: 16-October 07

Re: The Best First Programming Language

Posted 25 April 2009 - 11:13 AM

I voted Java.

Java, C#, or similar
In Java you can do almost anything your old C programming books will teach, except pointers. You can even do linked lists. It's not so much the language as the concepts that drive them. To that end, you'd prefer the language to reinforce fundamentals and not hurt the student.

Java is strongly typed and almost fanatical in it's adherence to object oriented concepts. Neither of these things hurt. When your code fails, it doesn't segfault and can often even tell you what happened. It's hard to hurt yourself.


Python, Ruby, or similar
I like Python, it's a fun language. It has consistent, strongly enforced syntax; which would be good for a beginner. However, it's loosely typed, which is not good. You need to understand what you're allocating, when, and what type. Once you understand such things, you can loosen up. If you start here, strongly typed languages will seem picky.

C or similar
I'd argue there is nothing similar to C. Everyone tries to build a better C by adding layers of abstraction and safety net to it. C is actually a very simple language, perhaps too simple. A lot of the more abstract things you learn at the beginning often have to be built from the ground up.

C might be recommended for this very reason. If you start with C, you have a reasonably good idea what other languages are on about. However, it's real easy to get hurt, very unforgiving, and can make some basic programs very complex due to lack of implicit high end data structures. There is also the infamous pointer syntax; responsible for more than one mental meltdown.

C++, Objective-C, or similar
C++ is the attempt to bring all the OOP goodness into the real world. It can be easier than C, some syntax is more forgiving, the standard libraries are massive. However, it runs on top of C and still has all the confusion C pointers with the addition of it's own reference and the abstraction of OO to learn. It's easy to get hurt in C++ and not know why, even veteran programmers can attest to this.

Haskell, Lisp, or similar
Function programming is it's own critter. It's actually a pretty high level of abstraction. It's also different to how a procedural programmer thinks. While MIT teaches Schema to it's CS students, this may just be to thin the herd. Problem solving in functional languages often involves more sit back and think time than pounding out code time.

PHP or similar
PHP is a kitchen sink kind of language. It doesn't teach any good habits and it's OO is horrid. It's loosely typed, if you're lucky. It's ideal for it's job, which is presenting web content. However, web developer is a schizo kind of thing, combining may disciplines and probably not the best for a beginner.

Javascript, ActionScript/Flash, or similar
Javascript is a strange language. It actually has a number of things that make it good at it's job. Lua is similar. However, loosely typed unfocused languages are still not the best for a beginner. Add to this the sandbox of developing in a browser, which is awful. Or some bastarized command line thing.

Other (explain in post)
I once taught Terrapin Logo to children often too young to read. It teaches basic logic and draws pretty pictures. Not good for much else, but still great for a real beginner.

Assembly. I'm not sure about beginner, but if you want to know how a computer really thinks, this is where to go. As a language, is suffers from the worst of C and old style BASIC; you need to build everything and it only supports functional programming through obfuscation. However, it's the easiest language to debug, because each command does very little as is well understood. It's also not terribly complex, though a good understanding of binary math will be inevitable.
Was This Post Helpful? 0
  • +
  • -

#5 BigAnt  Icon User is offline

  • May Your Swords Stay Sharp
  • member icon

Reputation: 101
  • View blog
  • Posts: 2,392
  • Joined: 16-August 08

Re: The Best First Programming Language

Posted 25 April 2009 - 11:28 AM

I think beginners should be taught to code in binary only. Then when they learn the languages they will have a respect as to how they work and make their life easier. Thought this comes from me since I started with Java and will not have to have a beginner language again. ;)
Was This Post Helpful? 0
  • +
  • -

#6 c0mrade  Icon User is offline

  • D.I.C Regular

Reputation: 20
  • View blog
  • Posts: 412
  • Joined: 16-November 07

Re: The Best First Programming Language

Posted 25 April 2009 - 01:55 PM

View PostKYA, on 25 Apr, 2009 - 10:04 AM, said:

WTF, why is C++ linked with obj-C and then another choice is C or similar?

C++/C should be a selection slot imho.

If OOP is the criteria then C#/java/C++/obj-C should all be linked together.


Writing a C program is completely different to writing a C++ program because of the paradigm shift, so I did not want to put C with C++.

I've never actually used Obj-C. My understanding has been that it's a layer on top of C similar to C++. I see that the new version has garbage collection, so maybe it is more like Java and C#.

I did not want to put C++ with Java/C# because they are very different types of languages. C#/Java are interpreted and garbage collected, C++ is not.


no2pencil said:

& in each of those topics, I'll be the most common answer was "There is not one that is best".

Why would anyone whom wants to do software development start out with PHP? Just as anyone whom is going into Web development would not waist their time learning C/C++. It's more about the content than the tools.

There is no best language to start with.

But some are better than others. And when people are writing there first programs, they generally don't know what kind of development they will do in their career (they might think they know though).
Was This Post Helpful? 0
  • +
  • -

#7 baavgai  Icon User is offline

  • Dreaming Coder
  • member icon

Reputation: 5642
  • View blog
  • Posts: 12,359
  • Joined: 16-October 07

Re: The Best First Programming Language

Posted 25 April 2009 - 02:07 PM

View PostKYA, on 25 Apr, 2009 - 12:04 PM, said:

C++/C should be a selection slot imho.


Absolutely not. Completely different beasts. Yes, you can basically write a C program in C++, but you certainly can't do it the other way around.

C is a nice, clean, happy little language, where you often have do your own heavy lifting. C++ is a massive, messy, drunken behemoth where there's always some object to do the job and hide the mess under the rug.

I wouldn't have Objective-C, but I understand the point.
Was This Post Helpful? 0
  • +
  • -

#8 BlakeJustBlake  Icon User is offline

  • D.I.C Regular
  • member icon

Reputation: 26
  • View blog
  • Posts: 441
  • Joined: 15-February 09

Re: The Best First Programming Language

Posted 25 April 2009 - 03:37 PM

There's no bests, but there's are some safe bets. I'd say C is a pretty safe bet unless you're going to be a web developer.

Either that or you could dive into Assembly!
Was This Post Helpful? 0
  • +
  • -

#9 erik.price  Icon User is offline

  • D.I.C Lover
  • member icon

Reputation: 485
  • View blog
  • Posts: 2,690
  • Joined: 18-December 08

Re: The Best First Programming Language

Posted 25 April 2009 - 09:06 PM

I voted for Python. Like baavgai said, it will teach some bad habits to programmers. But, I have to say, when I first started programming, C looked positively frightening. Python on the other hand was quick and relatively easy to learn. I also had a lot of fun with it. So Python, although not the best language overall, might help beginner programmers get a taste of programming, without those damn segfaults.
Was This Post Helpful? 0
  • +
  • -

#10 Greg02  Icon User is offline

  • New D.I.C Head

Reputation: 1
  • View blog
  • Posts: 20
  • Joined: 03-December 08

Re: The Best First Programming Language

Posted 25 April 2009 - 09:19 PM

A language is just a tool, what's necessary is to learn how to think like a programmer. Not that I'm an expert by any means, but the one that seems to make me think at least better is Scheme, so I voted the FPL tier.
Was This Post Helpful? 0
  • +
  • -

#11 firebolt  Icon User is offline

  • D.I.C Lover
  • member icon

Reputation: 92
  • View blog
  • Posts: 5,561
  • Joined: 20-February 09

Re: The Best First Programming Language

Posted 26 April 2009 - 02:45 AM

Is VB that hard to learn for beginners?
Was This Post Helpful? 0
  • +
  • -

#12 baavgai  Icon User is offline

  • Dreaming Coder
  • member icon

Reputation: 5642
  • View blog
  • Posts: 12,359
  • Joined: 16-October 07

Re: The Best First Programming Language

Posted 26 April 2009 - 03:34 AM

View Postfirebolt, on 26 Apr, 2009 - 03:45 AM, said:

Is VB that hard to learn for beginners?


VB has all the worst things going for it. It's syntax to horrid. The "BASIC" syntax is also pretty unique and not that common.

VB6 was adequate, because it beat learning C++ for simple Windows forms. However, as a .NET mutation, it's a poor fit. It's OO implementation relies more on obfuscation than clarification. Mostly because Microsoft doesn't expect VB programmers to be able to grasp OO.

People start with VB because it's perceived of as "easy." In fact, it's just a programming language with more cons than pros. C# is just as easy/hard to write a windows program in and doesn't have all the crippling baggage.

I've listed a number of reasons to choose various languages for a beginner. VB is one of the few I'd recommend to avoid.
Was This Post Helpful? 1
  • +
  • -

#13 firebolt  Icon User is offline

  • D.I.C Lover
  • member icon

Reputation: 92
  • View blog
  • Posts: 5,561
  • Joined: 20-February 09

Re: The Best First Programming Language

Posted 26 April 2009 - 06:18 PM

Quote

VB6 was adequate, because it beat learning C++ for simple Windows forms.

Agree with that.

Quote

People start with VB because it's perceived of as "easy."
Most likely.

Quote

VB is one of the few I'd recommend to avoid.

Maybe. Maybe not as a first language, but you've gotta know some.
Was This Post Helpful? 0
  • +
  • -

#14 Ed_Bighead  Icon User is offline

  • D.I.C Head
  • member icon

Reputation: 14
  • View blog
  • Posts: 178
  • Joined: 26-April 09

Re: The Best First Programming Language

Posted 26 April 2009 - 10:30 PM

View PostBlakeJustBlake, on 25 Apr, 2009 - 02:37 PM, said:

...Either that or you could dive into Assembly!


Haha. That's a solid plan. I'm actually just finishing a class in computer organization and the majority of it has been in Assembly. Our 'final project' was to create a partial Assembler; I've just about finished it.

As for starting languages, I began with Java in high school, but use a variety of languages now. I'd say Java is a pretty solid language to begin with; however, I found python pretty easy as well. I think starting with an Obj Oriented language is helpful because it gives you a good grasp on ADTs and how to properly use methods and functions.

This post has been edited by Ed_Bighead: 26 April 2009 - 10:48 PM

Was This Post Helpful? 0
  • +
  • -

#15 bflosabre91  Icon User is offline

  • go sabres

Reputation: 105
  • View blog
  • Posts: 1,439
  • Joined: 22-February 08

Re: The Best First Programming Language

Posted 27 April 2009 - 08:34 AM

i would say vb.net or c#. vb syntax maybe really wierd and some people hate it, but for an absolute beginner, its easy to pick up on basic programming structures. Loops, using variables, If, Case statements and all that type of stuff.
Was This Post Helpful? 0
  • +
  • -

  • (3 Pages)
  • +
  • 1
  • 2
  • 3