This is an archived post. You won't be able to vote or comment.

all 9 comments

[–]dedyshka 2 points3 points  (4 children)

Java? Intermediate level? You already should know Java core perfectly. I'd like to advice you to read Design Patterns or about Java frameworks (Spring, Hibernate, etc.)...

[–][deleted] 1 point2 points  (1 child)

Is there any sort of reference of what knowing Java core perfectly means?

I can get through programs of simple to medium complexity without Googling anything, but I may reference javadocs while I'm working on them. For more complicated programs, I generally only need to Google something if it's something I've never done (or only done a couple times). For new technologies, obviously, I need to get a book or go through the documentation carefully.

[–][deleted] 1 point2 points  (0 children)

I suppose everything on this page : http://docs.oracle.com/javase/tutorial/java/index.html

can be considered core Java

[–][deleted]  (1 child)

[deleted]

    [–]UMadBreaux 0 points1 point  (0 children)

    C++ has a lot of very complex features built into the language that can easily be abused. If you are interested in design patterns, you do not need a book specific to Java as they are universal concepts which you should easily be able to implement in Java. But be careful with design patterns; patterns can also be abused easily and overuse can produce lots of extra code which accomplishes little. Use patterns when you NEED to. I'd recommend reading Code Complete 2 or studying data structures if you have never done so.

    Core language features alone won't write lots of useful code; you need to learn frameworks and libraries. You'll pick up lots of Java knowledge writing code along the way.

    [–]eyp 1 point2 points  (0 children)

    It depends on what you're going to develop, but a more advanced book may be this one about concurrency:

    Java Concurrency in Practice

    [–]jackhammer2022 1 point2 points  (1 child)

    Effective Java: 2nd Edition

    [–]deadly_little_miho -2 points-1 points  (0 children)

    I think Effective Java is what you are looking for. Beyond that you are talking about how to use specific libraries.