From BASIC to Ruby: Life lessons from first programming languages on Command Line Heroes

Find out more about why BASIC is a beloved first language and how the next generation will learn to code.
215 readers like this
215 readers like this
Listen to the Command Line Heroes Podcast

The second episode of this Command Line Heroes season 3 drops today and it sent me back through a nostalgic look at the idea of first programming languages.

Languages affect accessibility

This episode taught me that BASIC was a huge leap in the democratization of computer comprehension. It's hard for me to imagine a time when computers were scarce, but that not-so-distant past was when BASIC changed the world. As Saron Yitbarek mentions, "In the early days of programming, you pretty much needed a Ph.D. to do anything." BASIC was such a monumental leap with its focus on usability (beginner-friendly commands) and resource sharing (timesharing of a single computer). It helped programming get beyond the "computer jocks" of the time (I love that phrase from the episode) and helped a new generation of people participate. The barrier of entry dropped.

First programming languages

The heart of this episode rests on the topic of learning the first language. There is so much advice out there about what to learn and how to learn it. Quite a lot has been written on the subject on here. I love hearing Saron's story of Ruby being her introduction, and how it was fun in an almost unexpected way. I had a similar experience as I dug into Ruby for a few projects. It's wildly flexible in a way that makes me happy. It's that happiness that keeps me coming back to it when I'm in a pinch, and there's something powerful about how languages can be so emotionally charged.

I first experienced programming with HTML and CSS, but the first heavy-duty language was Java. I will never forget being told on day one of class to memorize public static void main without any context on what it meant. We took a good bit of that semester to explore what it in the context of object-oriented programming, but it never made me feel as excited as when I iterate over a list using .each in Ruby or import numpy and do some mathematical magic in Python. Then I hear about how kids are learning to program with Python for Minecraft or visual programming languages like Scratch and I am inspired. The legacy of BASIC lives on in new ways. 

Which leads to my takeaways from this episode: 

  • Remember that no one is born a programmer. Everyone starts with no background. You're not alone there.
  • Learn a language. Any of them. Choose the one that brings you the most joy if you have the luxury of choosing.
  • Don't forget that all languages are there to build something. Create meaningful things for humans.

Command Line Heroes will cover programming languages for all of season 3. Subscribe here to learn everything you want to know about the origin of programming languages, and I would love to hear your thoughts in the comments below.

I'm happiest at a microphone
Matt is an advocate for open source software and currently the Managing Editor of Enable Architect. He specializes in designing technology communities that develop products and content in a way that tells a powerful story.

6 Comments

I think there are 3 points of view in programming. The first is to program to learn, at first it's the basics, but later it becomes an intellectual question about whether doing this or that with a program is possible (and works well).
Second, make something you can and will use on some regular basis. Some of these things are just little utilities, but if you use them frequently, they're worth it, and these are the ones you're most likely to keep working on to make better.
Third, the type I'm not really familiar with, is to program for a career or to make money. Not my thing, but certainly legitimate.

Nice article. My first language was Atari BASIC, I learned it on my Atari 400 home computer.

Last year, I read some article from Macworld (early 1990s) have words "Unix Jocks".

Taught myself to program in Basic as a senior in high school, in 1981-82. Dabbled on an Apple II at school, then my uncle hired me to write rent and utilities billing software. He owned an old factory and leased space to about 40 tenants, mostly artists. I had zero education in good programming, and made it up as I went, so the result was a hideous mishmash of spaghetti code and grotesque abuse of GOTO statements. Somehow it managed to work and my uncle used it for 10 years. After that I went to college and learned proper structured programming (the big thing in the 80's) on Pascal, while also dabbling in COBOL, Fortran, Ada, Lisp, 360 Assembler/Machine Language, and probably a few I've forgotten. Took a 20 year break in the Army, then decided to learn some modern languages, so I did a few projects in Java and Ruby on Rails, along with all the enabling languages like SQL, HTML, CSS, JavaScript, etc. Love that OOP! Recently decided machine learning is cool so I'm studying Python now. What nobody tells you is that each language is easier to learn. The patterns are mostly the same, just have to pick up new syntax. I agree on Ruby, easily the funnest language to program in.

Also learn a bit of everything. Having done Basic at school (didnt really get it) FORTRAN IV at uni (getting there) and then about 7 different scripting languages at work and home computer assembler when I first came across main() in C I knew exactly what it meant. Understanding the mechanics of computing makes most higher level languages easy. C++ has always looked totally natural to me while others scream and run for the hill or design new languages that go through many changes before they start to settle into the same sorts of grooves because under the lid they all do the same things, they just put different barriers in front of it.

I started out with APL in high school. I had a lot of fun experimenting with it, and I still find it useful today, along with its successor, J. Since then I learned Fortran IV, C (ok for hacking simple utilities, but lacking in error checking), BASIC, and a number of other languages. I currently use mostly Java and Ada. I recommend avoiding C++ as it is a poorly designed confusing mess that lacks decent error checking and will give you no end of trouble. Learning assembly language is useful, as it helps you understand the details of how a computer works.

Creative Commons LicenseThis work is licensed under a Creative Commons Attribution-Share Alike 4.0 International License.