Linked by Thom Holwerda on Wed 11th Apr 2007 16:35 UTC, submitted by ShlomiFish
General Development "What makes programming languages are suitable or unsuitable as introductory languages? Which languages are better learnt first and at which order? And why what the masses think is the most suitable introductory programming language is not in fact that. This paper examines several approaches to which programming language is the best, and afterwards gives several useful relations for which languages should come first. Finally it gives a final verdict, defends it and then gives some other good food for thought."
Thread beginning with comment 229779
To read all comments associated with this story, please click here.
My experience...
by jhelmer on Thu 12th Apr 2007 00:10 UTC
jhelmer
Member since:
2006-07-05

I don't know for sure what the best language for learning is, but if you don't learn C first you really should learn it second. I have found that the easiest way to determine whether a programmer is going to be useless or not is to ask them to write some simple C code. I have yet to meet a programmer worth a damn that could not at least function in C. In my experience, the people who live and die by Java or by VB or even by languages like Python or Ruby have gaping holes in their knowledge. Being forced to write your own linked list or write your own heap or write your own binary tree or track down pointer issue or sanely track memory allocations on your own or... is a pain in the ass, but is an important part of understanding computer science.

I completely agree with Joel Spolsky's article "The Perils of JavaSchools" (referenced in TFA). I would extend that beyond Java to a lot of modern languages. Modern high level languages are great for getting things done, but not so good for learning basics.

(BTW, this guy's pushing perl as a first language? What the hell?!?!? I don't mind perl, but it's kinda evil and it's hardly intuitive.)

Reply Score: 3

RE: My experience...
by bnolsen on Thu 12th Apr 2007 15:59 in reply to "My experience..."
bnolsen Member since:
2006-01-06

Agreed, perl is evil and must be destroyed.

It's an example of a language with features bolted on by necessity with design being a distant second. It's probably more an example of what shouldn't be done with a language.

C should likely be a second language. With the caveat that the compilations should be done with either as many warnings as possible or even with a C++ compiler to catch as many errors as possible.

C/C++ really are powerful but they really only work if you make & enforce strict policy decisions for using them. That's something done on the job and not really appropriate for learning languages (although it wouldn't hurt to teach some about making & enforcing programming practices for team programming).

I still really like the idea of a very simple language like IO which is is a great "building block" language. Performance is really irrelevant when it comes to educational use.

Reply Parent Score: 1