Тестовое задание на стажировку JavaRush: Полезные ссылки и хинты

Хочу поделиться с вами полезными ссылками, хинтами и советами, которые помогут при выполнении тестового задания на стажировку в реальный проект на JavaRush.

Конечно, можно просто бездумно накопировать решение тестового задания из интернета, благо примеров хватает, но мы-то хотим разобраться, что делаем :) Этот пост для тех, кто не обнаружил среди стека технологий, требующихся по заданию, знакомых слов и хочет это исправить)
  • ,

Как я нашел работу, благодаря JavaRush!

Хэй!
Хочу начать не с познавательной, а скорее, с мотивирующей записи. Самое основное о том, как я пришел к тому, что сейчас у меня есть. Под этим я подразумеваю уровень развития, как программиста. Он не высок, могло быть и лучше, это так, но за последние пол года произошло довольно много различных событий. Еще пол года назад я многократно перечитывал статью о способах сортировки массива и думал: «Как же это чертовски непонятно и сложно!». Сейчас это воспоминание вызывает улыбку и я надеюсь, что еще через пол года я буду так же улыбаться, вспоминая себя нынешнего.
Итак, мой путь программиста начался на javarush.ru
Конечно у него есть некоторые косяки, которые порой жутко бесят. Думаю, вы тоже сдавали задачу не с первого раза, а с 15го, только потому, что не написали какую-то мелочь, которую так хотел компилятор?) Но это мелочи, по сравнению с отличной структуризацией данных, которую дает курс.
Придя туда, я знал только про существование массивов и переменных. Не более. Можно сказать был абсолютным нулем. Та атмосфера, которую получилось сделать у создателей этого ресурса, просто фантастическая! По началу именно она помогала мне не бросить начатое дело. У меня действительно складывалось впечатление, что я делаю что-то по-настоящему серьезное, а не просто вывожу строку в консоль. Я стал тратить всё свободное от пар в вузе время на чтение лекций и решение задач. Тогдашнему упорству и усидчивости сейчас я могу только позавидовать. Если не получалось решить задачу, зарывался в теорию на несколько часов, перечитывая одни и те же строки снова и снова, пока не приходило озарение. Именно так это и бывает. Как барьер между вашим мозгом и нужной информацией. Вы повторяете ее раз за разом, до тех пор, пока барьер не рухнет и осознание прочитанного не прольется, как луч света. По крайней мере я ощущаю что-то подобное.
Помимо лекций и задач, я много времени смотрел ролики на ютубе, серьезно, мне они очень помогали на первых парах. Особенно выделю два канала, они просто шикарные: www.youtube.com/channel/UCuIctN7x71qam9K_ZxS1W2A
и www.youtube.com/user/devcolibri Я вам безмерно благодарен за ваши труды.
Ближе к 10му уровню я начал пробовать помогать другим JavaRash'овцам на форуме. Это зачастую скучно и сложновато, но неимоверно полезно. А еще очень приятно, когда ваш ответ помогает другому, а вам капает рейтинг. Но самое главное вы читаете чужой код. Повторяю банальное наставление, но оно очень важное: читайте чужой, и самое главное, хороший код. Новички этим пренебрегают, желая писать самим, что понятно, это всегда приятнее, но на работе, 90% времени тратится на прочтение чужих рукописей. И чем лучше вы будете это делать, тем легче вам будет в дальнейшем.
Часто возникают вопросы по поводу чтения книг. Я читал философию Java, Брюса Эккеля, и знаете, на первых парах это давалось тяжело. Книга бесспорно хорошая, но много ли толку, когда вы вталкиваете в себя страничку за страничкой? Я думаю нет. Пока у вас не выстроиться общая картина того, как устроен язык, не стремитесь зарываться в книги, в которых описываются детали и тонкости. Это будет только отталкивать вас от программирования и пугать. Например, мне за полгода так и не понадобились побитовые операции, хотя я несколько раз перечитывал главу о них, в надежде разобраться что к чему.
Следующие три месяца пролетели в чтении различных лекций, постов на форумах, просмотре видеокурсов, решении задач. Очень насыщенное и продуктивное время. Практически каждый день что-то новенькое! Но в целом я еще не мог абсолютно ничего. Это первое и самое жестокое разочарование в программировании. Вы приходите с большими надеждами, что позанимаетесь как следует пару месяцев и начнете делать крутые игры и сайты, но хорошенько обламываетесь. Спустя какое-то время появляется мысль: «Так, чувак, ты занимаешься уже n-месяцев, может быть ты сможешь сделать что-нибудь годное?» И оказывается, что нет. Появляется осознание, что в читал про эту штуку, делал вон ту штуку, знаешь об этой штуке тоже, но а толку то?
В этот переломный момент нужно побороть свое разочарование, сжать кулаки и просто продолжить заниматься, как раньше. Именно в подобных ситуациях, очень много людей опускают руки, и очень зря. В масштабах программирования, вы прошли лишь пару шагов, но зато каких!
За эти три месяца я подобрался к 20му уровню и начал подумывать о том, что всё-таки я уже на что-то способен, к тому же приближалось лето и в голове возникла бешеная идея: «найти стажировку». А вдруг? Я просто зашел на хэдхантер или ему подобный сайт, создал объявление, мол смотрите, я очень классный джава-стажер, и стал дальше спокойно, как обычно, ходить на пары залипать в задачки на джавараше. За все время пару раз написали с вопросами оценить себя, и могу посоветовать даже не отвечать на такие сообщения. Это все шлак. Что значит оценить себя? Напишу, что выше высокого, суперский java-lead, звали в гугл, не пошел, что с того? Такие вопросы просто бред и нормальные работодатели не занимаются подобной фигней, аля, писать в личку на авито или том же хэдхантере. Но к моему огромному удивлению, через какое-то время мне позвонили, спросили на каком языке я занимаюсь и просто позвали пройти тестирование в конкретный срок. Я опешил, но конечно же согласился. Это было правда неожиданно, и хоть никто бы меня там палкой не избивал, но я чувствовал сильное волнение, как перед важнейшим экзаменом. А по сути, это он и был.
У меня было два дня и я стал кропотливо перечитывать лекции, серьезно, вот прям с 3-5 и до той, на которой находился в тот момент. Время пролетело крайне быстро и пришел день Хэ. Я приехал в офис, меня он поразил. Светлый, яркий, вокруг только молодые и веселые люди. Ни одного старика. «Вот оно, IT! Как же круто» — думал я в тот момент. Меня встретили, отвели в переговорку. Там уже сидели какие-то ребята, внешне — просоленные кодеры. С усиками, хвостами, прям типичные программисты. Они болтали между собой о том, какие они крутые, а я молчал, потому что и сказать было нечего. Не скажу же я, что вчера перешел на 19й уровень, правда?
В итоге, всем раздали задания, по 5 задач и как же я был рад, когда, ожидая чего-то неизвестного и жуткого, я увидел вполне человеческие, клёвые задачки. Вроде, одна на рекурсию, две на итерации цикла, еще одна на поиск ошибки в небольшом, простом куске кода и еще какая-то… забыл. Тут натаскивание джавараша сыграло колосальную роль. Он просто с лихвой окупил потраченные на подписку деньги. Я сдал задачи и пошел домой, успокаивая себя мыслями, что получил полезный опыт и кругом одни плюсы, но в глубине души понимал, что я чертовски хочу пройти дальше. И через неделю мне перезвонили! Сообщили что я решил 4 задачи из 5 и позвали на стажировку. Счастью в тот момент не было предела. Перспектива того, что летом я буду два месяца находиться среди профессионалов, перенимать у них опыт и делать что-то реально крутое, просто сводила меня с ума. И по факту, все благодаря джаварашу и тем усилиям, которые были потрачены никак не зря.
В итоге, все оказалось немного не так, как я ожидал в своих розовых мечтах, но опыт я получил колоссальный. Объем информации, ее сложность и уровень возросли там на порядок. Мысли постоянно были разные: от «как же я теперь крут, я узнал, как использовать ajax!», до «твою мать, что это за неведомая сложная х***а?!» Но главное продолжать изучать это, не бросать, даже если вы абсолютно ничего не понимаете. Помните про барьер? Рушьте его всеми силами! На стажировке я почти перестал смотреть ролики на ютубе, они перестали быть информативными. Стал больше читать хабр и даже понимать, о чем там пишут! Вот так.
С java я пересел на C#. Не хочу их сравнивать, скажу только, что перейти было крайне легко, они очень похожи. А в конце мне предложили работу! Я был на седьмом небе и не мог поверить, что это действительно происходит. То есть я вот пару месяцев назад еле научился создавать методы и использовать их, понял, чем класс отличается от его объекта, а сейчас могу работать? Честно, я до сих пор твердо уверен, что мне жутко повезло, но это заставляет меня еще сильнее работать над собой, чтобы доказать, что выбрали меня, а не кого-то еще, не просто так. Сейчас я так и остался на 25 уровне курса, но очень надеюсь, что когда-нибудь закончу его.
Вкратце, написал всё, что хотел. Спасибо, что прочитали мой поток сознания. Огромное спасибо сообществу JavaRash и его создателям, вы действительно сделали крутейший проект! А если есть какие-то вопросы, пишите в личку вк, ссылка есть в профиле. Всем приятного и продуктивного обучения!
©Mispon

Нужна помощь тех,кто уже работает,или купил подписку!

Совсем недавно закончил 10 уровень, пролистал к 15 и тут материя закончилась.Я остался один на один со всеми новыми вопросами.Тут мне пришло в голову, что я так и ничего стоящего написать не могу.Дайте мне масив я отсортирую, выведу в возрозтающем, убивающем порядке.Но ничего действительно ценного я не напишу.У меня вопрос:
Я действительно не создан для етого, или просто слишком мало практики, слишком мало знаний?
Вспомните себя, после окончания бесплатной части.Вы были такие же?(+-)Или уже четко знали как организировать и построить логику приложения?
P.S.мне 15, денег на подписку скорей всего не будет(но шанс есть)Извините за все ошибки, так как русский не мой родной язык.
  • ,

Подскажите новичку!

Доброго времени суток, Уважаемые Форумчане!

Сижу я на проекте совсем мало, на данный момент перешел на 6-й уровень. И тут я понимаю, что 10-й уровень, а там и подписка — не за горами. В том, что оно того стоит — 0 сомнений. 30$ в месяц — грошовая цена за такое обучение. Уже сейчас я убедился, что проект просто великолепен. И вот какой у меня вопрос возникает: как много можно сделать за этот месяц?

Я великолепно понимаю, что вопрос звучит глупо, ибо на разных уровнях тратишь разное количество времени. Это все вполне логично.

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

Также не откажусь от сторонних комментариев, советов.

Заранее спасибо за ваши ответы!
  • ,

Собственный проект

Добрый день!

Решил освоить программирование. Пока нахожусь на 8-м уровне курса.
Дополнительно хочу создать программку.
Примерные тезисы работы программно.

1. Работа с небольшой базой данных. Дополнять и менять по мере поступления данных.
2. Программа должна выводить часть данных или все целиком в удобном для пользователя виде. Например в MS Excel.
3. Считывать данные с источника в интернете. Например сводку с какого-то сайта. После считки происходят соответственные изменения в базе данных.
4. Ну и выдавать ответы на запросы пользователя.

Цель проекта — создать его. Так как я знаю хорошо футбол. Для тренировки решил создать автоматический обновляемые таблицы всех чемпионатов. Что бы программа получала из источника результаты матчей, обрабатывала, изменяла соответствующие характеристики и расставляла по местам в таблице.

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

15 вопросов к техническому интервью Java программиста с 5-6 летним опытом работы.

С ростом опыта программиста от уровня начинающего разработчика (от 2 до 4 лет опыта работы) до уровня старшего разработчика( от 5 до 7 лет) меняются и вопросы на интервью по Core Java.
Конечно такие основы как структуры данных, алгоритмы И объектно-ориентированное программирование остаются, но вопросы и ответы становятся более подробными. Я часто получаю вопросы о том какие вопросы по Core Java задают старшим разработчикам, или каких вопросов стоит ожидать на собеседовании на позицию старшего разработчика Java. Это меня на некоторое время озадачивает, ведь как только вы станете старшими разработчиками, вы автоматически начнете принимать участие в собеседованиях и вам надо иметь представление о том, чего ожидать от собеседования, но в то же самое время, я понимаю, что зная вопросы собеседовании, вам будет легче к нему подготовиться. Конечно, вы не получите вопросов которые задают программистам с 2-3 годами опыта работы с Java, хотя в начале собеседования это не исключено. Я не вижу отличий между телефонными интервью и собеседованиями с глазу на глаз. Какие то вопросы остаются теми же, какие то вопросы требуют более подробных ответов. В этой статье я поделюсь 15 техническими вопросами по Core Java, которые задавались при собеседованиях старших разработчиков во время телефонного интервью. Я не публикую все ответы, но вы можете найти их в текущем блоге или в блоге Javarevisited.

Приемы и советы. Как избежать NullPointerException в Java приложениях

Сегодня я покажу вам простые приемы того как избежать NullPointerException в ваших приложениях. Им легко следовать, но при этом они заметно повышают надежность и качество вашего кода. Более того, по моему опыту, один первый совет окажет заметное влияние на качество вашего кода. Если вы знаете какие-то еще приемы программирования на Java, не стесняйтесь делиться ими в комментариях.