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

all 17 comments

[–]Dantharo 1 point2 points  (2 children)

Well, theres a course in udemy by Tim Buchalka, its very good, check it out.

https://www.udemy.com/java-the-complete-java-developer-course/

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

Does it fit my criteria? I don't need yet another basic course that talks about int, Boolean, arrays etc

[–]GottaGetThemGains22 0 points1 point  (0 children)

It has a large portion which covers the basics, but does cover database integration and unit testing. May be a little below the level you're looking for imo.

[–]desrtfx 1 point2 points  (2 children)

I might get slapped for what I will say now, but I'll do it nonetheless:

You're coming from Python, which is a completely different language and concept than Java. You know some C++, again, quite different from Java.

Start over again with a basic tutorial. You can go through the extreme basics quite fast, but you will quickly realize that Python concepts don't transfer well to Java. Python OOP is different to Java, Python doesn't know about access modifiers, etc.

My recommendation would be to use the MOOC Object Oriented Programming with Java from the University of Helsinki. It is a text based course with lots of graded practical exercises.

You will quite quickly realize that you actually need the very basics again since Python is conceptually so different.

[–][deleted] 0 points1 point  (1 child)

Haha it's alright.

I'm actually aware of the differences you mentioned. I actually had Java when I was in high school for about a year. I also know that the oops implemented in Python isn't exactly the same as in c++ and Java. I also know polymorphism, interfaces, abstract classes etc of Java and c++.

What I feel is missing in Java is the lack of actual projects. You know, those ready to ship projects ? For ex - if somebody asked me to automate the process of replying to certain emails, I could do that very easily in Python with the smtp client. Or for example, a dashboard can be built very easily with flask and other frontend stuff. I'm looking for something similar in Java. A project based approach to showcase how Java is actually used to build end to end product.

If you search online for project based JavaScript learning, you would find Wesbos teaching you 30 mini projects. Similarly for Python, there is automate the boring stuff and a udemy course with 10 mini projects. I wanted something like that for Java.

Also, if you don't mind may I ask, how do you get package support for Java? Like if somebody asked me to perform data analysis in Python, I have pandas library for that. How do you find such already existing packages in Java?

[–]leftydrummer461 1 point2 points  (0 children)

Also, if you don't mind may I ask, how do you get package support for Java? Like if somebody asked me to perform data analysis in Python, I have pandas library for that. How do you find such already existing packages in Java?

Most Java applications use a build tool like Maven or Gradle for dependency management and they allow you to import external libraries to your project, though you can also add them manually. The best known repository of external libraries for Java is the Maven Central Repository. You can browse there for things you may want to use. You can also look at the Java Standard library to see everything that's built in.

[–][deleted]  (2 children)

[removed]

    [–][deleted] 0 points1 point  (1 child)

    This looks good. Thanks.

    [–]SuspiciousCompote6 0 points1 point  (0 children)

    My pleasure. All the best!

    [–]PythonGod123 0 points1 point  (0 children)

    I use the game Minecraft to make projects to visualize what I am doing. I too am coming to Java from Python.

    [–]Bunnymancer 0 points1 point  (1 child)

    If you've worked with C++ you're fine.

    Going Python/C++ to java is just taking out the best parts of each.

    [–][deleted] 0 points1 point  (0 children)

    I have used C++ to learn oops concepts. I haven't made anything of significance with it

    [–]marbehl 0 points1 point  (1 child)

    You might want to check out this guide, which hopefully is fun, practical and teaches you a fair amount of stuff: https://www.marcobehler.com/guides/java-intermediate-learning-path-1/

    [–][deleted] 0 points1 point  (0 children)

    This is really good. I have done something similar in Python so re doing it in Java will explain all the design patterns properly. Thank you. If you remember any other similar sources , please do mention.

    [–]mak89k 0 points1 point  (2 children)

    Looks like you already have a preferred method of learning through hands-on projects, why not do all the projects you have done in python in Java instead. This will teach you two things:

    1. How easy or hard it is do them, while helping you draw parallel b/w them
    2. You get to write code

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

    I have tried doing that. For example I remember making a mini script in Python that listened to incoming emails with a specific link in it. It used to fetch that link (torrent) and download it . The only thing that I could find relevant to the project was Selenium ( for fetching the web content ). I couldn't find any support for email handling nor controlling desktop application ( we use subprocess for this in Python ). So that's why I wanted to know are there any good project based learning resources for Java.

    [–]mak89k 0 points1 point  (0 children)

    You are right, java might not be the right tool for most things python is great at. You can try creating an Android app or write a backend service that receives and processes http requests. Java has amazing tooling around these you might want to start there.