Привет всем читателям!
Меня зовут Алексей, мне 23 года. 5 месяцев я уже работаю Android-разработчиком. Я расскажу какой путь я преодолел, чтобы им стать, с какими трудностями я сталкивался и как их преодолевал.
Начать стоит с того, что я окончил факультет «Прикладная информатика в экономике» и имел опыт программирования на Visual Basic, PHP, основы JavaScript. Моей дипломной работой был сайт на тему научных конференций (фреймворк Yii 2). В тот момент я ещё не знал, с какой стороны подойти к IT, и решил пробовать различные варианты. Я начал с работы тестировщиком Microsoft Dynamics CRM. Первые 3 месяца было интересно, много материала. Я увидел процесс разработки вживую, понял, как всё внутри устроено, как взаимодействуют отделы, даже участвовал в запуске проекта. Это было на 5-ом курсе перед дипломом. Перспектив роста особых не было, поэтому, когда я выучил всё возможное, ушёл из компании — было сложно совмещать диплом и работу.
После защиты диплома мне предложили работу администратором CRM SalesForce в крупной компании. Там было много интересных проектов помимо основной работы. Основная суть сводилась к управлению проектами, составлению ТЗ, оптимизации бизнес-процессов, общению с исполнителями и всё это на стыке с бизнес-процессами. Это был очень увлекательный опыт, однако именно тогда я понял, что сам хочу создавать программные продукты, а не управлять ими.
Я потратил всего день на выбор области. Выбирал между чистой Java и Android. Приложения для смартфонов — мне это было интересно. И я приступил к созданию плана обучения, ведь опыт того, как учить не стоит, у меня уже был в университете. Считаю, что основная сложность в процессе обучения — это не потеряться в огромном количестве материала, который необходимо осваивать. И каждый день изучая что-то новое, вы будете открывать для себя пропасть того, чего не знаете, но что потребуется для выполнения определённых задач. Возвращаясь к плану, я должен сказать, что если вы его не составите — это путь в никуда. Просто потому, что начальный и средние этапы будут похожи на паутину. Изучая статьи на одни темы, вы будете находить смежные статьи, которые в большинстве случаев не соответствуют изначальному запросу.
Я составил список материалов, с которых и начал подготовку к профессии Android-разработчик. Начал с основ ООП и основ Java, нашёл хорошие лекции и стал читал различные источники. Для базовой практики хорошо подходит JavaRush. Самое главное получать информацию из нескольких источников: разная подача материала поможет хорошо запомнить необходимые основы. После этого я приступил к углубленному изучению Java. Я читал «Философию Java» Брюса Эккеля, параллельно переносил код из книги в Idea, решал задачки по алгоритмам. Порой в книге текст был очень сухой, и тут помогали дополнительные статьи из интернета, чтобы материал усваивался.
Вообще, я забыл рассказать про одну вещь. Всё это я изучал не один. Моя девушка тоже захотела изучать Android вместе со мной. Она не имела никакого опыта программирования и у неё было образование по другой специальности. Это послужило хорошей мотивацией. Пришлось не просто изучать и понимать много информации, но и усилить свои навыки для того, чтобы эффективно объяснять и учить. Было сложновато, но в конечном итоге это помогло и ей, и мне. Встал вопрос: как повысить скорость и эффективность освоения новой информации? Тогда я и задумался о курсах. Я довольно быстро нашёл GeekBrains. Конечно были альтернативы, но мне понравился набор курсов по профессии «Программист Android», который мы и решили приобрести.
Курсы — это отличное дополнение к читаемому материалу. Их стоит воспринимать с нескольких сторон:
- во-первых, это новые источники информации, аудиальный принцип восприятия, совмещенный с визуальным;
- во-вторых, это возможность задавать вопросы, как преподавателю, так и одногруппникам, вместе расти и развиваться;
- в-третьих, домашние задания дают реальную возможность проверять свои знания и навыки на практике.
Вообще, далеко не каждый начинающий программист понимает, что без практики не будет результата, но я ещё раз это повторю. Очень важно, чтобы у вас в процессе обучения был балланс теории и практики. Я постоянно следил за этим, потому что теория без практики не научит программировать. Нужно самому пройти через то, что будет множество ошибок. Необходимо постоянно находить ответы и исправлять эти ошибки. Также необходимо понимать, что одних курсов не достаточно для того, чтобы стать программистом. Нужно обязательно читать дополнительную литературу, практиковаться в алгоритмах, осваивать паттерны и т.д.
Я очень благодарен курсам, мне они сильно помогли в процессе подготовки. После курсов я написал своё маленькое приложение для создания планов с задачами и напоминаниями, поучаствовал в проекте VK-Photon в Khasang, получил опыт командной разработки. Проштудировал множество статей (основная тема — что требуется от Junior Android-разработчиков) и закрепил общие знания по Java. В общей сложности я готовился к переходу на новую работу год. Да, это можно было сделать быстрей. Я не торопился. Ведь, чем больше информации будешь знать перед переходом на эту работу, тем будет там проще. У меня был план по подготовке, в котором я отмечал выполняемые мной задачи. Советую и вам сделать такой же, так будет намного проще не сбиться с пути.
Всем удачи! Если будут какие-либо вопросы, можете задавать, с удовольствием отвечу: Skype — alex.v.v.