• Post Reply Bookmark Topic Watch Topic
  • New Topic

What now?  RSS feed

 
Wouter Jetta
Greenhorn
Posts: 11
2
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hello Guys,

A few weeks a go I passed OCAJP SE8 after failing twice.

After failing it twice I was pretty happy to pass it with 85% =).

Now I realize that I can read some code, I know the basics of Java, but how do I go from here?

At this moment in time all my code lives inside an IDE.
I have little to no idea how I can make an application that would actually do something. All I did was small code snippets.
Also I have little inspiration to build something.

Are there any example projects I could start building. Something simple, but more complex than one class that runs with a main method.

This is what I want to learn:

*Best practices in naming members,methods etc.
*file structure (How many files do I create? one per class? etc. etc.)
*How do I make it executable
*How can I make my application talk with a database
*How can I have my app make simple REST calls
*How can I write simple gui or html to function as I/O

All tips are welcome =)




 
Nigel Browne
Ranch Hand
Posts: 704
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
The Java Tutorials are a good starting point for getting pratice exercises together.
 
Shubham Semwal
Ranch Hand
Posts: 176
3
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
My Advice would be to pick a project first. Pick anything. What's important is that you should relate to the topic and feel enthusiastic about its completion. Then try to vision about the final product and start your way up there by dividing the task into small programs. Later you can integrate the code by making some changes.

Let me give you an example as how would I do it -

Project taken - A speed math game of basic calculations. It involves addition/subtractioin/multiplication/division of two numbers. Numbers are shown to the user and he has to click on the appropriate sign(+,-,/,x) for calculation. Score will be recorded until he gives a wrong answer.

A ? B = C
|-| |+| |X| |/|


Divide and conquer -
Here's the things I should know and practice in smaller snippets.

1: Working with arrays/ArrayLists/other collections that I might choose to use.
2: GUI components - how to make buttons and panels and frames etc.
3: How to handle and capture events.
4: Generating random numbers/indexes for my arrays.
etc etc.

Once I'll be comfortable with my sub-programs I'll start with the real thing. And upon completion it just gets better and better.
How about a version 2.0 where the user has to answer within 5 seconds. Or a version 3.0 where the signs switch places with every question.

The possibilities are endless but you have to be passionate about it. Thinking ideas is easy its the implementation that counts.

I'm advocating this approach since this way you can always look for the bigger picture why your'e doing the small snippets. When you know that using them will help them in a much bigger project you'll not feel burdened by all the effort it's going to take.

You can get a lot of project ideas from sites like - 1000+ programs.
The difficulty level varies so choose your problem sensibly. After all "How do you eat an elephant ? " ;)

PS- I'm assuming that you are a little familiar with programming since you've passed the exam as it requires writing code snippets. Else first get familiar with small programs and move ahead from there.
Studying Java programming and studying to pass a theoretical exam are different things. Here's an alternative for starting with basic programs and work your way up - LearnJava.
Another source for getting basics straight - TutorialsPoint

All the best for your adventure. May the force be with you
 
Wouter Jetta
Greenhorn
Posts: 11
2
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
A thank Shubham, great advice.

I might create a few pokemon and have them fight somewhere, and work from there :-).
 
Winston Gutkowski
Bartender
Posts: 10573
65
Eclipse IDE Hibernate Ubuntu
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Wouter Jetta wrote:A thank Shubham, great advice.

Another one might be to do something practical. Do you have a DVD or music collection that you want to catalogue? How about a little inventory system for it then?

That'll teach you a different set of skills including (possibly) database connectivity, class relationships, and maybe a bit of object→relational mapping and "application" design as well.

Probably not as fun as a game, but maybe more like what you'll encounter in the real world.

Winston
 
Wouter Jetta
Greenhorn
Posts: 11
2
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Winston Gutkowski wrote:
Wouter Jetta wrote:A thank Shubham, great advice.

Another one might be to do something practical. Do you have a DVD or music collection that you want to catalogue? How about a little inventory system for it then?


My goal is to build a sort of personal project management/productivity web app with cool visuals. I want to visualize my personal projects and tasks etc.

Working with a database connection is definitely something I want to learn.
I could start with a catalogue of projects that are build up of certain tasks.

Since this will be the very first time I will start on an application rather than random code snippets, where do I start? Or any tutorial on where to start a project to write an application?

Do I just start an eclipse project, or maven project or you name it?

What is the class that will run first, how is that sort of stuff configured?


 
J. Kevin Robbins
Bartender
Posts: 1801
28
Chrome Eclipse IDE Firefox Browser jQuery Linux MySQL Database Netbeans IDE
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I admire your enthusiasm, but I think you are getting ahead of yourself. You are already talking about how to code and you haven't even decided what to code.

Step back, get a pencil and paper, and start by getting some ideas on paper. Describe the project. Let's say you come up with "Create an application to track the inventory of my DVD collection". Now you know you will need a DVD object. Think about what to track. Title, director, genre, maybe a storage location? You are now developing a class description. Good start.

You need a collection to hold these DVD objects. That sounds like a database, so you'll want to map that object to a database record. Think about the classes needed to insert a record into a database. A DAO is a class typically used to interact with a database. Learn how to do this part.

Notice that I haven't mentioned any particular tools or libraries or even a user interface design. Start small. Programming is about taking a big problem and breaking it down into little problems that are easily solvable. Building a house is a complex job, but it consists of some 10,000 little tasks that anyone can do. Measure a board, cut it, nail it up. Programming is the same way. From a high level it looks difficult and intimidating, but when you break it down into little tasks, it becomes quite manageable.

 
Roel De Nijs
Sheriff
Posts: 11338
177
AngularJS Chrome Eclipse IDE Hibernate Java jQuery MySQL Database Spring Tomcat Server
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
On HackerRank you can solve exciting CodeChallenges (in 15+ domains and 35+ languages) to learn, compete and ultimately to get hired.
 
Wouter Jetta
Greenhorn
Posts: 11
2
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
J. Kevin Robbins wrote:I admire your enthusiasm, but I think you are getting ahead of yourself. You are already talking about how to code and you haven't even decided what to code.


I completely agree. This is what I wrote down for now:

I need a project object that has:

-a category
-a name
-a creation date
-a project description

I need a task object that has:

-a name
-a creation date
-a task description
 
Wouter Jetta
Greenhorn
Posts: 11
2
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Roel De Nijs wrote:On HackerRank you can solve exciting CodeChallenges (in 15+ domains and 35+ languages) to learn, compete and ultimately to get hired.


I have been doing some HackerRank, I already have a junior/trainee position in an IT company as well.
My position is not so much technical, but I want to be more allround. I really want to understand what the people around me are talking about when they are deploying, using databases etc.

My position does not require so much technical knowledge, yet I am very eager to learn and to better understand software development.
In my opinion you can only understand what it really is, if you start experiencing it yourself :-)
 
J. Kevin Robbins
Bartender
Posts: 1801
28
Chrome Eclipse IDE Firefox Browser jQuery Linux MySQL Database Netbeans IDE
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Good start. Now think about how these two objects are going to relate to each other. Will a Project contain a collection of Tasks? Or will a Task contain a reference to a Project?

Chew on that a while and see if you can think of the pros and cons of doing it each way.
 
J. Kevin Robbins
Bartender
Posts: 1801
28
Chrome Eclipse IDE Firefox Browser jQuery Linux MySQL Database Netbeans IDE
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Wouter Jetta wrote:I really want to understand what the people around me are talking about when they are deploying, using databases etc.

My position does not require so much technical knowledge, yet I am very eager to learn and to better understand software development.
In my opinion you can only understand what it really is, if you start experiencing it yourself :-)

This attitude will take you a long way.
 
It is sorta covered in the JavaRanch Style Guide.
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!