Another topic you haven't mentioned is object oriented programming. Perhaps you could explore writing a module that provides an OO interface to something you use in your day-to-day work. I enjoyed reading
which gives an easily accessible introduction to the concepts before taking you deeper.