Interactive Java Tutorial

Discussion in 'Plugin Development' started by Exoaria, Mar 5, 2013.

Thread Status:
Not open for further replies.
  1. Offline


    Hi, I've been trying to learn Java by following the Oracle and Bukkit documentation. It's good, but it tends to jump right into the deep end assuming you know the basics of scripting without bothering to explain the terms. I had to actually Google all the terms and look on Yahoo! Answers before I found out what the documentation was talking about (i.e. 'void' means it doesn't return a value, 'public' means that it applies to all classes etc.)

    I found this website called Code Academy which has interactive tutorials that starts off at the basics, explaining the fundamentals of scripting and gets you to type them until you get it right, giving you tasks that get increasingly difficult and showing you where you went wrong along the way, awarding you with 'badges' and giving you access to a community along the way.

    I think it's absolutely incredible.
    My problem?
    NO JAVA! Only Javascript, which is devastating.

    If you want to see what I mean, take a look at the website. But I really want something like this to learn Java so that I can start making more advanced plugins.
    Does anyone know of a website that can do this? I will appreciate any answers.
  2. Offline

    Sagacious_Zed Bukkit Docs

    Java is a compiled programming language, which makes interactive learning tools somewhat more difficult to write compared to a interpreted scripting language like javascript. To my knowledge there is nothing comparable.
  3. Exoaria
    That's a very interesting way of learning, expecially good for people that learn by practice (like me :p)

    Googling your exact title lead me to:
    Seems to be like an IDE with examples, I like the syntax highlight grouping :}
    It needs to be installed because Java needs to be compiled, unlike JavaScript which is ran live.

    Still, if you want to make more advanced plugins just go ahead, you've learned the basics by googling, why should it be any diferent to learn more advanced stuff ? :p And you also have the plugin dev section for questions/help :p
  4. Offline


    I think sometimes having others to talk to about code helps, so you can have more human and less asynchronous conversation about your issues. Bukkit admittedly is not easy at all to get started with; as you said the documentation/tutorials tend to assume quite a bit (too much, IMO).

    You might stop by the Bukkit IRC and work with them on issues you run into or project ideas to get you started, or get a few people on Skype/etc. that know Bukkit well, so they can help you and so you can ask for help when you need it.

    If you want, you can add me on Skype (username is the same). I'm not always available, but I don't mind answering questions when I am.
  5. Offline


    Thanks for the links, I'll be sure to look at it. I'm slowly getting there, but I am getting pretty obsessive. I keep finding myself waking up during the night thinking about code and new ideas for it. The Bukkit Javadocs have helped me a lot as well seeing as they show the syntax for all Bukkit methods and how they work.

    Absolutely, I appreciate the work that the Bukkit team has put in to educating people to learn to write plugins in Java however I think that there is plenty of room to step the 'official educating' up a bit.

    It seems to me that all the YouTube videos aren't in fact Java tutorials, but just tutorials on where you can put certain lines of Bukkit code to make things happen. It's never really "Oh, an integer is a number of any kind, if your value returns a number it's an integer. If it returns text, it's most probably a String. That's why when we write this command we know that we want the server to return a message to the player, it's not a number, it's not a true or false so it can't be a boolean - that's why we put a String here when we put in this line."
    It's just. "Okay, so here you want to type String <code> blah blah blah, moving on, next part is here."

    I didn't know what I was typing in all the tutorials going @Override - I don't know what that is, still. Adding in Logger logger = logger.(something else). It was only when I actually read the Java tutorials themselves that I actually learned what was going on, and then the JavaDocs for Bukkit tend to help as well.

    This is difficult, but I am enjoying it. My server has gone dead because I'm not spending any time on it until I finish writing these two plugins; "Champion" and "DeathQuest" before I return. I'm hoping to have them finished by the end of March.

    Speaking of which, I specifically want these plugins for me. Off topic, when I'm done, should I release them to the public or keep them for myself? I can see them both being very unique and useful. (A survival scoreboard to see who has gone the longest without dying, so players can check the top players and try to beat each others time // and a plugin that sends a player to Limbo when they die. It's to function like a deathban but make things more exciting by giving them tasks to complete to get back to the real world.) - I'm just not sure if I should make them available to everyone else. I'd like to, but what's your opinion on doing that kind of thing?
  6. Offline


    I wouldn't have learned Java had it not been for my programming classes (which I am still taking). It's pretty difficult to learn, in my opinion, without having someone introduce it to you in person. I learned a lot from my programming assignments/labs and now when I pick up the Bukkit API, it's pretty easy for me to do simple tasks. If it's at all possible, I would recommend getting some formal class or getting taught by someone who is experienced in the industry. It's one thing to know how to program, but to program in a way that's efficient, concise, and beautiful is another thing all together.

    With that being said, I think it's awesome you're trying to learn on your own. Best of luck to you.

    EDIT: I love Codecadamy. I did most of the HTML course over my winter break and they added a PHP course recently! The nerdness in me is excited.
  7. Offline


    Exoaria To an extent I think there is a fair assumption in Bukkit's documentation that you understand the basics of Java - primitives, object classes, variable declarations, etc. - Bukkit's goal really isn't to educate people on how to use Java, but how to use Java to code for Bukkit.

    Whether you release your plugins is up to you; there are benefits and pitfalls. For example, others will often find bugs you missed and report them, however they will also want to be able to customize and add features to your plugin that you don't want or care to add.

    Learning Bukkit and learning Java are really two different tasks. Trying to learn both is like learning to drive and build a car at the same time. While the two are synergistic, they are vastly different in complexity and skillset.

    This is why I say you should work with other coders on a more personal level, so they can explain the reasons why things are done a certain way and offer advice on your issues, rather than the generic issues that most fledgling coders face.

    The other often overlooked detail about coding is that it is by no means an easily acquired skill. It will take time and a lot of patience. You'll have to accept that for a while at least your ability will not be able to keep up with your imagination.
    zwonof likes this.
  8. Offline


    For anyone trying to lean/improove his java, I can highly recommend this book (yes I know, it's a book. not a website, but at least as good.):

    Head First Java.

    It is very well written so anyone can understand it, it's fun to read and you really learn from it. It for sure doesn't cover every aspect of the language, neither is it a good source for reference if you try to do one specific thing. But its great to get started, learn how Java really works and after reading it, you'll know for sure where you get your information from.
  9. Offline


    Use CodeAcademy's tutorial on Python to learn basic logic, ect. Then take the JavaScript one. Read through Oracle's documentation on the different classes, syntax, ext. Makes life easy for new programmers.
  10. If you want a basis for learning Java the best place, even just for learning the potential of the language, has got to be Youtube, especially more recent video series where you get active support in the comments section (TheNewBoston being my favourite). There are also some incredible tutorials specifically for Bukkit on there. The best part about youtube? It constantly has new people producing up-to-date revisions of tutorials; in five minutes you can find a tutorial on just about anything made in the last few months or so.

    If you find interactive learning even better than that, my suggestion (as I have the same issue) is simply go on these tutorials, watch them, learn the potential of Java. Then using javadocs, help from here, and (I would suggest) stackoverflow write a few basic plugins (or applets if you want to just try Java itself first) and progress that way.

    Another point - learning everything about Bukkit is hard if you try to do it alone, so don't. Make sure to enlist the support of everyone and anyone you can, the best way would be to ask questions in structured ways when you have them (so you can be easily understood and answered instantly) or if you have an error, give all the information straight away. A key thing that I've noticed (in myself as much as anyone) is that initially you might feel afraid to show your code (either through much unnecessary embarrassment or through a fear of someone nicking some of your ideas) - don't be, it will only make it harder for yourself.
  11. Offline


    I ounly partially agree with that. It is true that good videos can be a great way to learn programming. But there are so many video tutorials out there doing things completely wrong and thereby causing more damage than helping. The problem is, if you are just starting to learn java, there's no real way to tell which one is good and therefore helpful an which one isn't.
  12. Until it's too late and you end up with a completely dysfunctional piece of code. I concede that point wholeheartedly, though I would say that if you back up that with support from places like Stackoverflow and the javadocs - as well as sticking with reputable youtubers (either based off of a good comments section, good number of views (though not a definite indicator) and good ratio of likes to dislikes) - you shouldn't be dragged too far off the right path even in the worst cases.
  13. Offline


    I have requested that Codecademy add Java, C/C++, and others. but I have also found this website, which does everything in the browser:
  14. Offline


Thread Status:
Not open for further replies.

Share This Page