Programming, Software and Code

Potential GSoC students

I've gotten several emails from prospective GSoC students in response to some of the blog posts I've written about potential project ideas. It looks like we're going to have interested applicants for several of the projects, including a few new ones that I hadn't even considered. These steps are especially important if you are new to the Parrot project and are applying for a GSoC position for the first time with us.

In each case, the advice I give the students is always basically the same:

  1. If you aren't a super C coder, or only have limited experience, pick up a copy of K&R. Read it cover-to-cover. "real world" code, like that found in Parrot, can differ significantly from the simplified, mickey-mouse code you experience in most introductory programming classes or the exercises in the back of a "Learn C in 24 hours" book. K&R isn't as in-depth as some tutorial books, but it's complete, concise, and serves as a great reference. Likewise, if your project is centered on Perl code but you aren't a great Perl coder, pick up a copy of the Camel book. Nothing beats having a good reference available as you work. If you don't know all the answers, you should know where to find all the answers.
  2. Get a copy of the Parrot source code, build it and run the tests. Start reading the code. You'll definitely want to skim over at least most of the src directory, and you will want to pay particular focus to the subsystems involved in your proposed project. If you're doing a GC project, read the code in src/gc. Strings? src/string. As you read code, make changes; especially changes to code formatting, readability, and documentation. Submit these changes as patches and be prepared for feedback. If you see problems but aren't able to fix them yourself, submit bug reports. It's hard to accept a GSoC project if we aren't familiar with the quality (or quantity) of your work.
  3. Get involved. Join the parrot-dev mailing list. This list isn't super-high traffic, so don't worry about getting your inbox flooded. Send a welcome message to the list to introduce yourself. If you're really interested to see what's going on at a deeper level, join the parrot-tickets list as well This list represents a live feed of events happening in our issue tracker. This will give you an idea of the kinds of problems users have and how we go about fixing them. One of the best things you can do is to join the #parrot chatroom on IRC. Introduce yourself to people there, follow the conversations, and get involved. Ask questions. It's hard to accept a GSoC project if we aren't familiar with you as a person, and if you aren't an active community member.
So here are my three recommendations in a nutshell: Beef up your skills, Get familiar with the project, and get involved in the community. Do these things, along with submitting a good proposal, and your chances of getting accepted go way up. Good luck!


I also recommend the "The Annotated ANSI C standard". The annotations are dubious (see the Amazon reviews) but the standard itself is worth reading.

This entry was originally posted on Blogger and was automatically converted. There may be some broken links and other errors due to the conversion. Please let me know about any serious problems.