I'm learning Java these days by reading Head First Java 2nd Edition. In order to further strengthen the concepts I learned as well as to keep them sticked to my brain I decided to do some small scale Java projects. I thought of a one project which basically catalogs the books I have by Genre, Author etc. Can readers of SO suggests some more ideas of this kind? They need to be beginner friendly as well as should present the chance of learning something while doing it. Any links to sites which supply these kind of project ideas are welcome also. I google'd few search terms but hasn't been successful.
I would truly suggest a project where you will not only write the software, but where it's function is something you need or would like the computer to do for you. This will keep up your interest and you'll learn far more if you've got a real problem to solve.
For example if you do a lot of exercise, then you may choose to write a project that helps you track how much exercise you're doing and how fit you're getting (or not!).
You can build Garage Manager Software (that was my first app) at first build the logic (customers , cars , car treatments,reports ,etc...) functionality later build UI that uses this logic. the last step is to fetch DB to the project.
If you're more into solving math related problems there's Project Euler for you: http://projecteuler.net/
It will also require you to learn basic API for handling large numbers, converting between data types, accessing files etc.
You can join the Go Bible project which is a bible for java enabled mobile phones and provide the bible in many translations
You can join the project and develop it
OR
If you don't have enough experience in J2me you can make an interface to it to be easy for the user to set all options through the interface and you run the creator which is command line program and pass the options to it
Also you can embed a text to XML converter in your GUI to make it easy to convert text files to Go Bible format
I can help you with ideas and code resources as i started in such project before but using C#
But i have good resources for java too covering all you will need in such program
Links http://gobible.jolon.org/ http://gobible.jolon.org/developer/welcome.html http://www.crosswire.org/gobible/
Writing code while you learn is a great idea but also a good one is to READ code. The more you read, the better you will write. If you have a look at places such as sourceforge or github you can find tons of Java projects that you can inspect. You could also find a good few ideas for your own project there.
From teaching experience I learned that once you come up with 1-2 project ideas you can always expand on each project. to take your original idea of cataloging your books. There are multiple projects which can spawn from this one concept over time.
- Start with your simple command driven application using some basic OO techniques.
- Add in some Interface and Abstract classes to recreate the same project.
- Store your information in a persistence layer. (File I/O)
- another project could focus on GUI development.
- Add a database layer.
- Refactor the application to be built with ant
- Add in some JUnit testing.
- Learn Web based programming and convert your existing project to servlets.
- Convert the project to Struts (or some other framework)
- Now add Hibernate techniques to strengthen your application
The programming concepts don't always have to be used correctly in these demo applications. It is just a matter of you finding a creative way of using the abilities you learned. From your original concept you could redesign your application to fit into dozens of projects along the way. Your idea can stay the same, just how you develop it changes. Along the way you learn how important code reuse is. The important thing is that you are always learning.