So You Want to Join the Northern Bites - northern-bites/nbites GitHub Wiki

So you want to join the Northern Bites? Good choice. Here are some things to think about and do.

What are we looking for? The primary thing we look for in new people is self-motivation. RoboCup is a really complex and wide-ranging project. At some point you have to be willing to take a chance and dive into a project for which you will be pretty poorly prepared. It turns out that for many people this is a terrific (though sometimes frustrating) way to learn. The good side of it is you will learn a lot, and you will feel ownership in a terrific organization.

What skills are required? Ideally team members will be able to program. We program in C++, Python, Java, and Assembly, but if you only know one of these it is easy to pick the others up (and Bowdoin has several courses that teach these languages). Another great skill is math. Robotics has a lot of math. In particular Linear Algebra, Probability, Optimization, and Geometry show up all of the time. Still, even without these skills you can contribute. We always need people to collect data, label image sets, help organize, etc.

What sorts of projects are there? Practically anything you can imagine. However, we typically think of RoboCup software as consisting of a few major components: Vision, Localization, Motion, Communication, and Behavior. Behind all of that there are lots of systems issues. You'd be hard pressed to find an aspect of computer science that isn't important in some way. We'll use any technique if it makes things better - machine learning, protocol buffers, whatever.

How should I get started? Read this wiki for one. Go to the meetings and learn from the other members of the team. Learn about github. Brush up on your unix. Then start doing small things with the robots. Ask someone to show you how to run the tool. Connect to a robot through the tool. Try modifying a behavior (e.g. logging behaviors). Look at the list of "issues" here on github and in our Google Doc (email us for access!). There are lots and some of them are relatively easy. Come to the tutorial sessions. The most important thing to remember is to not be afraid of asking questions. The team loves answering questions and helping you out. You won't be bothering, annoying, or distracting by asking a question. We want to help you guys learn and contribute.

Who chooses the project I'll end up doing? At the end of the day we want people to be happy with their projects because it means they will be more productive. So ideally you'll get to choose your project. Of course we also want to win, so there may be incentive to pick projects that are going to help the team the most. It turns out that winning is pretty fun. Talk to Chown and the current team leaders (in 2015/2016 this is Megan and Nikki).

Are there other rules I should know? We're pretty serious about software engineering and management because we have found we have to be. We have lots of strongly enforced guidelines regarding writing comments, how to get your code into what we will use on the robots, etc. You'll find them in the wiki and you should ask us if you have any questions. But be aware, an important part of being part of this team is that we are consistent about the good practices learned by everyone before us.

SO! If you're ready to get started see Beginner's Guide