• ,

Учеба на 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 собеседования вы будете знать ответы на все самые распространенные вопросы. Хотелось еще сказать, что бы не волновались, но это все естественно и этого не отнять – мы же не машины :)

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

Как найти работу? Рассылка резюме.

Приветствую вас, будущие сеньеры!


У каждого наступает момент того, когда нужно начинать искать работу. Здесь я бы хотел рассказать о том, как это делал Я, как я мыслил, с какими трудностями столкнулся и что я делал для того, чтобы преодолеть их.
Эту статью можно использовать как пошаговый справочик, так что приятного чтения и пусть он поможет вам также как помог и мне!
Здесь я не буду говорить о том, как написать резюме. Это отдельная статья и она вовсе не простая, цель у меня другая. Предположим, что резюме у вас уже есть.


Куда отправлять?

А ведь действительно, куда? Нужно же заявить миру о том, что вы готовы работать! В нашем случае, почти все IT-компании имеют свои сайты и на этих сайтах можно найти их почту.
первым делом нужно собрать почты компаний. И их должно быть не 2, не 5 даже не 10, а больше, максимально возможно. (К примеру у меня был список из 131-й почты!).
Есть еще способ, часто на сайтах работы регистрируются компании и их там еще можно найти.
Для тех, кто из Украины, есть сайт для программистов dou ссылка сразу на список компаний. Там можно выбрать свой город и посмотреть. Ресурс вообще очень сильный и всем начинающим я советую его прошерстить!

Сопроводительное письмо

Допустим, вы уже собрали список почт всех IT-компаний, которых смогли. Следующий этап — написать сопроводительное письмо… А что это такое?
Сопроводительное письмо(в моем понимании) — это текст, который прикрепляется в письме вместе с резюме, в котором можно написать цель этого письма, какие-то милости про компанию(например я уверен, что в вашей компании я стану лучше и т.д) и конечно же сказать на какую позицию собиратесь.
Сопроводительное письмо ДОЛЖНО быть на английском языке! Рекрутеры очень любят, когда пишут сопроводительное письмо и написав его, вы будете уже выше тех, кто этого не сделал. Я уверен, что многие этого не пишут. Когда большой конкурс на место, то на первом этапе многое зависит от рекрутера! Пример своего приводить не буду, т.к. хочу еще им пользоваться :)

Рассылка резюме

Теперь уже готово и резюме(конечно же на английском языке) и сопроводительное письмо готово и теперь можно рассылать, но прежде нужно сделать следующее:
  1. С какой почты отправлять? Хорошим тоном будет, если будет почта от гугла(gmail.com) и она будет состоять из шаблона firstName.lastName@gmail.com. Часто бывает, что отсылают со старых почт, которые были зарегистрированы, как brutal.eggs@mail.ru или как-то еще какие-то смешные.
  2. Отправлять каждое письмо отедельно для каждой компании, не делать массовой рассылки! Это видно тем, кто получает и это минус вам!
  3. Отправлять по 5-6 писем каждые 3-4 часа, чтоб не попасть в спам-лист получателей.
  4. ждать ответа:)
Конечно, вы можете подумать, что в компании, которые вы отправляете вы вовсе не нужны, но это ошибочное мнение, потому что:
1. Если в той компании нет джава отдела — ну и ладно. Вам ответы из этой компании тоже не нужны.
2. Если там есть отдал джавы, но нет вакансии — тоже хорошо. Вам ответят, что пока не вакансии, но вас занесут в свою базу и как только появиться — вам напишут.
3. Часто бывает, что позиция джуниора есть, но ее не афишируют, чтоб не было спама от желающих и они ищут своими силами. Вот здесь как раз и смотрят вначале на свою базу данных, в которую вы ДОЛЖНЫ попасть, если хотите быть в числе первых.
4. Как обычно, доля удачи нужна всем!
5. И последний пункт про LinkedIn

Регистрация в LinkedIn


Зарегистрироваться в LinkedIn — это социальная сеть для тех, кто ищет работу и кто ищет работников. В СНГ это соц.сеть для поиска IT специалистов. Это одно из самых любимых мест рекрутеров. Здесь нужно создать свой профиль и максимально заполнить его. Там можно поставить свои навыки, которыми владеешь, чтобы рекрутер мог знать.

djinni.co

djinni.co — портал для тайного поиска программистов. Рекрутеры вначале видят только скилы того, кто ищет работу и только с согласия соискателя могут получить информацию о Вас. очень удобная вещь для тех кто работает и думает поменять. А для нас это еще одно место, где нас могут найти рекрутеры. Так что не брезгуйте этим местом, регистрируйтесь и ждите, авось кто-то напишет)


Итог
Теперь Вы знаете как это можно сделать, время действовать! Хочу пожелать всем удачи в поиске своей первой работы! Стремитесь, ищите и удача возблагодарит вам!

Если вам понравилась статья — ставьте "+" над ней и удачи в поиске работы!

См. также мои другие статьи:
Тестовое задание: «Написать Интерпретатор на язык BrainFuck»
Тестовое задание «Image Comparison»
Java — быстрее, сильнее и выше! Зарплаты украинских программистов.
История успеха спустя 1.5 года от начала обучения
Технические вопросы на собеседовании.
Как найти работу? Рассылка резюме
Профессиональное выгорание. Как устоять?
Английский для IT и для собеседования
Паттерн Command своими словами.
Паттерн Singleton своими словами.
Как создать исполняемый jar в Intellij IDEA / how to create jar in IDEA
Помогите, нужна мотивация!

Подписывайтесь на мой блог Паттерны Проектирования пишите в нем статьи!
  • ,

Проект для резюме.

Эта статья по поводу вечного джуниорского вопроса =) Где взять опыт работы, если опыта нет, а на работу берут только с опытом. Вот мой опыт.
Так получилось что у меня есть ментор. Это человек который может помочь советом, проревьюить код, если в хорошем настроении =) рассказать что-то новое.
И вот какое-то время назад он рассказал про один проект. OrientDB — это opensource графическая NOSQL база данных, интересная очень штука. Но конкретно OrientDB позиционирует себя как очень быстрая база, а еще у нее есть клевый графический модуль, еще она поддерживает blueprints. Поддержка вершин (vertex) и ребер (edge). И в частности про ETL процессор. Это такой тулз, который принимает на вход различные файлы с данными, и конвертит их в базу.
У него возникли проблемы с трансформацией из CSV файла. Предложил нам покрыть его тестами, и провести реформат кода. Тесты писались в JUnit. За основу для написания тестов была взята документация непосредственно из OrientDB и из RFC 4180. В ходе покрытия тестами было выявлено несколько багов. К примеру вот баг с представлением отрицательного числа как строки. Вот еще такой баг,
согласно RFC 418
(6. Fields containing line breaks (CRLF), double quotes, and commas should be enclosed in double-quotes. For example:
"aaa","b CRLF bb","ccc" CRLF
zzz,yyy,xxx )

тоесть если внутри двойных кавычек есть CRLF, то это всеравно одно строковое поле.
Вот еще такое issue о неправильной обработке null в значении поля. Ну и конечно реформатирование кода.
В результате наш CSV трансформер более или менее работоспособен. Но конечно доделывать его еще надо. Изучен фреймворк JUnit3,JUnit4. Изучена работа с GitHub. Немного просмотрены внутренности этой DB. Получена куча фана.Теперь я контрибъютор в большом проекте.

Почему не надо идти работать в банк?

В основном вопрос к тем, у кого уже есть опыт — почему не рекомендуют идти работать в банк? Вообще не стоит даже рассматривать банки в качестве первой работы? Или банк банку рознь?:)