Reno, NV    +1 (800)0 621-0871

Go back

Internship

Game On! 6 Weeks @ ÆLOGICA

  |  July 16, 2015

Hi! I’m Cjay and I am an intern for ÆLOGICA. I wanted to talk about the design of the internship program and some of my tips for future interns.

The main goal of the internship program is to be able to contribute to an open-source project. There are three levels that will determine your success:

icon-ruby   Ruby Level

You’ve submitted a pull request to the maintainer of the open-source project.

diamond yellowGold Level

You’ve had conversations with the maintainer after submitting your pull request. This may have led to your contribution to being merged.

 

  Dragon Leveldragon

Your pull request was accepted and merged by the maintainer.

 

 

I was really excited when I saw this because it felt like I was going on an adventure inside a Massively Multiplayer Online Role-Playing Game (MMORPG) – doing a quest without knowing what lies ahead. You know what? The experiences that we had really felt like we were playing an MMORPG.

Starting Up!

As new players in this MMORPG, we were given different supplementary resources six weeks before the official start of the internship program. These served as tutorials to the basic things that we needed to learn and study – just like what gamers do when they play a newly released game. These supplementary resources include tutorials on Ruby Programming, Ruby on Rails Framework, Git for version control and the Agile Methodology. These gave us enough background knowledge to helped us to get a running start.

On for a Quest!

The first thing that we did was to search for open-source projects built on Ruby on Rails that we wanted to contribute to. Using codetriage, looking for a collection of RoR projects has been convenient but searching for a specific project that you want to work on was not as easy as I thought it would be. There are a few things that you have to consider when you’re looking for a project:

• Activeness of the Project Maintainers

The very first thing that you might want to check is how active the project maintainers are. If you don’t consider checking it out then you might find yourself wasting your time working on a project that won’t be live or is not alive at all.

• Level of Interest

The more interesting the project, the harder you’ll work and dedicated you’ll be to fixing its bugs and adding features. Giving up part way through a project because you’re bored or you don’t see the point of it is likely if you don’t consider this possibility in the beginning.

• Level of Difficulty

Players often consider the difficulty of quests first before diving into it and the same goes for choosing the projects. Since we only had limited time to finish the task, we had to choose a project where we could accomplish in 6 weeks.

In the first week, I’ve considered some known projects like GitLab, Discourse and Diaspora but I encountered a hurdle in setting up those projects on my machine. There were a lot of outdated dependencies and other issues that I encountered. After a lot of retries in uninstalling and reinstalling them, I decided to temporarily look for other projects and that’s when I found code triage.

I sent my first ever pull request… first achievement unlocked! I passed the Ruby Level in the first 5 days of the program. The maintainer of the repository checked my contribution over the weekend and merged it. Super achievement unlocked! I was able to contribute to an open-source project and got it merged in the first week of the program. Quest has been cleared.

More Quests Ahead

from the blog www.stuckincustoms.com

from the blog www.stuckincustoms.com

I continued to send in pull requests, all with their own set of learnings. My internship experience at ÆLOGICA gave me a playground where I could continue to level up by improving my programming skills and at the same time help other developers through open-source projects contributions. Without the limitations of a classroom set-up and the freedom to set our own pace, it was definitely an effective learning experience.