Как выучить Java и начать писать плагины?

Discussion in 'Разработка плагинов' started by fromgate, 8/2/16.

  1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.
Dismiss Notice
We welcome you on our site. This site is devoted to the Nukkit project and all that is connected with him. Here you can communicate, download plugins, also many other things get acquainted! Register the account right now :3
  1. fromgate

    fromgate Administrator

    Messages:
    665
    Likes Received:
    186
    Меня довольно часто спрашивают: как я научился писать плагины и где я учился программировать на Java.

    Я сразу отвечу на второй вопрос: до написания своего первого плагина (под bukkit - но суть от этого не меняется) я не знал Java вообще. Т.е. моё изучение Java заключалось как раз в разработке плагинов.

    До написания своего первого плагина у меня был опыт программирования: когда-то я увлекался программированием на ассемблере, на Pascal и Delphi, также был небольшой опыт программирования на C++.

    Поэтому начало обучения Java у меня началось с создания первого плагина по туториалу. Это была обучалка по созданию плагинов на bukkit, с использованием IDE Eclipse, что и предопределило мою многолетнюю практику — до nukkit'а я не использовал Intellij IDEA.

    Естественно в процессе я пользовался не только подсказками в Eclipse, но и гуглом, а также регулярно задавал вопросы в разделе посвященном разработки плагинов.

    Поэтому мой ответ на вопрос, вынесенный в заголовок, будет звучать так:

    1. Пройти пошагово все пункты по туториалу "С чего начать создание плагинов". При этом всё делать вручную - т.е. не нужно копировать код из исходников. При воссоздании рекомендую с самого начала задавать собственные имена переменным, классам и методам.
    2. При возникновении ошибок внимательно читать их, переводить и пытаться понять, что они значат.
    3. Если сразу ошибку найти не удалось - попробуйте просто погуглить её или задать вопрос на нашем форуме (можете прямо в тексте с туториалами). В 99% случаев такая ошибка уже у кого-то была и решение есть в интернете. Чаще всего ответ находится на stackoverflow.com — для меня этот сайт оказался самым полезным.
    4. Решив все ошибки и пройдя туториал - сразу попробуйте написать свой собственный плагин. Если у Вас есть опыт разработки плагинов на PHP для PocketMine - то лучше всего если Вы займетесь портированием плагина. Это позволит Вам сосредоточиться именно на нюансах языка. Если у Вас опыта нет, то можете просто придумать простейший плагин: например вывод текста при определённых условиях, плагин на команды телепортации и т.п.
    5. Напишите первый плагин. Лучше всего если Вы придумаете какую-то фишку для своего сервера, для которой нужен плагин и начнёте его писать. Я так когда-то написал свой первый публичный плагин NoSmoking! — после него всё пошло гораздо легче. И хотя код того плагина просто ужасен, но это был важный плагин для нашего сервера - он очень активно использовался для создания антуража на сервере, а также это был большой шаг в моем обучении.
    6. При разработке плагинов не стесняйтесь заглядывать в чужой код. Я регулярно пользуюсь декомпиляторами или смотрю как устроено на github'е. Вас никто не заставляет копировать чужой код, но "подсмотреть" какие-то приемы - это может быть очень полезно для обучения.
    Дальше будет проще!

    Я знаю, что мой опыт, часто находит возражения: я не предлагаю читать книг, а "учиться" по живому. Но на мой взгляд, это можно великолепно совмещать. А уж откуда Вы черпаете информацию из книг или из гугла, это дело десятое.

    Естественно в процессе Вам потребуется почитать и какие-то статьи. Но всё это может потребоваться при решении уже каких-то конкретно поставленных задач.

    Единственно, если у Вас нет опыта программирования вообще, то я бы порекомендовал для осознания что такое программирование и с чем его едят либо почитать такие-то книги, либо "поиграть" на таких ресурсах:

    1. Обучение программированию на Hour of Code (краткая информация на русском): code.org/mc (тут вроде речь идёт от JavaScript, но по факту вы получите понятие об азах программирования - циклах, функциях и т.п.)
    2. Обучение Java в форме игры: javarush.ru
    И конечно книги. Какие - я не буду советовать, потому что не прочитал ни одной книги по Java. Но если кто-то допишет их в этой теме, я с удовольствием их сюда добавлю.
     
    Last edited: 8/2/16
    MrCollBoy ☘ and M4Gn1T like this.
  2. MrCollBoy ☘

    MrCollBoy ☘ Developer

    Messages:
    7
    Likes Received:
    4
    Minecraft:
    BJGsham1
    А давайте посвятим эту тему где каждый будет рассказывать как набирался опыта.


    Значит был обычный день траты времени в никуда возле компьютера и тут мне в вк пишет знакомый пхп программист с примерно таким содержанием: "Привет, мы тут решили делать проект, го с нами?" меня это заинтересовало так как я пытался изучать уже пхп, но этот язык был совсем не мой... Я согласился и пытался второй раз выучить пхп там я получил самые азы для любого яп, но потом проект умер и у Всех были свои дела... Я бросил пхп. Через некоторое время я попал в один малоизвестный проект minecraft мини игр, там я блеснул своими знаниями в этой сфере, а они были на достаточном уровне немного поднял сервер и тут дабы увеличить качество сервера я подумал: "А почему бы и мне не попробовать изучить яву и писать свои мини-игры". Ох, как мне понравилась эта мысль, я представлял как буду писать мини-игры и сколько у меня их будет. Как же я ошибался... Я начал искать ответы на свой вопрос примерного содержания: "Как выучить java" на что почти везде был ответ: "Читай книги" и почти везде светилась фамилия "Шильд". Я пробовал сайт java rush, что хоть чуть-чуть меня ввело в этот язык, но лень конечно брала свое, со словами "Эх, на сегодня хватит" или "Завтра буду" или "Зачем мне это надо?" я закрывал сайт и продолжал тратить время... Затем я решил просто смотреть видео по яве и тут был один русскоязычный канал драгонфентази или что-то вроде этого, уже не помню. Я просто переписывал код мало что понимая в нем и хвалил себя какой я молодец, хотя сам не строчки написать не мог. Все это время я хвастался своему знакомому пхп программисту: "Смотри что я могу" и т.д. Где-то 20-ого числа 14-ого года он предложил интересный проект minecraft с тем учетом что мы вместе кодим для этого проекта и он был готов выучить яву, мы договорились начать после всех праздников. Мы пошли в скайп где-то 15-ого числа января 15-ого года и тут я понял, что ничего не могу ему рассказать ибо сам мало что знаю. Мы начали вместе разбираться в этом, ну как разбираться он включал демку и мы читали гайды по плагинописанию и пробовали делать что-то свое, и первое что сделали это был эффект дыма на плеирмувевент. Мы тогда очень радовались... Затем я опять начал читать книгу и снова бросил. Проект не мог реализоваться из-за небольшой проблемки. Мы разошлись, и поскольку я узнал много нового для себя я стал писать плагины и первый мой плагин который я написал и даже продал за 150 рублей 3-ем людям это был донатчат, как же я тогда радовался и думал что все знаю. Код был достаточно ужасный, но все работало исправно. В течении этого года (2015) я все время кодил и кодил каждый день узнавал что-то новое. И вот уже как год я знаю ЯП java, не прочитав не одной книги даже до середины. Но я не считаю себя хорошим кодером, я максимум java junior не более. Мне очень нравится java, её синтаксис, её красота кода и то, что может она.

    P.S. Да, история вышла большая. Все основано на реальных событиях.
    P.P.S Вывод из всего этого то, что практика делает чудеса.
    P.P.P.S. Я очень благодарен тому программисту, если бы не он я бы сейчас вряд ли сидел на этом форуме, писал бы эту историю и имел девелопера) @Marshal огромное тебе спасибо, за тот толчек который довел меня сейчас до того что я умею, я не могу тебе выразить ту благодарность, которую я хотел бы.
     
    Marshal and fromgate like this.
  3. Ission

    Ission Pioneer

    Messages:
    1
    Likes Received:
    2
    Minecraft:
    lokivava
    Меня так же не редко спрашивают об изучении плагинов. В общем-то моя история мало чем отличается от истори @fromgate, так же увлекался программированием, был достаточный багаж знаний C, меньший C++, из увлечений PHP, Object Pascal и конечно же Ассемблер, о существовании языка Java даже и не знал.
    Всё началось с того, что было желание написать игрушку с полностью редактируемым миром, тогда таких не было. И тут, о чудо, нашёлся Minecraft, да ещё и с возможностью редактировать его через плагины. Поискав источники информации был найден первый туториал на bukkit.org и рекомендации использовать NetBeans, по нему создан первый плагин -- фикс крокозябр чата, а дальше пошло-поехало. Документация к Java+Bukkit API позволили создавать практически всё, что душе угодно. В прошлом году дело дошло до модов, а сейчас и на мобильные платформы переезжаю постепенно.
    Из книжек мною не было прочитано ни одной по Java, а из книжек по программированию, за исключением ассемблера, читается только "Искусство программирования", но это уже ближе к профессиональной литературе, я так думаю.
     
    MrCollBoy ☘ and fromgate like this.
  4. Fi3iK(ZeleninGerman)

    Fi3iK(ZeleninGerman) Developer

    Messages:
    18
    Likes Received:
    4
    Minecraft:
    Fi3iK
    Начал программировать не так давно. Узнал о игре MineCraft в начале 2014 году(да, очень поздно). Зарегистрировался на крупном проекте серверов, играл, и летом я написал заявку в модераторы. Меня приняли. С этого момента началась моя эпоха программирования). Кроме как модедирования серверов, я помогал администраторам. Первым моим шагом в программировании был html, хотя это и не язык программирования. Потом проект решил открыть сервера на телефонах. Меня взяли в команду Девелоперов и пришла пора учит "пе хе пе":). Я писал на pocketmine больше полугода и в один прекрасный момент друг сказал мне о прекрасном ядре Nukkit. Я вспомнил свои знания Java, которые получил полгода назад в школе программирования для "школоты":). Пришлось вспомнить и опыт Bukkit. Вообщем, ядро мне понравилось, написал много тестовых плагинов, и сейчас пишу уже крупные плагины, скоро релиз;)
     
  5. JustMaks19

    JustMaks19 Developer (Level 2)

    Messages:
    18
    Likes Received:
    2
    Minecraft:
    JustMaks19
    мне одному лень писать свою историю кодинга?
     
    Last edited by a moderator: 10/2/16

Share This Page