I'm fairly new to java, but feel as though I understand the concepts fairly well. I have a server at home that I would like for several computers to be able to back up to. With the help of NetBeans, I would like to do this without simply downloading an app someone has already made. I think it will be a good learning experience. My only problem is I don't really know where to start. I have a good idea of what I want from the app, but nowhere to start. Can anyone give me advice on how you plan out your program before you start writing it? Seems the java classes I took felt this wasn't a vital part of the process.

This seems like a fairly simple (conceptually) program to me, although actually implementing it could be quite tricky. You need a typical client server setup (and I'm assuming your server will only accept one connection at once); Java sun has a tutorial I read in the past that is pretty simple. I'll link you to that but I wouldn't consider the problem you face right now a problem that will really help you with your design skills... if you want to learn good design in Java, you are better off doing other projects that might seem more simple, but actually lend themselves to good design more easily. And I'd love to help you become better with design but it can't be taught lecture style, if you want to get help with design, you should plan out a project, post your ideas including classes, methods, etc, and ask for criticism - there are a lot of experienced java programmers here who'd be glad to help.


P.S. when I say this project doesn't really lend itself to good design, I only mean that I think it is a pretty small project which doesn't involve a lot of classes or a lot of methods, and additionally it involves networking, so it would be harder to learn design on a project like this than it would on a traditional style project.

What kind of a project would you recommend for learning design practices?

Anything that relies on the core Java classes rather than things like Networking. If I had your same concern I'd just do school projects from lower level Java classes. You're unlikely to find truly interesting projects, but they are designed to help you learn design.

For example, this project is a decent one for learning good design. It is basic enough that you won't get confused and bogged down by things like networking but that you can learn some important things about design. I wouldn't recommend trying to do the other projects on that page though, they aren't hard, just stupid.

Thank you, that project looks extremely helpful and easy to build on at a later time. I will try it out. Thanks again.