I eventually learned BASIC, and learned debugging and "hacking" by fixing the games that I typed in (incorrectly) from magazines and modifying them to do different things.
This is what Unix pipes did for me. By the time I started programming constructing programs as series of side effect-free transformations felt perfectly natural (to be precise I did have some previous imperative programming experience and I didn't like it / grok it)
The math teacher taught us the basic commands, but didn't explain the REPEAT command so we could understand and the importance of it. So I had no examples to follow or a real mentor to suggest a book. Later I learned some basic Pascal, but it was only in high school when I taught myself programming in C++.
Logo, then moving on to Basic on the VTech Pre-Computer 1000, then GW-BASIC on PC (which to this day I never figured out how to exit! I used to turn the computer off and on again)
Ironically, a big part of what made C fun for me were the Borland conio (console I/O) and graphics libraries. But those were fun only because I could respond to user interactions, and make simple games and other playful things. Looking back on it, that was probably the missing ingredient with Logo for me - we were never taught any ways of user input, they were just static programs that did one thing, and that feels fundamentally different.
Later I learned to write my own kits. And sometime after that, I got others to pay me for the pleasure - Winning!