The official I don't know Java thread

Hi, I’m a hardware guy doing my best to jump straight into Java. Other than IT I know little about programming. I’d like to know where the best place to start would be. I’ve always been told to learn Java, but obviously that doesn’t tell me much. I “know English”, but that doesn’t make me a master of it, if that makes any sense.

Anyway: help me with a few things: Define “knowing Java”, and tell me the best way to start from there.

General new to programming thread!


Learn Scala or Groovy, they’re 10x better.

@AbrarSyed was this what you meant by:

<AbrarSyed> We should make everyone use groovy


I’m doing this to end up creating plugins and such. Would either of those help me?

Yes. Scala and Groovy both run on the JVM so you can use any Java code with Scala, Scala with Groovy, Groovy with Java, Java with Groovy, etc

1 Like

Can’t argue with that.

Would it be as good as writing Java itself resource wise, or would it be like a port?

Or is that not even a valid question?

you cant be serious with groovy

1 Like

I’m a start from the beginning kind of person. Many universities have switched to teaching Java first. I think that’s stupid, but what do I know.

That said, I’d suggest starting at the beginning and just familiarizing yourself with C, C++, glossing over C# (?), and then hitting Java. I say that because the guys at say that, and I think they’re awesome.

What I’ve actually done is a mess of things. Most people who know what they’re talking about suggest learning something like Python first. I think there’s a lot of sense to that. Python is great, and I think you should probably start there. I’ve heard Groovy is like Python, but why start with like? Start with Python, learn the basics.

Attack problems at sites like Project Euler. THEN I’d start hitting Java with something of a combination of a textbook and just ripping apart code of someone who does things correctly. Look at what they do (hopefully they follow convention), try to figure out what’s going on, and from there start to attack small problems. Once you achieve some level of competence pure practice and conversing with people who also speak the language (lots of stackexchange and hanging out in communities like these) will probably turn you into a life-long learner.


Groovy is very dynamic and offers metaprogramming abilities.
Scala is a less painful java
Java is just java

1 Like

I agree, take this route:

  • Python or Ruby
  • Groovy
  • Scala or Java

However, in the end there is no reason to write Java, groovy’s syntax is much cleaner and can do everything java can.

If you want to learn Java, I recommend tutorials done by TheNewBoston. He does a nice job with it.


I’ve heard about him a lot, I’ll go give him a try.

E: This was to Sir:Mr:Bman. Used to XenForo, sorry!

Ah, understood. Thanks for the advice!

Another “My Language is better than yours” thread without any ending. Everyone has a language he or she likes and everyone has a language he or she dislikes. With certain reason. No language is perfect or the devils tongue. So, what is the point of this thread? To achieve a higher posting count?

For the thread starter: Java is a programming language to create programs, which are solving automatically problems. It is easier then c or c++ to start with, but maybe harder than python or any other script language. If you have learned the basics of java or whatever any other programming language is easier to learn.
There is no bad programming language to start with.Ok, only the esoteric one like malbolge


This is in no way that kind of thread… like, I honestly have zero idea where you got that from.

This thread was started because I know zero Java and would like to learn as quickly as possible.

1 Like

You won’t get around just to write more and more code. Start with a small program for doing simple stuff (eg. copying a folder somewhere else) and start doing more complicated stuff. Starting to code in Java is very easy, but it will take time until you can really code stuff like sponge-plugins.

Will do, thanks!


Anyways… I mostly agree with @obscurehero, learn python first to get you into the world of programming, develop the mindset, and learn the basics. The rip into java as he reccomeded with a book and lots of code examples.
The one thing I disagree on is the thing about teaching java first in classes. When learning java yourself, its quite hard because it has seemingly arbitrary rules and syntax that may see idiosyncratic. However when an instructor is guiding you through the material, these things can be explained and accepted much more easily. In fact using something more open and free like python is bad because people nay develop bad programming practices due to that very freedom.

As for groovy… One must know java to appreciate groovy. It simply takes all the power of java and adds a thick layer of syntax sugar making it similar to the more free languages like ruby and python. I don’t reccomend learning it first.


I guess a not so subtle question in all this is whether you are wanting to learn software development. If that is the real meat of the question then the language shouldn’t matter much, though personally I would look to Java or C#.


I think Java or C# are the best mixture for beginners of both, easiness (usually script languages provide easiness) and strictness (which usually C or C++ provide). Easy to learn, but with a strict c-like syntax. Also, learning Java has the advantage that you can program plugins for sponge and everybody knows that everybody wants to program sponge plugins.

Ok, sure will do.