Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I have studied Java for quite a while and written a lot of small SE programs. I have a good grasp on the language at this stage but unfortunately I do not work in the area of Java programming (as of yet). I would like to develop a portfolio of Java programs for the purposes of moving into this area. This is also vital in most interviews. I also would like to develop this portfolio to further my learning (maybe in the area of Java EE).

Can anybody recommend a starting point?


share|improve this question

migrated from stackoverflow.com May 4 '11 at 20:10

This question came from our site for professional and enthusiast programmers.

Look into contributing to open source projects. –  birryree May 4 '11 at 20:03

2 Answers 2

Start a Github account, and host projects you've worked on there.

and as birryree stated, working on open source projects can be good. This can also be done via github.

share|improve this answer
this is great advice, GitHub can showcase your accomplishments. I would like to add, a development blog is a great way to document your trials and tribulations of developing software and shows people how you are progressing and thinking. –  Jarrod Roberson May 4 '11 at 20:19
bitbucket - what? ;) (still +1 :)) –  Demian Brecht May 5 '11 at 5:51
bitbucket is nice too, but github just seems to be the more popular, standing thing to use these days. Alexa stats: alexa.com/siteinfo/bitbucket.org+github.com google trends: google.com/trends?q=bitbucket%2C+github –  GSto May 5 '11 at 14:49

My advice? Come up with something you actually want and write that. Don't choose projects based on technology for something like this—choose the technology based on the project.

Deciding on which technology to use based on the project has some important advantages:

  • You're more likely to choose the right technology for the right purpose. If you set out to write a Java EE program, you might try to shoehorn Java EE on the wrong problem. On the other hand, if you start building something and realize Java EE would help you finish the project, you've probably chosen the correct tool for the job.

  • You're much more likely to not only finish the project, but ensure its quality. I know from experience that if I do a project just to learn a technology, I either leave it half-finished or barely working. When I do projects for fun, I actually finish them and add a bit of polish.

  • You will, quite simply, have more fun and enjoy the outcome more as well.

In short: think of a program you want to have—it can even be something relatively simple. Write that, choosing what tools to use based on what you're doing. Even using tools not directly related to your planned career is good—employers are probably going to look more favorably on a well-executed project not directly related to the job than on a half-hearted effort using the tools in question.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.