How are students learning programming in a post-Basic world?
After doing some research on starter languages, I ultimately settled on two for the following reasons:
- The tool should be free for students to install.
- It should run on both PCs and Macs.
- It should have a vibrant online community.
- 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.