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

fromgate

Administrator
Меня довольно часто спрашивают: как я научился писать плагины и где я учился программировать на 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:

MrCollBoy ☘

Developer
А давайте посвятим эту тему где каждый будет рассказывать как набирался опыта.

Значит был обычный день траты времени в никуда возле компьютера и тут мне в вк пишет знакомый пхп программист с примерно таким содержанием: "Привет, мы тут решили делать проект, го с нами?" меня это заинтересовало так как я пытался изучать уже пхп, но этот язык был совсем не мой... Я согласился и пытался второй раз выучить пхп там я получил самые азы для любого яп, но потом проект умер и у Всех были свои дела... Я бросил пхп. Через некоторое время я попал в один малоизвестный проект 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 огромное тебе спасибо, за тот толчек который довел меня сейчас до того что я умею, я не могу тебе выразить ту благодарность, которую я хотел бы.
 

Ission

Pioneer
Меня так же не редко спрашивают об изучении плагинов. В общем-то моя история мало чем отличается от истори @fromgate, так же увлекался программированием, был достаточный багаж знаний C, меньший C++, из увлечений PHP, Object Pascal и конечно же Ассемблер, о существовании языка Java даже и не знал.
Всё началось с того, что было желание написать игрушку с полностью редактируемым миром, тогда таких не было. И тут, о чудо, нашёлся Minecraft, да ещё и с возможностью редактировать его через плагины. Поискав источники информации был найден первый туториал на bukkit.org и рекомендации использовать NetBeans, по нему создан первый плагин -- фикс крокозябр чата, а дальше пошло-поехало. Документация к Java+Bukkit API позволили создавать практически всё, что душе угодно. В прошлом году дело дошло до модов, а сейчас и на мобильные платформы переезжаю постепенно.
Из книжек мною не было прочитано ни одной по Java, а из книжек по программированию, за исключением ассемблера, читается только "Искусство программирования", но это уже ближе к профессиональной литературе, я так думаю.
 
Начал программировать не так давно. Узнал о игре MineCraft в начале 2014 году(да, очень поздно). Зарегистрировался на крупном проекте серверов, играл, и летом я написал заявку в модераторы. Меня приняли. С этого момента началась моя эпоха программирования). Кроме как модедирования серверов, я помогал администраторам. Первым моим шагом в программировании был html, хотя это и не язык программирования. Потом проект решил открыть сервера на телефонах. Меня взяли в команду Девелоперов и пришла пора учит "пе хе пе":). Я писал на pocketmine больше полугода и в один прекрасный момент друг сказал мне о прекрасном ядре Nukkit. Я вспомнил свои знания Java, которые получил полгода назад в школе программирования для "школоты":). Пришлось вспомнить и опыт Bukkit. Вообщем, ядро мне понравилось, написал много тестовых плагинов, и сейчас пишу уже крупные плагины, скоро релиз;)
 

JustMaks19

Developer (Level 2)
мне одному лень писать свою историю кодинга?
 
Last edited by a moderator:
Top