This question was submitted by Yehia from Alexandria, Egypt. Yehia’s question is …

I am studying java by my self by reading books (self study) but i need to know where can i find simple applications so that i can apply what i have learned and hence improve my programming skills in java.

The answer to Yehia’s question is …

These are the types of sample applications that you can build or practice with and ultimately gain or demonstrate mastery of Java.

Practice Building Login / Signup / Membership Java Systems

Learn how to build a robust signup or login system for your java web applications.

Practice Building Database Aware Java Web Applicatons

Build a few, well-normalized set of tables and then create a Java web application that allows you to Create, Update, Insert and Delete data from the tables in the new database using the new Java-based application.

Practice Java Language Programming Skills

Build a Java web application that allows you to exercise basic, Java language syntax programming skills. For example, build a Java application that allows you to read data from flat files and manipulate them in memory. You also want to practice writing Java applications that use loops, switches, if-else statements, etc.

Practice Object Oriented Java Software Based Design

You need to practice building Java applications that require you to exercise object oriented analysis and design skills. For example, build a Java web application that allows you identify the abstract and concrete classes, virtual methods, polymorphic objects, etc.

You may re-design any previous Java applications you have previously written and rewrite it paying explicit attention to the object oriented design of the software.

Practice Java Software Testing Skills

The ability to write software that is defect free or is as bug-free as possible is an important skill for a software developer as no one appreciates buggy software.

Take the sample Membership Website you built and write either unit tests or test cases for it.

Practice Writing Java Software Based On Requirements

Learn how to document both the scope and the requirements for your Java software first before you start writing any code.

In the real-world, you will almost, always be given requirements first before you are asked to start coding.

Requirements help you stay on track, on budget and on target. It helps keep everyone (Software Testers, Business Analysts, Project Managers, Software Developers) on the same page as to what is being developed and what is not!

Build A Real-World, Java-based Forum

It is time for you to graduate by building a more complex java application using a more sophisticated approach.