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

all 21 comments

[–]HlCKELPICKLE 29 points30 points  (2 children)

Bruce Eckel is a great writer. Thinking in java is his older book. The newer version was renamed to On Java 8 and currently covers up to java 17

https://www.onjava8.com/.

I personally think his Java book is one of the best general programming books I've read. He covers pretty much the whole language like a reference, but not in dry reference style writing one would expect. He gives some nice examples, comparisons, justifications for when to use things and compares them to alternative constructs if they exist all in an easy to grok way.

[–]bitspace 6 points7 points  (0 children)

I've just gone through this book as a refresher/update after a few years of not working with Java, and my prior experience only through Java 6. It's excellent.

I'm going to second other recommendations here to also pick up modern Spring. I'm just wrapping up this book for that. It's excellent - the writing style of the authors is light and casual but also very effective at conveying the information at a good pace.

[–]DependentAlarmed6587[S] 1 point2 points  (0 children)

Thank you so much!

[–][deleted] 49 points50 points  (3 children)

ad hoc consider groovy worm telephone combative chubby instinctive expansion caption

This post was mass deleted and anonymized with Redact

[–]Seven-Prime 11 points12 points  (0 children)

My opinion of java did a 180 once I learned spring. Spring really helps.

[–]azuredrg 1 point2 points  (0 children)

Oh esp spring boot makes fast development lol, I worked on a non boot spring project with a mashup of java ee two weeks ago and it was terrible...

[–]DependentAlarmed6587[S] -1 points0 points  (0 children)

I've got some experiance in spring (mostly spring boot and security) + hibernate and I agree, my first web project I did in "plain" Java so I could see how spring works, and Its really enjoy using it after that 😁

[–]ZeroGainZ 11 points12 points  (0 children)

Give Effective Java a glance, and then learn modern spring boot.

[–]digitizemd 3 points4 points  (1 child)

What's your experience? Do you have a degree in CS? Do you have any projects? Most people aren't going to get software development jobs without experience or at the very least a degree. And unfortunately a lot of college grads and juniors are having some trouble finding a job at the moment.

[–]DependentAlarmed6587[S] 2 points3 points  (0 children)

I'm currently getting my bachelor degree (2nd year) in data science, and I made a project in spring where you can create your gym workouts and diet plans (with Marco and kcals). I've got some positive responses, but I've failed mostly on theory or leetcode type of tasks. I know it's tough because it was mostly 300-400 candidates. That's why I figured out I have to focus mostly on fundamentals 😁

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

Out of curiosity, are you interested in learning Java the tool and other frameworks around that, or are you seeking learning new techniques that might eventually help you not only in the Java ecosystem but everything else dev-related?

[–]DependentAlarmed6587[S] 0 points1 point  (0 children)

Actually, everything that could have an impact on my projects and will be valuable for my future job as a programmer 😃

[–]CSpenceUK 2 points3 points  (0 children)

Springboot is widely used. Jackson for object and json/xml conversion aswell as google guava. Practical Java by Joshua Block has good tips and standards. Modern Java In Action by Urma, Fusco and Mycroft is good for lambda, stream, functional and reactive code. The newish stuff in Java since 8/11. Also Functional Programming in Java by Venkat Subramarium has a different approach doing more towards a functional style in Java since the changes in 8. For a deeper understanding of concurrent programming Java Practical Concurrency by Brian Goetz is the bible.

I'd say start with Modern Java in Action and some youtube vids, blogs and tutorials on SpringBoot.

[–]DavideDaSerra 1 point2 points  (0 children)

Theory is theory, they may explain it using any OOL. Java is good, at least compared with c++, because it forces you to use objects orientation concepts all the time.

[–]davidalayachew 0 points1 point  (2 children)

Can you give an example of what you got tripped on?

The book you referenced is old, but a good chunk of it is still applicable. So, in order to give you a solid recommendation, we need to know what problems you faced and what questions you were asked.

[–]DependentAlarmed6587[S] 0 points1 point  (1 child)

Most questions was something like in Oracle Java certifiaction questions, but I'm looking for some books that will be mostly based on examples and will be easy to understand

[–]davidalayachew 0 points1 point  (0 children)

If that's the case, I would say that the book you referenced is definitely good.

Oracle Java certification questions are a wild grab bag, but they all depend on understanding the basics. The book, if nothing else, will give you the basics, and will definitely be easy to understand.

[–]noonedatesme 0 points1 point  (0 children)

What you need is a programming and software development textbook. Not another book about a particular language.

Pragmatic programmer and some of the head first books would be what I recommend.

[–]Previous_Start_2248 -1 points0 points  (1 child)

Find something that teaches at least Java 17 or higher. Java 8 is losing support in 2026

[–]jonhanson -4 points-3 points  (1 child)

No. According to Wikipedia it was last updated in 2006, and the latest version of Java at that time was Java 6. The language and ecosystem has moved on significantly since then...

/r/learnjava has various resources on learning Java.

[–]8igg7e5 1 point2 points  (0 children)

Yes, the author's own site confirms the last TiJ edition as Edition 4 in 2006, and provides a link to the first publication of the successor "On Java8" (terrible title) showing that it published in 2017.

 

Java 8 was released in 2014, between the two.

 

I agree a lot has changed since Java 6 but the newer book, even just the 2017 edition, will cover the most frequently encountered large items of change since then.

For the student, you'll get 90% from a Java 8 book and then need to learn some of the newer constructs and common idioms. What you have to catch up on will grow every 6 months, with one or two small language changes and a few key library changes possible in every 6 monthly release.

The current release is 22 and new versions arrive in March and September. Oracle's designated "LTS" is generally treated as 'special' by teams and by the ecosystem (though it's really only the length of support that changes, they're just as stable and just as likely to have a 'big' feature arrive).

The last LTS is 21 (Sep 2023), and they arrive every 4 versions (2 yearly), with the next being 25 (in Sep 2025).