46% done with the first Java Course. We just did the first iteration of the Mortgage Calculator project. Mosh kinda lost me and I was wondering does it get a little easier to follow along the deeper I get into the course?
My biggest hurdle is the syntax.
Does the syntax get easier? I’m finding it far more difficult than Ruby or Python. I’m afraid to go any further since I was unable to create a working version of the calculator on my own.
Now after watching the video I seem to get it but I wouldn’t be able to recreate that on my own and it’s disappointing.
I’m a novice and this is one of my first real attempts at learning to program. I found Mosh from the popular python video which I enjoyed. However, I felt that I was only able to follow along because i’ve gone through a Ruby basics book a few times over and have a decent grasp of the general basics.
Java is one of (if not) the easiest object-oriented programming languages.
Keep grinding through the course and google as much as needed.
I don’t think the syntax gets “easier” but I would encourage you to keep going. I believe it’s important to be familiar with at least one OOP language. If you learn Java well enough, making a transition to C# or some other OOP language will be much easier.
Since the syntax does not generally change, I am going to assume that you mean “easier to use”. Any programming language is going to get “easier to use” the more you use it, but I am curious: which parts of Java’s syntax do you find particularly difficult?
Ruby and Python are both dynamically typed (ie. types are only known at runtime so you do not declare your the types of your variables or parameters). Perhaps you are effectively saying that “Java is more verbose” (ie. it takes more code to do the same thing) which may be partially due to the fact that Java is statically typed (ie. types are declared and therefore known at compile time).
For example, in Python you can declare and print a variable like this:
some_variable = "hello world"
Whereas, the equivalent in Java looks like this:
String someVariable = "hello world";
It might be worth looking into the advantages of statically typed languages over dynamically typed ones to better understand the trade-offs. Dynamic typing may be concise, but it comes at a cost and often it results in more bugs that could have been caught by a compiler (rather than surfacing at runtime).
I have learned a lot of programming languages and honestly Java is one of the most verbose, but it is generally pretty understandable (I would say generics in Java are probably the most difficult part to understand).
If you want pretty much all of the advantages Java gives you, but add some simplifications and syntactic sugar, you should probably check out Kotlin (which can mostly compile side-by-side with Java code).