Yanjia Xin from the University of Waterloo summarizes her UCOSP experience:

I have grown quite a bit since I started working on Review Board. Prior to Review Board, I rarely did anything on web development, touched a little bit HTML and Javascript. I was a beginner in python, and never actually seen any Django projects before. Throughout this term, all those things have changed. Here are some tips I would like to share with all of you.

Don’t panic

Now you made it into UCOSP! Congratulations! If you’re nervous about what is going to happen, don’t worry, it will pass. You will meet a lot of new people just like you and as time goes by, everything will become easier.

One thing to get started is to poking around the code base and get familiar with the tools you are going to use. That is to say, be prepared. Once you are prepared, there is nothing left to fear. Once you pick a project to work on, get some time to understand your situation before making any changes. Make a plan, and talk to your mentor about it so that you will be working towards the right direction.

Stay Organized

Believe it or not, I often underestimate the time I need to finish a week’s job, especially during exam period. If you’re one of those super-organized people, this tip will be easy for you. The rest of us, however, need to develop a system for keeping track of meetings, appointments, assignments, and projects. Get an organizer or planner and keep on top of all your work. Schedule some concrete time each week to do your work and don’t wait till the end. You will never know what will come up to block your progress. And as you look ahead, set goals for yourself — and then strive to achieve them.

Take some notes

Take notes, and you’ll thank yourself later. If you’re a whiz with your handheld, jot notes electronically. Otherwise, invest in a small notebook that you can stick in your pocket and pull out when any idea comes up. This helps extremely when you allocate a small chunk of time for planning, and would like to pick up where you have left off later.

Ask for help

One of the most important thing I learned from UCOSP is asking for help. Don’t hesitate to ask questions when you are stuck. Mentors are humans, and extremely helpful humans. Remember, there’s no such thing as a dumb question. All right, that’s a lie. But after I struggled for days tracking a small bug which takes my mentor one minute to point out, I realized the dumbest thing that can happen is to waste time blocking yourself from making progress.

Think for the future

Another important skill I learned is to write clear documentation. This is very useful in real industry. If you’re stuck on the documentation writing, and aren’t sure how to actually write it, this is my mentor’s ultimate tip to get started: pick up a rubber duck or find someone and explain what you’re doing to them, explain it a few times, then write that down. A good documentation should be fully self-descriptive, allowing someone down the road to read through it and know exactly what you’re doing, why, and how, without having to dive into the code.

That’s pretty much it! To sum up, UCOSP is awesome! I really had a enjoyable time working on Review Board team. It was not so easy to get started, but once you get used to it, you will start to have fun. To me, it was a rewarding experience and I would highly recommend getting involved in UCOSP to anyone want to contribute. Enjoy!