Не нравится работа? Хотите поменять? Материал поможет тем, кто хочет стать Android-разработчиком. Дмитрий Федонников, разработчик мобильных приложений на платформе Android.
Дмитрий Федонников, разработчик мобильных приложений на платформе Android
С чего начать
Тут зависит от того, какая в принципе у вас есть база. Если вообще ничего не знаете про устройство компьютера и базовые принципы, то можно для начала прочитать книгу «Код» Чарльза Петцольда. Там простым и не сухим языком описаны основы и история возникновения компьютеров в таком виде, в каком мы знаем их сейчас: от создания телеграфа до базовых принципов архитектуры. Так же он приводит практические примеры, которые помогают понять принципы кодирования информации и работы компьютера. Это поможет создать некую основу, на которую дальнейшие знания будут лучше ложиться.
Если уже хоть немного сталкивались с программированием, то начинать можно с изучения языка Java и основ xml разметки. Изучать язык лучше не только по сухой теории, но и стараться решать по началу простые задачи на логику. Затем постепенно усложнять.
Есть много ресурсов (бесплатных и платных), где можно найти задачи на любой уровень с возможностью написания кода и его проверки прямо в браузере.
Также, по возможности, хотя бы поверхностно изучите информацию по алгоритмам и структурам данных и начните читать что-нибудь по объектно-ориентированному программированию (например, из серии книг Head First или взять сразу что-то посложнее типа Effective Java Джошуа Блоха или Thinking in Java Брюса Эккеля). Не лишним так же будет освоить книгу «Чистый Код» Роберта Мартина.
Но не стоит набрасываться на все сразу, а есть смысл изучать все это постепенно, подкрепляя теорию практикой. Главное — не поддаваться на обещания освоить все за месяц/неделю/день. Какие-то вещи поначалу могут очень сложно даваться, но в этом случае главное уметь не зацикливаться на одном, а переключать свое внимание: либо на какую-то другую предметную область, либо вообще на какие-то совершенно не связанные с процессом обучения вещи. Как правило после такого, ответ приходит достаточно быстро. Или все станет ясно в процессе изучения смежной темы.
Некоторые вещи до меня вообще дошли уже в процессе работы. Это, конечно, как правило, были уже какие-то более сложные понятия, а не основы, но тем не менее совет остается все тот же — не загоняться и не зацикливаться, когда что-то не получается сразу. Когда появится уже понимание каких-то базовых языковых принципов и конструкций, можно начинать делать свои маленькие проекты-приложения. Пускай даже это будет просто один экран, без существенного функционала. На данном этапе важно пощупать все руками, посмотреть как пишутся и работают какие-то базовые вещи и конструкции, чтобы на более сложных учебных проектах не было ступора. Это поможет быстро довести до автоматизма рутинные задачи, чтобы они не отнимали время от изучения более сложного функционала.
Хорошо начать заглядывать в официальную документацию Android. Там описана достаточно подробно работа с Android фреймворком, есть очень много в лаборатории от Google с поэтапным разбором тех или иных возможностей Android. Так же не стоит забывать про то, что в большинстве случаев ответ на вопрос можно найти на stackoverflow.com. Этот ресурс должен находится в закладках. Ну и в принципе умение гуглить очень помогает. Так же, если отсутствует знание английского языка, рекомендую хотя бы немного его подтянуть, так как на нем можно найти гораздо больше полезной информации. Плюс умение правильно строить свой вопрос на английском в разы повышает вероятность найти ответ. Так же, если человек в перспективе планирует уехать работать за границу, то чем раньше он начнет учить английский, тем проще ему будет, так как обучение разработке не заканчивается никогда и на первых порах выделить время на изучение иностранного языка будет проще. Хорошему разработчику с 3-х летним стажем и хорошим английским не составляет труда найти работу за рубежом.
Обычный день Android-разработчика
Как правило большинство разработчиков пытаются в первой половине дня писать код, пока не начались встречи, голова наиболее свежая и нет необходимости постоянно переключать свой контекст. В зависимости от компании, команды, проекта и позиции зависит количество митапов, в которых будет участвовать разработчик. Некоторые компании проводят только ежедневные 15-30 минутные дейли митапы (что-то типа планерок, где участники команды вкратце рассказывают чем-занимались, планируют заниматься и какие есть проблемы). Где-то устраивают по несколько встреч в день. В среднем у меня на неделе помимо ежедневных обязательных митапов еще бывает от 3 до 6 встреч. Это обсуждения с членами проекта, с командой Android разработки, с дизайнерами. В зависимости от культуры компании, помимо рабочих встреч, люди время от времени собираются, чтобы просто переключить свое внимание на разного рода активности: от «попить чаю» с коллегами, до «зарубится партию» в настольный теннис или футбол. На одной из моих прошлых работ некоторые ребята уходили в спортзал, а подзарядившись, возвращались писать код в полную силу. Чередование умственной и физической работы очень благотворно влияет на работу. К счастью, у большинства разработчиков свободный график и можно спланировать свой день наиболее продуктивным образом. Помимо встреч и написания кода, я так же провожу ревью кода других разработчиков. Как правило, делаю это либо с утра, либо уже вечером, после встреч.
Инструменты для разработчика
Из того, что необходимо знать начинающему разработчику — это Android Studio и Git. Для первых шагов этого более чем достаточно. Не вижу смысла для начинающих перечислять целый зоопарк других инструментов. Они с ними познакомятся по мере необходимости при возникновении той или иной проблемы. Обычно изучение всего остального не составляет труда и всегда найдется кто-то из коллег или в интернете, кто может помочь с этим.
На дорожку
Никогда не слушайте тех, кто говорит, что у тебя ничего не получится. При должном упорстве начинающий (и не только) разработчик всегда достигнет своих целей. У меня есть ряд примеров, включая меня, когда человек круто изменил свой карьерный путь и стал успешным разработчиком. Никогда не бойтесь задавать вопросы, даже если они кажутся очень глупыми. В 99% случаев разработчики очень приветливые люди и любят делиться знаниями, даже если кажется, что они закрытые. Если попадается кто-то из оставшегося 1%, то таких людей не надо воспринимать близко к сердцу. Величина успеха очень сильно зависит от упорства.
Для тех, кто хочет разобраться с чего начать iOS разработчику, статья Bright.