Learning to program
I was talking with some co-workers yesterday during a break when the topic of children and programming came up. More specifically, how to get children started programming. That led me to thinking about how I first got started and the progression from that first step to where I am today. As best I can tell, the following list pretty much sums it up:
- Basic on Apple IIe (circa 1990, self-taught)
- Visual Basic 3.0 on Windows 3.1 (1993, self-taught)
- Visual Basic 4.0 on Windows 95 (1995, self-taught)
- Pascal on VAX (1996, college)
- HTML 2.0 (1996, self-taught)
- Assembly on VAX (1997, college)
- C on Unix (1997, college)
- Java on Windows 95 (1997, self-taught)
- C++ on Windows 95 (1998, college)
- Delphi on Windows 95 (1998, self-taught)
- Smalltalk on Windows 95 (1998, college)
- Prolog on Windows 95 (1998, college)
- ML on Windows 95 (1998, college)
- HTML 3.2 (1999, self-taught)
- CSS pre-1.0 (1999, self-taught)
- JavaScript 1.0 (1999, self-taught)
- HTML 4.0 (2000, self-taught)
- CSS 1.0 (2000, self-taught)
- JavaScript 1.3 (2000, self-taught)
- XML 1.0 (2000, self-taught)
- JSP (2000, self-taught)
- XSLT 1.0 (2001, self-taught)
- SVG 1.0 (2002, self-taught)
- PHP 4 (2003, self-taught)
- VB.NET (2005, self-taught)
- C# (2005, self-taught)
I’m sure I’m missing a few steps the list, but I think this just about covers it. It’s certainly a long way from Basic on the Apple IIe to C#. Clearly, this would not be the ideal path for someone who wants to learn programming from scratch.
How did you learn programming?
Disclaimer: Any viewpoints and opinions expressed in this article are those of Nicholas C. Zakas and do not, in any way, reflect those of my employer, my colleagues, Wrox Publishing, O'Reilly Publishing, or anyone else. I speak only for myself, not for them.
Both comments and pings are currently closed.




5 Comments
I think it is less about the path than it is about the motivation. I was first motivated to learn programming when I was running Apple II programs in basic. I decided I wanted to cheat (I hated that the computer kept beating me in Yahtzee). So I stopped the program (CTRL-C even back then I believe) and would look at the code to change a variable and give me more rolls.
That was my first real self-motivated programming experience. I’ve been hooked since.
David S. on February 14th, 2008 at 11:10 pm
Haven’t bothered separating out platforms, or different versions of each language, but here goes:
1. Sinclair BASIC (circa 1986, self-taught)
2. COMAL (circa 1990, school)
3. Pascal (1992, University)
4. C (1993, University)
5. PostScript (1993, University)
6. Scheme (1993, University)
7. Prolog (1994, University)
8. Access 1 & 2 (1995, self-taught)
9. HTML (1996, self-taught)
10. Java (1996, self-taught)
11. Powerhouse (1997, work-trained)
12. PHP (2000, self-taught)
13. JavaScript (2000, self-taught)
14. Flash Scripting (2000, self-taught)
15. Delphi (2001, self-taught)
16. CSS (circa 2003, self-taught)
17. C# (2005, self-taught)
I couldn’t claim to still be able to write all of the above, of course, and the levels of experience vary hugely (6 week class to 8 years daily experience) but I think that’s everything.
Totally agree with David S. about motivation, although I think the path has an effect too. How good you are at the next language/dev. environment is largely dependent on what you’ve learned/experienced before.
Incidentally, I still have a copy of the "Usborne Guide to Computers" on my desk at work, to make me chuckle every once in a while, and remind me where I started from (see the bottom of this page for some example images: http://uncleclive.co.uk/)
Richy on February 15th, 2008 at 9:23 am
@Richy – I hear you. I couldn’t write assembly or C to save my life right now.
Nicholas C. Zakas on February 15th, 2008 at 12:08 pm
Interesting topic. Any of you guys have a theory on which methods help a person retain more programming knowledge? Does teaching yourself a language work better than learning it in a college course?
(I’d suspect it’s more a matter of motivation – like you’ve all mentioned, personal interest, and length of use, but I figured I’d ask anyways.)
Mike Lee on February 18th, 2008 at 1:03 pm
@Mike – interesting questions. I find that I retain things better when I’m working on them because I want to rather than because I need to. I picked up most of what I know through personal exploration rather than stuff I learned at work.
I think college courses are important for programming concepts, but not necessarily specific languages. The base stuff is the most difficult to grasp and the most useful to learn in person and hands-on. Once you know your algorithms and data structures, you should be able to apply that to any language. Syntax memorization is much easier to pick up than conceptual understanding.
Nicholas C. Zakas on February 20th, 2008 at 12:21 am
Comments are automatically closed after 14 days.