I'm predominantly a backend Python Web developer, and I implemented a match 3 engine in Pygame.
See example gifs on my blog here: https://johnscolaro.xyz/blog/pygame-match-3
When I say "match3", I don't mean "candy crush" style, I mean more like "YMBAB" or "chuzzle style".
The main learning I had was how much more "stateful" a game is vs something like the backend of a webserver. I'm used to writing code with no/few side effects, but when you're juggling 50+ gems in different states of falling/idle/ exploding, different frames of animation, and different states of user input, it made me thing differently about state, testing, and probably exposed me a little to the problems gave devs grapple with day-to-day.
I have a lot more respect for the original creators of these slightly modified match 3 games like "Chuzzle".