pick up a functional programming language and learn its [concept] library, it's a great way to experiment with mathematical concepts while also having something concrete to play with. I suggest Haskell.
P.S. challenge yourself to solve problems with as few lines as possible, that way you're forced to find better (combinations of) abstractions
P.S. challenge yourself to solve problems with as few lines as possible, that way you're forced to find better (combinations of) abstractions