My first peek into the digital world, although it did not boast such a name at that time, was through a Nintendo NES. I played Mario Bros for ours at a friend's house. At some point, my parent's got a computer. An apple Macintosh LC 4/40. I was a bit disappointed because my friends had PCs, but, heh, that was a computer. And I found Hypercard. It was a revelation. You could actually do things with a macintosh. It was a high level, easy to learn computer language that taught me the basics (flow control and such), as well as some not so basics (events, so called "objects" like buttons, and so on).
After that, I met some friends and we all bought HP48 calculator. Again, one of the best machines I ever had in hand. It's programming language (RPL) was slow like hell, hard to write, but when you did write something it was a reward in itself...
My friends still had amigas (it was 1996), and were "true amigans"(TM). So they convinced me to buy an amiga, which I did. They shoàwed me how to code using assembly language. It was nice to finally see how it was done inside (but you can argue that Assembly on an amiga is hardly core programming, since this machine was designed to be programmed "high level" in assembly language, and all of the OS is at your fingertips). Shortly after I read the K&R, and I began C, to know what, as a true assembly coder, I loathed. Not so long after that, I began to understood that C wasn't such a bad thing after all. Then came C++...
Today, I code in Visual Basic.NET for my work, and it's not a bad language at all. But I wouldn't advise it fir teaching, as most of the concepts are quite difficult to grasp (as with all object oriented languages)
Finally, it might seem this is not a really common path, but it's what did work for me.
My first peek into the digital world, although it did not boast such a name at that time, was through a Nintendo NES. I played Mario Bros for ours at a friend's house. At some point, my parent's got a computer. An apple Macintosh LC 4/40. I was a bit disappointed because my friends had PCs, but, heh, that was a computer. And I found Hypercard. It was a revelation. You could actually do things with a macintosh. It was a high level, easy to learn computer language that taught me the basics (flow control and such), as well as some not so basics (events, so called "objects" like buttons, and so on). After that, I met some friends and we all bought HP48 calculator. Again, one of the best machines I ever had in hand. It's programming language (RPL) was slow like hell, hard to write, but when you did write something it was a reward in itself... My friends still had amigas (it was 1996), and were "true amigans"(TM). So they convinced me to buy an amiga, which I did. They shoàwed me how to code using assembly language. It was nice to finally see how it was done inside (but you can argue that Assembly on an amiga is hardly core programming, since this machine was designed to be programmed "high level" in assembly language, and all of the OS is at your fingertips). Shortly after I read the K&R, and I began C, to know what, as a true assembly coder, I loathed. Not so long after that, I began to understood that C wasn't such a bad thing after all. Then came C++... Today, I code in Visual Basic .NET for my work, and it's not a bad language at all. But I wouldn't advise it fir teaching, as most of the concepts are quite difficult to grasp (as with all object oriented languages)
Finally, it might seem this is not a really common path, but it's what did work for me.