How do I get started?

Discussion in 'Bukkit Discussion' started by Skullgunner1, Mar 20, 2013.

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

    Skullgunner1

    I really want to start learning how to code plugins for Bukkit. I have next to no experience in Java and extremely little in C++. (I got to know how to do If and Else if. That's about it.)
    So... how do I get started? And how much do I have to know to really start coding plugins?
    Also, when importing the Bukkit jar into a Java IDE, that also brings new commands you can use, right? So is there a list of commands you can use? So confused.
     
  2. Offline

    Gravity

    Since this is a pretty common question I'll answer it pretty extensively and link to it later.

    My suggestion is DO NOT START WITH BUKKIT. This doesn't mean you shouldn't make plugins as a beginner, it means you shouldn't make plugins when you have no (or next to no) knowledge of syntax, method usage, variables, classes, inheritance, etc.

    You could sit around and try to piece together a plugin using the wiki and asking tons of questions, but it'd be equivalent to someone standing over your shoulder telling you what keys to press as you program. As soon as that person is gone, you're lost because you don't understand why you did what they told you to do. I've tried to teach people who want this kind of interaction, and every time, literally 10 times out of 10, they quit programming. They don't understand it, and get frustrated that they're not able to work on their own.

    My suggestion is that you learn Java first. Make some cool programs; it won't take long for you to understand the language and concepts enough to dive into Bukkit. Bukkit doesn't really take a lot of background knowledge and will teach you a lot because it's so hands-on, but you really do need to know how to use Java. You can't dive in with no familiarity with an IDE or libraries and expect to just pick it up.

    Here's how to get started: start solving a problem. Don't waste time with all these small little details, just pick a problem you want to solve. This could be making a calculator or something similar. A calculator is a great basic program. In any case, use google or coding resources to find how to start a program, then look up how to print something out (to the console the program is running in, not a printer, I mean), then look up how to take user input, then how to multiply or add or whatnot. My point is that instead of googling "how to make a calculator in java" and then copying code, you should search only what you need to know at that stage of the process. Pick a problem to solve, and keep working until you solve it. By the end, you'll probably have some new knowledge of what is possible in Java, and you'll get another idea for something to do. Do it.

    Once you feel comfortable with making your own methods, return values, objects, variables, logical operators, class inheritance, and various other things you may venture into Bukkit programming if you feel up to it. Don't rush yourself. I worked on Java stuff for about a month or two before looking into Bukkit to familiarize myself with the language. It may take you longer, it may not take as long. You will learn from Bukkit, but you can't expect to learn everything. You'll only become stressed, overwhelmed, and depressed.

    Here's the oracle introduction to Java, feel free to use it or google your own source. http://docs.oracle.com/javase/tutorial/getStarted/index.html
     
  3. Offline

    Skullgunner1

    Holy cow. Thanks for the post, I really appreciate it. I'm getting right on the Oracle tutorials.
    And when, say, I do get good enough at Java so I can make plugins, how can I learn Bukkit functions? Or... what are Bukkit functions? A little clueless on that side.
     
  4. Offline

    bitWolfy

  5. Offline

    Archarin

    You won't have to worry about that for awhile according to Gravity's post. :)
     
    Gravity likes this.
  6. Offline

    wacossusca34

    Couldn't have been explained any better.

    I've spent more time programming outside of Bukkit than with it. A year of study and work with Java for me made the API simple to learn for me, but I don't think you need to go that overkill. However, some people learn slower than others, so you might spend a lot of time getting a grasp of the language.

    bitWolfy - I don't recommend video tutorials. See my signature.
     
  7. Offline

    Gravity

    I'm really conflicted about video tutorials. One one hand, they force you to pay attention and actually type what the person is typing. This isn't as good as coming up with code yourself, but it's a start. If you were to visit a tutorial website and copy+paste code, you haven't done yourself any good. On the other, of course, they're really dull and not entirely helpful.

    For me, I started on my own just fiddling around, did take about a month or two of a Java-based Computer Science class in High School (I know that isn't an option for some people) before getting into Bukkit. I watched a few of Dinnerbone's very old (and now outdated) plugin tutorials to get a base setup and learn how to handle events / commands. Then I went to town on an idea I had and coded the crappiest code I have ever written until the problem was solved. But it didn't matter! It was done! Can't stop anyone once they've done that.

    Anyway, a bit off topic but I do confess to have watched some videos, although I agree with your sentiments completely that they're entirely too explanatory and impersonal to do too much good. In my opinion, if you're watching anything but the basics (maybe variables, class structure, methods, etc.) and then possibly looking up videos lately for a specific problem you're doing it wrong. Don't just sit around and look at videos on how to make complicated systems; it won't ever help you. Just start going and google search / watch videos on what you need to know along the way.
     
  8. Offline

    wacossusca34

    Yeah, I don't have much on an opposition against people using videos to help their learning process, but using them as a primary source of information will not turn out well. I just see a lot of people using the whole thenewboston series for Java programming and coming out of it without much of a clue on what they are doing.

    Videos are great for helping your learning process, but they shouldn't be the center of it.
     
  9. Gravity I don't feel that way. After every tutorial for thenewboston I would make my own program with different variables and attempting new things.
     
  10. Offline

    bitWolfy

    wacossusca34 I learned to program by programming, turning to google if I did not know how to do something. But that would be a really useless advice, would it?
     
  11. Offline

    wacossusca34

    I consistently Google my issues, be it programming or not. Generally I browse around for very small fixes or information on a particular feature or issue in something. Although, I've always turned to a textbook for learning the actual programming language.

    I would say videos, Googling, and other miscellaneous sources of information for programming can help. But never rely on them as a primary source of information for larger topics. For example, looking for a different tutorial on how to use a HashMap is beyond acceptable, but using some random post to learn about OOP and basic syntax won't work out too well since they need the explanation a textbook would give.

    I've just found that my textbook when starting Java taught me so thoroughly that I was able to play with the language with server programming, graphics (and a little graphics acceleration), and other new APIs like Bukkit within a year, and completely understand what I was doing. I took a peek at thenewboston during my journey and just found that they were directing me, not teaching me. After that encounter, along with some other, I decided to stick to the books.

    Just from a personal experience, I've found the books to be the most reliable way to learn. Programmers that I meet who learn from video tutorials consistently miss out on important information and have a rather wobbly understanding of the language, and a small arsenal of classes they understand from the language itself. It's just a pattern I've seen.

    But here's where all the real learning happens: Practice. If you don't do that, then it won't matter what you're learning from, because you always need to apply it, so all the poster should be concerned equally about the time he/she is putting into this.
     
  12. Offline

    DarkJesse

    Wait i need to use NetBean For make applications then wen i learn java make plugins?
     
  13. Offline

    Gravity

    Please don't jump so far ahead on yourself. You need to learn the basics of what an IDE is vs. what a language is before you do anything else.
     
Thread Status:
Not open for further replies.

Share This Page