R, Open Source and GSoC

There’s a plethora of generic content regarding GSoC preparation already available on the internet.* This blog post will concentrate on specific tips which should help anyone looking to get involved with The R-Project, or any R-centric Open-Source project, begin their journey.

R

*The post assumes basic programming knowledge (loops, functions, etc.) and familiarity with git/github.*

The basics

To begin with, familiarity with the basic R commands/constructs (function, apply family, etc) would be required. Previous experience of writing small-to-mid sized programs and a good IDE can really come in handy. RStudio is highly recommended.
The following resources should help in beginning your R journey.
-> Try R
-> Learn R with R tutorials and coding challenges | DataCamp
-> swirl: Learn R, in R. (Give this a go even if already proficient in R; great resource!)

Carrying the journey forward

If you are looking for more in-depth R knowledge, try some of the numerous free courses on Coursera, edX, Udacity, etc.
(I had started with this one: https://www.coursera.org/course/rprog)

Once you find yourself moderately experienced in R programming (and if books are your thing), go through this e-book by Hadley Wickham: Advanced R.
He happens to be one of the most famous (and awesome) R programmers in the world (and was one of my GSoC mentors too). This book would help you become a much better R programmer, and in my opinion, a better programmer too.

Getting the feel of things

Once all the R basics have been dealt with, try going through this year’s GSoC project list:
rstats-gsoc: table-of-proposed-coding-projects
Go through the proposal column of the list to get an idea about the projects that were done this year. Here’s the page for mine: rstats-gsoc/project-page.
As you could see, there were two things a student had to do:
1.) Complete some tests.
2.) Contact the mentors.
It was the template for, more or less, each project. Each individual project, however, varied differently. You will have to choose one (or more) to apply to as per your interests/strengths/experience. In addition to R and basic version control (git/svn), each project will require some additional skills. Some would require proficiency in C/C++, others Javascript while some other will require you to work with the Shiny framework for R.

R packages

Majority of the projects would require you to write an R-package. The package system is the backbone of the R ecosystem, and one of the major reasons behind its popularity.
Quoting Quick-R,

Packages are collections of R functions, data, and compiled code in a well-defined format. The directory where packages are stored is called the library. R comes with a standard set of packages. Others are available for download and installation. Once installed, they have to be loaded into the session to be used.

This blog post should help you quickstart: Writing an R package from scratch.
The e-book R packages is one of the best and most up-to-date resource about the same.

Miscellaneous

Join the R mailing lists (R: Mailing Lists) and follow some blogs. R-bloggers is a great one!

Conclusion

In Google Summer of Code (GSoC), there’s no fixed formula for getting accepted. The same applies to R Project.
R, and statistical computing, are fascinating subjects and you should explore them as freely as possible. At the time of writing this post (October 2, 2015), there’s still a few months to go before GSoC really heats up.

*Some generic GSoC content:
-> Student Guide
-> There are as many as 137 organizations selected in GSoC this year. For a beginner, it’s really difficult to select an organization. I’m preparing for GSoC 2016. So, how can I choose an appropriate organization?

There are many more resources available on the internet. Look them up.

Have fun while at it all. That’s real important.

Open Source is fun!

osi_symbol

Advertisements

2 thoughts on “R, Open Source and GSoC

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s