Hi, is any of you guys aware of any online java project I could join in and help? The thing is, even if I still have a very long way to go before I can code pretty decently, I'm a bit tired of learning with exercises, and I thought perhaps it might be good if I actually do something a bit more interesting.
thanks

There is no authorative site which lists all projects in need of help. One option would be to visit https://github.com/trending?l=java , look at projects which catch your fancy, drop a mail to the owner if he/she is interested in your contributings and fire away.

The "github" way of contributing has the added advantage of training in you in real-life collaboration techniques (the fork-change-pull request model) and getting your feet wet with using "git".

@ddanbe, that's what I've been doing so far and I'm thinking that perhaps if I manage to "join" a project group I might take my java learning at another level. I mean I've been doing exercises for quite a while now, and I've learned quite a lot on this forum, mainly thanks to @JamesCherrill, but if I can participate to the development of a big application, together with other developers, I think I might get more inside knowledge of the industry etc.
@~s.o.s~: I've never used github before: how does it work with the code, do I develop a component of something, compile the code and then upload it onto github or whatever is involved is something that I will learn with practice?

Github is a very popular code hosting service (servers on which you put your code) and uses "Git" as the source control mechanism. I'm assuming you are familiar with VCS (version control systems) and the concept of having source code control.

To learn with Github, you "download" existing projects, play around with them, look at the issue list for the project and try to contribute. Let's assume you are interested in the OkHttp project and want to contribute to it. https://github.com/square/okhttp

You "use" the library in your code, try out sample code and get a feel of how it works. Now you feel like contributing to it; you go over to the issue list at https://github.com/square/okhttp/issues , pick up a issue which looks easy and something you can reproduce. Then try to find out "why" the issue exists by debugging the code/understanding how the code is structured. Once you have identified the issue and fixed it locally (in your code copy of the library), you send it for review to the project contributor/owners by creating a "pull request" (again Git specific terminology). Once the project owner is happy with your code change, he merges it in the "master" copy of the project and your change/code is now officially part of some bigger project.

All the above assumes you are familiar with the Java development toolchain like Maven + Eclipse/IntelliJ + Git.

Edited 11 Months Ago by ~s.o.s~

oh OK, I see thanks. Unfortunately I'm not familiar with any of the above (Maven + Eclipse/IntelliJ + Git, VCS). I develop Java applications, well, simple applications, just with notepad ++.

Nothing unfortunate about it, just all the more reason for you to learn them. :)

I'm don't know why you code in Java (hobbist, wanting-to-be-programmer or recently started with a programming job). If it's any of the last two points, I would strongly recommend investing some time in learning the toolchain.

Hobbist for now, but yes I'd like to get to a point where I could get a programming job, or if not that, at least a job with some programming as part of it. SO where should I start do you reckon, any particular order?

  1. Learning a version control system like Git. Extremely important irrespective of the programming language you are using. Then move on to understanding Github (which offers you to create git repositories for free).
  2. IDEs like Eclipse for Java development. Every professional Java developer uses an IDE for development, never a plain text editor
  3. Build toos like Maven, again a very hard requirement when searching for a Java job
This article has been dead for over six months. Start a new discussion instead.