Make an open source project that I will actually use
This is kind of the most important point that I’m going to tell you. If I’m not using your open source project, chances are I’m not going to even consider contributing to it. You’ll have to think like a student. Do students need your open source project? Although open source projects that are made for businesses are great, if I’m not using it, I’m not really going to consider contributing to them neither.
Instead, I’m looking for that perfect-for-my-needs operating system. I’m looking for a great text editor, emailing client, office suite, book reader, audio/video player, file manager, something that’ll make my front end development easier etc. I’m looking for tools that are going to help me boost my productivity (like oh-my-zsh) and make my everyday tasks easier. If your project fits my needs, you’ve got this part covered.
Also, don’t get discouraged if your project is not popular. I love finding those “hidden gems” that not a lot of people know of.
Make it easy for me to start small
Before I actually get to contributing code, I’m going to start small. I’m going to test your latest beta version, replicate, confirm and report bugs, translate your software, answer questions to others, make some contributions to your website if its code is open source etc. Your job is to make that easier for me.
If you got that part covered, then we can get to actually contributing code.
Make sure your build docs are updated regularly
This is a critical stage in the process. There’s nothing more discouraging than finding a piece of software that I like and not being able to build it properly. Make sure to have a web page or a document called something like INSTALL or BUILD that I will pull together with your code. Add a reference to it in your README.md file. Make sure it’s easy to follow and update it regularly.
Don’t care too much about a programming language you’re using
As a student, I don’t have years of professional experience in any of the programming languages. If I like your project, I’m going to spend a week or two to get to know the syntax of the programming language that you are using.
Make sure your programming team is approachable
I’m not going to annoy you a lot with messages and emails, but if I get stuck somewhere, I’ll need your help. Make sure that you have an IRC channel where your developers are hanging around, a mailing list or something similar where I can actually talk to other developers and get answers to some question if needed.
Please, make the design of your website appropriate for 2015
Your web resources don’t need to look amazing, they just have to look like they’re not made 15 years ago. I can’t stress how bad I feel if your project is amazing, but you’re using something like a forum with BB code with a theme that looks like it was built when I first started using the Internet.
Have a web page where users can suggest (and vote on) features
If I have no idea what to do, I’m going to look for suggestions on what I should work on. Track feature requests and make sure to implement some kind of a mechanism where other users will vote on them so I could see which feature is most wanted.
Give me some reward
If I have contributed to your project, I’m going to want to brag about it. Internet fame is good, but a sticker on my laptop or a t-shirt is better. Sure, I can probably print your logo (if your license permits it of course), but something sent from the team itself as a sign of gratitude for my contribution is even better.
If you have a store where I can buy them, that’s great! Now give me a discount! I’m not living in the US. I’m constantly running into this problem where I want to buy some SWAG, but the shipping costs are greater than the cost of a freaking t-shirt itself. Remember, I’m a student, I have a tight budget. Either make it a bit easier for me, or send me the goods yourself!
Sponsor a hackathon and give rewards
Sponsor a hackathon. Send a couple of your representatives. Give some rewards to the best teams or individuals during the hackathon. Talk to them about your project. Suggest them what should they focus on during the hackathon. Help them to get familiar with the code if needed. Explain to them why and how you implemented some of your features. If you sponsor a hackathon and give me an incredible hands on experience, you can be sure that I will continue using it and contributing to your project.
Students are bit different than your other contributors. They have a very limited amount of time. You want to make sure their contribution are appreciated. You want to make sure that contributing to your project is as easy as it can get. If your contributing process is student-friendly, then it’s definitely going to be easier for you to attract other non-student contributors as well.
This process is beneficial to us both. You’re getting additional contributors and we are getting experienced in working as a part of the team. Plus, contributing to open source is probably our first chance to see how well we can manage to contribute to a project with a larger code base.