views:

258

answers:

5

I'm looking for a pet project idea in Java. I'm a Software Engineering undergraduate finishing my 3rd year. I have also been working for the past 1.5-2 years programming in C++, and I get enough of that at work. I recently learned Java and I like it very much. Already done some project assignments and some really small console applications, but I'm looking for something to invest my time in.

I would like a project that is complex enough to "brag about" (have it open sourced and get people interested, added to resume) and learn while doing it, but also simple enough to be able to at least have a working version in a few months.

I know the most common advice is something that I need, but I admit I simply couldn't think of anything like that.

Any ideas?

Edit: To narrow it down: It would be nice to create a library of some sort or some other software development related program. An Eclipse plug-in that does something is also an option (though I don't have an idea what and how to do it - it would be in Java, right?).

Is there anything YOU would like to have that I can make for you?

+3  A: 

The best and quickest way to have

complex enough to "brag about" (have it open sourced and get people interested, added to resume) and learn while doing it, but also simple enough to be able to at least have a working version in a few months

is to find an existing open source project, preferrably one that you currently use and enjoy, and start submitting patches. As a bonus, you'll learn about remote collaboration in development.

Don
+1  A: 

You can create a StackApp

OscarRyz
A: 

If you don't want to go with the contributing to open source route as mentioned by Don, you could also look into making an Android app. This would give you both experience in Java as well as mobile development.

Though this would be a lot more interesting if you have an android phone, of course. Might be able to make some money with it if you do something to "brag about".

Tyler
A: 

My guess is that the question will probably be closed because it is very general - Everything can be a pet project, depending on your interests. You could write anything from a game to an astronomy program. You also need to decide what your want to focus on in Java. GUIs? Data processing? Math?

You will probably get answers that you should join an open source project, but that might be frustrating if you are not that experienced with Java.

From a career perspective, you're probably better off doing something that is relevant to your current employer or to your school (since professor recommendations are useful if you apply to grad school). You went to the same program I did for undergrad. I can tell you that there are a lot of professors with small projects on their minds that are just begging for students. All they get are students doing "lab projects" for course credit and these projects are usually not worth the hassle to them because of the grading and the bureaucracy. A student willing to work with them on something (especially without pay or with nominal pay) is very attractive. It's been many years since I've been to Taub, but I can think of a few professors who might be a good starting point. Email me.

If you want an unrelated idea, consider writing your own version of the course scheduling program. In the mid-nineties we had a very nice but outdated application that some student wrote which would read the course files and come up with various schedules after constraints (it was called MarProg). Then UG replaced it with a web based program which at the time sucked. Write your own!

Uri
A: 

As a learning experience with the potential of becoming useful and you can brag about, you could build your own blog engine, and use it too. Be advised that the chance for your blog engine to kill Wordpress or Drupal or 1 millions other CMS/blog engines currently out there is very slim. But you could take the best features that you find important from each one and build in your own. I think there are plenty of learning that you would go through.

As an idea, you could decide that you won't use an RDBMS but use something like Mongo DB, Db4o, etc. You could integrate with other commenting services, or PicassaWeb, Flickr, and other mashup services.

Khnle
I disagree. CMS/blog engines have been done to death. It doesn't show well on a resume either because you reinvented the wheel when you could have been using the time to create something new.
Freiheit
I agree with your disagreement, now that I reread the question that the poster wants more just learning, and that he wants something complex enough, add to resume. I endorse the StackApp answer, which I didn't know about until now.
Khnle