• ,

Я теперь тоже разработчик.

Всем привет!

Так вышло, что я отмотал свой испытательный срок уже довольно давно, но (удивительно) найти время на писанину теперь не так уж и просто.

Начну с самого начала. Меня зовут Михаил, мне 27 лет. Сразу хочу сказать, что у меня нет высшего образования (в процессе поиска работы это сыграло свою роль — кто-то может сказать, что сыграло со мной злую шутку, но по мне скорее оказало услугу), хотя за спиной у меня три института.

  • ,

Маленькие хаки с javarush

Где-то весной, учился полтора месяца на JR. Делал это с edge (да да). Он автоматом растягивал изображение по ширине экрана,

В последствие достигнув 26 уровня я немного остановил темпы, так-как нашел работу в небольшом сайтостроительном агентстве (кодя на php :D). Так как чувства, которые я испытываю к java слишком сильные я решил вернуться сюда и продолжить обучение.Зашел я на сайт с google chrome, потому-что осознал какое же уг (в fronend, отладке и тд) edge. И тут я увидел это.

Мне дико не понравились полоски по краям и то что текст не выравнивается по ширине экрана.
Если кому-то тоже не понравятся данные полоски, прилагаю решение для устранения их.

Нажимаем f12 в google chrome, в остальных же браузерах (кроме оперы) эта клавиша работает одинаково. В opera это Инструменты > Дополнительно > Средства для разработчика.
Находим следующий код, и стиль к нему.

Отключаем его.

Сайт встал по ширине экрана, но основная текстовая часть не встала так-как надо, поэтому переходим сюда.И отключаем следующие стили. (они отвечают за ширину контейнерной части на разных разрешениях экрана)

Воаля, после данных нехитрых операций сайт становится вот таким


Правда стоит упомянуть, что при открытие новой вкладки, все изменения сбросятся. Но и это тоже можно обойти например Этим плагином для браузера.
  • ,

Вакансия: Front-end Developer для проекта JavaRush!

Ты разговариваешь на HTML? Видишь сны с подключенными CSS? Можешь добавить интерактивности в стройную картину сайтов, используя JavaScript? Занимаешься этим несколько лет на фрилансе или аутсорсинговой компании и хочешь чего-то другого?


У нас есть отличный проект для тебя! Мы — небольшая компания, выпускаем очень классный веб-продукт, и хотим найти специалиста по верстке, который способен сделать его еще лучше!

Мы хотим, чтобы у тебя был:

  • Опыт работы в Frontend: от 2 лет;
  • глубокие знания CSS3, HTML5;
  • опыт работы с адаптивным дизайном;
  • прочные знания JavaScript;
  • Angular 2(4) — начальный уровень;
  • опыт работы с Bootstrap 3/4;
  • знание Git;
  • опыт работы с AJAX.

Будут плюсом:

  • Знания jQuery;
  • опыт работы с Illustrator;
  • умение мыслить креативно и создавать темплиты/дизайн на свое усмотрение.

Твои обязанности:

  • Верстка страниц и шаблонов на сайте Javarush;
  • создание и верстка новых модулей в проекте;
  • верстка landing pages;
  • работа со стилями.

Условия работы:

  • Работа в офисе (удобное расположение офиса — ст.м. Лыбедская);
  • Оплачиваемый отпуск (24 календарных дня) и оплачиваемые больничные;
  • Дружная команда профессионалов;
  • Возможность профессионального и карьерного роста;
  • Офис со всеми удобствами (зона отдыха, библиотека, кухня, бесплатный чай, кофе, фрукты и печенье);
  • Тимбилдинги и корпоративы за счет компании;
  • Возможность иногда работать из дому.

Интересно? Присылай резюме на почту: hr@javarush.ru
  • ,

Учеба на JavaRush. Поиск работы и прохождение собеседований. Часть 2.

Добрый день! В этой части я расскажу вам о составлении резюме, портфолио, поиске работы, прохождении собеседований, а так же выполнении тестовых заданий. Первая часть

Составление резюме и портфолио. Как всем вам известно, для поиска работы нужно составлять резюме. Существует множество разных статей и советов как это делать, я же расскажу только свое мнение.

Резюме желательно составлять на английском языке и желательно формы CV (на некоторых вакансиях только такую и требуют). Вот ссылка на сайт, где это можно сделать онлайн, но не обязательно придерживаться такой формы как там). Если же будете делать на этом сайте, то убирайте логотипы с резюме (они идут как колонтитулы в ворде).

На первой странице нужно указать всю самую важную информацию, что бы hr заинтересовался вами. Я там писал знание языков, прохождение курса JavaRush и кратко что изучал, прохождение стажировки и какие там были технологии. Далее, поскольку я шел на Android Developer, то писал все технологии и библиотеки какие знал по данной платформе. Далее можно написать про паттерны проектирования, системы контроля версий, системы сборки (maven, gradle), а так же в каких средах разработки вы работали.

После этого напишите о предыдущем опыте работы, если такой присутствует (если он никак не связан с программирование, то просто кратко опишите чего вы там достигли, какие улучшение в работе сделали). Потом идет образование и в самом конце я писал о своих проектах. Так как превалирующее большинство технологий вы напишете на первой странице, то не нужно на 100% повторяться и писать, что все они присутствуют в ваших проектах – напишите только самое важное.

Поиск работы. Начал я отправлять резюме где-то в средине весны 2017. На удивление вакансий на Android Developer даже в Киеве совсем немного, если посмотреть на самых популярных сайтах поиска работы, то их наберется до 30 штук, больше половины которых хотят уровень middle/senior. Но все же они постоянно обновляются и за весь период поиска думаю до сотни резюме я отправил.

Изначально в моем портфолио был только бот в телеграмм, о котором я рассказывал в первой статье и само резюме еще было не совсем привлекательным. Никаких звонков о приглашении на собеседование я не получал.

После пары недель отправки резюме я понял, что нужно его немного переделать, а так же нужно что бы был хотя бы один проект на андроиде в портфолио. В то время как раз я начал делать свое первое андроид приложение. Продолжил отправку резюме где-то через полтора месяца (как раз уже все вакансии обновились), когда первая версия приложения была готова.

По поводу вакансий – они бывают очень разные, но меня всегда сразу отталкивали те, в которых работодатель поленился даже проверить ошибки и форматирование в тексте описания вакансии. Это сразу характеризирует компанию, и работать там не очень хочется.

После того как я немного переделал резюме и расширил портфолио мне начали поступать первые приглашения на собеседования. С самого начала на один день пригласили две компании на позицию middle. Это, конечно, было немного шоком, но все же и приятно, что мое резюме им понравилось.

Прохождении собеседований. Подготовка к первым собеседования была очень туманная. После курса JavaRush и начала изучения android я не занимался теорией вообще, а тут нужно было за пару дней повторить все, что ты знаешь и не знаешь о Java и Android. Это такие моменты, когда ты вообще не понимаешь с чего начать и что учить. Просидел я с утра до вечера читая разные статьи, даже лекции JavaRush открывал по многопоточности.

На первом собеседовании меня долго не спрашивали. Сразу поняли, что на middle я не тяну (путался даже в жизненных циклах activity) и сказали, что я не подхожу. Но в целом очень приятные впечатления сложились и то, что я не подхожу было изначально мне понятно, просто хотел получить опыт прохождения собеседований.

На втором собеседовании было очень круто. Спрашивал меня их тим лидер целый час по теории и все, что я не знал он мне объяснял. Я остался очень доволен, хоть меня туда и не взяли.

Третье собеседование было вообще не техническое, там мне руководители рассказали о проекте, сказали, что кандидат должен сам его вести и было бы неплохо, если бы еще api на php писал. После собеседования я туда идти уже перехотел и когда меня не взяли, но только обрадовался.

Четвертое собеседование по длительности было час, 80% из чего спрашивали по технической части. После собеседования сказали, что сбросят тестовое задание, но потом написали, что я не подхожу и тестовое сбросить они не готовы.

Если говорить о том, что нужно железно знать на позицию Android Developer (думаю на позицию Java Developer так же), то это ОПП. Там сразу будет понятно или ты только заучил как называются основные принципы или же ты знаешь их саму суть и можешь нормально использовать на практике. Так же нужно знать жизненные циклы активити, фрагментов. Про паттерн Observable часто спрашивают, так как он довольно часто используется и даже лежит в основе библиотеки RxJava. А вообще о чем будут спрашивать не угадаешь – могут больше уклон делать на java, а могут на android. Я, например, очень старался сделать хорошим свое портфолио, а меня о моем одном проекте спросили только на последнем собеседовании.

Каких-то алгоритмических задачек у меня на собеседованиях не было. Иногда могли попросить написать на бумажке как реализовать паттерн singleton, либо на доске написать любую сортировку массива. И знать это нужно очень четко, потому что там ты находишься в стрессовой ситуаций и с ограничением по времени.

В предыдущей статье я писал, что у меня друг работает android разработчиком. Вот недавно ему предложили работу в другой компании и так как он уходил, то на его место искали нового кандидата. Он порекомендовал провести со мной собеседование. Изначально мне прислали сделать тестовое задание и дали время 1 неделю с учетом того, что чем быстрее сделаешь, тем лучше. Сделал я задание за 4 дня (друг мне как честный человек в этом деле не помогал). После этого меня пригласили на собеседование.

На всех собеседованиях что у меня были либо сразу задают технические вопросы, либо сначала разговор с hr, а потом техническая часть. Тут же все было вперемешку, что немного сбивало. Сразу и впервые меня попросили на доске написать сортировку — я начал вспоминать какую-то статью на хабре о хорошо оптимизированной сортировке, но так как время ограничено, то написал первое, что пришло в голову.

Собеседование было по больше мене с уклоном на практическую сторону и по времени длилось час. После мне сказали, что дадут ответ в течении двух недель, так как хотят еще посмотреть других кандидатов. И вот недавно мне пришло письмо, что я приглашен на испытательный срок на позицию Android Developer – радости было не отнять:)

Если вы изучаете андроид, все задания на startandroid и других ресурсах уже прошли, то что я могу вам посоветовать попрактиковать. Есть хороший сайт. Там генерируете список json обьектов. Создайте андроид приложение в котором вы будете загружать этот список (в отдельном потоке или в сервисе или с помощью сторонних либ) и отображать его потом пользователю. Базу данных используйте либо SqlLite либо сторонние либы Realm. В списке пусть будет краткая информация, а при нажатии на эл списка – открывается фрагмент с полной информацией. Еще для усложнения задания сделайте адаптацию на планшеты – разделение на два экрана в повороте в горизонтальное положение, в вертикальном же один экран (для этого используйте фрагменты). Так же можно добавить navigation drawer и там какие-то пункты настроек (смена языка приложения, фона, шрифта и т.д.). Что-то похожее было в моем тестовом задании.

В общем, что хочется сказать всем, кому еще предстоит поиск работы – напишите хорошее резюме, так как это самое первое, что вас характеризирует. Выбирайте стажировки и вакансии только в хороших компаниях (по крайней мере в тех, кто не поленился нормально составить описание вакансии). Учите теорию – хоть иногда и кажется, что это только для собеседований, а на практике гугл всегда под рукой, но по своему опыту скажу, что со знанием всей основной теории программировать становится легче. После каждого собеседования изучайте все вопросы, на которые не знали ответа и в которых были не очень уверены – так уже после 4-5 собеседования вы будете знать ответы на все самые распространенные вопросы. Хотелось еще сказать, что бы не волновались, но это все естественно и этого не отнять – мы же не машины :)

Ссылка на все вопросы, что у меня были на собеседованиях (ответы ищете в гугле) – вопросы на собеседованиях
Всем спасибо за внимание и всем удачного трудоустройства!
  • ,

Учеба на JavaRush. Первые проекты, что Вас ждет и как лучше не делать. Часть 1.

Добрый день! Наконец-то я дождался того времени, когда готов поделиться своей историей успеха. Рассказать хочется много, поэтому разделю на две части – так сказать «первые проекты и как лучше не делать» и собственно «поиск работы и прохождение собеседований».
О себе много рассказывать не буду, скажу только, что как и почти все здесь я отучился и поработал на другой специальности, но потом решил стать программистом:)

Поговорим сразу об обучении. Начал я заниматься на JavaRush в начале 2016 года. Долго выбирал где изучать программирование и, конечно, как и все наши люди не хотел платить за обучение. Изучать хотел именно Java, так как моя мечта – программировать на Android. Курс JavaRush несколько раз попадался мне на глаза во время поиска, но я его отбрасывал, так как он условно-бесплатный. Начал заниматься по видео урокам на ютубе. Потом все же какая-то сила меня заставила попробовать порешать бесплатные задачки на JavaRush, и я настолько удивился, что после прохождения 50 видео уроков (я считал их довольно нормальными) и написанию кода за лектором, я с большим трудом и далеко не с первой попытки решал начальные задачи курса. Качество курса и то, что он мне даст, если я его пройду полностью я оценил почти сразу, потом посмотрел на форуме, что время от времени там бывают хорошие скидки на подписку решил, что буду брать полную версию.
Да, многие учащиеся злятся и негодуют насчет курса — задачи дают по материалу, который еще не рассматривали, валидатор их не понимает и много-много чего можно почитать на форуме и в комментариях. И знаете что? Я тоже таким был:) У меня до сих пор висит большая задача на 34 уровне и я перепробовал все решения, но ее не принимает валидатор. Хорошо, что в тех поддержке мне докинули черной материи и я смог до конца добить курс. В общем, как выпускник курса JavaRush скажу свое субъективное мнение, что мне понравилось и не понравилось в курсе (да простят меня админы).

Понравилось: количество задач, мгновенная проверка задач, удаленное обучение, обучение не имеет привязки к твоему рабочему графику, структурированность курса, форум учащихся, а так же цена.
Не понравилось: за время прохождения курса начинаешь подстраиваться под валидатор и потом сложно от этого отвыкать, что бы подумать и найти какие-то другие подходы(но все же такая идея и она тут реализована довольно хорошо), ошибки в некоторых задачах, сильная замысловатость в некоторых условиях задач (хорошо, что для таких случаев есть форум), так же пробовал новый интерфейс – не очень понравился, благо есть возможность переключится на старый.

Если это подытожить, то я доволен курсом и тем, что он мне дал. Вспоминаю себя год назад, как мне друг пытался объяснить что такое boolean, void, что такое методы и как они возвращают значения. Помню как долго не мог понять зачем нужно возвращать эти значения:)
Сейчас же мне часто вспоминается сцена из фильма Матрица:
Нео: Ты что научишь меня уворачиваться от пуль?
Морфиус: Когда придет время тебе это уже не понадобится.
И действительно, когда пришло время у него уже априори были эти навыки.

На 30 уровне курса я хотел попасть на стажировку, которую предлагает JavaRush. Посмотрел тестовое задание и немного ужаснулся. Очень надеялся, что поможет друг его сделать, но за неделю до дедлайна он сказал, что вот тебе Гугл, вот тут вбивай все технологии и там будет куча примеров. Я ему очень благодарен, что так получилось, так как тогда я впервые почувствовал, что значит быть программистом. За 4 полных дня я сделал задание и был невероятно рад, что попал на стажировку.

Стажировка. Стажировку я до конца не прошел, так как в это же время начал делать свой первый проект и все же он для меня оказался приоритетнее и интереснее + я не хотел работать в enterprise. Что могу сказать о самой стажировке – есть свои плюсы и минусы, но в целом довольно таки хорошо. Если планируете дальше идти в enterprise, то думаю ее стоит пройти.

Первый проект. Как и упоминал выше, что где-то на 30х уровнях я попал на стажировку и начал делать свой проект. Это был и есть бот в телеграмме. Желание создать бота было у меня еще на 20-30 уровнях курса, но я никак не мог найти подходящей либы либо инструкции how to start. И все же случайным образом мне попалась такая статья и я сразу начал пробовать. Если кому интересно – вот ссылка на статью —
How to write bot in telegram Java
Откровенно говоря, автор этой статьи мне потом еще очень сильно помог, речь о чем пойдет чуть ниже. Идея для бота была такая – мне как программисту нужно изучать Английский язык. Грамматику я знал относительно хорошо, а вот словарный запас захотел подтянуть. Подумал, что неплохо бы было иметь бота для изучения слов. Подробную информацию о боте я уже писал в статье ранее, поэтому повторятся не буду – вот ссылка Телеграм бот Words

Расскажу, с какими трудностями мне пришлось столкнуться, при его создании. Во-первых это первая работа с telegram api. Хоть многие и говорят, что это одно из простейших и наиболее лучше документированных api, но мне тогда как новичку было очень сложно. Все делал путем подбора :) Иногда на то, что бы сделать какую-то фичу, например, убрать кнопку после ее нажатия мне приходилось потратить полный день. Где-то за пол месяца удалось написать самую первую бета версию, весь код которой был в одном java классе, и хотел попробовать залить ее на сервер. Проект у меня не коммерческий, поэтому платные сервера я сразу же отбрасывал. Вспомнил о сервере heroku, который кстати используют для размещения сайта на стажировке. Пробовал этот сервер два полных дня и уже был в полном отчаянии, так как не получалось вообще ничего – все инструкции которые были относились к сайтам, а у меня бот и там нужно действовать немного по-другому. В итоге я решил написать автору статьи о боте и спросить, какой он использует сервер для размещения бота. И тут удача мне улыбнулась – автор оказался очень крутым программистом (я с ним до сих пор поддерживаю связь), и он мне предложил разместить бота у себя на Linux сервере (и если я знаю линус, то выделит мне аккаунт). На начальное изучение линукса ушло один день и, конечно, не без ошибок и сложностей бот начал крутиться на сервере. Так же между всем этим делом я добил курс JavaRush и был очень доволен :)

Базу данных для бота я выбрал MySql, пересмотрел много уроков по оптимизации таблиц, выбору движка и всего прочего. Дам совет всем, кто будет делать свой первый проект – старайтесь сразу продумать всю его структуру и строить хотя бы относительно расширяемую архитектуру. Я же свой переписывал, наверное, раза 3 из-за таких ошибок. Да, это сложно, так как очень часто ты не знаешь что захочешь следующее добавить в свой проект, но все же на минимальном уровне сделать можно. Не пишите весь код в одном классе!!! Попробуйте использовать MVC, вспомните ООП и т.д. Самое смешное, что некоторые основные принципы ООП я начал использовать в проекте, когда он уже был почти готов. До этого я даже не задумывался о них. Конечно, пользователю вообще все равно на каком языке написан продукт, какие там используются паттерны и технологии использовались, но когда вы через пару месяцев его открываете и хотите что-то туда добавить, то очень много хороших слов о себе подумаете :) Так же не забывайте делать логирование – это позволяет как отслеживать ошибки, так и смотреть какими функциями пользователи больше пользуются и что нужно дальше развивать. В телеграмме это кстати можно очень круто сделать – отправлять все логи в режиме реального времени себе в приватный канал, так сказать можно сделать некую big data :)

Если подытожить про первый проект, то времени на его создание ушло где-то 3 месяца, сейчас там более 14 тысяч зарегистрированных пользователей, много которых стали постоянными и изучают иностранные слова ежедневного.

Второй проект. Моя цель была стать Android программистом, поэтому когда более менее закончив с ботом я решил адаптировать его на Android платформу. Начал обучение с курса startandroid, так же мой лучший друг android разработчик давал мне много крутых заданий, проверял их и говорил что нужно переделать и доделать. Когда получил уже базовые навыки начал делать свое приложение. Как и с первым проектом было много разных трудностей, но если брать в целом, то немного меньше. Где-то за полтора месяца была готовая первая бета версия (пару раз пришлось переписывать весь дизайн приложения, так как я понятия не имел как он будет выглядеть). Потом я зарегистрировался как разработчик в гугл плей и залил его в маркет. Последнее время занимался оптимизацией и синхронизацией двух своих проектов. Для общей базы данных выбрал Firebase – очень хорошая документация, много уроков и для небольших проектов бесплатной версии в 1гб объема более чем достаточно.

Если кратко сказать о наибольших трудностях во втором проекте (я думаю некоторые из этих трудностей возникают и у опытных разработчиков), то это — создание многопоточности в android, много заморочек з размерами и расширениями экранов, для создания дизайна пришлось подружиться с photoshop, поддержка старых версий андроида, а так же никогда не используйте Recycler View, если у вас в списке будет анимация :) После блокировки в Украине Яндекса, а именно от туда я беру большую часть перевода и озвучки слов, пришлось добавлять дополнительные проверки в код, и просто сообщать пользвателям, что бы воспользовались vpn. Трудности даже возникли при регистрации в гугл плей – там что бы стать разработчиком нужно одноразово(в отличии от апл стора) заплатить взнос в размере 25$. У меня же при оплате стоял лимит на карточке и оплата моя зависла. Пришлось пообщаться с тех поддержкой гугла и в общем они меня посылали от одного оператора к другому, пока я не понял, что меня просто вежливо посылают :) Пришлось удалять все и заново регистрироваться (сразу бы до этого додумался).

Еще пару слов по поводу продвижения своих проектов. С ботом дела обстояли немного проще – сама идея ботов относительно новая (в самый мейнстрим я не попал, но все же нормально). Есть каталог ботов, группы вк, фб другие ресурсы. Сейчас мой бот занимает 5 место в разделе образовательных и для меня это очень хороший результат. Что бы продвигаться в каталоге ботов, нужно что бы его оценивали. Я сделал предложение для пользователя о голосовании, которое возникает всего один раз (сам не люблю навящивости), когда пользователь сыграет определенное количество игр (как бы проведет некоторое время в боте).

С андроид приложением дела обстоят намного хуже. Скажу одно – без рекламы ваше приложение никто не заметит в маркете даже по ключевым словам, так как их там миллионы. После того как я сделал синхронизацию между проэктами, то дал объявление в боте о моем приложении. После этого у меня появилось первые 14 скачиваний :)

Если кто дочитал до этого момента, то вот ссылка на приложение, если будет интересно — Android приложение Words.
Ссылка же на бота есть в статье о нем чуть выше по тексту.

Всем спасибо за внимание. О своем опыте собеседований, вопросах которые там задавали и вообще поиске работы расскажу во второй части.

task 0824 или самое прекрасное задание. Работает правильно но не проходит проверку

и ко всему прочему, этот код проходит «типа компиляцию» на сервере однако компилируя джава файл через cmd (javac) компилятор ругается на созданный «типа разработчиками» переопределенный метод класса Human, а именно — метод toString()
Так как соответствовать тексту задания КОТОРОЕ ВОЗМОЖНО ПОНЯТЬ ЛИШЬ ИМЕННО ТАК КАК НУЖНО ПОТОМУ ЧТО ВСЕ РАСПИСАНО ИДЕАЛЬНО И ВОПРОСОВ ПО ЗАДАНИЮ СОВЕРШЕННО НЕ ВОЗНИКАЕТ...
  • ,

Курс "Android Basic" от Google на русском языке

Предлагаем вашему вниманию курс «Разработка под Android для начинающих», созданный специалистами Google. (создателями Android и всего хорошего в мире ИТ) для платформы Udacity. По многочисленным просьбам студентов JavaRush мы перевели его на русский язык и оформили в виде квеста. Теперь он доступен абсолютно всем желающим изучить основы программирования для мобильных систем — javarush.ru/quests/QUEST_GOOGLE_ANDROID

курс Google Android

Сомневаетесь, что Android — весьма перспективная ветка программирования? А вот мы в этом уверены. И вот почему:

  • Около 90% пользователей смартфонов обладают устройствами на ОС Android
  • Android создан на базе Linux и собственной реализации виртуальной машины Java — проверенных и постоянно развивающихся технологий;
  • Android — операционная система не только для смартфонов и планшетов, но также телевизоров, фотоаппаратов, плееров, игровых консолей и даже электрочайников (и не только)!
  • Любой желающий может создать и поместить своё приложение в Play Store — официальный магазин для Android-устройств, если оно соответствует своду несложных правил и стандартов;
  • Порог вхождения в программирование под Android невысок. Особенно для Java-программистов.

Присоединяйтесь к курсу «Разработка под Android для начинающих» на JavaRush: Вы изучите основы Android и программирования на Java, и в процессе изучения создадите два простых, но вполне мощных Android-приложения!
  • ,

Помогите сделать JavaRush еще лучше!

Друзья! По результатам опросов и комментариям на сайте мы поняли, что стоит заняться улучшением читабельности текста. Решили начать с белой темы сайта. Сделали более 30 разных вариантов шрифтов и оттенков. Из них отобрали 4 лучших. Теперь хотим услышать ваше мнение =)

Скажите, какой вариант вам нравится больше всего и почему выбрали именно этот вариант.

Текущий вариант — invis.io/GCBG653B7#/230723334_Lato
Вариант 4 — invis.io/GCBG653B7#/230721738_4
Вариант 10 — invis.io/GCBG653B7#/230721899_10
Вариант 12 — invis.io/GCBG653B7#/230721201_12
Вариант 13 — invis.io/GCBG653B7#/230721024_13

8 уровень. 8 лекция. Зинаида Васильевна — классный руководитель 7-Б класса//

Добрый день!
классный руководитель 7-Б класса какой-то там террианской школы, подробности не важны. А важно то, что она дарит подарки ученикам в дни рождения. Везет не всем: летние именинники — в пролёте по причине каникул. Пишем программу для Зинаиды: создаем словарь с фамилиями и датами рождения, удаляем из него людей, родившихся летом.

package com.javarush.task.task08.task0816;

import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.HashMap;


/*
Добрая Зинаида и летние каникулы
*/

public class Solution {
    public static HashMap<String, Calendar> createMap() {
        HashMap<String, Calendar> map = new HashMap<String, Calendar>();
        map.put("Stallone1", new GregorianCalendar(1975, Calendar.DECEMBER, 31));
        map.put("Stallone2", new GregorianCalendar(1975, Calendar.DECEMBER, 31));
        map.put("Stallone3", new GregorianCalendar(1975, Calendar.DECEMBER, 31));
        map.put("Stallone4", new GregorianCalendar(1975, Calendar.DECEMBER, 31));
        map.put("Stallone5", new GregorianCalendar(1975, Calendar.JULY, 31));
        map.put("Stallone6", new GregorianCalendar(1975, Calendar.DECEMBER, 31));
        map.put("Stallone7", new GregorianCalendar(1975, Calendar.DECEMBER, 31));
        map.put("Stallone8", new GregorianCalendar(1975, Calendar.JUNE, 31));
        map.put("Stallone9", new GregorianCalendar(1975, Calendar.DECEMBER, 31));
        map.put("Stallone10", new GregorianCalendar(1975, Calendar.DECEMBER, 31));
        return map;
        //напишите тут ваш код
    }

    public static void removeAllSummerPeople( HashMap<String,Calendar>  map) {
        for (HashMap.Entry<String, Calendar> entry : map.entrySet()) {
            if (entry.getValue().MONTH > 5 && entry.getValue().MONTH < 9)
                map.remove(entry.getKey());
        }

        //напишите тут ваш код

    }

    public static void main(String[] args) {

        HashMap<String, Calendar> map = createMap();
        removeAllSummerPeople (map);
        for (HashMap.Entry<String, Calendar> entry : map.entrySet()) {
            System.out.println(entry.getKey() + " " + entry.getValue());
        }
        System.out.println();


    }
}


В результате выполнения данного кода выводит следующее:
Stallone8 java.util.GregorianCalendar[time=?,areFieldsSet=false,areAllFieldsSet=false,lenient=true,zone=sun.util.calendar.ZoneInfo[id=«Europe/Moscow»,offset=10800000,dstSavings=0,useDaylight=false,transitions=79,lastRule=null],firstDayOfWeek=2,minimalDaysInFirstWeek=1,ERA=?,YEAR=1975,MONTH=5,WEEK_OF_YEAR=?,WEEK_OF_MONTH=?,DAY_OF_MONTH=31,DAY_OF_YEAR=?,DAY_OF_WEEK=?,DAY_OF_WEEK_IN_MONTH=?,AM_PM=0,HOUR=0,HOUR_OF_DAY=0,MINUTE=0,SECOND=0,MILLISECOND=?,ZONE_OFFSET=?,DST_OFFSET=?]
Stallone9 java.util.GregorianCalendar[time=?,areFieldsSet=false,areAllFieldsSet=false,lenient=true,zone=sun.util.calendar.ZoneInfo[id=«Europe/Moscow»,offset=10800000,dstSavings=0,useDaylight=false,transitions=79,lastRule=null],firstDayOfWeek=2,minimalDaysInFirstWeek=1,ERA=?,YEAR=1975,MONTH=11,WEEK_OF_YEAR=?,WEEK_OF_MONTH=?,DAY_OF_MONTH=31,DAY_OF_YEAR=?,DAY_OF_WEEK=?,DAY_OF_WEEK_IN_MONTH=?,AM_PM=0,HOUR=0,HOUR_OF_DAY=0,MINUTE=0,SECOND=0,MILLISECOND=?,ZONE_OFFSET=?,DST_OFFSET=?]
Stallone10 java.util.GregorianCalendar[time=?,areFieldsSet=false,areAllFieldsSet=false,lenient=true,zone=sun.util.calendar.ZoneInfo[id=«Europe/Moscow»,offset=10800000,dstSavings=0,useDaylight=false,transitions=79,lastRule=null],firstDayOfWeek=2,minimalDaysInFirstWeek=1,ERA=?,YEAR=1975,MONTH=11,WEEK_OF_YEAR=?,WEEK_OF_MONTH=?,DAY_OF_MONTH=31,DAY_OF_YEAR=?,DAY_OF_WEEK=?,DAY_OF_WEEK_IN_MONTH=?,AM_PM=0,HOUR=0,HOUR_OF_DAY=0,MINUTE=0,SECOND=0,MILLISECOND=?,ZONE_OFFSET=?,DST_OFFSET=?]
Stallone6 java.util.GregorianCalendar[time=?,areFieldsSet=false,areAllFieldsSet=false,lenient=true,zone=sun.util.calendar.ZoneInfo[id=«Europe/Moscow»,offset=10800000,dstSavings=0,useDaylight=false,transitions=79,lastRule=null],firstDayOfWeek=2,minimalDaysInFirstWeek=1,ERA=?,YEAR=1975,MONTH=11,WEEK_OF_YEAR=?,WEEK_OF_MONTH=?,DAY_OF_MONTH=31,DAY_OF_YEAR=?,DAY_OF_WEEK=?,DAY_OF_WEEK_IN_MONTH=?,AM_PM=0,HOUR=0,HOUR_OF_DAY=0,MINUTE=0,SECOND=0,MILLISECOND=?,ZONE_OFFSET=?,DST_OFFSET=?]
Stallone7 java.util.GregorianCalendar[time=?,areFieldsSet=false,areAllFieldsSet=false,lenient=true,zone=sun.util.calendar.ZoneInfo[id=«Europe/Moscow»,offset=10800000,dstSavings=0,useDaylight=false,transitions=79,lastRule=null],firstDayOfWeek=2,minimalDaysInFirstWeek=1,ERA=?,YEAR=1975,MONTH=11,WEEK_OF_YEAR=?,WEEK_OF_MONTH=?,DAY_OF_MONTH=31,DAY_OF_YEAR=?,DAY_OF_WEEK=?,DAY_OF_WEEK_IN_MONTH=?,AM_PM=0,HOUR=0,HOUR_OF_DAY=0,MINUTE=0,SECOND=0,MILLISECOND=?,ZONE_OFFSET=?,DST_OFFSET=?]
Stallone4 java.util.GregorianCalendar[time=?,areFieldsSet=false,areAllFieldsSet=false,lenient=true,zone=sun.util.calendar.ZoneInfo[id=«Europe/Moscow»,offset=10800000,dstSavings=0,useDaylight=false,transitions=79,lastRule=null],firstDayOfWeek=2,minimalDaysInFirstWeek=1,ERA=?,YEAR=1975,MONTH=11,WEEK_OF_YEAR=?,WEEK_OF_MONTH=?,DAY_OF_MONTH=31,DAY_OF_YEAR=?,DAY_OF_WEEK=?,DAY_OF_WEEK_IN_MONTH=?,AM_PM=0,HOUR=0,HOUR_OF_DAY=0,MINUTE=0,SECOND=0,MILLISECOND=?,ZONE_OFFSET=?,DST_OFFSET=?]
Stallone5 java.util.GregorianCalendar[time=?,areFieldsSet=false,areAllFieldsSet=false,lenient=true,zone=sun.util.calendar.ZoneInfo[id=«Europe/Moscow»,offset=10800000,dstSavings=0,useDaylight=false,transitions=79,lastRule=null],firstDayOfWeek=2,minimalDaysInFirstWeek=1,ERA=?,YEAR=1975,MONTH=6,WEEK_OF_YEAR=?,WEEK_OF_MONTH=?,DAY_OF_MONTH=31,DAY_OF_YEAR=?,DAY_OF_WEEK=?,DAY_OF_WEEK_IN_MONTH=?,AM_PM=0,HOUR=0,HOUR_OF_DAY=0,MINUTE=0,SECOND=0,MILLISECOND=?,ZONE_OFFSET=?,DST_OFFSET=?]
Stallone2 java.util.GregorianCalendar[time=?,areFieldsSet=false,areAllFieldsSet=false,lenient=true,zone=sun.util.calendar.ZoneInfo[id=«Europe/Moscow»,offset=10800000,dstSavings=0,useDaylight=false,transitions=79,lastRule=null],firstDayOfWeek=2,minimalDaysInFirstWeek=1,ERA=?,YEAR=1975,MONTH=11,WEEK_OF_YEAR=?,WEEK_OF_MONTH=?,DAY_OF_MONTH=31,DAY_OF_YEAR=?,DAY_OF_WEEK=?,DAY_OF_WEEK_IN_MONTH=?,AM_PM=0,HOUR=0,HOUR_OF_DAY=0,MINUTE=0,SECOND=0,MILLISECOND=?,ZONE_OFFSET=?,DST_OFFSET=?]
Stallone3 java.util.GregorianCalendar[time=?,areFieldsSet=false,areAllFieldsSet=false,lenient=true,zone=sun.util.calendar.ZoneInfo[id=«Europe/Moscow»,offset=10800000,dstSavings=0,useDaylight=false,transitions=79,lastRule=null],firstDayOfWeek=2,minimalDaysInFirstWeek=1,ERA=?,YEAR=1975,MONTH=11,WEEK_OF_YEAR=?,WEEK_OF_MONTH=?,DAY_OF_MONTH=31,DAY_OF_YEAR=?,DAY_OF_WEEK=?,DAY_OF_WEEK_IN_MONTH=?,AM_PM=0,HOUR=0,HOUR_OF_DAY=0,MINUTE=0,SECOND=0,MILLISECOND=?,ZONE_OFFSET=?,DST_OFFSET=?]
Stallone1 java.util.GregorianCalendar[time=?,areFieldsSet=false,areAllFieldsSet=false,lenient=true,zone=sun.util.calendar.ZoneInfo[id=«Europe/Moscow»,offset=10800000,dstSavings=0,useDaylight=false,transitions=79,lastRule=null],firstDayOfWeek=2,minimalDaysInFirstWeek=1,ERA=?,YEAR=1975,MONTH=11,WEEK_OF_YEAR=?,WEEK_OF_MONTH=?,DAY_OF_MONTH=31,DAY_OF_YEAR=?,DAY_OF_WEEK=?,DAY_OF_WEEK_IN_MONTH=?,AM_PM=0,HOUR=0,HOUR_OF_DAY=0,MINUTE=0,SECOND=0,MILLISECOND=?,ZONE_OFFSET=?,DST_OFFSET=?]

Process finished with exit code 0


Подскажите пожалуйста как вывести значение из Calendar в виде «1971 JUNE 31»
  • ,

Update JavaRush 2.0

Друзья! Пришло время для очередного обновления JavaRush.

JavaRush 2.0 Update
В рамках текущего апдейта мы исправили часть ошибок, о которых вы нам писали, и реализовали ряд предложенных вами функций:

  • В разделе «Подписки» появилась расширенная информация по подпискам с возможностью их сравнения.
  • Добавлен механизм приглашения на форум info.javarush для пользователей 5-го уровня.
  • Добавлена возможность повторного решения подзадач большой задачи из IntelliJ IDEA.
  • Исправлена ошибка: в некоторых случаях отображались не все требования к задаче при ее проверке.
  • Улучшены условия и механизм проверки таких задач: task2508, task1515, task3008(8), task0316, task1908, task1909, task1910.
  • Исправлены иконки учителей в плагине.
  • Улучшено визуальное отображение диалогов.
  • Исправлена верстка описания задач.
  • Исправлены фильтры в разделе «Друзья» -> «Все Пользователи».
  • Улучшены тексты в WebIDE.
  • ,

Экспериментальная версия плагина (v.2) для IntelliJ IDEA

Друзья, многие из вас (в частности, пользователи операционной системы Mac OS) просили нас улучшить работу плагина для IntelliJ IDEA.

IntelliJ IDEA
Мы активно работаем над этой задачей и уже близки к ее решению.

Сегодня мы подготовили для вас новую экспериментальную версию в которой (скорее всего) исправлены все существующие ошибки.

Просим всех у кого наблюдается падение плагина под Mac OS или Linux попробовать установить экспериментальную версию и посмотреть все ли работает.

Скачать ее вы можете здесь.

Если что-то не так, пожалуйста подробно опишите, что происходит, какая у вас версия ОС, IDEA, по возможности присылайте скришноты. Это поможет нам оперативно воспроизвести ошибку и быстро все исправить.

Спасибо за понимание. Мы стараемся для вас!