I learned C, Java, JavaScript and Obj-C from books over the years. Those books were honestly much better resources for a beginner programmer than most online resources are today.
QBasic's bultin help/documentation was good enough for me..
As I mentioned in another comment, I think if you didn’t grow up with it, you just underestimate how amazing QBASIC was as an IDE, a programming language, and perhaps most importantly as an educational tool. I mean, it even came with actual BASIC programs (GORILLA, NIBBLES, etc) right there that you could use to explore and tweak the values as you learned.
There’s no better way to learn how something works than to physically play with the actual values, change constants, change variables, and observe how that affects the behavior of the game.
If I remember correctly, there were even sample programs included in this documentation.
For example GET/PUT had this one:
SCREEN 1
DIM Box%(1 TO 200)
x1% = 0: x2% = 10: y1% = 0: y2% = 10
LINE (x1%, y1%)-(x2%, y2%), 2, BF
GET (x1%, y1%)-(x2%, y2%), Box%
DO
PUT (x1%, y1%), Box%, XOR
x1% = RND * 300
y1% = RND * 180
PUT (x1%, y1%), Box%
LOOP WHILE INKEY$ = ""