I've often heard contributing to open source projects is a great way to learn, as a student. Tor is something I would like to contribute to as I believe in the cause. I've seen the bug tracker, and guidelines for submitting patches etc in the docs.

However, am I doing more harm than good by trying to fix bugs and submit patches that may not be perfect? I'm wondering if contributors should have real world experience on large scale projects, or what's expected of contributors?

I do not want to waste the time of people actively involved in the project.

I really like all the other answers and just wanted to add that if worst comes to worst, the developers will decided one of your patches is no good and will not merge it.
– Cammy_the_blockAug 30 '14 at 17:21

Website
Tor wants to move away from Drupal for the blog. The is some discussion and call for help. If you are good at that this can also be a good place to help. Furthermore the website itself should be overhauled. You can find some information at the wiki.

In general it is also a good idea to follow IRC conversations. This helps to see what is currently going on and you might find a thing where you want to step in.

If you start sending patches to the Tor Project you usually get feedback on them. So this helps you to improve them. First it will take some iterations until your code gets accepted, but if you keep sending (good) patches they will be accepted faster.

The rule of thumb is any contribution is better than no contribution. You may contribute by fixing bugs and submit patches that may not be perfect. After all nothing that have ever been produced by a human was ever perfect. The only thing that a human can hope to achieve is pursuit of perfection. The only thing you need is experience. And experience is gained by doing things. All lasting contributions should be mutually beneficial. In your case it seems to be the case. Your effort is most welcomed and appreciated.Keep up the good work. And one last thing: Remember that no good deed will go unpunished! Do not let this discourage you!

The best way to start contributing to an open source project (including Tor), is to write unit tests for it. This is invaluable and can be done without too much expertise. The older parts of Tor especially are in need of good tests.