I believe Review Board is the best project in the UCOSP program, but not for my bias of having been a contributor for the past few months: here, you are given the rarest opportunity of having mentors review every line of code you produce, and teach you how to do things better whenever possible (and who better to review your code, than the people who are passionate enough about code reviews to be part of Review Board?). I can think of no other way to help you learn and grow faster as a programmer than to tackle relevant and interesting problems and receive constant feedback from others with more experience.
Now that you are super pumped about your time here, some advice I wish I could have given myself at the start:
The key sticking points are:
- setting up your environment,
- getting your first patch landed, and
- sinking your teeth into your first project.
Everything is going to appear totally confusing and insurmountable at first. That’s okay! Breathe! Take little steps but make sure you keep pushing forward through the difficult parts; and ask for help if you get stuck! Once you get a tiny bit of bearing and traction, you’ll immediately start having fun: time really flies once that happens.
If you only have 30 minutes to an hour that day to work on your project – save it; put it toward another task you must fulfill. Pool together uninterrupted three-to-six hour periods when you can remove all distractions and just get in the zone for some serious Review Board work.
You’ll be more productive overall, more efficient, less stressed, and have more free time left later. Win-win. (Additionally, talk to Mike Conley about time management: he will give you great advice)
Ask for technical help:
Google and StackOverflow are your new best friends.
If you cannot find a solution (or at least somewhat promising leads) within 30 minutes, ask a mentor (especially if it’s related to reviewboard, djblets, or rbtools). They would rather that you stay unblocked.
Ask for non-technical help:
I flopped around for a while when starting my second project because I couldn’t quite wrap my head around the idea of hooks, and how they were used as part of Review Board’s architecutre. I felt a loss of motivation for not having a solid grasp on where to even get started.
Eventually I decided to talk to Mike about the trouble I was having. He helped me clarify the things that confused me, quizzed me on the concepts from code-reading to let me connect the dots in my head, and worked out a simple, step-by-step plan to get me started.
What followed were the most productive weeks of my time at Review Board. I wish I’d known to ask for help sooner; removing the mental block to get started and just “dive in” will get you sooner to the “having fun” part. It makes all the difference.
Spend time reading this blog
Previous students of UCOSP have left little gems of posts that would potentially save you a lot of frustration and energy. We went through the same things you are / will be going through. Take some time to learn from the mistakes we made, and it will save you more time in the end!
Happy hunting, and have a great term!