This work is licensed under the Creative Commons Attribution 2.5 License (or at your option a greater version of it).
Copyright © 2006 Shlomi Fish
This work is licensed under the Creative Commons Attribution 2.5 License (or at your option a greater version of it).
Revision History | ||
---|---|---|
Revision 1562 | 2006-08-04 | shlomif |
Forked the template from a previous work and working on it. | ||
Revision 1691 | 2007-04-10 | shlomif |
Finished writing the document - about to release. | ||
Revision 1837 | 2008-04-25 | shlomif |
Many spelling or phrasing errors corrected, and with some clarifications added. | ||
Revision 1838 | 2008-04-25 | shlomif |
Corrected some problems in the new text. 2nd Revision. | ||
Revision 2319 | 2009-02-27 | shlomif |
Added missing id’s to footnotes, so they won’t be randomly generated. | ||
Revision 4855 | 2011-06-05 | shlomif |
Convert many ASCII single-quotes and double quotes to Unicode ones. |
The purpose of this essay is to contemplate what is the best introductory programming language to teach for beginning programmers, or for a beginning programmer to learn on his own.
First, I will mention several approaches taken by other people who discussed this issue before, and try to explain why I disagree with them. Then I will propose and explain some relations (“Language A should be learned before Language B”) that are good to follow. After that, I will propose my verdict, and discuss some orthogonal alternatives. Finally, I will discuss some different types of teaching and how each should be conducted differently.
As for how I started programming myself, I should note that I learned BASIC at the age of 10 (back in 1987), and then learned C when I was 15 years old (in 1992); I later learned Visual Basic for Applications and when I was 19 years old I was introduced to Perl and UNIX at my workplace, which was a web site creation shop (back in 1996, when the Internet started to become popular). I have later learned other languages and technologies and still do to a large extent.
One note that is in order is that you shouldn’t feel bad about having followed a different ordered in the programming languages you’ve learned. By all means, you can still learn things on your own otherwise.