Curiosity Killed the Cat, but It Will Make You Stronger
From Programmer 97-things
Make sure to take time from your busy schedule to periodically look at other people's code.
You see everyone, including you, at some point in time experiences a development skill plateau. Every problem you see seems like a variation of a problem you have seen before, and so you quickly apply the same solution you took the time out to create before. The danger here is that that solution may very well not have been the best possible solution, but instead, just the best you thought of at that time. Looking at other people's code can give you a fresh perspective on solving an old problem.
You might also discover a new application of a design pattern.
You will certainly improve your debugging skills. Curiously reading code exercises our ability to understand, and can make the discovery of bugs a lot easier. After reading lots of lines of code, you will find that you are able to discover bugs without even running a program. This does not replace unit testing, but it is still a useful skill to have.
If you are going to take the time to read other programmer's code make sure you do three things. First, ignore the comments. Admittedly, this is very hard to do since comments are generally written in your first language, and as such are much easier to read than the code. But there is good reason to do this. Comments are usually dated, and very often no longer apply to the code fragment it seems to be describing. This could lead you to a false understand of the code fragments purpose which will hamper your ability to learn. I often temporarily delete comments just to avoid this pitfall!
The second is to make sure to keep a paper and pencil handy. Make notes and draw diagrams as you pick your way through. There is nothing like a piece of paper to expand your visual memory slot.
The third and last thing to do is to make sure you understand the big picture. What is this code supposed to do? Is it central to the software's objective? Understanding the forest will help you better comprehend purpose of the tree.
So where can you find other programmer's code? Well of course looking at the code contributed by the other people in your project is a good place to start, since it would be very relevant to what you are currently working on. In my opinion the best source of good code is the Internet. Track down your favorite open source project, download the source and have a look. With the explosion in open source development over the last decade there are large chunks of code just begging to be read! And feel free to step outside your language domain. Are you a Java developer? Don't let that stop you from reading Python code. Remember it can only make you stronger.
