Requirements:
- A brain
- Common sense
- A computer
In order for you to solve and add features etc. into a source you will need to know the basics of the language that you are using, most of the public sources here are in C# so I assume that you will want to learn the basics of C#.
Like the previous posts mentioned you will need to know how to debug and handle exceptions as well, Spirited had created a guide explaining

.
Once you learn this I really suggest you to look into Cohesion and Coupling, this way you can keep your code clean and clear.
PS: Don't forget to comment your code. It may not be fun but this way you can always look back at your code and remember what the purpose of that piece of code was.