Sign in to follow this  
ahung89

[java] after finishing java course

Recommended Posts

I've been working on exercises from one java textbook for a while. I've pretty much gotten through all of the exercises, except those from the last chapter. This book covered everything from the most basic lessons (data types, loops, etc) through inheritance, recursion, Lists/Collections/Sets/Maps, graphics with the DrawingPanel, and GUI's. I want to keep on learning and improving my skills. What books would be a good followup to an introductory course like this one? What other steps should I take to keep on improving as fast as I can? I don't really know where to go from here. Thanks.

Share this post


Link to post
Share on other sites
I would suggest:

"Killer game programming in Java" by Andrew Davidson.

It covers everything from simple 2D games to 3D networking. Keep a basic Java book handy, as you might need to brush up on things as you go along.

To improve your Java skills (rather than just using the code from the book), you should ensure that you understand the details as you move ahead. I'm a beginner myself (2 years of java programming)and frequently go back to read basic tutorials at Sun (or other places).

Using Java and understanding Java are two different things. I have seen that its quite possible to program relativly complex applications, without fully understanding the concepts and technologies used, but to personally move forward as a programmer, its nessesary to dig deeper into things and find out how they really work.

One last piece of advice is: program, program and program...nothing beats hammering code.

Share this post


Link to post
Share on other sites
Quote:
Original post by OrangyTang
Sounds like you've got the basics down, why not try and make a simple game? Something like tetris or space invaders should be do-able and will teach you a lot of common fundamentals that all games share.


I'm with OrangyTang. The only way to learn to program games is to program games. However, with regards to how fast you can improve...

The student asked the master, "How long will it take me to learn to program?"
"Five years." said the master.
"What if I practice all the time?"
"Ten years." said the master.
"What if I spend all day, every day, doing nothing but programming?"
"Twenty years." said the master.
"How come every time I say I'll practice more, you say it will take longer?" asked the student.
"With one eye on the goal, there is one left to find the way."

Share this post


Link to post
Share on other sites
Games help because they require a wide variety of programming areas. As well I suggest learning different data structures, such as using maps or linked lists for one part, arrays for another, lists for one and perhaps use some vertex's and edges for another. This just is so you understand the language much much more then if you use the same data structure every time.

Share this post


Link to post
Share on other sites
Quote:
Original post by ahung89
Thanks guys. I bought Killer Game Programming. Haven't started it yet - I need to learn about threads before doing so. The Sun tutorial is confusing as hell.


Threads are confusing as hell.

This is a friendly warning: Half-baked knowledge in this area is very, very dangerous. When using threads, you are guaranteed run into more problems than you solve, causing you frustration and confusion. It is also a common misconception that you need threads to make multiple things in a game happen 'simultaneously'. In fact, the contrary is true.

You don't need in-depth knowledge of multithreading if you want to develop a decent game - even a complex one.

A solid game design usually has all the relevant code happening in a single thread, which runs some kind of 'main loop', processing input first, then appliyng the game logic, and finally painting the game screen. If your graphics API of choice requires you to process your screen drawing in another thread than the main application loop (actually kind of common in Java), try to make the best of it and synchronize your paint routine and main game loop (look up Java keyword 'synchronized' once you encounter problems there).

[Edited by - Thygrrr on January 7, 2009 4:30:23 AM]

Share this post


Link to post
Share on other sites
ive been having the same problem, ive jus finished a java course and understand most of the basic things except threads. I have made many games just using a method where i paint the screen and other methods which detect collisions and keylisteners and such. i also have no idea how to create a delay in one method while still running another, which may jus be because in this course we didnt use java.swing... which ive come to realise really limits my programming capabilities on getting help and learning further.

Any1 kno where i could read up on threads and simple delays and/or how to delay single methods while others still run? Maybe its simple and ive overlooked it but any help would be appreciated.

Share this post


Link to post
Share on other sites
Well, basically you just need Java's Thread class (and/or the Runnable interface) for making threads and the synchronized keyword for synchronization on methods and data. The Javadoc should be a good starting point. You can also try the java tutorial.

Keep in mind though, that making things threadsafe isn't a trivial task and there are lots of unspecified aspects in the specification. That means that you can make very few guarantees on how/when a thread will be executed, since that depends on the JVM.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this