Как найти работу для Junior Android Developer?
Еще во время обучения в университете я понял, что буду переезжать в крупные города, так как там легче найти работу в IT. Я учился на Урале (хотел поступать в ИТМО , но набрал всего лишь 225 баллов, которые получил, заканчивая сельскую школу).
Уже тогда я понимал, что знания, которые получаются в университете, далеки от требований в IT сфере. Чего только стоит SADT — модели и структурно-функциональное проектирование ИС, которая изучалась по методическому пособию, которое редактировалось (просмотрел через свойства файлов) в последний раз в 1998 году (я родился в 1996). Это проектирование вообще кто нибудь использует? Или все используют объектно-ориентированное проектирование (UML — диаграммы)
Начиная где то с 3 курса, меня из всех сфер привлекала мобильная разработка, а так как Android — разработка более доступна (не требуется Mac), то я решил начать изучение с нее, а потом по желанию и возможности перейти на другие платформы. Так я стал периодически изучать эту сферу (когда было свободное время).
После окончания университета, я приступил к поиску работы на Junior Android. И тут я впервые столкнулся с тем, что ты никому не нужен.
Но все же ко мне пришла удача и меня пригласили в IT — компанию (название не буду писать) на должность Junior Android в столицу соседнего региона (до него не так далеко ехать) на оклад в 20000. Хоть меня зарплата и не устраивала, но я решил хотя бы 1 год поработать, чтобы получить минимальный опыт, который по сути прописан во всех вакансиях.
Первый месяц обучался стеку компании, одновременно изучая Kotlin (до этого писал только на Java). Затем мне предоставили доступ к проекту, и я уже выполнял небольшие задачи под присмотром.
Но через 2 месяца я уволился. Причин для этого было несколько:
1. Неудобное время начало работы. Когда в большинстве IT — компаний начало гибкое, то здесь работа начиналась фиксировано в 8:00. За опоздание штраф (хоть я и не опаздывал, но приходилось вставать в 5:30)
2. Система штрафа (хоть я не разу не провинился).
3. Работа в воскресенье (хоть всего на 4-5 часов, но все же).
4. Низкая заработная плата (если бы у меня была собственная квартира в этом городе, то я бы вполне прожил бы, но если снимать, то денег не хватало)
5. Обязательное чтение литературы, с последующей проверкой тебя. Я понимаю бы если литература была техническая (паттерны, архитектуры, особенности ЯП, лучших практик), но нет, литература была связана с управлением проектов и идеологий, которые в компании применялись.
Собственно я уволился, и тут мне друг предложил переехать в Санкт — Петербург, на что я ответил согласием, так как IT — компаний здесь больше, ну и собственно работы найти легче. Думал я. Ну — ну, наивный. Вакансий тут то больше, но везде требуется Middle и Senior, а Junior ни кому не нужны.
Я откликался почти на все вакансии, где требовался опыт от 1 года.
По моим наблюдениям все вакансии можно поделить на несколько групп:
1. Компании даже не прочитывают отклик. Даже не знаю как это объяснить, думаю слишком много откликов и HR просто не просматривает все. Их около 20%
2. Компании, которые просто просматривают твой отклик, но не приглашают на собеседование. Около 40%
3. Компании, которые высылают тебе тестовое задание — 20%.
4. Компании, которые сразу приглашают на собеседование задание — 20%
Отдельно стоит рассмотреть 3 группу. Ее можно поделить на подгруппы:
1. Те компании, которые после получения тестового задания, приглашают на собеседование — 60 %.
2. Те компании, которые после получения тестовые задания просто игнорируют тебя, даже не пишут об отказе. — 40%
Со мной даже произошел такой случай. Задание было такое: необходимо было создать приложение, используя VK SDK, произвести авторизацию пользователя в приложении, сохранить авторизацию (чтобы при каждом новым запуском заново не авторизовываться), и вывести любых 5 друзей. Ничего сложного, просто внимательно ознакомиться с API. (Здесь вопрос к разработчикам VK.SDK, как бы обычный Fragment объявлен устаревшим, а v4 вы не поддерживаете, не хорошо https://github.com/VKCOM/vk-android-sdk/issues/170 )
Выполнив задание за несколько часов, я отправил его, как и следовало по инструкции на контакт в telegram с ожидаемой зарплатой. Написали: «Посмотрим». И больше никакого ответа.
Через неделю от этой компании на HH появляется тоже самое резюме, на которое я снова откликаюсь.
HR спрашивает меня: Вы у нас в базе уже есть, а вы выполняли задание?»
Я: Да, я отправлял.
HR: отправьте снова.
Хорошо без проблем. Отправив тоже самое приложение, я так и не получил ответа.
Через две недели они снова создают вакансию на HH, на которую я снова откликаюсь, но теперь я сразу получил отказ без объяснения причины. Тут я не выдержал и отправил им гневное письмо на почту, на что они ответили, чтобы можете резюме, приложение и ожидаемую зарплату снова в телеграм скинуть. Но больше я с ними не связывался. Хотя и просил не много для этого города, всего 40к. Но нет, они не могут просто отписаться вы нам не подходите, а заставляют человека ожидать.
Я постоянно совершенствовался, прошел курсы по Android — разработке от одной компании
(Java, популярные библиотеки, паттерны MVP (Moxy), MVVM, рекомендуемая архитектура от Google Android Architecture Component, Clean Architecture, Dagger 2/Toothpick, RxJava и т.д)
Сейчас прохожу курса по Kotlin.
Но мне нужен опыт, чтобы закрепить эти знания. Но везде требуется от 1, а в большинстве случаев не менее 2 лет коммерческой разработки.
Я уже научился, открывая очередную вакансию, в большой тексте быстро определить ключевые слова, по которым я не прохожу.
Я даже несколько раз откликался на вакансии Middle, так как считал что их требования к стеку (кроме опыта) для меня вполне подходят. Один раз мне даже выслали тестовое задание, основная задача которого просто использовать Itunes API для получения списка музыки, композиторов, которое я быстро выполнил, и меня пригласили на собеседование, но после него я получил отказ.
И вот прошло уже 7 месяцев, но работу я так и не нашел.
За это время я откликнулся на 300 вакансий и cходил где-то на 20 — 25 собеседований, но нигде мне оффер не предложили.
Какие возможны варианты:
1. Переезжать в другие города регионов, но там еще меньше вакансий, да и зарплата меньше.
Да и глупо переезжать чисто для того, чтобы искать работу, всю Россию объездить чтоль?
2. Переезжать в Москву, но банально нет денег, а здесь я хоть с друзьями квартиру снимаю.
Даже стажировок нет.
Я пытался пройти на стажировку в Яндекс. Выполнил 2 задания (3 не успел из-за ограниченного времени) в их системе. Меня пригласили на интервью по Skype, где я думал буду решать задачи, связанные с Android, но решал задачу на оптимизацию алгоритмов, с которой я справился. Но на следующий этап меня не пригласили, отказав.
Сейчас я занимаюсь фрилансом, выполняя заказы на написания парсеров и скриптов на Python.
Но так как я не могу устроиться Junior Android Developer-ом, то думаю попробовать себя в QA или в QA Automation, там ситуация вроде получше.
Некоторые люди, возможно напишут, просто у тебя плохие знания или ты плохо ищешь.
Я бы не сказал, я быстро обучаюсь, мне достаточно 1-3 месяца чтобы я вник в проект.
А что касательно вакансий, то сами проверьте, зайдите на HeadHunter, выберите Санкт-Петербург, введите «Android Developer» и выберите «нет опыта». Сами все увидите.
Если вам HH не нравится, то зайдите на профессиональные LinkedIn или Мой Круг. Ситуация такая же.
Всем требуется Middle и Senior. Готовы платить больше. Но откуда им браться, когда нету вакансий на Junior?
Я понимаю, что проект нужно сделать в определенные временные рамки. И Junior в большинстве случаев не самостоятельная единица, а человек, который будет затрачивать время Middle.
И от этого еще грустней.
Если вы прочитали до этого момента, то пишите комментарии об этой ситуации в IT в России, я обязательно прочитаю и отвечу на вопросы, а сейчас я пошел искать работу в другие направления разработки
Источник
Разыскивается Junior Android разработчик
«Что требуется от Android Dev?» – вопрос из категории FAQ. Я работодатель и в этой статье расскажу, каким должен быть Junior Android разработчик.
Хотите устроиться в качестве Junior? Есть несколько вещей, которые я от вас жду. Разумеется, требовать особенно углубленных знаний по ним я не буду, но хочу видеть, что вы заинтересованы в этой области и учитесь, совершенствуя уже имеющиеся навыки.
Activity Lifecycle
В Android без этого не обойтись. Данные события крайне важны для разработки приложений, которые не должны крашиться при обычном повороте экрана просто потому, что вы решили поработать с программой в постели.
На первый взгляд алгоритм кажется сложным:
Но я и не жду, что Junior Android разработчик знает все наизусть. Важно лишь, чтобы вы понимали, за что отвечают методы onCreate, onPause, onResume и onDestroy, что их вызывает и каков результат работы. В противном случае рекомендую ознакомиться с официальной документацией. Если же вы приведете пример того, как жизненный цикл может привести к утечке памяти, я буду действительно впечатлен.
Компоненты Android
Фундамент любого приложения. Существует 4 основных компонента:
- BroadcastReceiver;
- Service;
- Activity;
- Content Provider.
Каждая из этих составляющих играет важную роль в создании Android-приложений. Зачастую вам даже не придется использовать все компоненты в одном ПО (например, я за всю свою профессиональную карьеру ни разу не написал ContentProvider), но мне бы хотелось, чтобы кандидат на должность понимал их назначение и знал, где они необходимы.
Не забывайте и об идее: ваша работа должна выделяться.
Параметры сохранения
Есть несколько вариантов сохранения данных в программировании на Андроид, и в каждом из них есть свои плюсы и минусы. На сайте Android Developer вы найдете полезное руководство, в котором подробно изложен принцип работы каждого типа сохранения, и я хочу видеть, что вы помните их и хотя бы в общих чертах понимаете, для чего используется тот или иной вариант.
Это большая тема, из которой можно много чего «выцепить», но будущему Junior-девелоперу достаточно знать лишь несколько вещей, которые я считаю существенными.
Базовые знания о REST обязательны, и если вы не умеете делать простые GET и POST запросы из Android-приложения, следует вернуться к базису. Почти любое приложение, которое приходит мне на ум, способно делать REST-запросы, и это является главным в выборе специалиста. Volley для Android станет отличным началом для тех, кто хочет изучить основы, вот только вы очень быстро поймете, что данный способ взаимодействия с сетью уже устарел.
Таким образом, если вы отдадите предпочтение альтернативному варианту в виде Retrofit, вы значительно увеличите свои шансы получить должность. Также есть другие варианты создания сетей на Android, однако все они довольно узконаправленные. Retrofit же необычайно прост в использовании, хорошо сочетается с гибкостью OkHttp и регулярно получает обновления в виде замечательных функций от команды Square.
Кроме того, знания о сереализации оказались бы весомым плюсом. Опыт работы с Moshi, Gson, Jackson и аналогичными библиотеками действительно важен, поскольку в 2017 году пора забыть о том, чтобы вручную вытаскивать данные из JSON.
Android разработчик vs Android Studio
Данная IDE преодолела большой путь, учитывая, что первый запуск был осуществлен несколько лет назад, в те времена, когда все активно юзали Eclipse. Даже в Junior-разработчике я бы хотел видеть доказательства того, что он знаком со средой программирования Android Studio. Исключительно ручной ввод данных – признак скудного опыта. К тому же, это занимает уйму времени, а потому неэффективно. Мне нравится, когда люди используют горячие клавиши для быстрого ввода. В перечне моих тем для собеседования есть и вопрос о том, какие комбинации клавиш наиболее часто использует кандидат.
Говоря простым языком, я не ожидаю от вас уровня гуру, но ориентировка в инструментарии Android Studio на должном уровне продемонстрирует ваш неподдельный интерес к работе. Знание же хотя бы нескольких комбинаций из этого перечня сделает вас особенно продуктивным, а парное программирование – максимально легким.
Ничего страшного, если вы все еще используете IntelliJ IDEA, но если вы до сих пор работаете с Eclipse… Скажем, мне было бы любопытно узнать, почему вы предпочитаете именно эту среду разработки.
Еще один важный момент. Для меня удивительно, что в наши дни некоторые кодеры работают без использования VCS. Если вы не используете Git прямо сейчас, пора начинать. И хоть изучить эту систему контроля версий непросто, результат приложенных усилий не заставит себя ждать. Да, сложно оценить все преимущества системы, если вы до этого времени работали самостоятельно. Но вы их обязательно увидите, когда в процессе разработки приложения допустите существенную ошибку и захотите вернуться к тому состоянию программы, когда она еще работала. Вам нужно просто начать, и вы непременно освоите Git.
Разумеется, существуют и другие системы контроля версий, и знание принципов их работы не менее значительно. Однако наиболее широкое распространение получила именно система Git, поэтому понимание данной VCS приоритетно.
Паттерны
Шаблоны проектирования не так важны, и, уверен, многие их используют, даже не догадываясь, что это и есть те самые паттерны. Но если вы знаете Builders, Singletons и Factory Methods, а также хорошо осведомлены, где их можно использовать (и даже знаете, где найти пример в Android SDK) – это огромный плюс для вашего резюме.
Даже если вы только слышали о «Банде четырех» (GoF) и «Effective Java» Джошуа Блоха, это также дополнительные баллы для вас. Кстати, говоря о баллах:
Бонусы
- модульное тестирование и понимание, почему тесты на Android могут быть настолько сложными;
- наличие хотя бы одной из классических книг по программированию;
- вы «играли» с другими языками, в том числе с Kotlin;
- в Play Store загружено хотя бы одно ваше приложение.
Прочее
Конечно, есть и другие навыки, которые мне хотелось бы видеть в практике кандидата на такую должность, как Junior Android разработчик.
На мой взгляд, роль этой категории программистов заключается в том, чтобы выучить как можно больше и как можно быстрее для качественного вклада в разрабатываемый продукт. Грубо говоря, Junior выполняет изначально простую работу, которая постепенно погружает его все глубже и глубже в «тему», взращивает уверенность и навыки профессионального разработчика.
Сам факт, что вы читаете и черпаете новые знания о программировании – ваше преимущество, даже если вы осведомлены лишь о некоторых библиотеках, функциях, методах и общих сложностях. Надеюсь, что вы подписаны на Android Weekly , можете назвать хотя бы пару влиятельных людей в своей отрасли, следите за их блогами и учетными записями в Twitter.
И самое главное: вам должно это нравиться. Моя профессиональная деятельность включает 6 лет, а я до сих пор словно впервые волнуюсь, когда вижу обновление от команды Android. И всякий раз устанавливаю далеко не идеальную альфу, чтобы просто поковыряться в ней и узнать обо всех плюсах обновления.
Android – это новое слово в современном мире, и я просто счастлив, что могу участвовать в развитии данной отрасли. Если вы также в этом заинтересованы и можете поставить немало галочек напротив перечисленных мною пунктов – будьте уверены, любой адекватный работодатель будет рад взять вас на такую должность, как Junior Android разработчик.
Источник