Middle school students code in our Young Starter Lab. Click for info.

Time to start

As the parent of a child who wants to learn computer programming, figuring out where to even start can be a daunting task.  I know because I went down that winding path.  The idea that would eventually become Start Code began with a simple question:

How are students learning programming in a post-Basic world?  

An article on Computerworld.com posed this question and it caught my attention on two levels.  First, I grew up and first learned how to program in the “Basic world” so I was curious how kids are starting today.  Second, as a father this jumped out as a potentially fun project to do with my son who is entering middle school.  After doing some digging, it turns out there are lots of ways for students to learn programming today but there is no common way to learn it.  Basic used to arrive pre-programmed on most computers somit was an easy choice but this is no longer the case.  Basic has split into many flavors including Quite Basic, Visual Basic Express, and Small Basic.  There are other potential starter languages including Alice, Python, App Inventor, Ruby, Scratch, Java, JavaScript, and some might even argue the venerable C and C++, just to name a few.  Read the comments section of the Computerworld article and you will find even more languages suggested for getting started.  Choice is good and it’s exciting that we now have access to all of these free development tools.  But the downside is that we are running into the modern dilemma of too many choices leading to confusion and indecision. Information overload!

After doing some research on starter languages, I ultimately settled on two for the following reasons:

  1. The tool should be free for students to install.
  2. It should run on both PCs and Macs.
  3. It should have a vibrant online community.
  4. And finally, it should be fun to work with!

These reasons help dodge some potential hang-ups that new programmers often run into.  First, a free tool lowers the cost of entry and anyone can try it with little investment up front.  Second, with the rise of Apple, being Windows-centric will simply not work in my opinion.  More people now have Macs at home than ever before.  I won’t get into an operating system flame-war here because I am comfortable and happy working in either environment.  It’s simply a fact and students should have the option to bring either a Mac or PC to learn.  Third, an active online community means the language and tools can grow with the individual’s programming skills while also offering assistance if they get stuck.  Online tutorials and code samples also help immensely.  And lastly, the environment should be fun and forgiving on the individual.  Programming is hard and unforgiving enough as it is.  Making early mistakes shouldn’t take hours of bug hunting or messing with complex configuration settings.

For the reasons above, we finally settled on starting students with a combination of Scratch for younger students and Python for older.  These two tools combined have the potential to be a great way to start coding.  Scratch teaches programming concepts with immediate feedback while also offering an online community of literally millions of shared projects.  And Python gets the student typing “real code” and used to seeing, reading, and thinking in code structures.  Python also prepares them for later curly-bracket programming languages like Java and C++ / C# with more complex syntax and concepts as they progress.

Did we choose wisely?  I'd like to think so.  I know that there are other options out there and other programmers could argue passionately for their coding language of choice.  But ultimately the main goal is to make an informed decision and get the students started.  These two tools are merely the starting point.  Indecision or inaction is not an option because we have important work to do.  Our kids need guidance and encouragement to become the next tech generation and we at Start Code are excited to help them get there.

Editor's note: This blog entry was first posted when Start Code opened over five years ago.  As we migrated the site to a new platform it remains as timely as ever.


Leave a comment

Please note, comments must be approved before they are published