When first approaching the IT world, most students show great interest in the aspects related to computer programming. In a discipline like this, constituting a fine line between art and science, a lot of attention must be paid to which programming language to learn first, in order to both meet the student’s needs and provide him with enough freedom to constantly experiment new ideas and simple algorithms.
Most technical high schools and universities around the globe use Kerninghan and Ritchie’s ANSI C (C99) as the first programming language to teach a student. Historically, this has been proven to be a good choice, as many of the languages that are used in a production context nowadays (namely C++ and Java) adopt a syntax which is very similar, if not identical, to that of the C language, with the only addition of the object orientation. After that, the transition to languages such as Java and C++ is relatively smoothly.
MIT, arguably the most prestigious technology university in the world, has an alternative approach to the matter. The very first programming course there strictly follows Abelson and Saussman’s excellent book “Structure and Interpretation of Computer Programs”, which introduces the Scheme language instead. The reason for such a choice is explained in the early pages of the book: unlike C, Scheme (a close relative of Lisp) has an extremely simple syntax, and students are usually able to understand it and write their first program within no more than two hours of practicing. This way, students can concentrate on algorithms and aspects typical of programming in itself, rather than spending their first weeks just trying to get a grasp of the language syntax itself.
However, both previous choices imply, in one way or another, that the fundamental concept of object orientation will be introduced only in later courses. This could be seen as a bad decision, especially considering that the vast majority of production code nowadays is based on object orientation. Many, though, and most notably the inventor of C++ language Bjarne Stroustrup, have expressed the concern that object orientation, being a way of thinking closer to our daily experience than procedural programming, ought to be taught from the very first programming course to ease even more the student approaching the world of computer programming.
For this reason, a valid alternative to the usual choices could be the Python language. Simple, powerful and totally cross-platform, including an intuitive debugger in its standard IDE and an excellent documentation, this language is very versatile and supports both procedural programming and object orientation, making it an excellent starting point for any CS or CE student.
Of course, the choice will also have to depend on the student’s particular learning needs. A business-oriented university may not need to teach its students advanced programming techniques and/or prefer to emphasize the layout and presentation aspect, in which case languages such as Microsoft Visual Basic or even the Flash technology (together with some HTML/CSS) should suffice.
Tags: mit, programming, pthon
Share With Others

(2 votes, average: 4.5 out of 5)
May 5th, 2008 at 12:54 am
Well, I think its very depend in our work and study field. For me, when I’m making a game, I need to learn Flash and now Java. For programming, i think C++ and Visual Basic is a good option. However, its not just about our need, but also about which program that we know the best. If we always use Java and we like, then its fine for us.
May 5th, 2008 at 4:27 am
The first programming language that I learned was not C programming but Turbo Basic. This must be the oldest programming language around the industry. I did learn C programming and then went on to study Visual programming which I think is more reliable when it comes to databases. From then on I have learned different kinds of programming language.
May 5th, 2008 at 10:37 am
I’m a professional developer and personally I dont really think it matters what language you learn first as long as you learn how to actually program properly.
I do a lot of recruitment and I’m still surprised the number of developers who just dont know the basics of how basic structures like linked lists, stacks even for loops work.
People blame languages like Visual Basic but its not the languages that make you sloppy its not knowing the basics.
I would highly recommend anyone learning a programming language read a book like “Code Complete” by Steve McConnell.
May 5th, 2008 at 10:21 pm
I have to agree with JenniP on this one. I was just having to listen to someone a few days ago talk about how they could not stand one language because it was so sloppy etc… and how another was so much more structured.
I couldn’t for the life of me make them understand that it isn’t the language that is sloppy but it’s the person using it!
You have to learn the basics properly.
May 6th, 2008 at 2:45 am
The first language I was taught in school was BASIC, but I had learned C and C++ way before that. Since then I have learnt ASM, Visual Basic, PHP, Javascript. I found some of them easier to pick up after having learnt C++. I think most of the people who start with Visual Basic just want to create windows programs without much effort and as a result the dont really learn the basics and understand what happens behind the scenes. Whereas there are no shortcuts in C++ and you are forced to learn the basics so I think it is the ideal programming language to start with.
May 7th, 2008 at 6:27 am
My first programming language was C and after that, Java. It took me a really long time to understand both. And as said, C++ and Java should be learned at any cost since they rule the IT world. Both are a must subject for any student.
May 9th, 2008 at 10:01 pm
I also started with Basic then then shifted to dbase III+. After that I continued programming using Turbo Pascal. I know C++ is better than Pascal but my instructor was a Pascal user and thats the reason why he encouraged us to use Pascal instead of C. I think all programing languages teach basics and I think its all up to you to choose which programming language you are most comfortable with.
May 10th, 2008 at 5:26 am
My field isn’t exactly programming but I am having to read and change code in order to understand the stuff on my website and make changes like adding a new widget or extending a sidebar. I am finding the process quite interesting, so much so that I want to learn it even if that means taking time out of my recreational hours. I am not using any programming books yet because the resources I am using online are simple enough for me to learn what I need to know. As to my personal opinion about whether or not beginning with a certain language makes it easier on the students, I will only be able to tell that after I gain more knowledge and confidence.
May 11th, 2008 at 1:22 pm
The first language I really learned was Basic, way back when. But I thing the important thing, as mentioned by others earlier, is to get an idea of the fundamentals of how programming is done and what distinguishes sloppy programming from good, logical programming.
I was reading some info about Ruby/Rails recently and came across this acronym which may be already familiar to everybody else.
DRY — Don’t repeat yourself (in other words, write code you can reuse and not have to write the same kind of thing over and over).
May 13th, 2008 at 7:15 pm
I think what progranming languages to learn first depends on your individual circumstances and needs. And in today’s world of new technology and automation, perhaps it is not even necessary to learn one. A good example will be having a blogging site without knowing any programming.
May 17th, 2008 at 4:59 am
There are lots of programming languages available to learn and implement it. I would also recommend “C” to learn first. It is very easy and it is the basis for all popular languages nowadays. After getting a good knowledge of “C” language you can then move ahead and learn C++.
May 19th, 2008 at 9:46 pm
Rather than starting directly with a programming language, one could start off with a design language such as HTML and DHTML. This may be an attractive alternative to many and it’s a good way to get some basic hands on experience. Since its web related, most would find this an interesting learning experience as well.
May 21st, 2008 at 1:24 pm
I think you can get away with just HTML if you just want to build sites and work on them. You don’t even need to know everything about it, just enough for wordpress. Wordpress themes are most friendly towards HTML coding so that is what I would suggest.
May 23rd, 2008 at 4:10 pm
@descorpio
That’s a great suggestion, but learning a design language could be a huge waste of time for someone who won’t be going into that field. Unless you plan on being well-rounded, you might never use that first language again and that could be a frustrating piece of information.
Granted, it seems everything is becoming web-based these days so you might be on to something.
May 25th, 2008 at 12:54 pm
I’m not that much of a coder, I know C++ and HTML but that’s it. I can read code no problem but I can’t really code in it.
June 10th, 2008 at 7:46 pm
I’ve been taught C, Pascal and Foxpro and since then familiarized myself with a few programming languages like delphi and dbase. Unfortunately, I don’t use any of them now. I work on database systems and Microsoft VB is the best language for it IMO. I’d recommend just choosing one programming language. Your first being your last one. It’s better to be really good at one than be good at 2 or more.
June 16th, 2008 at 6:04 am
I personally started out with BASIC and progressed on to C and C++ from there, I think, like JenniP says, it’s important to just pick a language and learn that comprehensively.