I started out with TRS-80 BASIC, then assembly language on the TRS-80, then using BASIC on the PC, and then assembly language on the PC. After that was C.
But I still have fond memories of BASIC as my first programming language.
I started out with TRS-80 BASIC, then assembly language on the TRS-80, then using BASIC on the PC, and then assembly language on the PC. After that was C.
But I still have fond memories of BASIC as my first programming language.
What i really want to point out, is that, if you look into Basic for what it shines, i think things like "GOTO line" are very good, because it teach you how the computer works under the hood (the native code will point to memory, stack, registers, program offset, call hard defined OS syscalls, etc..)
You could deal with the soft/logical and hard/physical paradigms at the same time, understanding that the logical ones are built through abstractions over the hard ones.
Later if you decide to code, than you can choose if you want/can be spoiled and use more abstract and easy languages like Python or Javascript, but also with a good understanding/intuition of how things work under the hood.
And all of this can be done in a easy way, like with jumps to a giving code position. (It alsos teach you to think over indirections, why some things are good or bad, and have the power to teach you to move on to better things, but only after you really know whats going on).
The basic GOTOS and other techniques might be bad for coding in real life, but im against taking them out of languages that can serve to teach programming to kids, and even creating more of this sort of instructions, that teach how to reason about code, where you can start with "bad practices" but that are pretty easy to use at a beginning level.
Stupid little things like taking graphics and sound for granted and not having to import libraries, using things like 'CIRCLE' or 'BEEP' or 'GOTO 10' is what your eight year old self would think its pretty cool and would run to your parents to show them with confidence in yourself.
That said, I like the options we have today for writing software that needs to be maintained :)