Мой карьерный путь к тому, чтобы стать ведущим разработчиком Android без степени или образования 3-го уровня

Я всегда твердо верил, что можно добиться всего в жизни, если приложить к этому усилия. Это было сильное послание моего покойного отца, который всегда призывал меня продолжать стремиться к следующему уровню и никогда не останавливаться на достигнутом. Конечно, это не всегда так просто… Но для меня фундаментальная концепция заключается в том, что если вы действительно верите, что можете чего-то достичь, вы можете.

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

Если вам не интересно слушать мою историю, то это позор, но пролистайте этот раздел!

Мое путешествие

С 16 лет я работал в барах и ресторанах полный рабочий день, параллельно учась в школе. Я всегда любил компьютеры и действительно интересовался программированием, изучая Pascal в школе и дома самостоятельно изучая HTML, CSS и немного PHP. (в основном просто для того, чтобы связаться со мной на какой-нибудь фан-странице WWF, которую я создал!). Но самая большая проблема заключалась в том, что я молод! Я не хотел учиться, я не хотел поступать в университет, я просто хотел работать и зарабатывать деньги, и делать это быстро! Мне предложили работу, когда мне было 18 лет, в качестве менеджера-стажера в ресторанной группе, в которой я работал, я увидел карьерный путь и ухватился за него. Я зарабатывал хорошие деньги, мне нравился образ жизни, когда я работал по ночам и по выходным и работал в оживленных барах и ресторанах, но самое главное, я преуспел в этом! Я обнаружил, что становлюсь все более и более успешным и быстро прогрессирую, заняв свою первую должность генерального директора в возрасте 21 года.

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

Моя невеста (которая в то время была моей девушкой) недавно отказалась от карьеры в сфере гостеприимства. Она поступила на дневное обучение в колледже по специальности «Графический дизайн» и бросила работу, чтобы учиться на дневном отделении. Наблюдение за тем, как она совершила этот прыжок веры и прыгнула во что-то совершенно новое, было, вероятно, моим самым большим вдохновением. Но я понятия не имел, что делать, с чего начать или куда идти. Мысль о том, чтобы в возрасте 31 года получить онлайн-степень в области компьютерных наук на неполный рабочий день продолжительностью 6 лет, действительно отталкивала меня. Я не мог позволить себе бросить работу и учиться полный день.

На протяжении многих лет я всегда немного погружался в программирование. Время от времени писал веб-сайты, а однажды написал систему ePOS с использованием MS Access и Visual Basic! (Немного случайно, но это было хорошо!) Так что я знал, что это то, в чем я буду хорош, и мне определенно понравится.

Примерно в середине октября 2018 года я подал идею в Android Development после того, как друг Брент Келли порекомендовал мне попробовать. Я скачал Android Studio, зашел прямо в Google Codelabs и начал писать код! Я растерялся, ничего не понял и, честно говоря, чуть не сдался.

Этот же друг (решивший превратить меня в разработчика) указал мне на Udacity! Рекомендую своего поддерживаемого Google Android-разработчика Nanodegree. Я начал с бесплатных базовых курсов, изучая основы Java и создавая несколько действительно простых приложений командной строки. Я был зацеплен! Я не мог перестать думать о переменных, классах и интерфейсах. Я записался на 6-недельный базовый курс программирования на Java и прошел его за 4 дня!

Я почувствовал совершенно новую страсть к тому, чем я ДЕЙСТВИТЕЛЬНО действительно хотел заниматься. Я принял участие в бесплатном базовом курсе разработки Android на Udacity, который длился пару месяцев. Я закончил это примерно в середине декабря 2018 года и точно знал, что это то, чем я хочу заниматься в качестве карьеры. Я подписался и оплатил участие в программе Android Developer Nanodegree, и начал ее 16 января 2019 года. Ожидалось, что это будет 8-месячный курс, на котором вы будете обучаться основам разработки для Android, архитектуре и всему, что вам нужно, чтобы стать разработчиком Android.

Закончила курс в мае 2019 года (через 5 месяцев) и думала, что дальше. Я сразу же начал подавать заявки на работу, искать в Интернете возможности карьерного роста в LinkedIn, Stackoverflow и во всех возможных направлениях. Я не получил ответа почти ни от кого, а те, кто отвечал, просили меня показать им некоторые из моих проектов и немного кода… Все, что у меня было, это то, что я создал в своей Наностепени.

Следующие пару месяцев я провел, работая над двумя своими собственными приложениями, продолжая учиться из блогов, журналов и просматривая видео на Google Android Developers YouTube Channel.

К счастью, у меня было две отличные идеи для приложений, которые я хотел сделать и в которых я чувствовал потребность. Для меня это была лучшая часть моего обучения. Я больше не был ограничен требованиями курса и смог еще больше изучить то, что я мог проектировать и разрабатывать. (Конечно, с помощью дизайнера моей невесты, недавно получившей квалификацию графического дизайнера!). Я продолжал тратить часы своего свободного времени на изучение RxJava и реактивного программирования, изучение внедрения зависимостей и других часто используемых концепций и фреймворков, которые вы просто не получите из онлайн-курсов. Это было важной частью моего обучения.

В августе 2019 года я получил свое первое предложение о работе на полный рабочий день в качестве Android-разработчика в компании 3Advance. Компания по разработке приложений, базирующаяся в Вашингтоне, округ Колумбия, с почти полностью удаленной командой. Я работал единственным Android-разработчиком в мобильной команде из трех человек. Перенесемся на 8 месяцев вперед, и я буквально никогда не был счастливее в своей карьере. Я работаю с замечательными людьми, у меня есть возможность удаленной работы, и, самое главное, я работаю по профессии, которую я очень люблю и которой должен был заниматься 12 лет назад, вместо того, чтобы управлять ресторанами!

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

Помните: никогда не поздно изменить то, что вы делаете, или изменить свою карьеру.

Советы для достижения успеха и возможные ловушки

1. Никогда не прекращайте учиться

Это довольно очевидно, но иногда забывают. Существует так много ресурсов для обучения, и вы найдете так много разных способов решения проблем / решения задач. Не застревайте в зоне комфорта, думая, что знаете достаточно. Продолжайте изучать новые вещи, новые способы решения проблем или новые технологии, которые объединяются. Я бы сказал, что вам совершенно необходимо изучить, какие технологии и фреймворки популярны и регулярно используются, и убедиться, что вы их знаете. Их слишком много, чтобы упоминать, но обязательно изучите и ознакомьтесь.

2. Синдром неуверенности в себе/самозванца — это совершенно нормально. Но не становитесь из-за этого лохом.

Это то, что вы испытаете и почувствуете, вероятно, довольно много — как на этапах обучения, так и в начале своей карьеры. Совершенно нормально чувствовать себя так, но очень важно найти что-то, что поможет повысить вашу внутреннюю уверенность, чтобы поверить в себя. Я никогда не забуду, как после того, как я устроился на свою первую работу, я пошел покупать себе новый MacBook Pro, и когда в магазине девушка спросила: «Для чего новая машина, для работы или личного пользования?» Я ответил, что работаю, а она спросила: «О, круто, чем ты занимаешься?». Я ответил: «Я разработчик». Это был момент, когда я как бы погрузился в себя, я чувствовал, что говорю неправду, как будто я притворяюсь кем-то, кем я не являюсь. Помните, каждый разработчик был там — каждый человек начинал с того, что мало знал или имел мало опыта. Первые несколько недель своей работы я паниковал каждый раз, когда писал код, и думал: «Достаточно ли он хорош?». Вы должны прорваться через это и быть уверенными в том, что вы пишете. И если есть лучший или другой способ написать что-то, используйте его, когда будете учиться. Ошибки — это то, что делает нас лучшими разработчиками.

3. Будьте осторожны с тем, за какие курсы вы платите

Это сложно, но всегда полезно указать. Есть много платных курсов, которые, откровенно говоря, просто пустая трата денег. Сказав это, я думаю, вам будет трудно сделать это без какого-либо платного курса, который поможет вам на этом пути. Количество знаний, которые я получил от Udacity за эти 5 месяцев, заняло бы у меня годы самостоятельно через бесплатные курсы и блоги. Мой совет: придерживайтесь документации Android, Google Codelabs и изучите любые платные курсы, прежде чем регистрироваться, чтобы убедиться, что они вам подходят.

4. Делать что-то, потому что «это делает кто-то другой».

Я часто делал это в начале своей карьеры. Это не обязательно плохо, но с этим следует быть осторожным. Делать что-то определенным образом, как это делает/делал кто-то другой — без полного понимания, почему — это опасный путь. Я усвоил это на собственном горьком опыте и понял, что во всем есть исключения. Всегда стремитесь понять причину, по которой все делается определенным образом.

5. Изучите другие инструменты, которые помогут вам в работе

Это довольно широкое понятие, в зависимости от области вашей специализации, но для большинства (если не для всех) необходимо ознакомиться с Git. Это было то, о чем я действительно мало знал, поэтому, когда я прыгнул на свою первую работу, работая удаленно, создавая ветки и запросы на включение, и мне приходилось объединять код… Это был очень страшный сценарий! Изучите, какие инструменты обычно используются, и ознакомьтесь с ними. Я бы порекомендовал быть знакомым с Git, Postman, Kanban Boards.

6. Изучите Java, прежде чем изучать Kotlin

Это спорный вопрос, и не все с этим согласятся, особенно сейчас, когда Google предпочитает язык Kotlin для разработки под Android. Для меня Kotlin — это короткая Java на стероидах. Разработка Android началась на Java, и многие проекты до сих пор написаны на Java или имеют смесь Java и Kotlin. Как разработчик, вы на каком-то этапе будете работать над унаследованными проектами, имеющими старый код, который необходимо поддерживать или обновлять. Сначала я пошел по пути изучения Java, а затем перешел на Kotlin — я искренне верю, что в обратном направлении это было бы гораздо сложнее сделать. Хотя сейчас я ненавижу программировать на Java и я большой фанат Kotlin, я все же настоятельно рекомендую получить прочную основу в разработке Java для Android, прежде чем переходить на Kotlin.

7. Создайте портфолио приложений и покажите свой код

Это действительно важно, чтобы сделать себе карьеру, когда вам не хватает степени или квалификации 3-го уровня. Просто сказать рекрутеру или компании: «Да, я могу писать чистый код, я знаю RxJava и знаю, как использовать Retrofit…» — недостаточно. Вы должны показать свои навыки и способности и, самое главное, гордиться этим! Я создал портфолио из двух надежных приложений, которые были у меня в магазине игр, а также кучу репозиториев в моем профиле GitHub, демонстрирующих код. Не забудьте задокументировать свой код, объяснив, что вы делаете и, самое главное, почему!

8. Примите участие во встречах и конференциях разработчиков

Займитесь собой! Это большое сообщество с большим количеством людей, и чем больше вы участвуете в создании сетей и встречах с людьми, тем лучше. Вы можете учиться у других людей, и они могут учиться у вас. Не стесняйтесь и не нервничайте перед посещением мероприятий. Прежде чем я получил свою первую работу, я посетил Droidcon Berlin и провел большую часть своего времени, разговаривая с компаниями, другими разработчиками и рекрутерами о советах или советах, которые они дали, чтобы проникнуть в отрасль. Было очень приятно услышать, что так много людей очень положительно относятся к младшим разработчикам, приходящим в отрасль без образования, и это сильно повлияло на мою уверенность в себе.

9. Будьте терпеливы, решительны и целеустремленны

Кажется, что это много, но вам нужно иметь все 3. Это не произойдет в одночасье, это будет нелегко, и будет легко просто бросить все это. Я рекомендую пытаться кодировать меньше и чаще, а не большими кусками за раз. Когда я впервые начал программировать, я выбивал примерно 2 дня из 8 часов разработки, а затем делал перерыв до конца недели. К тому времени, когда снова наступил понедельник, я забыл большую часть того, что узнал на прошлой неделе. Выделите себе определенное время и старайтесь делать это каждый день, если не по крайней мере 5 дней в неделю. Я бы порекомендовал выделять хотя бы 30 минут каждый день, чтобы немного покодить. Даже если это всего лишь написание пары строк того, что вы уже выучили. Затем постарайтесь увеличить количество занятий до нескольких часов пару дней в неделю. Мне посчастливилось иметь поддерживающую девушку, которая позволяла мне программировать в свободное от работы время (ей приходилось весь день сидеть за игрой в PS4, так что это был здоровый баланс!).

10. Наконец-то поверь в себя!

Я уже касался этого, но на этом стоит закончить и важно повторить. Вы делаете это для себя. Верь в себя. Не полагайтесь на одобрение или одобрение со стороны кого-то другого. Вы единственный, кто может встать у вас на пути, так что не позволяйте этому случиться.

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

Особая благодарность Бренту Келли за его вдохновение и поддержку, а также моей невесте за ее вдохновение и поддержку.

Примечание: хотя я рекомендую Udacity, у меня нет с ними никаких связей или обязательств, и мои рекомендации основаны исключительно на моем собственном опыте и мнениях.