Computer Science Canada

How much of a language should you know to get into open source projects

Author:  Nathan4102 [ Sun Jun 22, 2014 10:48 am ]
Post subject:  How much of a language should you know to get into open source projects

I've been learning java for a few months now, and I'm starting to get a hang of it now. I'm able to do all the basic loops/vars whatever, 2d arrays, file IO, swing GUI, methods, the basics like that. I haven't touched on object oriented programming or multi-class programs yet.

So my question is what should I know before trying to get myself into an open source project? Am I ready or is there more I need to learn first?

Author:  DemonWasp [ Sun Jun 22, 2014 11:31 am ]
Post subject:  RE:How much of a language should you know to get into open source projects

The answer is that it depends on the open-source project. Many will have different requirements, and many of the requirements will be about domain knowledge (e.g. how computer rendering works for a 3D engine, how databases work for an ORM, etc) rather than specific language constructs.

You are generally expected to know the language fairly well before contributing code to OSS (though you could contribute documentation, tutorials, etc without necessarily having programming knowledge). At a minimum, cover all of the topics in http://docs.oracle.com/javase/tutorial/extra/certification/index.html (both Level I and Level II).

Author:  Nathan4102 [ Sun Jun 22, 2014 2:22 pm ]
Post subject:  RE:How much of a language should you know to get into open source projects

Whoa, looks like I still have quite a ways to go...

Author:  Zren [ Sun Jun 22, 2014 11:42 pm ]
Post subject:  RE:How much of a language should you know to get into open source projects

Ability to compile/run a project.
Ability to debug code.

Once you've gotten a working base, you can learn by example by combining code/patterns already existing in the project.

Author:  Tony [ Mon Jun 23, 2014 2:06 pm ]
Post subject:  Re: RE:How much of a language should you know to get into open source projects

Not to be overlooked:
DemonWasp @ Sun Jun 22, 2014 11:31 am wrote:
though you could contribute documentation, tutorials, etc without necessarily having programming knowledge

OSS projects often lack in testing, documentation, support. When I started out contributing to some OSS, I've done so by hanging out on the forums and answering questions on using the software. That lead to contributing tiny features (on the order of "some users get confused by this text/graphic, lets change it").

While the visible change is tiny, the amount of work to get that first change in is substantial -- finding the right place(s) in (possibly large) codebase, compiling from source, performing all the proper testing (likely writing some test code as well), putting together a commit, and finding someone to actually approve it.

Afterwards you can move on to more substantial bug fixes and features.

Author:  wtd [ Mon Jun 23, 2014 2:16 pm ]
Post subject:  RE:How much of a language should you know to get into open source projects

On the issue of language features, your current biggest deficit is going to be understanding how projects are organized. DO you understand how multiple classes work together? Do you understand packages?

If not, start experimenting with them yourself using simple examples.

Author:  Nathan4102 [ Mon Jun 23, 2014 4:31 pm ]
Post subject:  RE:How much of a language should you know to get into open source projects

Zren - I got that stuff down, Ive built many working Java applications

Tony - Thats funny, because I've actually had experience just like that at an OSS too. Difference is it was in a different language, and maybe 3 years ago. I contributed to the documentation and added/modified some methods in the libraries. I gotta find another community to get stuck into again I guess

wtd - I do not, I helped a classmate debug his program using multiple classes, but I didn't really know what I was doing, and it was a fluke that I got it running.Maybe once I choose a project I can read through the code and see if I can figure out how it works, that and trying it out myself.


: