Question: I have never understood what is the ideal way to name a project, package, class. I do it in a random way which doesn't look professional at all. I know the class name should start with a capital alphabet. But what I don't really have trouble with is finding the names that are suitable and look professional. lets consider this example. If I am writing a program for fibonacci series i give names like this:

```
project name = fibonacci_project
package name = org.fib.code1
class name = Code1

```

Doesn't look neat right? How would you do it ?

Answer: 
For starters, it's [Fibonacci](http://en.wikipedia.org/wiki/Fibonacci_number).

See [Sun's java naming conventions](http://java.sun.com/docs/codeconv/html/CodeConventions.doc8.html) for some details on package / class names.

Aside from that, the general rule of thumb is - all your names should be descriptive:

* for class - what does it do (or what does it represent)
* for package - what common functionality (goal) do all classes within that package provide (aim to achieve)
Examples:

Project name - FibonacciSeriesProducer  

Package name - com.lazywithclass.utils, com.lazywithclass.entryPoint  

Class name - FibonacciLogic.java, FibonacciPrinter.java  

This is how I would have done it, maybe during development this will change a bit, the really important convention is naming convention for class names, see if this steps are of some help:

1. identifiy objects that you will need to solve the problem
2. Knowing what one class' purpose will be name it accordingly
3. Keep an eye on your class names, mantain them meaningful through the development

See [here](http://java.sun.com/docs/codeconv/html/CodeConventions.doc8.html) for some examples.