Елена Булыгина предлагает Вам запомнить сайт «Ленусик»
Вы хотите запомнить сайт «Ленусик»?
Да Нет
×
Прогноз погоды

Основная статья: Android

Новый факультатив от KODE в GeekUniversity уже стартовал!

Совсем недавно на факультете Android-разработки GeekUniversity открылся новый факультатив по языку Kotlin. Его подготовила компания KODE — специалисты, создающие крутейшие мобильные и веб-приложения, а также IoT-кейсы. Мы задали главные вопросы о факультативе комьюнити-менеджеру Марии Кругловой и Илье Некрасову, разработчику программы и ее спикеру.

— Как будет называться ваш курс и чему он будет посвящен?

М.К.: Мы решили не мудрить с названием, максимально точно отразив в нем суть факультатива — «Продвинутые операторы Kotlin». В программу вошли многочисленные кейсы, благодаря которым студенты смогут изучить синтаксис и механизмы языка и понять, как упростить практическую часть разработки.

И.Н.: Даже не погруженные в Android-разработку люди из мира IT в курсе, что такое Kotlin и что знать его считается хорошим тоном в профессии. Поэтому перед нами стояла задача сделать «показательный» курс, который продемонстрирует, для решения каких задач используется язык.

— На какую аудиторию рассчитан факультатив? Насколько подготовленными должны быть студенты?

И.Н.: При разработке программы у меня была задача сделать материал понятным для всех потенциальных слушателей. Но слово «продвинутые» фигурирует в названии не просто так. Надо понимать, что изучать Kotlin в отрыве от Java и без знаний о мобильной разработке — непростое занятие. Основной акцент сделан на практическую часть, поэтому базовым вещам мы уделяем минимум времени. Так что начальные знания и навыки по Java и Kotlin очень желательны, но не обязательны. Если вы ими не владеете, это не помешает вам понять кейсы. Но все преимущества Kotlin можно познать только по приобретении опыта.

— Сколько длится факультатив?

И.Н.: Сейчас мы подготовили 16 занятий, каждое около часа. На мой взгляд, этого вполне достаточно, чтобы вникнуть в суть предмета. Ведь важно еще и не «задавить» студентов информацией — тем более если они еще не погружены в профессию глубоко.

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

— Насколько уникален этот курс?

И.Н.: Скажу честно — при разработке уроков я не ориентировался на то, что есть в сети. Мне хотелось собрать курс из жизненных кейсов, то есть по минимуму привлекая голую теорию. Информация, которую получат студенты, — это мои каждодневные задачи и их решения. Наверняка они не уникальны, но точно будут полезны каждому.

М.К.: Перед тем как взяться за работу, мы анализировали, в какой форме материалы будут полезны и интересны слушателю. И поняли, что лучшее решение — поделиться опытом, ведь именно его зачастую не хватает выпускникам курсов.

— Расскажите подробнее про формат занятий.

И.Н.: Несмотря на то что курс практический, заданий для самостоятельной работы мы давать студентам не будем. Причина простая — хочется, чтобы слушатели не выполняли типовые задачи, не повторяли символ в символ код на занятиях, а применяли информацию в своих проектах. А у студентов GeekUniversity их предостаточно. Если будут вопросы — готов помогать в режиме 24/7. Мне самому куда интереснее решать актуальные задачи, чем ретранслировать один и тот же код.

М.К.: Важно понимать: хоть это и факультатив для продвинутых, акцент сделан на применяемость языка. Каких-то сверхсложных вещей в нем не будет. Но если появится потребность усложнить, продолжить на новом уровне — готовы поработать и в этом направлении.

— Чего лично вы ждете от стартующего факультатива?

М.К.: Для меня интересно само сотрудничество с GeekBrains и GeekUniversity — одними из лидеров интернет-образования в области IT. Хочу получить обратную связь от студентов, «повариться» в этой кухне, чтобы в дальнейшем продолжить совместную работу на качественно новом уровне.

Эта возможность привлекает нас и как кадровое сотрудничество. Этим факультативом мы поднимаем свою узнаваемость, а в ответ получаем доступ к подготовленным кадрам. Наши офисы есть в Томске и Калининграде — наверняка с кем-то из выпускников мы пересечемся уже на работе.

И.Н.: Для меня это важный опыт как для преподавателя и наставника. Интересно, насколько я могу лаконично и понятно доносить профессиональную информацию, помогать в решении задач. Еще хочу посмотреть на уровень подготовки студентов — ведь требования постоянно растут, а далеко не все учебные заведения за ними успевают.

— И главный вопрос — кто и как может попасть на факультатив?

М.К.: Доступ к нашему факультативу получат все студенты направления Android-разработки уже с текущего потока. Подробнее о времени можно узнать на официальном сайте GeekUniversity и у кураторов. Приглашаем всех желающих — скучно точно не будет!

Пройти обучение

11 сен 19, 22:33
0 0
Статистика 1
Показы: 1 Охват: 0 Прочтений: 0

Agile и Scrum на практике: вопросы скрам-мастеру

К чему готовиться, когда приходишь в команду, где применяют Agile. Кому нужен Scrum, в чем его сила и когда он мешает. 

Слова Agile и Scrum прочно вошли в жизнь разработчиков за рубежом и в России. Мнения о гибких правилах разработки в профессиональном сообществе расходятся. Сегодня мы обсудим эту тему с человеком, который работает по принципам Agile уже более 10 лет и успел получить опыт проведения скрамов в российской и международной компаниях. Мой собеседник — Владимир Морозов — преподаватель факультета Android-разработки в GU, он нам расскажет про функции Scrum мастера и какую роль он играет в команде.

— Владимир, какие курсы вы сейчас ведете в GeekUniversity и GeekBrains?

— Веду курс командной разработки Android-приложения и учебный блок, посвященный подготовке к интервью. Иногда еще читаю лекции для project-менеджеров.

— В каких компаниях и командах вы занимались разработкой и практиковали Agile и Scrum?

— Я не любитель часто менять работу: в 2007 году пришел в компанию, которая разрабатывала ПО для ритейловых сетей. В этой компании мало кто знал про Agile, и когда команда столкнулась с проблемами, мы стали анализировать ситуацию и искать решение. В итоге пришли к необходимости использовать Scrum. Сейчас работаю в DXC Technology — тоже по скраму. 

Уточню, что Scrum — это не методология и не технология, а фреймворк, как утверждают авторы скрам-гайда Ken Schwaber и Jeff Sutherland. На русский язык тяжело перевести, что такое фреймворк, поэтому говорят «методология». На самом деле это контейнер с правилами, который каждая компания и команда заполняет своими процессами. Я бы сказал, что скрам — это набор правил и рекомендаций. 

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

Разработка программного обеспечения — штука сложная: тяжело прогнозировать сроки выполнения задач, синхронизировать задачи между разработчиками, расставлять приоритеты. Скрам помогает решать эти проблемы и организовывать работу так, чтобы ваша команда развивалась непрерывно.

— В чем ключевые особенности взаимодействия в командах, применяющих Agile?

— Появляется чувство локтя, повышается ответственность у участников команды, возникает самомотивация, когда разработчик заинтересован завершить задачу. Наверное, это. 

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

— Чем еще занимается скрам-мастер?

— Устраняет препятствия, мешающие нормальной работе команды. Сюда входит отслеживание процессов по скраму, обучение сотрудников этому фреймворку, обнаружение проблем и отправка их руководству, если их не решить своими силами.

— Чем на практике отличается применение методологии Agile в разных компаниях (российских и зарубежных) и командах? Какие факторы влияют на эти различия?

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

— По вашему опыту, когда Scrum работает лучше всего и какие у него противопоказания?

— Скрам отлично работает, когда сотрудники самомотивированы, ответственны. А еще, когда не до конца понятно, что делать, и вы постоянно ищете, как улучшить процессы разработки ПО. 

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

— Когда в феврале этого года в блоге вышла небольшая статья про Agile, у одного читателя возник вопрос: есть ли в Scrum место «причесыванию кода» — рефакторингу и «выпиливанию костылей»? Или в погоне за новыми запросами пользователя трудно найти на это время?

— Интересно, что в твиттере недавно появилось на эту тему сообщение от автора принципов SOLID, Роберта Мартина, или Дядюшки Боба, как зовут его в сообществе. Он посоветовал при оценке задачи закладывать в нее рефакторинг и написание тестов. Считаю этот совет очень разумным и полезным. 

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

— У себя в профиле вы указали, что в программировании, помимо прочего, вам важна тестируемость кода. Что вы под этим подразумеваете?

— К сожалению, начинающие разработчики, да и не только они, часто пренебрегают написанием автотестов. Как проверить код? Только тестированием. Это можно сделать вручную либо написать автотест — кусок кода для проверки другого кода. 

Да, на этапе разработки мы потратим время, но зато исключим человеческий фактор в будущем, ведь автотест не уйдет на больничный или в отпуск, не уволится. Мы освободим сотрудников от рутинной работы по ручному тестированию. Сейчас в мире тенденция: меньше ручного тестирования — больше автотестов.

— И еще один вопрос от читателей: «Agile — это модно, молодежно, но можно пример успешного Agile-проекта в топовых компаниях? Скорее всего, даже если вы найдете ссылку, это будет классический подход с элементами Agile. В отличие от чистого аджайла, там будет документация и заранее заданная архитектура». От себя добавлю: разве наличие документации и заданной архитектуры нарушает принципы Agile?

— Работаю по Scrum в компании DXC Technology. Почитайте, чем она занимается. Не уверен, что это компания топовая, но международная — точно. 

Как связана архитектура с Agile? Я не понимаю. Это как сравнивать зеленое с круглым. 

Если в ранних версиях руководства по скраму говорилось, что работающий код лучше документации, это не значит, что документация не нужна. В последней редакции гайда таких фраз уже нет. Разработка документации ведется в рамках отдельных задач и/или Definition of done, то есть определения законченности задачи.

— Есть ли в Agile механизм защиты продукта от перегрузки лишними функциями из-из «хотелок» пользователей? Или это за рамками подхода?

— За рамками. За этим следит владелец продукта: он ведет backlog (список задач) и расставляет приоритеты. Любая «хотелка» должна быть проанализирована.

— В каких ситуациях уместно так называемое экстремальное программирование (XP)? Был ли у вас такой опыт?

— Мы работаем по этим методикам. Фактически Scrum — часть экстремального программирования. Добавим сюда парное программирование, непрерывную интеграцию и разработку через тестирование — получим XP. 

Если заказчик недоступен, в скраме его замещает владелец продукта. Мне кажется, чем больше элементов экстремального программирования вы применяете, тем качественнее продукт. XP — это работа без стрессов, а не наоборот. :)

К примеру, подход test-first означает, что сначала мы пишем тест, он падает, затем пишем код под этот тест, и тест в результате «зеленый», то есть показывает, что код написан верно. Теперь мы точно знаем, что тест работает с новым кодом, сам код не содержит дефектов — следовательно, нет багов у пользователя и он не треплет нам нервы.

Парное программирование улучшает качество кода и способствует повышению профессионализма команды. Код автоматически получает ревью, а разработчики делятся друг с другом знаниями. Качественный код — значит, меньше багов и проще добавлять новую функциональность в будущем.

Еще один принцип XP — частые итерации и общение с клиентами. Это нам дает скрам. У нас нет строгой точки релиза, когда перед поставкой продукта все разработчики трудятся в мыле днем и ночью. Поставка может быть итогом каждого спринта. А непрерывная интеграция обеспечивает работоспособность проекта постоянно.

— Как выглядит спринт в команде Android-разработчиков? Что чаще всего идет не так и что при этом может сделать мастер?

— В данном случае не важно, идет ли речь об Android- или веб-разработке, о десктопных приложениях или сервисах. Проблемы бывают общими или командными. Общие проблемы — это неправильное прогнозирование задач (времени их выполнения), неверная расстановка приоритетов, отсутствие или неясность цели на спринт. 

В каждой команде — свои проблемы. Это может быть внутренняя коммуникация, назойливое руководство или еще что-то. С подобными препятствиями помогает бороться скрам-мастер. К слову, сейчас наша команда работает на Java, C#, Golang, Python и Angular (TypeScript).

— Читала, что в веб-разработке в распределенных командах американцы чаще берут на себя фронтенд, а россияне сосредотачиваются на бэкенде. В Android-разработке подобного не прослеживается?

— Что касается веба, — да. Фронтенд — часть, которую видит пользователь, а значит, американский разработчик лучше напишет и оформит текст для американской аудитории, поскольку и языком владеет на уровне носителя, и клиента знает.

У меня не настолько большой опыт работы с зарубежными Android-разработчиками, чтобы говорить о подобных нюансах. Но сейчас наша команда пишет микросервисы на C# — это тоже можно считать бэкендом :)

— Насколько понимаю, Аgile ориентирован на опытных специалистов, которые умеют брать на себя ответственность. Когда в команду приходит Junior, которого предстоит многому научить, он еще не полностью вовлечен в проект. Что, кроме собственного желания сотрудника, влияет на скорость вовлечения? Как этому способствует скрам?

— Обучать таких людей — одна из обязанностей scrum-мастера. Чтобы скорее вовлечься, нужно просто начать работать в команде.

— Насколько обременительно быть скрам-мастером: какую часть рабочего времени приходится выделять на организационные моменты? Насколько это сочетается с другими задачами ведущего разработчика?

— Наверное, у всех по-разному. Мне вообще нравится помогать людям, а работа скрам-мастера в этом и заключается. Что-то кому-то объяснить, с кем-то поработать в паре, подсказать. Конечно, ведущий разработчик, или сеньор, как правило, занят написанием каких-то базовых вещей, основ архитектуры, а мидлы и юниоры уже навешивают на эту архитектуру рюшечки. Когда джуниорам что-то непонятно, они иногда отвлекают от работы. 

Наша команда создана недавно, и в ней уже подобрались сеньоры, но все равно разработчики и автотестеровщики из других команд приходят за советом, а иногда даже просят посмотреть code review. Однако эта работа никак не связана с задачами скрам-мастера.

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

— Спасибо за ответы! Интересно было узнать мнение человека, который не первый год в теме Agile и знает изнутри, как работает Scrum.

Пройти обучение

28 июн 19, 19:21
0 0
Статистика 1
Показы: 1 Охват: 0 Прочтений: 0

Что есть, чтобы хорошо соображать

Гриськова Виктория Геннадьевна, врач-терапевт, диетолог сервиса «Онлайн Доктор»:

Медленные углеводы
Для эффективной работы или учебы стоит включить в рацион медленные углеводы — продукты с низким гликемическим индексом. Этот показатель отвечает за то, насколько быстро продукт поднимет уровень сахара (глюкозы) в крови. Чем больше времени на это уходит, тем длительнее чувство насыщения и тем «бесперебойнее» мозг снабжается энергией.

Подойдут каши: гречневая, овсяная, перловая, пшенная. Важно, чтобы крупы были из цельного зерна. В нем много фолиевой кислоты, которая влияет на возбудимость нервной системы, и тиамина, улучшающего познавательные функции мозга, память, концентрацию внимания, мышление.

Витамины группы В
Они защищают мозг от перегрузок и свободных радикалов, участвуют в синтезе нейромедиаторов, которые передают сигналы между клетками мозга. Нехватка этих витаминов может вызывать депрессии, ухудшение памяти, повышенную утомляемость, апатию и множество других проблем. Витамины группы В содержатся в зерновых культурах, отрубях и орехах — особенно полезны кедровые, миндаль, кешью.

Витамины А (бета-каротин) и Е
Содержатся в морской рыбе жирных сортов: семге, тунце, горбуше, — а также в рыбьем жире и орехах. Много витамина A в тыкве, печени, кураге и батате — сладком картофеле.

Взбодрит не хуже кофе
Чай — источник антиоксидантов и кофеина. Самый полезный — зеленый, лучше выбирать улун. Бодрящий эффект от чая наступает медленнее, но длится гораздо дольше.

Еще один важный элемент, отвечающий за бодрость, — селен. Содержится в печени, яйцах, кукурузе, рисе и фисташках.

Если энергия нужна срочно
Быстро получить энергию можно из фруктов. Подойдут бананы, красные яблоки, инжир и виноград.

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

Средиземноморская диета выглядит так: ешьте рыбу четыре раза в неделю, белое и красное мясо — по одному разу, на один день желательно составить вегетарианское меню и, главное, ежедневно употреблять растительные масла и не менее 400 граммов фруктов и овощей. Такое питание благоприятно сказывается на самочувствии. Рыба в рационе — например, семга, сельдь, печень трески — снижает риск развития болезни Альцгеймера.

Противопоказания
При наличии хронических заболеваний или обострений стоит проконсультироваться с врачом для корректировки рациона: некоторые продукты могут быть противопоказаны. Большинство натуральных продуктов полезны, но большое значение имеет количество съеденного. Если есть шоколад по пять раз в день, то от него будет только вред, но одна долька пойдет на пользу — если у вас нет противопоказаний.

Елизавета Мурзич, консультант по здоровому образу жизни, химик-технолог, идеолог ЭКО-ретрита «Здоровая и счастливая»:

Лецитин
Из этого вещества вырабатываются нейромедиаторы. Когда их не хватает, информация между клетками мозга передается с задержкой — что называется, «стою и туплю». При участии лецитина образуются нервные клетки. Печень на 65 % состоит из лецитина: он помогает ей бороться с дефектами. Еще мешает формироваться камням в желчном пузыре, стимулирует выделение желчи, не давая ей застаиваться, и препятствует дискинезии — нарушению сокращений желчного пузыря. Лецитин составляет основу мембран клеток и служит антиоксидантом — защищает их от окисления.

Лецитин лучше «брать» из растительных продуктов: бобовых (сои, чечевицы, фасоли, зеленого горошка, бобов), орехов, семечек подсолнуха, цельного и пророщенного зерна, отрубей, круп (гречневой, риса, овсянки), капусты, моркови, авокадо, одуванчика, а еще из масел: соевого, подсолнечного, хлопкового.

Из продуктов животного происхождения больше всего лецитина в яичном желтке. В яйцах также содержится витамин В12, который препятствует уменьшению объема мозга. Лучше употреблять перепелиные яйца — в них меньше холестерина. Много лецитина в икре рыб, печени.

Шоколад
Полезен шоколад, в котором более 80 % какао: содержащийся в нем флаванол стимулирует приток крови к коре головного мозга. Кроме того, шоколад поднимает настроение, а с позитивом любую задачу решать проще.

Куркума
Против старения мозга работает куркума — естественный антиоксидант. Куркумин препятствует вредному воздействию свободных радикалов.

Черника
Она влияет на активность мозга и способность воспринимать новую информацию. Улучшает мозговое кровообращение: мозг получает больше питательных веществ и кислорода. Малина и ежевика также пойдут на пользу.

Капуста и салат
Капуста и салат помогают «освежить» память — в них много витаминов группы B. Брокколи — действительно полезная штука.

Главное — мера

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

А вам какие продукты помогают лучше соображать?

Пройти обучение

26 мар 19, 18:35
0 0
Статистика 1
Показы: 1 Охват: 0 Прочтений: 0

Как стать Android-разработчиком — интервью с деканом

Александр Аникин — Senior Android developer и декан факультета Android-разработки в GeekUniversity. Он сам изучил профессию в GeekBrains, а сейчас руководит преподавателями и параллельно работает в крупной компании. Я расспросила Александра, что происходит с платформой Android, какие направления развития она предлагает программисту и как приобщиться к ней в GU.

 

— Привет! Расскажи, пожалуйста, о перспективах Android-разработчика, как ты их видишь. Чем это направление привлекло тебя и чем оно может заинтересовать сегодняшнего новичка?

— Под управлением Android работает два миллиарда устройств — они всюду, у всех и никуда не уйдут. Их количество еще вырастет за счет индийского, африканского и южноамериканского рынков. На мой взгляд, это говорит и о перспективах, и о привлекательности направления. Чем обширнее рынок, тем больше специалистов требуется для его обслуживания. В нашем случае существующий рынок Android-устройств постоянно нуждается в программистах, маркетологах, дизайнерах и гейм-дизайнерах, тестировщиках, архитекторах.

Меня в мобильной разработке привлекает возможность сразу видеть результат своих трудов. Ты пишешь небольшое приложение за пару месяцев, выкладываешь его в Google Play и получаешь отдачу. Можно работать в одиночку или в маленькой команде, где вклад каждого участника важен и очевиден. Для сравнения: если в команде из 500 джавистов писать крупную серверную SAP-систему, результата своей работы можно не наблюдать годами и не увидеть никогда. Думаю, многим важно, чтобы их вклад был заметен.

Есть и еще один момент. Навыки Android-разработки позволяют создавать приложения для себя — полезные инструменты, которые всегда с тобой. Для меня смартфон — это часть жизни, неотъемлемая и интересная. Я понимаю, как работает мой гаджет, расширяю его возможности, делаю его «умнее» и так упрощаю свою жизнь. Это приносит мне удовольствие. И надо помнить, что Android-разработка нацелена не только на мобильные устройства, сфера ее применения гораздо шире.

— Помимо приложений для планшетов и смартфонов, что можно делать?

— Писать софт для Android Auto, телевизоров, часов и других устройств. Android для ТВ отличается от мобильной версии в основном управлением — все действия не через тачскрин, а через пульт.

Еще есть горячее направление Internet of Things: можно писать приложения для управления умным домом. Тут уже больше отличий от мобильной разработки. Умные дома — это тренд, который уже наметился и будет развиваться. Эти технологии ближе, чем кажутся, ведь не обязательно иметь комплекс устройств: лампочки и розетки Wi-Fi — тоже умный дом.

Дополненная и виртуальная реальность — еще одна перспективная область, где нужны программисты Android. Если помнишь, когда появился первый iPhone и задал тренды для смартфонов в целом, это был поворотный момент. Дальше начался бум популярности гаджетов, который не проходит до сих пор. С дополненной реальностью я жду такого же эффекта: в ближайшие несколько лет эта ниша будет расширяться и специалисты будут востребованы.

Будет развиваться индустрия — нужна ведь не только программная часть, но и аппаратная. Уже были «первые звоночки»: Microsoft HoloLens и Google Glass. Но технология еще недостаточно совершенна для реализации таких идей. Как только появятся недорогие и удобные очки (а это случится), произойдет взрыв! Дополненная реальность через смартфоны — это легко и это уже есть.

— Какими из перечисленных направлений вы занимаетесь на факультете Android-разработки?

— Пока мы занимаемся только разработкой приложений для смартфонов и планшетов. Это основа, от которой студенты могут оттолкнуться в дальнейшем изучении программирования и Android. Игры не делаем, потому что в GU есть факультет разработки игр.

Наши студенты изучают мобильную разработку за год и не в формате пятидневки: у нас два занятия в неделю по два с половиной часа каждое. За это время ты получаешь базовые знания, которые позволят устроиться на работу в качестве junior'а. Если ты очень упорно занимался и отдавал этому все силы, тебя могут взять на вакансию уровня middle. Будь у нас два года учебного времени, я бы с удовольствием добавил в программу курс по дополненной реальности.

— Помимо языка Java на факультете преподают Kotlin?

— Да. Недавно мы включили в программу изучение основ Kotlin. По итогам курса студенты пишут приложение для заметок, которое, по аналогии с Google Keep, хранит данные в облачном хранилище Firebase.

В планах — добавить еще курс профессиональной мобильной разработки на Kotlin.

— А еще какого типа проекты ждут студентов факультета?

— Сначала мы пишем погодное приложение, которое показывает сводку по любым городам и регионам. Дизайн интерфейса и дополнительные фичи — на усмотрение слушателей. Затем изучаем принципы Material Design и по этому курсу пишем приложение для просмотра фотографий — по аналогии с лентой Instagram.

Один курс посвящен популярным библиотекам: Dagger, Mosby, Butterknife, Room, Sugar ORM. Отдельный проект по итогу студенты не разрабатывают, вместо этого они внедряют изученные паттерны и библиотеки в свои текущие проекты.

Дальше у нас командная разработка: ребята сами выбирают, что делать, и работают над проектом самостоятельно, а если надо — советуются с преподавателем.

Подчеркну: никто не заставляет писать именно предусмотренные программой приложения. Вместо погодного информера можно разработать что-то свое на базе тех же технологий.

— Что нужно для занятий мобильной разработкой? Как минимум среда разработки и Android-устройство для тестирования?

— Из обязательных требований — только компьютер. Даже Android-девайс иметь под рукой не обязательно, потому что тестировать приложения можно на эмуляторе. Гипотетически, код можно писать и в блокнотике, но на деле, конечно, понадобится среда разработки (IDE). Это бесплатная Android Studio, которую вы можете скачать из интернета.

Если сравнивать с iOS-разработкой, там тебе нужен Mac, который стоит в 5–10 раз дороже ПК под Windows или Linux. Плюс ты будешь ежегодно платить Apple по 100 $, чтобы иметь право что-то разрабатывать для их устройств. Это создает «имущественный ценз» — порог входа, который в Android-разработке практически отсутствует.

— Как изменилась Android-разработка за последние годы — с момента, когда ты пришел в это направление?

— Изменилась очень сильно и, думаю, продолжит меняться в дальнейшем. Потому что Android-разработка — это не только Java, хотя и этот язык взял курс на быстрые изменения. Нельзя быть разработчиком и не учиться постоянно. Ты прошел курс, но каждый год появляется что-то новое. Если не следить за происходящим, через пять лет просто не узнаешь свое направление.

Я пришел в Android-разработку четыре года назад — тогда многие использовали IDE Eclipse, и я тоже начинал работать в ней. С тех пор все перешли на Android Studio — среду разработки от Google. Еще появились архитектурные компоненты: стало ясно, какой должна быть архитектура Android-приложений. До недавнего времени все писали кто во что горазд. В число основных языков разработки вошел Kotlin — теперь это стандарт, и многие новые приложения изначально пишутся на нем.

— То есть за Kotlin будущее? Почему этот язык так «выстрелил» в Android-разработке?

— Создатели Kotlin плотно работают с Google. А если учесть, что они (JetBrains) создали еще и среду IntelliJ IDEA, на которой базируется гугловская Android Studio, сотрудничество получается очень успешным. Кроме того, Java принадлежит компании Oracle, у которой сейчас правовые проблемы с Google.

Я не вникал глубоко в этот вопрос, но, насколько понимаю, Oracle хочет сделать Java платным для корпоративных клиентов или брать royalties за использование отдельных модулей. А поскольку на этом языке пишется софт для двух миллиардов Android-устройств, Google не в восторге от такого хода. Если бы не юридические препирательства, не уверен, что Kotlin так быстро поднялся бы в этой сфере. Но есть и другие причины.

Возьмем Go и Dart — они со временем наверняка станут официальными языками Android-разработки, но у них узкая специализация. Kotlin позволяет делать все, что может Java, и больше того. На нем можно написать сервер, мобильное приложение, нативную логику, среду сборки — что угодно. Плюс создатели Kotlin добавляют в язык фичи, специально заточенные под Android-разработку.

— Несколько вопросов о тебе: чем ты занимался раньше, как пришел в IT и стал писать для мобильных устройств?

— До Android я всю жизнь занимался маркетингом. Работал классическим маркетологом, мобильным маркетологом, SMM, продакт-менеджером. Потом захотел сменить профессию и начал программировать.

Мобильная разработка интересовала меня давно, потому что я всегда любил гаджеты: оценил прелесть смартфонов, когда они только появились, и следил за проектами в этой области на KickStarter. Специально ездил в Москву на «Горбушку», чтобы купить первый iPhone — тот, который официально в России никогда не продавался. И с тех пор старался пользоваться самыми новыми и современными девайсами.

Идея умного портативного устройства была мне близка еще до того, как я занялся продакт-менеджментом и мобильным маркетингом. Со временем этот интерес только укреплялся и рос.

— С чего ты начал путь в разработку?

— Знакомые разработчики порекомендовали мне начать с Java. И этот совет до сих пор актуален, потому что Java — развитый, хорошо документированный язык с отличным community. Он использует строгую статическую типизацию и подходит новичку. Если ты знаешь Java, тебе легко перейти на Swift, Objective-C, Kotlin, Go, Dart. Это позволяет выбирать практически любое направление.

— Сначала ты пробовал учить язык самостоятельно?

— Да. Месяца два я ковырялся с Java сам, затем понял, что лучше вложить деньги в свое образование и с помощью менторов закрепить и стандартизировать свои знания. Тогда я купил курсы в GeekBrains, прошел обучение и устроился junior'ом на первую работу.

— Какое-то портфолио удалось собрать?

— Если честно, не помню, какие проекты мы делали, но точно могу сказать, что на работу меня брали не за портфолио. Я прошел много собеседований, а провел еще больше — и считаю, что портфолио не важно при трудоустройстве. Работодатель все прекрасно видит по собеседованию и тестовому заданию.

Объемное портфолио нужно только самому программисту — это необходимое следствие твоей работы. Если не будешь постоянно писать код и улучшать его — не станешь разработчиком и не пройдешь собеседование. Но сама по себе подборка твоих прошлых работ никому не интересна, и не факт, что ты захочешь ее демонстрировать.

У меня сейчас дюжина проектов на GitHub, и я никому их не показываю, потому что код, написанный год назад, — это всегда «курам на смех и слезы». Нормальный разработчик развивается постоянно, и если тебе не стыдно за прошлогодний код — ты не растешь.

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

— Через какое время в разработке ты решил преподавать?

— Через полтора года. Почувствовал, что мне хватит знаний и опыта, чтобы проводить занятия. Прошел собеседование в GeekBrains, провел тестовое занятие и был принят. Теперь в качестве декана факультета сам провожу собеседования и оцениваю профпригодность преподавателей.

— Чем ты занимаешься вне GeekUniversity?

— Работаю в крупном банке и пишу для него приложения.

— И там тоже проводишь собеседования? Ты на руководящей должности?

— Чтобы подбирать людей для проекта, не обязательно быть руководителем. Сейчас я разработчик, но да, моя экспертиза востребована, потому что помимо программистского стажа у меня 15-летний опыт руководства и проведения собеседований.

— До банка ты работал еще в нескольких компаниях?

— Да. Начинал в небольшой компании, где разработкой занимались два человека: я и технический лид, который меня многому научил. Через два года я перешел на middle-позицию в EPAM. Это крупнейший в мире производитель программного обеспечения.

Компания создает приложения под ключ — решает задачи заказчика силами своих программистов, тестировщиков, архитекторов, консультантов и других специалистов. В EPAM я стал senior'ом и затем перешел в банк, где работаю сейчас.

— А кого-то из выпускников GB и GU тебе доводилось брать на работу?

— Только один раз, но случай интересный. В октябре 2018 года ко мне пришел выпускник курса, который я вел около года назад. Он уже 6 месяцев трудился Android-разработчиком и хотел устроиться к нам преподавать. Я его сразу узнал — это был один из активных студентов. Мы провели собеседование, он его не прошел: не хватало базовых знаний для ведения вебинаров. На мой взгляд, преподавателю, который ведет курсы Android-разработки первого и второго уровня, нужна очень хорошая теоретическая подготовка. Потому что студенты, еще мало знакомые с Java, могут задать любой вопрос — не только про Android, но и по смежным направлениям. И ты должен быть готов хотя бы в общих чертах говорить о вещах, с которыми на практике не сталкивался.

Но кандидат не сдался: он подтянул свои знания, через месяц вернулся и успешно прошел собеседование. Теперь он преподает у нас. По сути, он сделал то же, что и я в свое время. Настойчивость приносит результаты в разработке и не только. Приятно, когда человек, который у тебя учился, достигает в профессии целей, которые перед собой ставит.

— Спасибо тебе за содержательный рассказ: мы успели затронуть много тем! Ждем вопросов в комментариях.

Пройти обучение

13 мар 19, 12:47
0 0
Статистика 1
Показы: 1 Охват: 0 Прочтений: 0

Из юристов в программисты

Игорь Разумов, выпускник факультета Android-разработки, рассказал GeekBrains, как начать карьеру в IT, имея юридическое образование, о чем важно помнить перед собеседованием и чем полезна студентам помощь наставников.

Факультет: Android-разработка

Город: Калининград

Возраст: 33 года

Профильное образование: юридическое

«Занятие, к которому душа лежит»

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

Учиться не очень-то хотелось, поэтому я перевелся на юридический — посчитал, что на юриста можно учиться, не учась, и получить диплом, особенно не напрягаясь. В итоге все равно ушел на дистанционное обучение, потому что появился небольшой бизнес и хороший доход. К тридцати годам захотелось вернуться к занятию, которое приносит удовольствие, к которому душа лежит. Тогда и вспомнил о программировании.

Замечаю тенденцию к смене профессии после тридцати. Видимо, влияют несколько факторов. Не всегда дети сами выбирают образование, родители обычно решают за них. С возрастом происходит переоценка жизненного опыта — повзрослевшие дети понимают, что не хотят всю жизнь заниматься нелюбимым делом, пускай и денежным. Как ни крути, большую часть жизни мы проводим на работе, и лучше, если она приносит радость, а не только зарплату.

Результаты поиска в Google по запросу «сменить профессию на IT после тридцати»

«Если не получится — значит, не мое»

Сначала прошел курсы профессиональной переподготовки в Калининградской области, отходил 500 часов, но получил только базовые знания. Посещал курсы сисадминов, что тоже не привело к особым успехам. Тогда только начался набор в GeekUniversity, и я решил попробовать с мыслью: если и в этот раз не получится — значит, не мое.

Отзывы о GeekBrains увидел достаточно противоречивые, и знакомые даже отговаривали от этого шага, но для меня важно было поставить точку в образовании — или я иду к этой профессии, или всё. Для меня решающим плюсом в GeekUniversity было трудоустройство — сложно найти первую работу без профильного образования, когда тебе далеко за двадцать. Так я попал в самый первый набор в апреле 2017 года.

Попутно мне повезло. Google раз в год проводит бесплатный годовой курс на Udacity. Я попал в образовательную программу и параллельно учился в GeekUniversity.

Для участия в программе отбирают 30 тысяч человек, но по итогам конкурса только тысяче оплачивают обучение

«GeekBrains помог не упасть в пропасть отчаяния»

Решил поступить на факультет Android-разработки. Если учитывать современные реалии, с каждым годом сервисы активнее используются с мобильных устройств, и бОльшая часть гаджетов работает на Android. У меня даже машина уже на Android. Устройств на iOS много, но со стороны разработчика они труднодоступны — закрытые коды, дорогой порог доступа. Чтобы программировать под Android, достаточно ноутбука, который тянет Android studio — не обязательно современный, даже старенький справится. Под iOS же устройство должно быть обязательно из экосистемы Apple, и в целом сообщество iOS-разработчиков более закрытое. В Android-сообществе больше свободы, оно более живое — любой может взять код и модернизировать.

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

Читал психологические исследования о том, как становятся программистами: многие ломаются на стадии первых неудач. Это называется «пропасть отчаяния»: считаешь себя крутым разработчиком, все идет как по маслу, а потом сталкиваешься со сложной задачей и неделями не можешь найти решение. Не упасть в пропасть отчаяния помог GeekBrains — были наставники и преподаватели, которые отвечали на вопросы.

Друзей-айтишников у меня не было, посоветоваться по учебным вопросам не с кем. Писал на Stack Overflow, но ответы не давали исчерпывающую информацию

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

Помогла возможность попросить совета у наставников. Когда я учился, система наставничества уже была, но с медленным  фидбеком, сейчас это изменилось. Возможность обратиться за помощью к наставникам важно освещать — многие студенты даже не знают об этом.

Платные курсы от бесплатных, на мой взгляд, главным образом отличаются наличием ментора. В GeekBrains наставник — аналог ментора, и его помощь ценна: если что-то не получается, спроси у наставника, он поможет в задаче и сэкономит время, которое ты потратил бы на самостоятельные поиски. Без ментора ответ на сложный вопрос будешь искать долго. У меня бывали тупиковые ситуации, и здесь велик риск попасть в свою пропасть отчаяния и забить.

Почитать на тему

Наставничество GeekBrains. Рассказываем, кто такой наставник, как им стать и чем это полезно

«Важные факторы: профильное образование, дополнительные курсы, опыт в разработке и возраст»

После курсов я несколько месяцев работал удаленно в компании, куда меня авансом взяли на позицию middle-разработчика. Авансом, потому что не было опыта реальной работы. Устроиться помог однокурсник по GeekUniversity: он уже работал в компании и предложил мне вакансию. На вторую работу — в Amigoweb, где тружусь до сих пор — тоже взяли на позицию middle android developer, и работа соответствует этим рамкам, если исходить из того, что пишут на «Хабре» об обязанностях миддла.

Первую работу нашел сам, без помощи GeekBrains, еще до окончания курсов. Раскидал штук двести резюме по вакансиям — некоторые компании отклоняли заявку, кто-то просил сделать тестовое задание, где-то я сам отказывался. Столкнулся с тем, что дают тестовые задания, которые занимают много времени — на одно я потратил неделю, — а когда отсылаешь, в ответ получаешь молчание. Однажды я набрался наглости и спросил: «Хотя бы скажите, что в задании не так, проявите уважение к моему времени и усилиям». Мне ответили что-то невнятное, мол, да-да, извините, мы скажем, просто затерялась ваша работа. До сих пор молчат.

Таких ситуаций может быть много, и я советую не опускать руки, если столкнетесь с подобным

Считаю, что даже если тестовая работа плохая, компания обязана дать обратную связь. Я встречал работодателей, которые отказывали, но обоснованно: «Нам не нравится качество вашего кода, но если попрактикуетесь и придете через пару месяцев, рассмотрим вас еще раз». Рекомендую студентам больше отрабатывать навыки: просто писать код и меньше задумываться о неудачах. Важна насмотренность — не скажу, что с ходу могу ответить на теоретические вопросы, но если сталкивался с чем-то похожим в работе, это на автомате запомнилось.

Думаю, что шанс устроиться на работу у разработчика из региона и из Москвы одинаковый, и его определяет уровень знаний. В моей практике 95 % заявок, которые я рассылал еще во время учебы, оставались без отклика. Работодатель обращает внимание на четыре фактора: профильное образование, дополнительные курсы, опыт в разработке и возраст.

Профильное образование интересует HR-ов, но все-таки это не основной показатель. Если соискатель в курсе технологий, обладает хорошими знаниями и уверенно это продемонстрирует, то большинство работодателей рассмотрят его и без профильного образования, найдут компромисс или помогут обучиться. Хотя рынок разработчиков переполнен, профессионалов среди них мало. Учитывая изменяющиеся требования, наличие корочки из вуза не столь важно. Важно, наверное, только если претендуешь на место в компании вроде Google. Мои сокурсники устроились разработчиками в банк и без профильного образования.

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

«Практика и еще раз практика»

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

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

 

В тему о страхе собеседований и о том, что никто не знает ответы на все вопросы, — популярная

в Twitter, которую начал создатель Ruby on Rails, Дэвид Хейнемейер Ханссон

Тем, кто приходит в IT из других профессий, главный совет от меня — практика и еще раз практика. Без нее теоретические знания бесполезны, и чем больше кодите, тем быстрее получаете результат.  

Есть хорошие каналы в Telegram, где можно почитать о разработке и задать вопросы. Тематические подкасты тоже помогают заполнить пробелы в знаниях. Я слушаю Podlodka podcast и подкасты на сайте для разработчиков apptractor.ru. Начинающим могут быть полезны ролики на ютуб-канале Start Android, но у образовательных роликов о разработке есть проблема — они быстро теряют актуальность, и то, что записано год назад, может уже не пригодиться. Сам сейчас не смотрю ничего определенного, действую по ситуации — гуглю информацию и изучаю несколько источников, чтобы охватить проблему с разных сторон.

Вообще программирование — специальность, которой нужно учиться всю жизнь. Разработка не стоит на месте — технологии развиваются, тренды меняются, и надо всегда быть в теме.

Пройти обучение

29 янв 19, 17:07
0 0
Статистика 1
Показы: 1 Охват: 0 Прочтений: 0

GeekUniversity: работа мечты — done

Студент факультета Android-разработки Александр Королев рассказывает, как в 19 лет нашел свой путь в IT. Как ушел в академ с первого курса вуза, чтобы учиться программированию в GeekBrains. Сохранил присутствие духа после 7 отказов на собеседованиях, а по итогам восьмого — получил оффер из Mail.Ru Group. Александр делится опытом реальных интервью и своей подборкой IT-ресурсов.

С чего все начиналось

Школа

Я всю жизнь занимался иностранными языками. Учился в гуманитарной школе с углубленным изучением испанского. С детства сфера IT была для меня чем-то загадочным. Есть «понятные» профессии: например, журналист. Ты примерно можешь себе представить, как писать текст. Но как писать код — сложно понять с ходу. Для меня это всегда было страшным и привлекательным. И я решил осознанно столкнуться с этими сложностями. В итоге затянуло, и стал развиваться в этом направлении.

В девятом классе во мне проснулся интерес к техническим наукам, особенно к программированию. Тогда я еще готовился к ГИА по информатике и узнал про алгоритмический язык. Экзамен я сдал хорошо — наверное, это можно назвать моим первым успехом в области IT и программирования. Это было несложно, но приятно. Дальше — больше: стал углубляться в тему, готовиться к ЕГЭ по информатике и поступлению в вуз. На подготовку ушел год: за это время я успел познакомиться с языком Pascal. С ЕГЭ я тоже справился, набрав 75 баллов — неплохо для гуманитарной школы.

Институт

Я поступил на бюджет в МАИ, на технический факультет. Был очень рад и думал, что буду изучать программирование в институте. По факту как таковой разработки оказалось очень мало, да и программа обучения была устаревшей. Мы изучали тот же самый Pascal, который, по сути, был нужен только для поступления — в реальной практике он почти не используется. Да и работу с ним не найти. Помню, что очень сильно расстроился из-за этого.

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

Курсы или самостоятельное обучение

Путь самоучки мне выбирать не хотелось. Личный опыт показал: при самостоятельном обучении есть риск пойти неверной дорогой изначально. Именно на старте мы чаще всего делаем ошибки. Здесь важно, чтобы кто-то мог обратить на них внимание, помочь предотвратить их в дальнейшем и указать нужное направление. Если такого человека рядом нет, есть риск закрепить неверные навыки и повторять ошибки снова и снова. Это может сбить с толку, и в итоге ты не понимаешь, что именно отдаляет тебя от намеченной цели.

Потому я решил, что заниматься нужно под руководством учителей, искал курсы и нашел GeekBrains. Меня привлекло описание учебной программы, и я пошел учиться сюда, будучи на первом курсе института. Я выбрал программу разработчика C# и прошел курс по HTML. Понравилась система преподавания, и как вообще работают эти курсы. Параллельно появились анонсы об открытии факультетов веб- и Android-разработки GeekUniversity. В то время в Mail.Ru проходила встреча Geekday–2. Я на нее пришел, впечатлился условиями труда в IT и еще раз понял — хочу работать здесь.

Убедившись, что намерен продолжить обучение в GeekBrains, я начал осваивать курс Android-разработки. Отнесся к этому серьезно: вовремя сдавал домашние задания, читал дополнительные материалы и смотрел видеокурсы. Я очень много занимался: как на курсах GB, так и самостоятельно. Все это меня быстро затянуло. У нас был отличный преподаватель по Java — Александр Фисунов. Его хочется отметить. Он во многом привил нам любовь к программированию. Я стал двигаться дальше, много учиться, развиваться.

Переломный момент

Решающим месяцем в моей карьере стал февраль этого года — произошло два важных события.

Я устроился на свою первую работу почти через полгода после начала обучения.

Все произошло на удивление легко. Я разместил резюме на HeadHunter, и мне ответили из небольшой компании. Моего относительно скромного опыта хватало, чтобы работодатель взял меня Junior Android-разработчиком. Я делал простые Android-приложения и был очень этому рад: найти любую работу практически через полгода с начала обучения — это уже большой успех. Ощущение того, что навыки начинают приносить деньги, стало для меня стимулом двигаться вперед.

Получил дополнительную возможность для повышения квалификации, поступив в «Тинькофф Финтех Школу»

Конкурс был довольно жесткий. Раньше набирали человек по 30–40, а в мой поток — всего 20. Чтобы поступить, надо было сдать сложные экзамены, продемонстрировать хорошее знание Java и сопутствующих Android-разработке языков программирования, а также сделать лабораторную работу. У меня это получилось лишь со второй попытки: пробовал поступить полгода назад, но пролетел. Но я не отчаялся, работал над собой, продолжал учиться в GB, после чего попытался поступить еще раз — получилось.

Сложности

Поскольку я стал очень много учиться и параллельно работать, в институте пришлось взять академ. В дальнейшем я продолжил учиться в вузе, но перевелся на заочное. Институт пришлось отодвинуть на второй план, потому что захотелось заниматься IT.

Путь был тернистым. Сложности возникали довольно стандартные. Было непросто хорошо выучить язык Java — это основной инструмент в Android-разработке. Я потратил очень много времени, чтобы изучить справочники, видеоуроки и документацию. Усиленно работал над собственными проектами. Я планомерно шел по программе GeekBrains: она насыщенная, но занятий как таковых недостаточно — материал нужно всегда повторять самому. Писал один и тот же код по несколько раз, чтобы все хорошо запомнилось.

Например, в Android есть такой компонент для отображения списков — Recycler View. Когда ты пишешь его сам впервые, вообще не понимаешь, что происходит. Но на одиннадцатый раз уже полностью осознаешь, как работает Recycler, и пишешь спокойно, без посторонней помощи. В Андроиде так: очень много вещей, которые не понятны с первого взгляда. Оглядываясь назад, я вспоминаю эмоции, которые испытывал в самом начале — то чувство, когда уверен, что это невозможно выучить. Сейчас все иначе. Я осознаю, что уверенно владею необходимым материалом. Но это осознание приходит только после того, как ты повторишь все несколько раз.

Собеседования и польза от провалов

Мое первое собеседование оказалось на удивление простым, как и сама работа. Требования были несложными, график — гибким, атмосфера — спокойной. На рабочем месте я мог параллельно заниматься, учиться чему-то. Поэтому это собеседование я не считаю. На своем первом месте я проработал чуть более полугода. Компания постепенно разрасталась: когда я пришел, в коллективе было всего 15 человек, когда уходил — около 40.

Но я не привык сидеть на одном месте: хотелось развиваться дальше и устроиться в крупную IT-компанию. Всегда мечтал работать в Mail.Ru. Это место было для меня каким-то вдохновляющим: я живу неподалеку и каждый раз, проходя мимо офиса, заглядывал внутрь, чтобы полюбовался на свою мечту. Но эта перспектива по-прежнему казалась мне слишком далекой.

Развиваясь на своей первой работе, я параллельно искал новые возможности и в скором времени начал ходить по собеседованиям. Хотелось изучить, что еще есть на рынке IT-специалистов, и попробовать выйти на новый карьерный уровень. Все это длилось полгода, и могу сказать, что поиск работы — дело далеко не простое.

У меня было около 7 неудачных собеседований. Поражения даются тяжело, но на интервью я советую ходить постоянно. Это такой момент, когда ты можешь узнать о своих пробелах или недостатках и почерпнуть для себя что-то новое. Ты понимаешь, какие знания выветрились из головы, на что нужно обратить внимание. Здесь важно уметь делать выводы и работать над собой после каждого провала, чтобы не повторять ошибки в будущем. Я извлекал огромную пользу из собеседований — это тоже опыт. С каждой новой неудачей я выявлял, чего мне не хватает, и старался это исправить. Из важных вещей, которые проверяли на собеседованиях, могу выделить следующие:

  • Знание языка Kotlin, который вышел не так давно. О владении им спрашивают практически на каждом собеседовании. На нем сейчас разрабатывается большинство проектов, потому что он более быстрый, удобный и красивый, чем Java. Начинать, конечно, стоит все же с Java — это основа Android-разработки. Но в дальнейшем я рекомендую изучать Kotlin. Мой переход на этот язык занял примерно три недели. Я изучал документацию, смотрел видеоуроки. Со знанием Kotlin мне стало намного удобнее писать;
  • Аndroid-библиотеки, такие как RxJava или Dagger-2;
  • Основные базовые компоненты Java;
  • Принципы объектно-ориентированного программирования. В частности, 5 принципов SOLID. В тему ООП важно углубляться, потому что об этом спрашивают везде;
  • Архитектурные решения. Советую повторить, как правильно выстраивать архитектуру ПО и какие существуют паттерны проектирования;
  • Английский — must have для каждого программиста. На некоторых собеседованиях проверяли уровень владения языком. Например, в компании Yota Devices у меня даже была небольшая часть собеседования на английском. Ведь основной материал, в том числе техническая документация, написан именно на нем.

Когда опускаются руки

Я ходил как в крупные, так и в небольшие компании, но найти работу так и не получалось. К сожалению, вакансий junior-разработчиков в Москве оказалось не так уж много. В основном нужны специалисты с опытом от года, и этот год надо было где-то наработать. Было довольно сложно: где-то я понимал, что мне не хватает навыков, а где-то, наоборот, был уверен в себе и уже рассчитывал на оффер, но работодатель выбирал другого кандидата по каким-то неведомым мне причинам.

Это самое неприятное: когда ты полностью уверен в себе и не понимаешь, почему тебе отказали. Многие даже не пытаются объяснить, почему ты им не подошел. Когда ты прошел собеседование успешно и тебе отказали — начинаешь винить все вокруг. В такие моменты реально опускаются руки. Это тебя демотивирует. Из-за этого состояния у меня бывали дни, когда я занимался разработкой без желания и делал все «на отвали». Иногда и вовсе впадал в отчаяние, думая: «Я делаю то, что никому не нужно… Возможно, я выбрал неправильный путь?»

Тогда очень помогла поддержка близких. Друзья говорили: попробуй еще раз, и у тебя все получится! А я думал: «Ничего страшного, найдется место и получше».

Что пригодилось

Можно сказать, что GB сыграл для меня решающую роль. Все навыки пригодились на собеседованиях и при трудоустройстве. Учебная программа построена на практике и направлена на то, чтобы студент получал максимальную пользу от приобретенных знаний. Это было важно для меня, так как пришел я совсем новичком — знал только Pascal, и то не понимал, где его применять.

В самом начале я понадеялся на GB, рассчитывая, что наставники помогут мне на пути в профессию. И не прогадал: учителя были с нами на связи почти 24 часа в сутки и в любой момент были готовы помочь, ответить на вопросы. Самое крутое — меня погрузили в мир профессиональной разработки, показав, где именно можно использовать новые знания. Чего не скажешь об институте, где ты пишешь уравнение и не знаешь, что с этим делать.

Безусловно, без самостоятельного изучения материала далеко не уедешь — все должно быть в комплексе. Вот список ресурсов, которые показались мне полезными:

  • Книги: Г. Шилдт — «Java 8. Полное руководство» и Б. Харди, Б. Филлипс, К. Стюарт, К. Марсикано — «Android-программирование для профессионалов»;
  • Видео-курсы: Udacity и официальный YouTube-канал по Андроиду;
  • Документация по языку Kotlin: нет лучшего источника знаний, чем отлично написанная документация от разработчиков языка. Переход на Kotlin с Java занимает примерно 2–3 недели при ее ежедневном изучении.

Еще советую подписаться на тематические паблики в соцсетях — например, «ВКонтакте» — и включить уведомления. Так вы сможете оперативно замечать обучающие мероприятия, тренинги и митапы и быть всегда в курсе новостей. Лично я почерпнул много полезного из групп GeekBrains и Mail.Ru Group для образования, а также паблика /dev/null с забавными мемами и новостями.

Встреча с мечтой

И вот я наконец решился попытать удачу в Mail.Ru. К тому моменту как раз открылась позиция младшего Android-разработчика. Через какое-то время со мной связался HR-менеджер и провел небольшое собеседование по телефону. Разговор длился примерно полчаса. Я рассказал о себе и своих навыках, скинул ссылки со своими работами на GitHub.

Спустя день меня позвали на техническое собеседование в офис. Оно заняло примерно два часа. Я общался со своим потенциальным руководителем в присутствии HR-менеджера. Собеседование было в каком-то смысле уникальным. Меня попросили решать задачи. На других интервью тоже просили, но не в таком количестве. Для меня сложность была в том, чтобы написать код ручкой на бумаге. Когда делал это, мне предоставили распечатанные классы. Нужно было решить задачи, связанные с Java-коллекциями. Это очень важная часть: надо знать, как они работают, какую из них и в каком случае лучше выбрать. Просили написать про hashCode()  и метод equals().

Проверяли, насколько мои знания соответствуют современным тенденциям. Например, есть ежегодная конференция — Google I/O, которую рекомендуется смотреть или посещать всем Android-разработчикам, чтобы быть в курсе крупных нововведений. Меня спрашивали об архитектурных компонентах, которые Google анонсировал за последнее время. В частности, как организовывать фоновую работу в Android, чтобы не съедался заряд аккумулятора. Для этого мы рассматривали разные решения: что можно использовать вместо стандартного компонента Service для асинхронной работы в Андроиде, что нужно для работы с сетью и так далее. Спрашивали про принципы ООП SOLID, а также про Android Job: JobScheduler, WorkManager и прочие инструменты для организации плановых действий в Андроиде.

Было очень сложно, но довольно интересно. Честно сказать, я даже не думал, что справлюсь. Когда шел на собеседование в Mail.Ru после полосы неудач, то сказал себе, что это будет моя последняя попытка. Провалю — значит буду кардинально менять специальность и пробовать себя в другой области. Но мне повезло: в итоге я получил работу мечты и не сдался в самый ответственный момент. Уже через неделю мне сообщили: «Александр, добро пожаловать в команду Mail.Ru!» Получилось. Работа мечты — done.

Пройти обучение

5 окт 18, 16:24
0 0
Статистика 1
Показы: 1 Охват: 0 Прочтений: 0

Как я за год из 1C-разработчика стал Android-разработчиком

Он рассказал, почему работа 1С-разработчика его не зацепила, для чего он учился по ночам и как устроился Android-разработчиком в Питере.

Начал программировать, работая аналитиком

Я вырос на Дальнем Востоке, в поселке с населением 1000 человек. В школе, где я учился, были хорошие учителя по гуманитарным предметам, но слабые —  по математике и информатике. Поэтому в качестве предмета на выбор на ЕГЭ я решил сдавать обществознание. Поступил в хабаровский вуз на экономический факультет, специальность «Налоги и налогообложение». Эта профессия на тот момент казалась мне интересной и перспективной. В 2015 году я закончил институт с красным дипломом и устроился работать аналитиком  в продуктовую сеть.

Мне нужно было обрабатывать большое количество данных в разном формате: на бумаге, в Excel, в Word. Чтобы облегчить себе работу, научился писать скрипты для Excel. Такая работа увлекла меня гораздо сильнее аналитики. После года программирования скриптов в Excel я попросил руководителя перевести меня в отдел разработки 1С.

Полгода учился по ночам

Когда начал интересоваться программированием, понял, что на Дальнем Востоке предложений с IT-вакансиями и перспектив для роста мало. Решил искать новую работу в Москве или Питере, но перед этим поменять специализацию.

1С меня не зацепил по-настоящему. Это был важный первый опыт разработки, но в этой области программирования я чувствовал много ограничений. Разработки как таковой здесь было мало, и я не видел, куда расти дальше. Пока размышлял, где учиться программированию, увидел рекламу GeekUniversity. Посмотрел программу и решил, что это хороший вариант — учитывая, что по окончании курсов организаторы гарантировали трудоустройство. В то время были открыты только три направления: веб-разработка, IOS и Android. Мне понравилась программа на факультете Android-разработки.

Совмещать учебу с довольно интенсивной работой было непросто из-за разницы во времени. Занятия начинались в 20:00 по Москве, то есть в 3 ночи в Хабаровске. Я приходил с работы, ложился спать пораньше, просыпался в два часа ночи к началу занятий, учился до утра, потом шел на работу и был там до вечера.

Мне было важно участвовать в вебинарах онлайн. В первое время возникало много вопросов к преподавателю, и я хотел иметь возможность сразу их задавать, общаться с другими студентами. Через полгода, когда я изучил основную информацию по курсу, начал смотреть лекции в записи.

Найти баланс между работой, учебой и личной жизнью было сложно. В принципе, ни коллеги, ни семья не жаловались — но у меня самого было постоянное ощущение, что я уделяю мало времени либо работе, либо близким. Учеба все это время оставалась в приоритете.  Жена меня поддерживала, потому что появилось общее желание переехать в более развитый город.

Сначала переехал, потом искал работу

Примерно через год после начала обучения в GeekUniveristy, когда я освоил большую часть материалов курса, мы с женой решили не откладывать и ехать в Питер, чтобы искать работу на месте. У нас был небольшой запас денег, удаленная подработка на первое время и огромное желание переехать. Выбирали между Питером и Москвой, но остановились на первом, потому что жить там было дешевле.

Когда я разместил резюме с опытом работы с 1С и с нулевым опытом в Android, меня начали приглашать на собеседования на должность 1C-разработчика. Вакансий на Android-джуниора было мало — я попал всего на три собеседования. В первой компании меня не взяли, от предложения второй компании я сам отказался, потому что работа была в городе Подольске, я очень надеялся на третий вариант —  работу Android-разработчика в «СофтБаланс». Когда я в первый раз откликнулся на их вакансию на hh.ru, на собеседование меня не пригласили — объяснили, что ищут Middle разработчика.

На тот момент сбережения уже заканчивались, и я начал переживать, что не найду работу. Но через несколько дней мне перезвонили из «СофтБаланс» и объяснили, что ситуация изменилась и они готовы пригласить меня на собеседование на должность Junior-разработчика. Я успешно прошел собеседования и получил оффер.

На испытательный срок мне поставили несколько задач:

  • научить приложение считывать показания с торговых весов определенной модели,
  • переписать три экрана приложения с учетом нового дизайна,
  • для этих же экранов переписать Java-код на Kotlin, учитывая, что для приложения планировалась новая архитектура.

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

Поработав здесь несколько месяцев, могу точно сказать, что компания мне нравится: есть реальная возможность расти и работать в комфортных условиях. В офисе целая лаунж зона с x-box, настольным теннисом и футболом, свой мини-магазин и мини- библиотека. И главное  — я не ощущаю тех ограничений, которые постоянно чувствовал при работе с 1С. Еще все пугали меня погодой в Питере, но даже она в этом году не подвела. А после сурового Дальнего Востока здешний климат мне вообще идеальным кажется.

Пройти обучение

21 сен 18, 13:52
0 0
Статистика 1
Показы: 1 Охват: 0 Прочтений: 0

Как создать популярную игру для смартфонов

Бывало ли с вами такое: смотришь на пассажиров в общественном транспорте, которые лопают шарики в телефонах или залипают в «2048», и думаешь: «Простая же игра! Тоже хочу подобное сделать»? Со мной — постоянно, поэтому я решила разобраться, как создать популярную игру для смартфонов. Разведала, что по минимуму нужно знать для разработки игр, каких ошибок избегать и на что обращать внимание.

Разберитесь в азах

Чтобы понимать, как разработать концепцию игры, как выстроить игровой процесс и сделать так, чтобы пользователю было приятно играть, нужно познакомиться с геймдизайном. Понять принципы создания видеоигр помогут книги из подборки The 20 Best Video Game Design Books. Читать все, конечно, не обязательно.

В части программирования нужно уметь писать native code для платформы, под которую разрабатывается игра. По мнению руководителя мобильной разработки DataArt Алексея Рыбакова, потребуются такие знания:

  1. Понимать жизненный цикл приложения для iOS/Android внутри операционной системы — что происходит при старте и телефонном звонке, какие ресурсы и когда загружаются в память.
  2. Программировать на Swift/Objective-C для iOS и на Java для Android.
  3. Понимать форматы звука и графики (текстур) для iOS/Android.
  4. Иметь опыт программирования на C/C++ для iOS/Android на OpenGL.
  5. Понимать цикл игры от создания до появления в Store.

Есть смысл посмотреть на игровые кроссплатформенные решения:

  1. Unity 3D.
  2. Unreal Engine.

Разработчик игр, сооснователь студии FIFTYTWO, выпустившей игры JELLIES! (5 миллионов установок на iOS) и Kenshō («Выбор редакции» в App Store и Google Play) Михаил Шагин выделяет Unity и C#: «Изучите Unity и язык программирования C# — это стандарт в индустрии. Работая на этом движке, вы будете быстро развиваться. Для Unity существует Asset Store — магазин готовых решений от разработчиков. Он сэкономит вам много времени и предоставит технологии, которые ранее были недоступны небольшим студиям и начинающим программистам. Обучаться помогут туториалы, видео-уроки и онлайн-школы».

Сделать популярную игру, особенно одному — очень сложно. Потребуются навыки программирования, знания в области геймдизайна, 3d-моделирования, анимации, графического дизайна. Разработка игр — это пересечение технологий, искусства и бизнеса. Пригодится и компетентность в психологии. Поэтому лучше все-таки собрать команду.

«Современные игры для смартфонов, присутствующие на рынке — это результат работы слаженных коллективов, а не одного человека. Обычно это программисты, геймдизайнеры, художники, музыканты, тестировщики, аналитики рынка, специалисты по рекламе и продвижению, финансисты. Сейчас практически невозможно реализовать популярную игру в одиночку», — делится опытом Алексей Рыбаков.

Подумайте, для кого будет эта игра

Нужно знать своего геймера на каждом этапе разработки и поддержки игры. Кто это? Что он любит? Сколько ему лет? Из какой страны? Определиться с географией особенно важно. «Азия, Европа, Штаты, СНГ — везде есть свои нюансы в реализации геймплея, графики и других аспектов. Простой пример: в азиатских странах все герои должны быть с большими глазами», — объясняет Алексей Рыбаков.

Геймплей прежде всего

Сначала разработайте core gameplay — основу игры: придумайте, что будет делать игрок, как и в зависимости от чего игровой мир будет на это реагировать. Он должен затягивать. К остальному переходите, только когда core gameplay будет готов на 100 %.

«Отложите до финальной стадии проекта исправлене багов, улучшение графики, переводы и озвучку. Вам придется много раз переделывать игру, и часть несвоевременно проделанной работы окажется напрасной», — советует Михаил Шагин, сооснователь студии FIFTYTWO.

Основной критерий крутого геймплея — он заставляет возвращаться к игре. «В игре должна быть глубина, чтобы игрок оставался в ней как можно дольше. В конечном счете успешность игр основывается на retention rate — проценте игроков, возвращающихся по прошествии времени», — объясняет Михаил.

Попробуйте применить принцип "Easy to learn, hard to master"

Это классический совет в геймдизайне: научиться играть должно быть очень просто, но достичь совершенства — крайне сложно, практически невозможно. Это и приковывает к игре. «Этот принцип особенно важен для мобильных free-to-play проектов, потому что у разработчика есть не более 10 минут, чтобы зацепить игрока. Большинство пользователей удалят игру после первой же непонятной ситуации и больше никогда не запустят приложение. Человек сразу должен понять, как играть и в чем цель», — рассказывает Михаил Шагин.

Авторство этого принципа приписывают Нолану Бушнеллу, создателю компании Atari. В оригинале он звучал так: "All the best games are easy to learn and difficult to master. They should reward the first quarter and the hundredth". Нолан Бушнелл сказал это в 1971 году в контексте игровых автоматов Atari. «В те времена игровые автоматы были в новинку, и простота игр была критичной для пользователя. Особого игрового опыта ни у кого не было, и для коммерческого успеха было необходимо, чтобы у игрока были ассоциации из реальной жизни», — объясняет Алексей Рыбаков, руководитель мобильной разработки DataArt.

Прообразом известной игры Atari — Pong — послужил теннис. В ее основу заложены простые физические принципы: угол падения равен углу отражения и подобные. Она позволяла перенести реальный опыт в компьютерную игру, поэтому ее просто было понять начинающему игроку в 1971 году. Но с ускорением мяча при переходе на уровень выше она становилась все сложнее и сложнее (hard to master) и заставляла играть вновь и вновь.

Геймдизайнер Роб Прадо придумал еще одну вариацию принципа: "Easy to learn and almost impossible to master". Алексей Рыбаков объясняет: «Идея в том, что достаточно просто собрать стаф, необходимый для получения нового игрового предмета или уровня. На примере StarCraft — легко отправить все свои войска и разрушить базу. Но по мере продвижения по сюжету у игрока должны появляться новые возможности, предметы, юниты. Все это, плюс взаимодействие с реальными игроками, приведет к тому, что игру можно будет проходить в огромном количестве вариантов. Игрок будет возвращаться к ней многократно».

Этот принцип — не гарантия успеха. Но практически любое решение, которое будет заставлять человека возвращаться в игру, оправдывает себя.

Сделайте геймплей простым и удобным

Думайте об особенностях платформы, под которую пишется игра, и о ситуациях, в которых люди будут в нее играть. Советует Михаил Шагин: «Игровая сессия, вероятно, составит всего 10–15 минут. Большой плюс, если игрок сможет безболезненно отвлечься от игры. В этом помогут пошаговые геймплейные механики. Телефон обычно держат вертикально в одной руке — а это значит, что в вашем распоряжении будет только один палец игрока, большой. Постройте геймплей на простых свайпах и тапах — этот принцип используется в большинстве казуальных хитов. Посмотрите на Voodoo и Ketchapp — французских издателей игр, чьи установки составляют 50 % среди аркад в App Store. Такие проекты делаются за одну–две недели, что не мешает им занимать первые строчки в топе».

Не изобретайте велосипед

«Часто молодые компании начинают писать свои движки — что крайне интересно, придумывать новые архитектуры и скриптовые языки для управления юнитами — что еще более увлекательно, придумывать мегановые жанры игр — это вообще хардкорно», — рассказывает Алексей Рыбаков. Не надо с этим спешить, стоит основательно вникнуть в существующие технологии.

Разберитесь в продвижении игр

Подборки в магазинах приложений, реклама или сарафанное радио — что сработает для вашего проекта? Нужно понимать, что и с какой целью делаешь с точки зрения маркетинга. Михаил Шагин знал, зачем игре красивое оформление: «В Kenshō мы сделали упор на качество и визуальный стиль, что принесло нам бесплатную поддержку от платформ. Мы получили отметку «Выбор редакции» App Store и Google Play, стали «Игрой дня» в App Store. Kenshō попала в подборки и на баннеры, что и дало нам основной трафик».

Помните, что ошибка — это информация, а не повод расстраиваться

Ваша игра будет сражаться за внимание игроков с разработками от Electronic Arts, Gameloft или Rovio. Это очень сложно. Но это стоит воспринимать только как вызов. А любую ошибку — как ценный опыт. В конце концов, прежде чем Angry Birds стала популярной в 2009 году, Rovio выпустила на рынок более 50 игр и была на грани банкротства.

Пройти обучение

13 сен 18, 10:16
0 0
Статистика 1
Показы: 1 Охват: 0 Прочтений: 0

Pac-Man: я дошел до 130 тысяч скачиваний и меня забанили

Всем привет! Меня зовут Дмитрий. В качестве учебного проекта я сделал для Android старую игрушку Pac-Man. За два месяца ее скачали 130 тысяч раз. Меня попросили рассказать о том, как я ее сделал и почему она «выстрелила». Но пока я готовил материал, кто-то пожаловался на нарушение авторских прав, и игру забанили. Расскажу по порядку, как все было.

Предыстория

Pac-Man — учебный проект в онлайн-университете GeekUniversity, в котором я учусь с декабря прошлого года. По образованию я маркетолог, но долгое время работаю сисадмином. В технической части я самоучка, самостоятельно осваивал C#, C++, писал десктопные приложения для работы. Но разобраться в мобильной разработке сам не смог, поэтому поступил на профильный факультет.

Обучение в GeekUniversity делится на модули. Зимой я проходил курс по разработке игр. Наш преподаватель, Александр Фисунов, предложил в качестве практики самим создать старую игрушку. Из нескольких вариантов группа выбрала Pac-Man из-за   известности и простоты в реализации этой игры. Мы решили, что у нас больше шансов успеть создать ее полностью, пока идут занятия. Забегая вперед, скажу, что во время курса так и не смог доделать проект до конца. Еще понадобилась пара недель после окончания.

Реализация

В нашей   группе было 35 человек. Каждый свой проект делал сам. На занятиях обсуждали теорию и потом сравнивали, у кого какие реализации. Игру писали на Java с использованием библиотек. Я работал с libGDX. Разработка велась под десктопную версию, затем переводили в мобильную. Все ссылки на исходники выложил на GitHub.

Я немножко изменил игру. Сначала хотел сделать один в один, но мне показалось, что это будет скучно. Поэтому создал 8 карт и 4 уровня сложности, от которых   зависит скорость передвижения призраков, частота обнаружения цели, время уязвимости и восстановления.

Добавил редактор карт на JavaFX. Его код тоже можно посмотреть в репозитории. Чтобы было интереснее, добавил статистику. Игрок знает, сколько он съел фруктов, призраков, конфет и прочее. Этого в оригинальной игре нет.

Вначале призраки двигались случайным образом. Затем я реализовал волновой алгоритм для поиска кратчайшего пути к цели. Получилось, что все четыре призрака бегут за «пакманом» по повторяющемуся маршруту. Это скучно и неинтересно. Тогда я написал сценарий, по которому призраки окружают героя. Красный всегда старается зайти сверху, синий — снизу, фиолетовый — слева и зеленый — справа.

По сути это искусственный интеллект для ботов. Мы начинаем обход карты от исходной точки. Каждая клетка получает порядковый номер шага. Таким образом, получается множество возможных маршрутов движения, один из которых приводит к цели — к «пакману». И тогда остается только пройти от цели к источнику по номерам шагов в обратном порядке и передать уже готовый маршрут боту. На GitHub лежит код алгоритма.

Графику практически всю нарисовал сам, потому что хотел попробовать. Это был мой первый опыт работы с векторной графикой, поэтому не судите строго. Вместо труб на карте изначально были просто стены, для отрисовки которых использовалась всего одна текстура. Поэтому захотел разнообразия в графике, но пугала сложность реализации заворотов, спаек и перекрестий из труб. Однако оказалось, что требуется изменить всего пару строк.

Если не хотите рисовать сами, есть множество бесплатных assets. Для текстуры пола и фруктов я использовал готовые наборы с портала OpenGameArt. Там же взял и звуки. Музыку скачал с Playonloop.

Комментарий Александра Фисунова

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

Публикация

Насколько мне известно, я единственный в группе, кто разместил игру в Google Play. Одногруппники сказали, что нет смысла тратить деньги на регистрацию в магазине приложений, если профита не получить. Но мне интересно было попробовать — ради опыта. Хотел пополнить портфолио первой разработкой, потому что знал, что во многих вакансиях требуют наличие приложения в Google Play. Кроме этого, проект был практически готовый. Я оплатил взнос в 25 долларов при регистрации и получил статус разработчика.

В начале загрузок было мало — скачали только друзья и знакомые. Это примерно 5–10 загрузок в день. Потом количество стало подниматься скачками и доросло до 4–5 тысяч ежедневно. По статистике, в основном игру скачивают пользователи из США, Турции и Индии, потому что весь интерфейс на английском. В России загрузок гораздо меньше, хотя есть локализованная версия.

Модерация в Google Play удивила. Сложилось ощущение, что объективности нет, и многое зависит от настроения ревьюера. Первоначальная модерация прошла без проблем. Но когда я через неделю загрузил обновление, игру заблокировали. Причиной указали рекламу «для взрослых», хотя ничего подобного там нет. После апелляционного разбирательства игру разбанили, но, как оказалось впоследствии, ненадолго.

Продвижение

Почему так много было загрузок — не знаю точно, могу только предполагать. На мой взгляд, этому способствовали четыре причины.

Интересная реализация. Сейчас в Google Play примерно 80 вариантов Pac-Man. На первом месте рейтинга стоит оригинальная версия от компании Namco — такая же, как была на игровых автоматах. У нее одна карта и 256 уровней. Большое количество других «пакманов» имеют похожую реализацию: та же карта, текстура и логика. Кроме этого, в них встречается некачественная графика, баги, неудобное управление. Поэтому в основном пользователи вынуждены выбирать между классической игрой и некачественными проектами. Я разработал новую версию игры и дополнил ее картами и статистикой. Это привлекало пользователей, которые любят Pac-Man, но хотят новых вариантов.

Описание сделал простое, без лишних слов и выражений, но оно все равно отличается от других. Многие игры и приложения разработчики сопровождают описаниями для роботов: смысла мало, ключевых слов много. Когда читаешь, не разберешь, о чем вообще идет речь. Мое описание — простое: поймет даже ребенок.

Общение с пользователями. На отзывы отвечал быстро, потому что разработчик сразу получает уведомление об их добавлении. Сначала пользователи чаще всего спрашивали об управлении. Когда загрузил обновление, подобные вопросы прекратились. Еще заметил, что нет средних оценок. Пользователи ставят либо пять звезд, либо одну. Так же пишут: или «все хорошо», или «это ужасно».

Обновление. Изначально я писал игру под десктоп, поэтому логика управления движением персонажа была ориентирована под клавиатуру. Когда портировал проект на Android, не учел, что с телефона будет неудобно управлять «пакманом». В результате через неделю пришлось переделать логику и выпустить первое обновление.

Бан

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

В ответ подготовил апелляцию, через пару дней пришел ответ. Согласно правилам Google Play, я не имел права использовать название Pac-Man для игры.

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

Комментарий Александра Фисунова

Причиной блокировки, как мне кажется, стало то, что проект набрал большое количество скачиваний в Play Market. Дмитрий использовал в названии известную торговую марку Pac-Man, чем и привлек внимание правообладателей. Чтобы этого избежать, необходимо было либо изменить название, либо связаться с владельцами ТМ   — BANDAI NAMCO ENTERTAINMENT INC. Но тогда для реализации требовался бы совсем другой уровень проработки проекта и целая команда разработчиков.

Дмитрий провел отличную работу по написанию игры. Надеюсь, что его новые проекты наберут еще больше скачиваний, чем первая версия Pac-Man. Однако помните, что изучать программирование на основе известных продуктов можно, но использовать в названии чужую торговую марку нельзя.

Что в итоге

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

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

В целом я доволен опытом и получившейся игрушкой. Не наступайте на мои грабли, если разрабатываете крутые версии старых аналогов. Буду рад обратной связи от сообщества GeekBrains! Если хотите покритиковать или улучшить игру, пишите в комментариях.

Пройти обучение

25 июл 18, 12:27
0 0
Статистика 1
Показы: 1 Охват: 0 Прочтений: 0

Как найти работу Android-разработчика, если у вас нет опыта?

Прошлым летом Виктор Лоскутов поступил в GeekUniversity на факультет Android-разработки. Уже через пару месяцев он устроился программистом в компанию Wildberries. До этого работал инженером по проектированию мостов и дорог и мало что знал о разработке ПО. Мы расспросили Виктора, как повлияла на него новая работа и почему он решился искать ее с небольшим опытом в программировании.

— Чем вы сейчас занимаетесь?

— В октябре прошлого года я устроился Android-разработчиком в интернет-магазин одежды Wildberries. Работаю в Подольске, где находится склад. Все операции по перемещению вещей (упаковка, сборка, отправка заказов) происходят через терминал сбора данных (ТСД). Компания когда-то закупила ТСД на Android, поэтому ей нужны разработчики, чтобы писать софт для этой программы.

У нас небольшая команда из трех человек — два Android-разработчика и один тимлид, который по совместительству занимается базами SQL и многими другими задачами. В нашем ТСД много модулей, каждый из которых выполняет свои операции: инвентаризацию, сборку, раскладку, прием от поставщика и так далее. Таких операций много, и под каждую нужно сделать модуль. Какие-то из них простые — выполняются в одно действие. Другие — поинтереснее, посложнее.

— Почему вы отучились на инженера, а потом решили сменить профессию?

— После школы я не особо знал, чего хочу. Куда посоветовали, туда и пошел. Поступил на специальность «Строительство» на инженерном факультете в РУДН. По рекомендации друга нашел работу — она была интересной и хорошо оплачиваемой.

У нас была бригада — человек 10 и начальник. Проектирование — довольно прибыльная вещь, пока у тебя есть крупные проекты. Когда бюджет заканчивался, начальник говорил: «Мы отсюда уходим и идем в другое место на такие-то условия». Сначала мы шли на хорошие условия, потом на плохие, затем — хуже и еще хуже. Я стал задумываться, чем заниматься дальше.

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

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

— Как вы нашли работу?

— В июне прошлого года я пошел учиться на факультет Android-разработки, за компанию с другом. В тот момент я еще работал инженером-проектировщиком — проектировал мосты и эстакады. В какой-то момент с работой стало совсем туго — в сентябре я уволился, думал отдохнуть и посвятить больше времени учебе, неспешно откликался на вакансии разработчиков. Я знал, что джуниору сложно найти работу — в итоге сходил на 2–3 собеседования, после которых мне отказали.

Но уже в октябре я увидел вакансию от Wildberries. Они были готовы взять разработчика совсем без опыта и обучать. На мой взгляд, это большая редкость и удача. Существенным плюсом стало то, что склад, на котором работает команда разработчиков, находится в Подольске. Я живу в Подмосковье, и по сравнению с предыдущей работой мне гораздо проще до них добираться. Честно скажу, хотелось немного отдохнуть после предыдущей работы, но я решил воспользоваться возможностью и трудоустроиться.

— Что помогло совмещать работу и учебу?

— У меня была хорошая мотивация — очень хотелось сменить профессию. Но совмещать было тяжело: приходилось по вечерам заниматься и все выходные. Я из Подмосковья ездил на работу на электричке и там тоже постоянно смотрел уроки.

Домашние задания тоже не всегда легко делались. На первом этапе помогало то, что все было новым и интересным. Знания гораздо лучше усваивались. В самом начале мы делали на Java простенькие вещи (крестики-нолики), и они начинали тут же работать. Эти моменты были самыми прикольными. Со временем это становится обыденностью, и челленджи, которые возникают, начинают вызывать раздражение. У нас сейчас был курс по Android — там есть своя библиотека. Ее подключаешь и делаешь, и вроде все как в уроке. Но у меня ничего не работает. Там домашнее задание на 10 минут, а я просидел 2 часа. Это, конечно, бесит.

Преодолевать такие сложности можно разными способами:

  • Попросить помощи у преподавателей и однокурсников;
  • Если позволяет время, взять перерыв или переключиться на другую задачу;
  • Если времени нет, лучше сразу расслабиться и не переживать (Акуна Матата!) — сделать как получится.

Должен признаться, что под конец обучения энтузиазма у меня поубавилось. В последнее время стал все видео смотреть в записи. Я их ставлю на ускоренное воспроизведение. Может быть, это связано с тем, что я уже многое узнал на работе и стал более привередливым к информации.

То что курсы в GeekUniversity — платные, помогает мне не бросить обучение, даже  устроившись работать программистом. Когда в институте учишься на бюджете, тебе все равно. А когда платишь свои деньги, сразу как-то обидно оставлять курсы непройденными.

— Что посоветуете новичкам?

— Советую выполнять домашние задания в срок, начинать ходить по собеседованиям, относиться к ним проще и не переживать излишне. Работодатели — приличные люди, и с ними интересно поговорить. Кто-то объясняет, где ты ошибся в ответе, дает советы и рекомендует, что почитать.

Мне кажется, важно публиковать резюме, даже если у вас нет опыта работы программистом. В своем резюме я просто перечислил проекты, которые выполнял в GeekUniversity — выложил ссылки на GitHub. Свой предыдущий опыт работы просто кратко вписал в поле «О себе». В графу «Опыт работы» я не стал его указывать: если в резюме разработчика написать «опыт программирования — 3 месяца, опыт проектирования», это создаст путаницу.

— Что больше всего нравится в работе?

— Опыт, который я получаю. Очень благодарен коллегам, которые меня учат. Недавно мы начали писать на Kotlin, о котором я вообще ничего не знал — мы еще не проходили его в GeekUniversity. Наш тимлид охотно пробует новые языки, и это хорошо. Все привыкли писать на Java, но Kotlin в итоге оказался удобным и классным.

Все преподаватели GeekUniversity говорят: «Ребята, чтобы стать хорошим программистом, нужно просто писать код». Книжки читать — это хорошо, но реальные задачи важнее. В какой-то момент из-за всей теории в голове наступает путаница: один говорит, что вот это правильно, другой — вот это. А тебе ответить нечего, потому что ты ни то, ни другое не использовал. Когда попробуешь — поймешь, какие преимущества и недостатки у каждого из этих решений, и выберешь то, что подходит тебе.

— Какие сложности есть сейчас в работе?

— Ритм. Большая часть работы на складе выполняется круглосуточно, а значит нужно, чтобы и программы работали исправно. Если что-то где-то ломается — может понадобиться работать ночью. Буквально в эту субботу с семи вечера до часа ночи мой коллега правил ошибки, которые появились после обновления.

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

— Не жалеете, что так рано устроились на работу? Может быть, стоило еще пару четвертей в GeekUniversity закончить перед тем, как публиковать резюме?

— Нет, начинать работать по профессии надо, и чем раньше — тем лучше. Работа и параллельное обучение — это два разных источниках знаний, они оба нужны разработчику. Если попадаешь в команду, которая пишет хороший код, они тебя всему сами и научат.

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

Если есть возможность работать где-то с самого начала, нужно обязательно ей воспользоваться. Я понимаю студентов, которые боятся свой код в резюме разместить или написать, что раньше не работали программистом: «А что подумают в компании, когда они увидят мое резюме без опыта?». Но это нужно побороть, иначе так всю жизнь будешь сидеть и ждать — «вот я еще чуть-чуть доучусь, еще пять курсов пройду, тогда я точно хорошим программистом стану».

— Профессию поменяли. О чем теперь мечтаете?

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

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

А если более приземленно рассуждать, я бы в будущем хотел уехать из Московской области, потому что мне не нравится то, что здесь происходит. Вокруг люди, которые очень напряжены в связи с ситуацией в нашей стране. И невольно ты становишься таким же — раздражительным, у тебя мало времени, мало денег и жизнь проходит. Хочется остаться в России, но уехать в более тихое место и, возможно, работать удаленно. Новая специальность теперь позволяет.

Пройти обучение

20 июл 18, 14:30
0 0
Статистика 1
Показы: 1 Охват: 0 Прочтений: 0
Темы с 1 по 10 | всего: 13

Последние комментарии

нет комментариев
Читать

Поиск по блогу

Люди

7 пользователям нравится сайт lena2018.mirtesen.ru