This is the first time in 15 years since I first heard of BGP I really feel I've gotten it. (Ok, I never had to use BGP in production, and still don't, but now I really want to- which is another sign of an absolute fantastic instructor)
Glad you've found the magic of BGP. Somehow it became my favorite protocol probably 17 years ago. And glad you found a good instructor for it - I know of at least two different people who both claim (separately) that I taught them BGP over a single 90-minute lunch chat. It's not hard, but it can easily be taught in ways that just don't make quick sense. I honestly don't know what magic I may have said during those particular lunch chats, but I suspect it came down to:
1) BGP considers the two actions of [establishing neighbors] and [defining prefixes to be advertised] to be two completely independent actions. This is unlike any other protocol.
2) Think of the "next-hop" field as a "last-hop" field, or perhaps as an "egress point" field.
3) Slow down and "think like a router": start with a completely empty BGP table. Learn one prefix from one neighbor: realize that the very first route, as long as it's valid, always wins the path selection algorithm. Now, learn all the other prefixes that come from that particular neighbor (they all win as well). Next, learn one prefix from a second neighbor, and manually perform the PSA until you have a winner. Repeat for all the other routes from that neighbor. Obviously, your real router can think through it a lot faster, but this is what happens under the hood.
4) You can think of the overall prioritization of routes two different ways:
4a) Top to bottom: within a particular protocol, the protocol's own rules (cumulative metric, path selection algorithm, hop count) decide which path is the best path. If two protocols both want to submit the same prefix into the routing table, the protocol with the lowest administrative distance wins. For any given IP address, the longest route that covers this address is what matters for the final routing decision.
4b) Bottom to top: The routing table starts off as implicit-drop. As soon as one valid route is learned, that route's IP addresses now change to a new next-hop, etc., and the longest route is what matters for every IP address. If two protocols both have the same route for the RIB, the protool with the lowest AD wins. If a particular protocol has more than one possible egress point for a particular prefix, that protocol's own algorithm handles finding a winner.