How to start contributing?

Hi there!

I am new to open source community and looking forward to contribute in open source projects.I am using Julia for around two months and am extremely impressed with the language.

I am interested in scientific computing and data science specially in

Machine Learning
Numeric Optimization
Deep Learning.

Are there any areas that are suitable for a new comer to contribute to? It will be of great help if you can suggest me how to contribute?

Being a newbie,my question may sound weired.Sorry for any inconveniences caused.

Thanks in advance!

2 Likes

Welcome!

My recommendation to people who are new to the community and want to contribute, is to come up with some project that you want to do in Julia , and then as you work on that project, you’ll naturally find bugs, lacking documentation, etc. that you can help fix. This is the “bottom-up” approach, in my own made-up terminology. This is mostly what I do, as I work on a mixture of modelling and optimizing spiking neural networks, developing a new IDE for Julia, and just toying around with various side projects written in Julia.

The alternative is to simply look at the list of issues for a package’s (or Julia’s) repository online, and see if you can fix said issue. This is the “top-down” approach.

I would always recommend that, as a newcomer to the language, you start with “bottom-up” until you are more comfortable with the language and its ecosystem, at which point you’ll be better able to just go “top-down” when you feel like it. Even once you’ve gained sufficient experience, I think you’ll find you spent most of your contribution time fixing bugs or issues that you personally ran into while trying to do what you do.

4 Likes

Thanks a lot!

Your idea about “bottom-up” approach is really great! I am also looking forward to something like that. So should I start a new project of my own in Julia? or can you suggest any ongoing project in Julia where I can contribute with? It will be my pleasure to be a part of any project in Julia!

Thanks in advance!

Something you can do is implement models from the literature, there’s a bunch here but you can probably find something missing (you need to be a bit acquainted with the domain though):

You also have stuff like this:

If that’s really useful (need to be tested) then it could be added to the libraries.

For optimization I think BlackBoxOptim doesn’t have a generic interface, there’s no good CMA-ES implementation (I’ve got one that works but it’s not as good as Python’s), and there’s probably plenty of little things one can do, but you need to be well informed about the packages (which comes by using them mainly, and reading the issues/PR).

2 Likes

Thanks a lot Sir!

I have gone through all the projects you have shortlisted as suggestion @jonathanBieler and got a clear idea about how to contribute. I will try to contribute in any of of the above projects as soon as possible.

Thanks again!