From: Jeff Higgins on
On 6/3/2010 3:41 PM, Mike Barnard wrote:
> Hi.
>
> I'm interested in learning about Java programming.

<http://www.cs.princeton.edu/introcs/cs/>
<http://www.cs.princeton.edu/introcs/home/>
<http://www.horstmann.com/corejava.html>
<http://www.dickbaldwin.com/toc.htm>

From: RedGrittyBrick on
On 04/06/2010 09:18, Mike Barnard wrote:
> On Thu, 03 Jun 2010 20:41:35 +0100, Mike Barnard
> <m.barnard.trousers(a)thunderin.co.uk> wrote:
>
>> Hi.
>
> Here it's 9 am and I'm late for work, but I just wanted to give a big
> thanks to you all for your reccomendations. I'll look through them
> tonight and choose something. I have been considering the Head First
> book on Java, but even it's second edition is nearly 6 years old and
> based on an older version of Java. Are there NO up to date books?

Books take a long time to write :-)

Don't worry about books being old. When learning Java I bought
O'Reilly's "Learning Java". So long as it covers Generics, it should be
OK as your initial learning tool. Don't expect to learn all of Java
quickly, I concentrated on Java SE (not EE) and Swing.

I found Sun/Oracle's Java tutorials to be very useful and I recommend
you use them.

> I have never been taught how to program but I have played with Basic
> on the Atari (How long ago?!) and Delphi 5 about 10 years ago from
> books so I at least know what a variable is.

Your Delphi 5 experience will have taught you about Object Oriented
programming, you might want to brush up on OO fundamentals by following
tutorials that show how inheritance, encapsulation and polymorphism
works in Java and especially the use of interfaces where other languages
might use multiple inheritance. I recall all that jargon and those
concepts seemed a bit intimidating when I first learned about OO but
after a dozen or so small command-line programs the concepts should
become clear in your mind, if they aren't already.

Since you have used Delphi, I suggest you pick one of the major Java
IDEs. I use Eclipse but others use Netbeans. Both are excellent. There
are others.

For your portable desktop application I would advocate learning how to
create Swing user interfaces programmatically rather than using a Delphi
style GUI builder (Netbeans has a GUI bulder named Matisse). At least
initially. A good knowledge of Swing layout managers is useful. There
are experts who disagree with this point of view but I believe it is the
best way to get to understand Swing.

I also suggest learning about design-patterns if that isn't an area you
are familiar with. You can defer this a while but eventually it will
become important as your programs become complex and in need of
systematic organisation. The two patterns I found most interesting
initially were Model-View-Controller and Observer.

If you use Google Groups to search this newsgroup you'll find plenty of
prior discussion of learning Java and of Java books.

--
RGB