One fun way to get familiar with bitwise operations is writing a virtual machine, as it involves a lot of masking and shifting bits from instructions to extract relevant pieces (dare I say bits) of information. If anyone is interested in going this route, I recommend LC-3, as it's very straightforward.
https://www.jmeiners.com/lc3-vm/