Best language for beginning programmers?

Posted by on in Blogs
An August 11, 2005 posting on Slashdot led me to a question and long thread on the "ask Slashdot" forum. A teacher at Hong Kong International School asked the following question: "Does anyone out there have suggestions as to what would be a better language to start students with? Ideally one that might be more 'enticing' as well?" Once people find out I work for Borland, I am often asked the same question, especially by parents with younger students. This is probably one of the most frequently asked questions in the history of Computer Science and education. Of course, there are many responses (most with wonderful supporting background information).

In the responses to the question, multiple languages were recommended including (in alphabetical order):

  • Ada

  • Assembly

  • Basic

  • C

  • C++

  • C#

  • Cobol

  • Delphi

  • Eiffel

  • Forth

  • Haskell

  • Java

  • JavaScript

  • Lisp

  • Modula

  • Occam

  • Pascal

  • PERL

  • PHP

  • Python

  • Ruby

  • Scheme

  • SmallTalk

  • Tcl


Edsger W. Dijkstra, in his manuscript titled "How do we tell truths that might hurt?", had the following to say about specific programming languages:

  • FORTRAN --"the infantile disorder"

  • PL/I --"the fatal disease"

  • It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration.

  • The use of COBOL cripples the mind; its teaching should, therefore, be regarded as a criminal offence.

  • APL is a mistake, carried through to perfection.

  • Projects promoting programming in "natural language" are intrinsically doomed to fail.


My own personal opinion? As I've stated many times before, I love almost all of the programming languages (little, large, compiled, scripted, domain-specific, special purpose, general-purpose, dynamic, markup, low-level, high-level, very high-level, procedural, functional, logical, object-oriented, esoteric, declarative, visual, aspect-oriented, concurrent, multi-paradigm, etc).

There are so many great programming languages, it's hard to recommend a few or even just one. Sometimes the language choice is dictated by factors like: computer hardware, operating system, memory constraints, preparation for a standardized test, college entrance exam, preparation for a job, etc. I will always tell everyone interested in computers and programming, to learn the foundations: introduction to computers, machine organization/computer architecture, algorithms and data structures, file systems and databases, distributed computing, programming languages and compilers, operating systems, and software engineering.

ACM provides a draft, model curriculum for Kindergarden through High School computer education.  If I was a teacher of progamming to young students (primary, middle, and high school), I would first start them by using Lego Mindstorms and it's graphical programming language, RCX Code. After playing with the Lego Mindstorms for awhile, my personal programming language recommendations would be to explore Logo, Squeak, and Pascal/Delphi.

The wonderful thing about programming languages is that there is a world of choices to pick from.

Programming is Life!


About
Gold User, Rank: 1, Points: 2466
David Intersimone (known to many as David I.) is a passionate and innovative software industry veteran-often referred to as a developer icon-who extols and educates the world on Embarcadero developer tools. He shares his visions as an active member of the industry speaking circuit and is tapped as an expert source by the media. He is a long-standing champion of architects, developers and database professionals and works to ensure that their needs are folded into Embarcadero's strategic product plans. David holds a bachelor's degree in computer science from California Polytechnic State University at San Luis Obispo, California.

Comments

  • Guest
    Russ Wizinsky ii Friday, 21 October 2005

    Speaking of languages, I am having my son start with Turbo C++ in the Borland computer musuem. Is that being updated anymore, I'd love to have access to Borlands version of compiled basic..

  • Guest
    David Intersimone Thursday, 15 December 2005

    We do sell Turbo C++ suite. You can order it from our shop.borland.com web site. It is one of our "classic" products - still being sold but not developed. If your son wants our latest C++ product - check out C++Builder 2006, part of our Borland Developer Studio 2006.

  • Guest
    David Davenport Saturday, 29 April 2006

    Robo because I wrote it to teach CS students the logic of programming.

  • Guest
    pc Monday, 8 May 2006

    give them java - easy, useful, and a stepping stone to c++, the .net languages, works on windows/linux/mac, allows GUI programming, web, file access, graphics - all with a focus on the core concepts. otherwise i'd start with a scripting language, maybe javascript, and teach them html along with it. at least, then, the kids who don't want to program can still write cool web pages, and those who want to program will be introduced to logic, functions, etc.

  • Guest
    Versicherungsvergleich Monday, 19 February 2007

    "give them java ..."

    java is good, but it it operates on the client.

    I only program for the web, and use PHP - operates on the server, and i've full control.

  • Please login first in order for you to submit comments
  • Page :
  • 1

Check out more tips and tricks in this development video: