r/javahelp • • Jul 06 '24

I WANT TO LEARN JAVA

Hello guys, I am interested in learning Java, I am a computer science student, any recommendation for a good book to complement my course?

0 Upvotes

24 comments sorted by

•

u/AutoModerator Jul 06 '24

Please ensure that:

  • Your code is properly formatted as code block - see the sidebar (About on mobile) for instructions

  • You include any and all error messages in full

  • You ask clear questions

  • You demonstrate effort in solving your question/problem - plain posting your assignments is forbidden (and such posts will be removed) as is asking for or giving solutions.

    Trying to solve problems on your own is a very important skill. Also, see Learn to help yourself in the sidebar

If any of the above points is not met, your post can and will be removed without further warning.

Code is to be formatted as code block (old reddit: empty line before the code, each code line indented by 4 spaces, new reddit: https://i.imgur.com/EJ7tqek.png) or linked via an external code hoster, like pastebin.com, github gist, github, bitbucket, gitlab, etc.

Please, do not use triple backticks (```) as they will only render properly on new reddit, not on old reddit.

Code blocks look like this:

public class HelloWorld {

    public static void main(String[] args) {
        System.out.println("Hello World!");
    }
}

You do not need to repost unless your post has been removed by a moderator. Just use the edit function of reddit to make sure your post complies with the above.

If your post has remained in violation of these rules for a prolonged period of time (at least an hour), a moderator may remove it at their discretion. In this case, they will comment with an explanation on why it has been removed, and you will be required to resubmit the entire post following the proper procedures.

To potential helpers

Please, do not help if any of the above points are not met, rather report the post. We are trying to improve the quality of posts here. In helping people who can't be bothered to comply with the above points, you are doing the community a disservice.

I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.

12

u/Normal-Ad5880 Jul 06 '24

Ive been working as a full stack dev for 8 months and learning java/spring as I go. Had to figure it all out, mostly on my own, so here's some advice.

Half of the stuff online is out of date or depricated/marked for removal. I suggest buying literally any java basics book that uses either java 17 or java 21

Also if you're looking into frame works, spring start here by Laurentiu Spilca is great and will have you making basic web apps in no time.

Lastly, Amigoscode on YouTube is amazing for new java devs who want to learn java and spring. He even has road maps, but I advise against watching any tutorials until you have a basic understanding of java.

Spring is a massive framework and can easily become to much to soon.

Good luck with your studies :)

0

u/Objective_Suit_4471 Jul 07 '24

Ummm in school I learned inheritance I think it was. But that was a pretty big struggle for me, I think it involved constructors and then a main class that would put all the small classes that list the constructors out together. Idek tbh

Sort of like storing a bunch of important lists of information. Do you know any good ways of relearning all that? It confused me a tonnnn.

2

u/guywithcircles Jul 06 '24

On a pragmatic side, what worked for me was 'Java - The Complete Reference', by Herbert Schildt.

To complement the book with more context, see if the following works for you:

  • Java Enhancement Proposals (JEPs) which are a must if you want to understand the language feature design, problems that a feature addresses and the language from an evolutionary perspective. You understand the what and the why in its context.

  • Java Language Spec

1

u/Kikok02 Jul 06 '24

For Java - Introduction to Java Programming
Spring Boot - Spring Start Here

Complement the book on spring with some online course to clarify some topics.

1

u/iovrthk Jul 06 '24

I recommend : JAVA - Data Structures and Algorithms

1

u/Evening_Armadillo_71 Intermediate Brewer Jul 07 '24

If you are a bit more advanced later on I recommend taking a peak at Clean Code from Robert Martin

-5

u/VirtualGab Jul 06 '24

Don’t spend money look online, I personally think a good tutorial on YouTube is BroCode’s gets you understanding the logic of the language and its very basics

-19

u/[deleted] Jul 06 '24

Don't spend too much time learning the base language, pick a framework soon so you can unleash the true power of Java (its ecossystem). If web dev, go with Spring Boot, if gamedev, libGDX, and so on.

10

u/i_like_coffee01 Jul 06 '24

i think its a terrible advice if he hasnt yet gotten into programming, which wasnt mentioned. frameworks have lots of stuff going on under the hood, will be a nightmare to understand it without first understanding coding and its concepts in general.

-2

u/[deleted] Jul 06 '24

Dude is a CS student, he should have the general programming stuff already figured out from stuff outside Java. So makes sense to use Java only for what it is useful.

9

u/wildjokers Jul 06 '24

Horrible advice, have to learn to walk before you can run.

-2

u/[deleted] Jul 06 '24

Dude is a CS student, he should have the general programming stuff already figured out from stuff outside Java. So makes sense to use Java only for what it is useful.

-1

u/wildjokers Jul 07 '24

What in the post makes you assume OP is male?

2

u/Ok_Satisfaction7312 Jul 06 '24

Please ignore this “advice” OP. It’s absolutely NOT what you want to do.

1

u/dudigerii Jul 06 '24

To be fair, you can learn a lot about the basics of a language by using some kind of library or framework from the start. But it only works if you have a lot of experience in other programming languages and a solid understanding of programming fundamentals (algorithms, data structures, etc.). For example, I have learned everything I know about C++ by using SDL and Raylib (on the other hand, I’m not an expert C++ programmer).

-2

u/[deleted] Jul 06 '24

Dude is a CS student, he should have the general programming stuff already figured out from stuff outside Java. So makes sense to use Java only for what it is useful.

-20

u/FriendlessExpat Jul 06 '24

I'm java dev with 5 years of experience. Dont learn java, its boring language with boring job oportunities. Learn Rust, C++, Python or something that will lead to more exciting jobs

5

u/i_like_coffee01 Jul 06 '24

could you elaborate? got me curious what you mean exactly

2

u/FriendlessExpat Jul 07 '24

Most of the Java jobs are in the finance sector, banks, loan agencies, and stock exchanges. Most of the time projects are not very exciting, read data from here, store it in this database or cache, and expose it through an endpoint there. It gets pretty repetitive pretty quickly. The atmosphere in financial companies is usually not very fun, very serious corporate people grinding and thinking that the job is all there is to life.

With Python, rust, and C++ you get to do more system programming, VPNs, cryptocurrencies, machine learning, network programming, low-level stuff, distributed systems, embedded devices, and operating systems. I think these things are much more exciting, interesting, and interesting than Java jobs.

I picked up a Java job at the beginning of my career because I just needed a job to start earning money. I didn't have any strong opinions about the language, but looking back I wished I waited and picked something else.

Now I'm pretty decent Java developer and earn enough, but I cannot do a career change because I need to support my family and pay my mortgage jo becoming junior Rust developer for half of what I'm getting right now is not an option for me unfortunatley.

1

u/wildjokers Jul 07 '24

What more exciting jobs are available for the languages you mention vs java?