JavaRush /Java блог /Архив info.javarush /Начинающему JavaRush'евцу.
Sdu
17 уровень

Начинающему JavaRush'евцу.

Статья из группы Архив info.javarush
Если Вы поставили себе цель стать крутым Java-кодером и только начинаете свой путь с JavaRush, если Ваша цель получить максимум пользы от данного ресурса, а не бесполезное прожигание времени путем бездумного "отстреливания" задачек - этот топик для Вас. Скажу честно, к написанию этого слегка брюзжащего поста меня подстегнула задача level05.lesson12.bonus03, а точнее один и тот же бесконечный вопрос возникающий буквально каждый день, а то и несколько раз в день в соседних топиках. Встречая очередной "крик о помощи" задумываешься, ну неужели человеку проще написать вопрос и ждать ответа неопределенное время, чем опустить взгляд на строчку ниже и прочитать то, что писалось уже не единожды. Итак, предлагаю Вам свой алгоритм работы с заданиями JavaRush. Все изложенное ниже выработано на собственном опыте и опыте других студентов.
Решаем задачу самостоятельно.
  1. Внимательно читаем задание до конца. Не единожды замечал за собой, читаешь задание, где-то к середине в голове уже начинает складываться решение, воодушевленный тем, "какой Я умный" пишешь код, жмешь заветную кнопку и видишь - «Программа не прошла тестирование». Epic fail.
  2. Проверяем общий вид задачи. Убеждаемся что мы не меняли имена пакетов, классов, методов полученных с сервера, а новые методы, классы, пакеты созданы согласно заданию (если это оговорено). При сдаче на проверку в задаче не должно быть задокументированных кусков кода, текстовые коментарии не содержащие кода допустимы.
  3. Перечитываем условия задачи. Да, перечитываем его до тех пор, пока Вы не будете полностью уверены что поняли его верно и разночтения исключены. После этого возвращайтесь к задаче. Обязательно учтите что входные данные указанные в задании даются именно для примера, а не как исчерпывающее условие. При тестировании придумывайте свои данные, используйте граничные данные, пустые значение, null и прочие варианты которые могут подсунуть Вашей программе. Адекватного ответа от сервера, что же ему не понравилось, Вы не дождетесь, надейтесь только на себя.
  4. Итак, на Ваш взгляд задача работает правильно, корректно обрабатывают любые входящие данные, ответ тоже дает правильный, но сервер ее не принимает... Проверяйте вывод! Тут важно все, порядок ввода/вывода строк в консоль, вспомогательные сообщения, которые Вы добавили чтобы "программа была более красивой", лишний пробел в конце вполне может поставить крест на всей задаче. На данном этапе, наша с Вами задача научиться правильно решать поставленные задачи, а не создавать красивые программы с дружественным интерфейсом. Вообще, рекомендую хотя бы поверхностно ознакомиться с теорией тестирования программ. Хотя бы для того, чтобы хоть чуть-чуть представлять что может происходить с Вашей программой на сервере при проверке, как она может проверяться, и что в Вашей задаче может препятствовать успешному прохождению тестирования.
  5. Пункт желательный, но не обязательный к исполнению, так сказать уровень Nightmare. Представьте, что это задача не Ваша, а кто-то попросил Вас найти в ней ошибку. Поработайте компилятором, прогоните мысленно весь жизненный цикл программы в голове. Очень часто при подобном подходе можно заметить узкие места программы.
Ищем помощи.
Итак, мы крутили задачу и так и сяк, но каменный цветочек не выходит, есть вопросы по заданию, не понятен алгоритм, сомневаетесь в выходных данных (сюда можете добавить свои пункты).
  1. Не спешите создавать новую тему или писать Ваш вопрос в пером попавшемся топике! Поверьте, 90% всех возникающих у Вас вопросов уже кто-то задавал до Вас и на них уже были даны ответы. Еще на 9% вопросов можно найти ответы на просторах интернета. Обычно, на поиск ответа на возникший вопрос уходит не больше 15 минут. В любом случае, ответ найденный самостоятельно принесет Вам гораздо больше пользы. Самый простой способ получить ответы на Ваши вопросы. Начинающему JavaRushевцу. - 1 Попутно Вы получите разъяснения задания, ссылки на теоретический материал, ознакомитесь с различными подходами к решению данной задачи, найдете кучу тестовых данных и просто познакомитесь с другими "жителями" этого форума.
  2. Давайте уважать друг друга! Если Вы не выполнили первый пункт, не стоит просить других пользователей предоставить Вам тестовые данные или найти ошибку в Вашей программе. Никому не интересно по десять раз писать одно и то же или работать Вашим личным гуглом.
  3. Итак, Вы искали, но не нашли, или нашли, но не знаете как исправить. Как правильно задать вопрос?
  4. Не создавайте новую тему, если есть существующие! Да, это не запрещено правилами форума, но подумайте о следующих студентах идущих по Вашим стопам. Думаю, гораздо проще найти ответы в одной ветке форума нежели в паре десятков.
  5. Публикуя свой исходный код, делайте это полностью! Да, включая задание, package, import и прочее. Ошибка может затесаться где угодно, а задание поможет отвечающему быстрее войти в курс дела, не тратя силы и время на выяснение о чем вообще идет речь.
  6. Правильно оформляйте свой код! Начинающему JavaRushевцу. - 2 Неформатированный код очень сильно затрудняет чтение и понимание, этим Вы ускорите получение ответа.
  7. Перед публикацией, попытайтесь упростить Ваш код. Если код содержит какие-либо "хитрые" моменты, прокомментируйте их. Учитывайте, что другому человеку придется прочитать и понять Ваш код.
  8. Постарайтесь быть как можно точнее в постановке вопроса. Как бы не смешно это звучало, но порой требуется переводчик "с русского на русский".
  9. Ну и на по следок. Будьте вежливы независимо от полученного ответа. ;)
Надеюсь эти простые правила помогут Вам получить от обучения не только максимум пользы но и кучу положительных эмоций, избавят от негатива Вас и других обитателей JavaRush. От всего сердца желаю успехов в прохождении курса!
Комментарии (16)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Truefirefox Уровень 40
16 апреля 2016
апну чатик
Pegas Уровень 34
15 апреля 2016
На help.javarash аудитория меньше, тут веселее.
molodets Уровень 30
26 октября 2015
А как создать топик в разделе «Обсуждение задач»? У меня при создании топика в выпадающем меню «В какой блог публикуем?» есть только один вариант: «мой персональный блог».
Gwyn Уровень 7
6 мая 2015
Хочу обратиться ко всем, у кого:
— вызвали проблемы задачи 8-9 уровней, как и 17 -18 по причине непонимания кода
— когда вы просто по 3 часа разбираете код из 3 классов, где методы переплетены и по 100 раз вызывают друг друга
— когда вроде понимаете, зачем конструктор, но повторить не можете.

для меня эти 3 этапа были контрольными токами, на которых я упирался в тупик. Этапами, на которых не бросить обучение удалось только напряжением силы воли.
Когда ты смотришь в код задачи изученой 2 дня назад темы и понимаешь, что все забыл и сегодня ты в нем ничего не понимаешь…
НЕ ДЕЛАЙТЕ МОЕЙ ОШИБКИ — НЕ ЛЕЗЬТЕ НА ФОРУМ ЗА ГОТОВЫМ КОДОМ ИЛИ ПОДСКАЗКОЙ.

Каждая сданная с подсмотром подсказки задача ОТДАЛЯЕТ ВАС от обучения. Сейчас мне дико надо пройти снова те задачи на потоки, а я не могу. рву на себе волосы, что спешил проскочить сложный уровень и проматывал задачи. А теперь мне не хватает опыта их решения, чтобы пройти ту же биг задачу на 27 уровне.
вернитесь в тему задачи, перечитайте. Лезьте в интернет. Куда угодно. на форум идите только в 2 случаях
— программа прошла ваши тесты, но не принимается
— вы сдали задачу и идете посмотреть как эту задачу сделали другие.
К примеру, есть очень крутая бонусная задача «кроссворд». Я убил 2 дня на алгоритм, он вышел в 300 строк.
и когда я таки ее сдал и полез на форум, то увидел алгоритм на 50 строк. Но я никогда бы не понял его красоты и сути, если бы не потратил 2 дня на свой.
Для копипаста — коддинга не нужен джавараш.
Сейчас я этот алгоритм применяю в своих проектах игр — крестики — нолики на большом поле, морской бой от хед ферст у меня разросся до 8 классов, причем я выкинул их класс с логикой и написал с ноля свой. С сериализацией, ИИ и прочими свистелками, которые я дописываю до сих пор (Использую Java FX 2.0 для гуи, поскольку свинг устарел и жить ему от силы еще пару лет. Причем продираться через FX приходится с минимумом
javaNub Уровень 8
2 апреля 2015
Большое спасибо за пост! Было несколько раз, пока не отключил комменты со своим кодом()…
Примем к сведению :)
napeHb Уровень 21
2 апреля 2015
Встретилось несколько задач, где не проходил проверку реверсивный список, в условии про это ничего не было сказано.
TransCosmio Уровень 9
26 января 2015
Предлагаю ссылку на этот топик давать в качестве ответа на все бездумно созданные темы. Просто ссылку, без объяснений, и не начинать помогать, пока страждущий не оформит пост правильно.
bazizdeg Уровень 33
23 января 2015
А по поводу
оформления кода
это верно подмечено. Удивительно, но похоже это не всем очевидно.
Solank Уровень 18
22 января 2015
Звонок на радио:
— Поставьте пожалуйста песню про Анапу!
— ?????
— А-на-па-следок я скажу…

По сабжу — хорошо написано, спасибо =)
Turambar Уровень 19
22 января 2015
Шикарно! Спасибо огромное! Все понятно и предельно подробно!
Сам нахожу (если уже уперся совсем) подсказки в уже имеющихся темах — по 1 пункту )