== Introduction ==
The first programming language I ever learned was BASIC on the Apple IIe. It was the best of times... it was the worst of times. I went on to learn lots and lots of other languages, but one of the things that really drew me in to programming was the ease of writing that first little proggie... the magic of being able to get the genie in the bottle to mock things back at me was enthralling.
Later, in High School, there was a wonderful series of programming classes taught by Mrs. Denton (DD as I now get to call her), and she too started her students out with BASIC, albeit a much revised version. I've often contemplated the beginning programmer and how best to introduce them to the art. The answer is unfortunately obvious -- different learners require different introductions. One thing I have decided upon, however, is that there needs to be as little as possible distracting the student from understanding the essence of what they are doing. In teaching mathematics, as an analogy, students are first taught counting, and then addition, and then multiplication. If it were taught the other way around -- with multiplication first and explaining exactly what was going on (the adding and counting stuff) later, then the learning process would be long and quite painful. The same is true of learing to program.
=== Some Issues Confronting Beginners ===
Life is hard for a beginning programmer, these days. With the Apple IIe, along with a lot of microcomputers at the time, the ''default'' mode of the machine allowed you to immediately begin programming in BASIC. No disks or installation was necessary. I think that this encouranged me and others to dive in.
Nowadays just getting started programming can be a challenge. It is like you have to know what you are doing before you can learn what you are doing. Some books might come with a CD or something to make it easy -- but these CDs aren't in the books any longer once they reach the public library. The internet offers a plethora of resources, but you must have access to the internet to attain them at the very least. Some websites have applets for you to start in, and this seems like a good idea... but it still doesn't seem as wonderful as the good 'ole Apple IIe days.
There are solutions, however. Pre-packaged, easy-to-install languages. Web-based interfaces so that there is not even an installation step. Perhaps a knoppix-like CD which boots right into a programming prompt. Or all three!
... to be continued! ...
== Getting Set Up ==
Things you'll need: