Survey of People's Experiences of Learning Programming


To find out which features of a language make it easy to learn programming with, a survey was conducted of undergraduate students at different universities to discover their experiences of being taught programming.

A student from the University of Durham wrote "I'd hate to be thrown straight into object-oriented programming." It can be argued that object-oriented programming is a viable introductory programming style, depending on the method by which it is taught. To make this an effective method would probably involve any actual programming being preceded by a course in object-oriented design to give a good grounding in the principles of the structure of an object-oriented piece of software.

A student from University College London wrote "I think the best way of teaching modern languages is by showing them an abstract class diagram which is directly connected to whatever programming statements the user types in". He advocates the object-oriented approach to programming, but with the caveat that "pointers and references get very mind-bending at times!" This perhaps presents a case for structured programming or the use of a language closer to Java than to C++, Java not having explicit pointer types, therefore avoiding some of the confusion caused by the subtleties of pointers and references.

A student from the University of Edinburgh wrote "I actually learned to program with Basic" ... "What made Basic so understandable was the very simply syntax of everything: there were no braces, no special characters at the end of lines, and the commands did pretty much what you'd expect (you have to agree PRINT "HELLO" is a bit more intuitive then printf("Hello\n");)." This points out the need for an introductory language to have a simple syntax so that it is not difficult to understand, and the programmer can concentrate on their algorithm.

A student from the University of Nottingham wrote "The best [language for teaching programming] is Visual Basic, I think, due to the intellisense (it finishes it for you, so you don't have to remember every object's property names or methods to the letter), it checks syntax as you go ... you can build GUIs nice and quick which look good with an intrinsically integrated IDE with good debugging features.". The merits of endorsing a Microsoft[3] product will not be argued here. It is true that the Intellisense feature is an aid to programmers, but it is a feature of the development environment rather than the language. The same can be said of good debugging features and any sort of graphical builder. Generating incomprehensible code from mouse clicks is probably not desirable in a teaching language..