I never became a great adept at BASIC, but after working extensively with another language I knew how to understand the logic. Here’s what I did to gain a lot of familiarity and skill: I took a simple game (simple by today’s standards, anyway) written in BASIC and modified it. It was one of those adventure games where you move from room to room and collect things while avoiding dangers and fighting off monsters. I changed the theme, redesigned every room, changed the things you could find and the actions you could take with them, etc., all a little at the time over a period of a couple of weeks, while keeping it bug-free and playable at every step. In the end I think I changed virtually every line of code in the game, while learning which lines of code did what and what the working logic of the game was.
For me it was a great way to learn because I got to know the code as well as the original author did, and so I was in effect borrowing the brain of an experienced coder.