#What is the most efficient way to learn JAVA.

1 messages · Page 1 of 1 (latest)

tulip verge
#

Hello! I need to learn Java in a short period of time, can someone suggest what is the best strategy, or what is the best website to learn from?

green crystalBOT
#

<@&987246399047479336> please have a look, thanks.

green crystalBOT
#

While you are waiting for getting help, here are some tips to improve your experience:

Code is much easier to read if posted with syntax highlighting and proper formatting.

If nobody is calling back, that usually means that your question was not well asked and hence nobody feels confident enough answering. Try to use your time to elaborate, provide details, context, more code, examples and maybe some screenshots. With enough info, someone knows the answer for sure.

Don't forget to close your thread using the command </help-thread close:1027500463647621170> when your question has been answered, thanks.

sage sage
#

we usually recommend mooc here

green crystalBOT
#

MOOC is a completely free introductory Java course created by the University of Helsinki, it is a great way to learn Java from the ground up.

It consists of two parts, one at beginner, and another at intermediate level. The end of the course is marked by creating your own Asteroids game clone!

Even though the instructions show how to configure and use NetBeans for the course, you can use IntelliJ. To use IntelliJ, simply install the TMC plugin by opening IntelliJ -> File -> Settings -> Plugins and searching for TMC. You will then be able to use IntelliJ to complete MOOC.

Visit MOOC here: https://java-programming.mooc.fi/
(the course is available in both English and Finnish)

About the course - Java Programming

sage sage
#

but realistically, u wont be able to shortcut

#

its a learning process that takes time

#

u can of course dedicate a lot of time to it and then finish faster

#

but ultimately, u cant really shortcut the time u have to spend to reach a certain level

#

for most students that means about 2 years of learning and practicing until they are "job ready"

tulip verge
#

it's not my first programming language, so I may be able to do it in a shorter time

sage sage
#

thats fair. maybe u can find specific migration guides

#

or u just skim through mooc

#

🤷‍♂️

#

depends on ur level in the other language

tulip verge
#

and the reason is that I have a really good opportunity for a job that requires Java

sage sage
#

i migrated from java to c++ in 1 month, but i had 10 years of java exp at that time

wild knoll
#

The youtuber BroCode has a full java tutorial including Swing. Takes 12h

sage sage
wild knoll
#

Idk. Swing is good

sage sage
#

tried javafx?

tulip verge
#

what is swing?

sage sage
#

a gui library for java

#

but it got superseded by javafx 15 years ago

wild knoll
tulip verge
#

noteddd

wild knoll
#

Almost all gui tutorials use swing

sage sage
#

only the old ones

#

anyways

#

lets get back to the point

wild knoll
#

On youtube from 2010 onwards

sage sage
#

id just open mooc or any book teaching java and then skim through the chapters

wild knoll
#

Even in 2019

tulip verge
#

i have like a month to prepare maybe

#

so its not that bad

sage sage
#

how much exp in years do u have in the other language and what language is it?

tulip verge
#

i come from web developing, so mainly javascript

sage sage
#

how many years roughly?

tulip verge
#

but i have a really great opportunity in Java

#

1.5 years

#

still new

sage sage
#

so i suppose ur not too experienced with OOP stuff? classes, inheritance, interfaces, ...

tulip verge
#

not muchh

sage sage
#

well, that will be ur main issue then

tulip verge
#

i have an idea tho

#

okay

sage sage
#

cause the way u have to think in java is entirely different

#

since its purely driven by oop

tulip verge
#

greatt

sage sage
#

personally, id open mooc and skim through the first chapters where they explain basic syntax and how to write methods, variables, loops, ...

tulip verge
#

sodo u suggest learning oop first?

sage sage
#

cause u know that stuff already

#

and then focus on the oop stuff mostly

#

so objects, static vs non static, fields, inheritance, composition, interfaces, abstract classes, overriding, lambdas, method references

#

and after that u can focus on learning the api

#

so what data structures does java have and how to use them (arraylist, hashset, treeset, hashmap, treemap, priorityqueue, arraydeque, ...)

#

the stream api and all the "java 8+" things

#

and basic common tasks like file io with NIO

tulip verge
#

i'm familiar with data structure

sage sage
#

yeah but u dont know how to create a list in java specifically

tulip verge
#

no

sage sage
#

but u need to know that

tulip verge
#

okayy notedd

sage sage
#

u dont have to learn how these data structures work under the hood, u know that already. but u have to know what java has to offer and how to use its api effectively

#

what methods are available, what classes exist

#

thats what i mean with learning the api

#

but before that, u need to learn all the core concepts. in particular everything related to oop

#

mooc should cover most of ur needs

#

and u can scroll past the stuff u already know

#

and skip exercises for parts that ur familiar with already

#

a text based medium works better if u have to skip a lot of content

#

its faster than listening to a video

tulip verge
#

exactlyyy

#

oh my god

#

thank you sooooo much

sage sage
#

ur welcome 🙂

#

good luck on ur journey

tulip verge
#

ur amazing

#

u made very interesting points

#

and i think it comes from great expereince

#

experience

#

how long have u been coding in Java?

sage sage
#

about 15 years by now

#

but also in other languages (c++, c#, kotlin and a bit of python and js)

tulip verge
#

wow very interesting

#

thank you again for ur help!!

sage sage
#

ur welcome cat_thumbs_up

flint meteor
#

it depends on the capacity of your brain, learning a programming language takes a lot of time to learn, even if you read a book about programming you won't immediately remember it all, all I can say is, use books and videos, because you will remember something better and understand it when you read it, hear it and see it ^^

tulip verge
#

Noted, I will combine both, and focus on key principles such as OOP, Data structure, Api, syntax

#

does it seem like a good plan to you?

sage sage
#

they hire u as junior, dont they? then they wont have high expectations anyways

#

its important that u understand existing code when u read it, so that u can also edit it

#

thats much simpler than creating code fresh

#

was in a similar situation when i started a c++ job with very little experience in that language

#

in the first months u need a lot of assistance when writing sth from scratch, but editing existing code works fairly well

#

given that u understand the core concepts of the language

#

u become more familiar with the api and syntax as u go

tulip verge
#

yup as a junior, they have a technical test and then a technical interview, and I want the job, its a very good company,

#

i will do what u suggested

sage sage
#

ur js knowledge lets u transfer a lot of core stuff:

  • variables, loops, if-else, switch, ... basic stuff
  • methods, parameters, return values, ...
  • how to structure and organize code properly
  • data structures
#

so concept wise for java ur only really lacking the oop topics

tulip verge
#

yes exactly that

#

will focus on oop for sure

#

and practice a lot

sage sage
#

if the goal is a junior position, it should definitely be doable

tulip verge
#

thats what want to knoww if its doable!!leslie

sage sage
#

how many years of experience with c++ do u have?

#

are u experienced in modern c++? smart pointers, move, concepts?

#

id say ur overall programming experience isn't good enough to do a transition in just a few weeks, but transitioning to Java should be fairly easy for u

digital badge
#

why is everyone so obsessed with leetcode 😦

sage sage
#

ull have the same mindset and feel like some things are just easier to do

#

interfaces is a new core concept u have to learn though

#

they are very important in Java and c++ doesn't have that. concepts come close to the idea

#

that said, most of ur transitioning time will be learning the very rich api that java has. much bigger in direct comparison to c++

#

no idea about go, but abstract classes fulfill a different purpose

digital badge
#

Unlike C++, Java has no multiinheritance if using classes. But you can implement multiple interfaces.

sage sage
#

the closest thing, mindset wise, to interfaces in c++ are concepts

#

yeah. thats it

#

yeah, grab any resource and skim through it. practice a bit while reading

steep forge
#

ts you mean 🤔

#

it's kinda similar i guess

#

except that in ts, you just need to supply whatever as long as it follows the interface contract

#

while in java, it's decided at compile time

#

and you can't put variables in an interface in java

leaden valley
#

Interfaces are heavily used in java, just doing spring security literally every thing you see an interface

green crystalBOT
#

Closed the thread due to inactivity.

If your question was not resolved yet, feel free to just post a message to reopen it, or create a new thread. But try to improve the quality of your question to make it easier to help you 👍