- Gives you a pretty good big picture of different technologies, tools and frameworks used in a typical application. A typical Java application uses Eclipse, NetBeans, or similar IDE, Java, JUnit, Log4j, Ant, Maven2, Spring, Hibernate, Apache commons library, etc. Try to analyze and understand how all these pieces fit together.
- You get to read a lot of code and learn from it. You can not only learn the best practices, but also can learn to identify potential issues.
- Write your own small programs just to learn the language and libraries (APIs) used in the open source projects. For example, Java APIs and Apache commons library that has very useful utility methods such as StringUtils, CollectionUtils, MapUtils, BeanComparator, Validate, etc. Observe the coding and formatting standards.
- learn how to use the tools like CVS, SVN, Eclipse, Maven2, Net Beans, etc.
- Experiment by making changes to your local copy of the code. Try going through JEE deployment descriptors, Spring, and Hibernate configuration files to understand how different pieces are wired up.
Self-taught projects and tutorials to build up confidence and acquire some level of experience with the sought-after technologies and frameworks. Some open-source projects can be a bit overwhelming for some beginners. So, choose carefully. Alternatively, you could take up some self-taught projects by using sought-after technologies and frameworks. While this can be an easier option, it is not easy to be disciplined and looks less impressive on your resume compared to open-source contribution. Having said that, this option is better than not doing anything at all. It at least, shows commitment and initiative with some level of familiarity with popular technologies and frameworks. Improve credibility by providing your URL or mentioning availability of your source code. What is even better is that, if your self-taught project is based on a creative idea and if you think it can be useful to others, you can open-source it or even try selling it.