Best Way to Learn Java

Discussion in 'Programming' started by bmac20, May 20, 2016.

  1. Hello. I really want to learn how to code, but only understand the VERY basics of Java. I bought a book called Head First Java, and read a little, then I got confused and stopped. I am taking Java as a course next year in my highschool to boost my knowledge. But would you guys recommend me read Head First Java anyway? Will it give me the basic understanding of Java and then hopefully learn Bukkit?
    Thanks :)
     
    • Like Like x 1
  2. Same I'm taking ap computer science next year which is in Java. I read head first Java last summer and it really helped me learn everything. It's so easy to learn stuff through it and you will definitely learn more from it than a giant paragraph book or YouTube playlists--which are super easy to forget stuff (at least as a beginner). Although it is a bit outdated, it is good for starting... Really good at explaining things. It is how I learned and I was really dumb in the beginning :cool:
     
    • Like Like x 1
    • Friendly Friendly x 1
  3. Thank you. I appreciate it :)
     
  4. To tell you everything, I know Java and I am a 13 years old (almost) part time dev, I'm not new on this forum, just changed accounts recently. Don't be discouraged by anything, just learn. I myself have been discouraged many times, but I came to it, after approximately 2, 3 years... I would advise you start practising, the easiest way I would suggest is: Just get a basic program in Java and learn how it's built, and try telling yourself you are the programmer. Once you're in the programmer's character, read the code, and try seing what it does, then looking forward to tutorials on how to manage those kind of things and use it yourself at your ease. I started copying code from each programs to make new ones, until I started memorizing and thinking like a dev, what if I do that? Hmm, no, won't work.... Tell Yourself, you can't do it the first time, and try and try again! So, just continue until you become a Java master. And since you're studying this for your highschool knowledge, be sure to know what everything does. The easiest way to learn is also to memorize things graphically, your brain will better remember a drawing with some words than a complete paragraph.

    Hope I helped you!
    (Sorry from bringing my life for everywhere making it a huge thing to read, just adding some annecdotes, because I found it difficult too at the beginning...)

    EDIT: Made some little spelling mistakes, fixed all that up!
     
    #4 DevCubia, May 20, 2016
    Last edited: May 20, 2016
    • Like Like x 1
    • Agree Agree x 1
    • Funny Funny x 1
    • Friendly Friendly x 1
  5. This looks like what someone would do to get the syntax down and get the handle of things in the beginning, but they are going to want to really understand Java's main feature which is object-oriented design. Design patters will be the only thing holding someone back after they learn the basics. Like, should this class be abstract or an interface? Should this class implement some stuff then make more abstract methods for others to extend? I really never learned object oriented design well until head first Java and it does a great great great job at explaining it.

    So @bmac20 still read it. If you get the hang of it through that, there is also head first design patterns if you still need some help on how the design should be. Which it doesn't really sound like it is that important, but it really is important. You can have amazing efficient control, but that will do nothing if you don't know how to structure your program correctly.
     
    • Like Like x 1
    • Agree Agree x 1
  6. Yeah, that's how I learn, I was a bit apart in learning it, I found it stupid to just watch videos, but yeah, you're right on that point ;)
     
    • Like Like x 1
  7. For me I learn like this
    1. Codecademy.com
    2. Attempt to make a plugin from PogoStick29Dev tutorials
    3. Still noob and on ly know a bit
    4. Become better when looking at @ConnorLinfoot CratePlus src
    5. Know what is class, instance, how to use static field variables, constructors, methods back then I only know how to make String, int, float etc,
    6. That's all
     
    • Like Like x 1
    • Agree Agree x 1
  8. If you're good enough in Java to the point where you know how to differentiate between an abstract class, an interface, OOP design structures (polymorphism, encapsulation, inheritance, DRY, etc), searching and sorting techniques, and the basics ("reference" semantics, use of arrays, use of an ArrayList, loops, syntax, etc), you won't learn anything new in the class that you shouldn't have learned already. I just took the course, I think it helped me brush up on one thing in the whole school year.

    As for learning Java, you've got a book, you should utilize what you learn in basic programs. Someone above mentioned copy/pasting, which you should never do when starting to learn the basics of any language. Type everything out, it'll help you remember what you're learning and avoid bad habits. There are also some nice links for the beginning programmers to ask for help [or you could put them here, in Programming] in the "Yea yea..." stickied thread in this forum.

    TL;DR Don't copy/paste, put what you learn to use immediately.
     
    #8 Msrules123, May 20, 2016
    Last edited: May 20, 2016
    • Like Like x 1
    • Agree Agree x 1
  9. After getting a basic understanding of Java, should I move right to learning Bukkit, or continue to learn Java and then learn Bukkit later?
     
  10. You should know the basics, Collection types, and how OOP should work before trying to use Spigot. Learning Java past the basics is always helpful too.
     
  11. It depends on your definition of "a basic understanding" really, to me that means you know the difference between a primitives and Objects, understand the syntax and are capable of performing basic tasks (CLI based Hello world et al) with virtually no hesitation. To some people a basic understanding includes things such as the Java Collections Framework, OOP principals and simple design patterns.

    I'd advise ignoring the majority of advice you receive about learning methods from others, one of my biggest nitpick with the education system in place in England is that they teach us a great deal about visual, auditory and kinaesthetic learning including how to maximise our learning potential, but then force us all to use the same method. This isn't just limited to England, you'll encounter it constantly throughout life. It's incredibly important to understand that whilst many successful developers may glide along reading books or watching videos, you may feel like you're bashing your head against a wall.
     
  12. I learned a lot from The new Boston on YouTube. Link Later on you might need to move on to something else but or take a class but The new Boston will teach the basic syntax and structure of java.
     
    • Friendly Friendly x 1
  13. Class creation, solving problems on strings, integers etc
    - Start getting some code done, write some simple methods or functions that solves problem (e.g 1 + 1, censoring certain chars from a strings)

    Get comfortable with:
    Math functions (Math class API)
    Integer Arithmetic (%, -, +, /, *)
    Boolean comparisons (==, !=, true, false)
    Condition (if, else statements)
    Recursion (In a nutshell, calling a method 'within' a method)
    Strings (charAt, substring, length, equals [See String class API])

    Understand basics of Arrays:
    Arrays of (string, int, char etc)
    Learn iteration (for , while loops)

    Start designing your own simple API:
    Design your own objects, methods.
    * Take a look at OOP (Object Oriented Programming)

    These are just some of the stuff that I find is a 'must' to learn IMO. You can always explore more.

    Useful Youtube channel:
    TheNewBoston (Link)

    Online Community:
    stackoverflow - this will probably be the first link to pop up if you search for something related to programming.


    **Suggestions**
    Get a good understanding on Java basics FIRST before attempting to write a Bukkit plugin.
     
    • Like Like x 1
  14. Give Core Java: Volume 1 a good and thorough read, should do more than just prepare you for the basics of Java.

    Learning to navigate and read Javadocs is also essential.
     
    • Agree Agree x 1
  15. Your pseudo signature code is wrong... lol.

    public static void devCubia {
    DevCubia.getCookies();
    DevCubia.getMilk();
    DevCubia.getSkill();
    }


    ...
     
    • Agree Agree x 1
  16. Realistically, if you use OOP properly, wouldn't DevCubia extend a Person class?
    and you forgot empty parameters (). If so, the method shouldn't be static.. You're just
    one of those kids who always uses static but never actually uses proper OOP programming :(
     
  17. "Rushing through only pushes you back."

    Make sure you have full knowledge of Object-Oriented-Programming, and other advanced concepts before jumping to Spigot/Bukkit Development. A lot of flame wars come up here, and quite frankly, you don't want to make a fool out of yourself if you like hopping into
    arguments and giving your opinion.
     
  18. Best way to learn java is to get your ass on eclipse and learn the language and watch videos on youtube for help. also ask experienced devs lol.
     
  19. If you want all learn of Java, you should read books. If you want learn the basics, watch videos on youtube and than code it

    but possibly try by heart!
     
  20. I rushed through it, don't judge me xD