Lets start by knowing what is Oracle ADF?
Oracle ADF is a framework that simplifies application development and follows MVC (Model-View-Controller) architecture by separation of UI related and data related elements. And also it reduces the amount of coding. It is declarative and practices reusable business logic and validation. It is used for desktop as well as for mobile applications.
First and foremost learn the Java language even though we can do a lot without coding, but the basics of java should be clear such as class, object, inheritance etc. As I mentioned earlier coding is reduced but still we need to code. You can start learning java from the following link: http://www.tutorialspoint.com/java/java_tutorial.pdf
If you have little bit SQL knowledge its good and you can develop some designing sense.Moving to the next step, I would suggest to read various tutorials and videos (ADF Insider in YouTube is best) that are available online.
You can buy: Quick Start Guide to Oracle Fusion Development or can simply download it.
Start reading with this link : http://docs.oracle.com/cd/E18941_01/tutorials/jdtut_11r2_55/jdtut_11r2_55_1.html so that you can get better understanding of why and how things happen in Jdeveloper.
Later you can start creating a database connection and creating Entity Objects, View Objects, Application Module and play with the several components palette that are available in Jdeveloper. While most of the logic is directly defined in ADF components, there are other logic that we need to code in java. This is where Entity Objects, View Objects, Application module and backing bean comes into picture.
Entity Objects (EO): It simplifies data modifications by handling DML operations as they are source code representation of database table.
View Objects (VO): It simplifies working by the result of SQL query. They are read-only database queries or updatable view objects that represent an EO.
Application Module (AM): It simply glues the JSP pages to view data of a view object. It gives access to all of the data controls (VO).
Backing Bean: Backing beans are JavaBeans components associated with UI components used in a page. Backing-bean management separates the definition of UI component objects from objects that perform application-specific processing and hold data.
Other important things to learn are ADF Bindings and Task Flows. Actually the list is long. Before working in a project you need to practice a lot so as to set the strong foundation.