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.
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.
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!
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).
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.