Hacker News new | past | comments | ask | show | jobs | submit login

Start anywhere. Steve Klabniak has a commit bit on Rails primarily because he showed up one day, said "The docs are a mess", and started writing better docs. As he wrote more he got better knowledge of the Rails internals. He then went through the issue tracker just for gardening, marking issues as duplicates, trying to repro them, etc, and suddenly he was the guy who both knew all the exposed features and all of the bugs. Then he put 2 and 2 together and said "Aha, I think I can probably independently fix this one. Here's a pull request with the patch and tests." And repeated that until they said "OK, OK, enough already, have a commit bit."

Can I make a suggestion though? What are your goals in life over the next few years? Does getting a commit bit on Rails represent the single best thing you could be doing to advance those goals? There are many, many OSS projects in the ecosystem which have lower barriers to entry and higher returns if you do them right. Some of them don't exist yet, but you could solo-deliver them in a number of weeks. There are many plausible goals you could have where solo-delivered gem X is vastly more valuable to you than "Got 3 patches accepted into Rails core."




I am a first year CS student and I really want to contribute to an OSS project, however, I can't find one that I can be productive on. For example - I thought shoes4 was suitable, but after looking at the issues, I honestly have no idea what to do. Something like Rails is probably absolutely out of my league. So where do I start? Docs, like you mentioned?


Docs are a great place to start. Getting started / installation guides, particularly for folks who can't use "the usual" install method, are easy and obvious wins. Curating existing answers into a categorized FAQ is useful. Having a site rather than a Githubbed Readme is a win, and gives you numerous options to show off web dev skills. Failing that, you can pop open any jQuery plugin or well-used Rails gem, open up the issue tracker, and pick off an issue or two of low-hanging fruit. It might take you a day or two when it would take someone familiar with the codebase 15 minutes, but they clearly haven't done it yet, have they.

The first OSS project I ever committed to was an online Battletech platform. I found an O(n^2) algorithm via visual inspection of code that one of the core devs had mentioned was a hot spot, investigated why it couldn't be quicker, and ended up introducing a caching layer. (It was 10 years ago, but my vague recollection was that caching the results of the inner loop made is essentially O(n).) Immediate perceptible speed boost. The caching code was an abomination but it worked. (The story of my life, I swear.)


Wait, did you work on Megamek? That's...where I got my start doing actual released software too. I was responsible for a bunch of random-ass (and not so wonderfully coded, I'll admit, but I was 16...) features: protomechs, VTOLs, artillery...Hell, I learned Java from scratch to be able to work on Megamek. Those were the days...I haven't played Battletech in ages, but I miss it still, and there's always a nice feeling about the game in my head from its relation to the (very) beginning of my career.

God it's a small world out there.


Yep, it was MegaMek. Man does it feel like a lifetime ago.


I've authored and maintain a couple of Ruby gems. My perspective: some tasks are no fun and suck out my enthusiasm. I love help with those. Examples: update to work with the newest version of X, track down and fix reported bugs, answer basic user questions.

Think about what "chores" you can take off the maintainers' plate and you're likely to get a warm welcome.


"Rails" is both an ecosystems of projects and one individual project. You might not be able to contribute to the Ruby on Rails software library, but there are hundreds or thousands of third party apps & libraries built around Rails. If you contribute to them (or create your own one, or find something that is abandoned, etc..) you will be contributing to the "Rails ecosystem".




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: