Don't just read open-source code, join one. This way you can ask "why was it written this way" vs. just simply reading it. More often than not, there was an underlying reason for doing something abnormal, be it authentic or not.
Also, if you are actively involved, you will be able to see the progression of the codebase. You'll become familiar with the style of development from different people. This may provide different avenues for your brain to walk through when you encounter a non-affiliated project that you need to read through.