9 практических советов для начинающего Android-разработчика
Здравствуйте, меня зовут Александр, я бывший алкоголик бывший маркетолог и ещё 5 лет назад я не знал ничего о программировании. Возможно, я собрал все ошибки, какие можно, на пути программиста. Я пытался учиться самостоятельно, потом учился на курсах GeekBrains, много читал и, конечно же, много трудился. И теперь хочу поделиться наблюдениями, чтобы вам было проще.
Сегодня спрос на Android-разработчиков превышает предложение. Если вы задумывались над разработкой приложений для смартфонов, сейчас самое время реализовать своё желание. К программированию под Android можно идти разными путями: ниже вы увидите советы, которые, по моему мнению, сократят любой выбранный путь.
Не бойтесь чего-то не знать — это ок.
Платформа Android огромна, не говоря уже о двух языках (Java и Kotlin) и массе дополнительных библиотек и архитектурных решений. Даже если вы выучите всё — каждый год появляется что-то новое, Android не стоит на месте. Вот вам пример того, что можно знать, если учить всё:
Иллюстрация дана для общего взгляда. Каждый синий прямоугольник — это большая тема, а в некоторых ещё можно разглядеть немалое количество подтем.
Можете распечатать эту схему и использовать как подсказку для себя, но ради бога, не пытайтесь всё это знать! Я не встречал ещё ни одного разработчика, который знает сразу всё. Осваивайте только то, что вам нужно в данный момент — это и так будет отнимать у вас много времени. Пополняйте свой багаж постепенно, шаг за шагом, и со временем вы станете экспертом.
Разберитесь в Android Studio.
Это среда разработки, в которой вы будете проводить всё своё рабочее время. Чем эффективнее вы её используете, тем эффективнее будете вы сами. Вы не представляете, сколько времени вы можете сэкономить за месяц, если будете пользоваться только клавиатурой, без мыши! Начните использовать сочетания клавиш: они есть почти для всего, для чего нет — назначьте. На Хабре есть пост о том, как вам может помочь «Студия» в вашей работе.
Ещё в Android Studio есть плагины: File > Settings > Plugins. Они тоже облегчают вашу учёбу и труд. Вот несколько полезных плагинов:
- Key Promoter X,
- Codota,
- Android Methods Count,
- ADB Idea,
- Android Material Design Icon Generator,
- DTO generator,
- Code Glance,
- JSON to Kotlin Class,
- Genymotion.
Но прежде чем устанавливать всё подряд, учтите, что плагины могут замедлить работу Android Studio. Вам нужно понимать реальную пользу и необходимость в каждом плагине (я у себя использую JSON To Kotlin Class (JsonToKotlinClass), Key Promoter X, ADB Wi-Fi Connect).
Читайте чужой код.
Уметь разбираться в чужом коде очень важно для разработчика, потому что большую часть своего времени вы будете заниматься именно этим. Более того, читая чужой код хотя бы по полчаса в день, вы узнаете для себя много нового, не сомневайтесь. В блоге Aritra Roy можно найти несколько интересных проектов, которые можно читать на досуге.
Учитесь писать чистый код в соответствии с конвенцией.
Не только вы читаете чужой код, но и ваш код тоже будут читать. Не будьте занозой ниже пояса — выучить стиль кодирования вам потребуется только один раз, но это даст вам сто плюсов в карму на всю жизнь.
Используйте Git, прямо сейчас!
Не надо постоянно пересохранять своё приложение в бэкапах, не надо отсылать код в архиве — поберегите всем время. Нет ни одной команды в андроид-разработке, которая не использует Git. Он нужен не только для командной разработки, он нужен лично вам.
Не изобретайте колесо — используйте лучшие практики.
Есть набор определённых паттернов и антипаттернов в программировании, набор устоявшихся или наиболее эффективных подходов в решении постоянно повторяющихся задач. Пользуйтесь хорошими наработками и избегайте костылей и плохих решений. Список того, что вам может пригодиться, можно найти на Github.
Для всего есть подходящая библиотека.
Убедитесь в этом сами, просто поискав что-то на Github или Android Arsenal. Но это не значит, что нужно всегда и везде использовать какую-то библиотеку. К выбору всегда нужно подходить с осторожностью. Посмотрите количество положительных оценок (чем больше, тем лучше), посмотрите, что ещё сделал автор, проверьте наличие проблем в отдельной секции. Всё это даст вам понимание, стоит использовать библиотеку или нет. Ведь в итоге вам нужно надёжное приложение без багов — учитывайте это в первую очередь.
Старайтесь постоянно иметь собственный мини-проект под рукой.
Они называются по-разному: pet-project, side-project, личный проект, playground, мини-проект. Это то, что вы делаете для себя, какое-то небольшое приложение, на котором вы тренируетесь или смотрите, как что работает, тестируете какие-то новые концепции или библиотеки. Так вы понимаете гораздо лучше и больше, чем если просто о чём-то читаете или слышите.
Возьмите за правило постоянно учиться.
Узнавайте что-то новое или интересное каждую неделю. Это не обязательно должно быть что-то большое, важное или сложное. Просто что-то новое. Или составьте список того, что вы не знаете и вычёркивайте из него что-то каждую неделю, или подпишитесь на какие-то каналы. Вот список того, на что подписан лично я:
- Крупнейший русскоязычный портал про разработку. Статьи, новости, подкасты.
- Еженедельная рассылка самых читаемых статей по Android-разработке на английском языке (многие статьи можно найти в переводе на apptractor.ru).
- Подкаст про Android-разработку на английском.
- Прекрасный блог о хороших практиках программирования.
- Сборник туториалов — много базовых вещей и объяснение простыми словами.
- Официальный блог разработчиков Android.
Это не значит, что вам нужно читать это все, выберите для начала что-то одно.
Идите к своей цели и вы к ней придёте. Поверьте, в этом нет ничего невозможного, если идти к ней каждый день, даже маленькими шажками.
И в качестве бонуса — как найти свою первую работу Android-разработчиком.
Сделайте небольшое, но образцовое, с вашей точки зрения, приложение.
Часто перед собеседованием просят показать какой-нибудь свой код, если он есть. Потому что множество вопросов отпадут сами собой, если его посмотреть — собеседование может и не понадобиться или оно будет формальным. Пара приложений на Github всегда вам пригодятся. Поэтому, если вы хотите стать Android-разработчиком, — начните с приложения, ведь практика наше всё.
Умейте отвечать на простые вопросы.
Ваше резюме будет пустым, поэтому для начала вам будут задавать базовые вопросы по платформе и языку: коллекции, ООП, SOLID, многопоточность, компоненты Android, фрагменты, жизненный цикл, кастомные вью, Dagger, RxJava.
Изучите возможности стажировки и обучения в крупных компаниях.
Я не говорю только про студентов, этот совет касается всех. Я точно знаю, что Сбербанк, Яндекс и Тинькофф проводят подготовительные курсы по три-четыре месяца для тех, кто уже хоть как-то умеет программировать. Условия разные, вплоть до оплаты проезда и проживания. Многие проходят отбор и устраиваются работать в лучших компаниях с лучшими условиями на рынке. Это не так сложно, как вам может показаться.
Ничего страшного, если вам не сделали оффер.
Просите фидбэк или в идеале поговорите немного с тем, кто вас собеседовал. Это поможет вам лучше подготовиться к следующему собеседованию. Отказ даёт вам не меньше опыта, чем успешно пройденное собеседование. Часто в ту же компанию можно будет пройти собеседование повторно через некоторое время.
И напоследок. Изучить Android-разработку можно и самостоятельно, но если вы хотите как можно быстрее добиться результата — пройдите все курсы и сдайте все домашние задания на факультете Android-разработки. После этого у вас будет и портфолио из нескольких приложений, и опыт разработки (в том числе и командной), и все необходимые знания. Именно таких людей и ищут все крупные компании на позицию Junior-разработчика.
Другие полезные статьи для начинающих Android-разработчиков: