Recommended books to learn Java

Discussion in 'Java' started by Dan Kalish, Sep 28, 2012.

  1. Dan Kalish

    Dan Kalish Guest

    I'm an experienced programmer and would like to learn Java, in order to make myself more marketable.

    In particular, during the period 1968-1978 I worked years as a Scientific Progammer, primarily programming in Fortran IV (66?). Since then, I have occasionally programmed in SNOBOL, PASCAL, BASIC, Plato, Fortran 95 and C++. Thus, I don't need a beginner's book.

    Any recommendations on books for learning Java?

    Dan
     
    Dan Kalish, Sep 28, 2012
    #1
    1. Advertisements

  2. I'd first look at web resources, for example Sun's Java Tutorials.

    http://docs.oracle.com/javase/tutorial/

    They cover most basic language features and also most important parts of
    the standard library (collections, IO). I'd say the language itself is
    fairly easy to grok - getting to know the standard library usually takes
    a bit more time if only because of the volume.

    Kind regards

    robert
     
    Robert Klemme, Sep 28, 2012
    #2
    1. Advertisements

  3. Dan Kalish

    Arne Vajhøj Guest

    Wrox's "Professional Xxxx" is often good for developers that know
    other languages.

    You could try read reviews of "Professional Java JDK 6 Edition"
    (it looks as if the 7 edition is not out yet) and see if it sounds
    as a book for you.

    There are also a large number of resources available on the
    internet.

    Arne
     
    Arne Vajhøj, Sep 28, 2012
    #3
  4. Dan Kalish

    Jim Gibson Guest

    This is my favorite Java book:

    <http://shop.oreilly.com/product/9780596008734.do>

    backed up by the online API references:

    <http://docs.oracle.com/javase/6/docs/api/>

    <http://docs.oracle.com/javase/7/docs/api/>
     
    Jim Gibson, Sep 28, 2012
    #4
  5. Dan Kalish

    Roedy Green Guest

    see http://mindprod.com/jgloss/gettingstarted.html

    I would see if someone has written a Java for C++ programmers.
    They look superficially very alike, but assuming they are the same
    under the covers really gets in the way.

    SNOBOL, I have not seen that in almost 50 years.
     
    Roedy Green, Sep 28, 2012
    #5
  6. Dan Kalish

    Lew Guest

    Yes, you do. Maybe not a beginning programmer's book, but definitely a beginning
    Java programmer's book.

    I have over thirteen years' professional experience developing Java and I still
    learn something new every time I read the tutorials.

    /Effective Java/ by Joshua Bloch is a must-have.

    http://www.oracle.com/technetwork/java/effectivejava-136174.html

    So is /Java Concurrency in Practice/ by Brian Goetz, et al.

    http://www.javaconcurrencyinpractice.com/
    But it's well worth the effort.

    Start with the java.lang, java.io and java.util packages.

    The API docs are a constant source of knowledge and inspiration.
    http://docs.oracle.com/javase/7/docs/api/
     
    Lew, Sep 28, 2012
    #6
  7. I second this. Little quirks of a language that are at the
    beginning level will be assumed to be known at higher levels. You
    could end up blindsiding yourself. And review is good.

    [snip]

    Sincerely,

    Gene Wirchenko
     
    Gene Wirchenko, Sep 28, 2012
    #7
  8. You should have nearby the official Java language reference manual.

    That, and some sample programs to work on should be enough,
    though your Java will likely look like on of the other languages.

    I more elementary book would explain many things that Java
    programmers are assumed to know, but that aren't in the LRM.

    You might look at: http://webster.cs.washington.edu:8080/practiceit/

    I have not seen anything like it for any other language.

    -- glen
     
    glen herrmannsfeldt, Sep 28, 2012
    #8
  9. Dan Kalish

    Arne Vajhøj Guest

    And that is an important distinction.

    There is a huge difference between a beginners book in Java that spend
    hundreds of pages teaching programming and OOP and a beginners book in
    Java that assumes the readers knows about those.

    Wrox typical has two books for each language. Beginning Xxxx that really
    starts from scratch and Professional Xxxx that assumes you know the
    basics and focus in the Xxxx specifics.

    I don't know Professional Java, but their Professional C# is pretty
    good for people that knows Java and/or C++ and need to learn C#.
    I would put Bloch in phase 2 and Goetz in phase 3 of the
    learning process.

    Arne
     
    Arne Vajhøj, Sep 29, 2012
    #9
  10. Dan Kalish

    Arne Vajhøj Guest

    I assume you mean JLS or?

    A big portion of people will not learn efficiently from JLS and
    need something that start simpler and build up in knowledge.

    Arne
     
    Arne Vajhøj, Sep 29, 2012
    #10
  11. (snip, then I wrote)
    Yeah, that one.
    That is true, but the question is someone who has been programming
    for years in six other languages.

    But it also depends on what that person wants to do in Java.

    To do things that previously would have been done in one of
    the other languages, all one needs to know is the Java way
    to say the same thing.

    But yes, there are some things that aren't in the JLS that
    one might want to know. If one wants to write applets, then
    JLS is probably not the best choice.

    -- glen
     
    glen herrmannsfeldt, Sep 29, 2012
    #11
  12. Dan Kalish

    Lew Guest

    What you say makes sense, but getting Bloch early has an advantage.

    I suggest getting Bloch right away, because he teaches idioms and
    other things that will keep you out of trouble. It is better to learn
    good habits from the start rather than unlearn bad ones later.

    This is not to say you should attempt to learn the Java language
    itself from /Effective Java/. You should use it in conjunction with
    the tutorials and other sources to learn to use Java effectively.
     
    Lew, Oct 1, 2012
    #12
  13. Dan Kalish

    Dan Kalish Guest

    Thank you, everyone, for your ideas. When I learned Pascal, I only had onebook, the official version. Unfortunately, all but one compiler, the IBM on 5 1/2" floppies, didn't adhere to the standard. When I set out to learnC++ (learning is still in progress) and Fortran 95, I had 5 books each.

    Many of the books start with a general overview of computers and programming languages. I don't need that. Many others go into "language lite" mode,in which they only refer to some features which can be put together to make a working program. I want a little more than that - all the features butwith recommendations of which ones are better used than others. E.g., thewebsite says Ivor Horton's Beginning Java, Java 7 Edition (Wrox) "Introduces you to a host of new features for both novices and experienced programmers." That sounds good.

    What do I want to do with it? I don't know. All I know is that my first career was as a programmer, I'd like to get back into it, and knowing Java is a useful credential. I suppose I'd like to use it for some tasks that can be done on a typical workstation.

    What languages are taught in beginning Computer Science courses? There's no consensus on that but Java, C++ and Python are candidates.

    SNOBOL is fun. Did you know the Library of Congress uses SNOBOL? At leastthey did in around 1998.

    Dan
     
    Dan Kalish, Oct 1, 2012
    #13
  14. You may also want to look at Ada, which descends in part from Pascal.
    GNAT, a popular reference implementation, includes a (non-Ada-standard)
    SPITBOL extensions library:

    <http://gcc.gnu.org/onlinedocs/gcc-4.6.3/gnat_rm/>

    Followup-To: comp.lang.ada
     
    John B. Matthews, Oct 1, 2012
    #14
  15. Dan Kalish

    bob smith Guest

    I'd go with this:

    Java™ for Programmers (2nd Edition) (Deitel Developer Series) by Paul J. Deitel and Harvey M. Deitel (Apr 18, 2011)


    The Deitels usually do a good job.
     
    bob smith, Oct 1, 2012
    #15
  16. Dan Kalish

    Arne Vajhøj Guest

    Maybe.

    I always thought his book was starting completely from scratch and
    not going that far.
    I would expect Java and C# to be the most used languages
    in CS courses today.

    Arne
     
    Arne Vajhøj, Oct 2, 2012
    #16
  17. And actually GNAT has a flavor JGNAT that outputs Java
    byte code for the JVM.

    I don't think it ever was popular though.

    Arne
     
    Arne Vajhøj, Oct 2, 2012
    #17
  18. Dan Kalish

    Arne Vajhøj Guest

    Many years ago I bought their "Java Web Services for
    Experienced Programmers". I was not impressed - apparently
    their definition of "experienced" is way different from mine.

    Arne
     
    Arne Vajhøj, Oct 2, 2012
    #18
  19. Dan Kalish

    David Lamb Guest

    We (Queen's U, Kingston, Ontario) start with 1 semester of Python then
    one of Java and generally use Java after that (with C in one semester in
    2nd year). I've heard rumours that Python has become common at many
    universities for a first language, but don't know of any surveys that
    would support that.
     
    David Lamb, Oct 2, 2012
    #19
    1. Advertisements

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.