updated: 2025-11-17
Disclaimer: I am slightly biased, since QuickBasic64 was my first programming language, and I did programmed often on the Ti-84, which uses Ti-Basic.
I think Basic is a great language to learn if you want to understand computers. These days, people keep recommending Python or JavaScript as first languages. Python/JavaScript is good to learn early because they are simple. However, they abstract too far from the computer, so you wouldn't understand how computers work at a low level after learning them. On the other hand, learning assembly would teach you about computers, but it's got an insane learning curve.
Basic is a language that is both simple and reflects how computers actually work.
Labels and gotos are how control flow is implemented by a CPU. However, most programming languages will abstract this away, and you control the flow of a program via loops instead.
I don't think good languages should include labels and gotos in their language.
However, they are good to learn from. Basic includes labels and gotos, which reflects how computers actually work. Loops are an illusion. Learning Basic early can give you an idea of how computing may work without loops.