Myself I have learned the basics of programming using GW-Basic back in early 1990s. Once I understood what programming really is – i.e. that i = i + 1 actually means incrementing value of variable i from the computer’s memory and not a mathematical equality – that simple interpreter program running on DOS became my best friend.
(Since I didn’t have access to a PC every day back then, I actually used to have a notebook where I was writing programs down whenever ideas came, eventually checking them with GW-Basic only later, but as soon as I got a chance.)
And as I recently tweeted, I found out that there is a very easy – and 100% free – way to run a similar, compatible interpreter on Windows, Mac, or Linux: PC-Basic, which – together with reading some documentation or following some Basic tutorials – can help you or your children to at least check what programming is about if not more!
Note that if you think that Basic is a dead programming language nowadays you’re totally wrong. Actually we have Visual Basic that can and is used in the .NET world within comtemporary projects, but – most importantly – even if you’d need to learn something completely new later:
The concepts that you’d understand through Basic will remain the same regardless of the platform you’d eventually need to develop for: you’d just need to build more knowledge and skills on top of the common core!
C++, Java, .NET, Swift, and many other fancy languages and frameworks rely – at their bottom – on the same computing infrastructure, made of:
- instructions (such as assignments, aritmetic operations, performing loops, and decisional branches) to be executed at runtime;
- memory variables holding different types of values while your programs run;
- and controlling input and output to support communication with end users.
Sure, the newer technologies come with add-ons like object orientation, events, and so on, but it will be easy to learn about these enhancements once you master statements, variables and simple user interface handling that you can do with Basic alone.