[Из песочницы] Как я стал андроид-разработчиком без профильного образования, попутно мешая бетон
Это моя первая статья на хабре, в которой я хотел бы описать свой небольшой жизненный путь от человека с непрофильным образованием, работавшего и строителем-разнорабочим, и сметчиком, и маляром-штукатуром — до андроид-разработчика в небольшой Харьковской компании. Текста будет достаточно много, картинок — поменьше. Поехали!
Детство
Сразу хочу отметить, что ни знакомых ни родителей программистов у меня не было, посему прививать любовь к данной профессии было некому! Детство проходило под лозунгом “Dendy forever”. Каждый день по нескольку часов я проводил в компании с BattleToads, ButtleCity, Mortal Combat, Чёрный плащ, Бомбермен и другими популярными на тот промежуток времени тайтлами. Играть я не просто любил — обожал до безумия. Потные ладошки, разбитые джойстики, лёгкий детский мат после очередной смерти — всё это присутствовало в большом количестве.
Компьютером на тот момент я ещё не обзавёлся, но понимал, что на PC глубина игр и качество графики было на три головы выше чем на маленькой пиратской приставке с жёлтыми катриджами. Правда, чудо-машина была у моего соседа, где я и мог немного поиграть в вожделенные Герои 2, Диабло 2, Кармагедон, Дальнобойщики! Мир компьютера и компьютерных игр увлекал меня настолько мощно, что я решил — надо связать свою жизнь с этой индустрией!
Не долго думаю, я выпросил у мамы немного денег на курсы по программированию, которые проходили на базе Харьковского Авиационного Института. Вот оно, думал я, при помощи зарезервированных слов и команд я буду создавать уникальные фантастические миры, запутанные сюжета, рисовать чудесных персонажей, лазурных драконов и рыцарей в сияющих доспехах! Вместе с парой друзей, сжав денюжку в ладошке, я двинулся к покорению высот! Высоты оказались не такими радужными, как я себе это представлял…
В аудитории собралось около 20 человек. Комната была большой и просторной. По периметру стояли вполне современные ЭВМ! Ручки и тетрадки уже лежали на большом овальном столе в ожидании Короля Артура, то есть, нашего преподователя по программированию, который немного задерживался. Осмотревшись по сторонам, я заметил, что в основном весь контингент — такие же 13-14 летние ребята как и я. Выделялись только два парня, которые были заметно выше нас и года на три старше! После длительного ожидания в аудиторию вошёл наш метр — Анатолий(отчество, к сожалению, не помню) и сразу дал нам понять — первые уроков 5 мы будет работать с ручками и тетрадками, а с компьютером стоит повременить! КАК? Я же специально пришёл сюда, чтобы посидеть за этой чудной шайтан-машиной, а тут такой облом.
Если кто ещё не догадался, то моим первым языком был великий и ужасный ПАСКАЛЬ! DOS, синий экран и жёлто-белые символы, которые были на тот момент для меня китайской грамотой! Как из всего этого можно было сделать Герои 2? Где мне рисовать доспехи для персонажа? Как делать карту мира? Integer, char, boolean: много новой информации, которая никак не приближала меня к созданию компьютерных игр. Тогда я ещё не понимал, что все эти числа, переменные и константы — очень важная база для будущих проектов!
Если коротко — то все курсы по программированию сводились к одной схеме. Мы приходили, что-то записывали в тетрадки, получали задание, списывали всё под чистую у двух взрослых ребят и… и далее был самый сладкий момент — WarCraft 2 по сети! Ух, какие баталии у на были! Мультиплеер на 6-ть человек — это было нечто, это было в разы лучше детских шалостей на денди вместе с соседским компьютером. Вообщем, практических знаний я не получил, зато вдоволь поиграл в варик! После этих событий я подумал, что программирование — это вовсе не моё; слишком сложно, слишком непонятно. Я решил завязать с идеей стать программистом…
Первые успехи
После девятого класса, мама решила отдать меня в лицей при ХАИ, который считался одним из лучших в Харькове. Институтские преподаватели, куча домашнего задания, физико-математическая направленность и… и программирование естественно!
Паскаль снова появился в моей жизни вместе с новым учителем по фамилии Соколова. И она была великолепна, ибо кодил у нас практически весь класс! Настолько хороших, добрых и умных преподавателей надо ещё поискать! Быть может, если бы не та база знаний которую я получил в лицее — не писал бы я сейчас эту историю.
Впервые, после идиотских детских курсов, я полюбил программировать и даже начал делать маленькие текстовые игры с вариантами ответов — это было восхитительно! Я сам, своими руками создавал некую историю, загадочные миры c различными сюжетными развилками! if — else… switch-case… чудеса!
Но, школьные годы закончились и надо было поступать в институт. Тестов на тот момент ещё не было, для поступления на бюджет нужно было быть либо крайне талантливым товарищем, либо иметь знакомых. Моя фатальная ошибка заключалась в том, что я повёлся на поводу у родственников и пошёл в строительную сферу, мол, это всегда прибыльно и выгодно. Честно говоря, в тот момент я особо и не задумывался куда идти учиться, кем я буду в будущем, чем я хочу заниматься? Эти вопросы меня не особо волновали. Моё внимание немножко сместилось в сторону Dota и Lineage 2…
Курсы по программированию 2.0
После окончания академии городского хозяйства по специальности, которая гордо звучала “Городское строительство и хозяйство”, начались не самые весёлые времена. Покраска школы танцев, заливка раствором полов в магазине, монтаж фундаментных плит, подвесные потолки. От строительной сферы меня просто выворачивало. Мало того, что работа была зачастую очень грязной, так ещё и контингент сотрудников был не самым воодушевляющим. Но, что делать… больше я ничего не умел — приходилось работать в таких условиях. Чуть позже меня немного повысили и я стал помощником прораба. Здесь то и появилось много свободного времени на раздумья — как быть дальше!
Пораскинув мозгами я решил, что стоит попробовать попасть на работу в IT! Особых сомнений по поводу выбора языка у меня не было! Порыскав по интернету я нашёл недорогие курсы Java, а Java — это не только ценный вэб, но и моя любимая ОС Андроид! Подождав недельку-другую пока соберётся группа, я гордо вышел из дома, чтобы немного изменить ход своего печального существования!
Почти все кто меня окружал рьяно отговаривали от мысли идти на курсы. Девушка была недовольна, что будем редко видеться, мама считала, что это пустая трата денег, ведь на такие специальности учатся по 5 лет! Но моё решение было окончательным и бесповоротным!
В этот раз аудитория оказалось совсем крохотной. На одной из стен висела захламлённая доска для рисования. Из маленькой форточки слышался громкий гул: это были тренировки девочек по шейпингу из соседнего здания. Нашим новым учителем оказался преподаватель из ХПИ, который активно подрабатывал интервьюером для больших харьковский компаний и пытался курировать процесс нашего обучения.
Весь курс сводился к тому, что мы разбирали слайды с определённой темой, переписывали весь код в эклипс и смотрели что получится. У меня была небольшая фора перед остальными — всё-таки паскаль оставил отпечаток знаний в моей подкорковой части мозга. Чтобы описать качество данных курсов, я приведу всего лишь два ярких примера из нашего обучающего процесса.
Ещё на первом занятии наш сенсей пообещал создать почту, куда мы будем скидывать домашние задания для проверки. Естественно, почта так и не была создана, а задания… кому они нужны, правда? За курсы ведь уже уплачено! Но, больше всего меня поверг в шок другой момент. После окончания одного из уроков, наша группа получила задание сделать некий простой аналог гороскопа: пол — знак зодиака — вывод в консоль какой-то надписи. Я же решил пойти дальше! Сделал простенький интерфейс на Swing, откопал иконки знаков зодиака и соорудил такой себе бомжегороскоп! По сути — это был мой первый опыт в создании интерфейса совместно с логикой! Вся группа на следующем уроке сидела и клацала мой проект, умиляясь тому, что я немного перевыполнил поставленную задачу. Думаю, сейчас и препад оценит мой творческий порыв. Но увидев что я сделал наш горе-учитель сказал лишь одну фразу: “ Вот людям время девать некуда”. Меня это даже немного задело!
Из всего вышеописанного можно было бы сделать вывод, что это провал! Но не для меня! Эти курсы дали мне какую-никакую базу и маленький запал для дальнейших свершений! А свершения, естественно, не заставили себя долго ждать…
Поиски первой работы
После окончания псевдо-курсов я и мой новоприобретённый друг Леонид начали искать свою первую работу в IT! Курсы же закончили — теперь возьмите нас, пожалуйста, на работу! Мы очень хорошие! Ничего не знаем… но хорошие)! Тут история умалчивает о трёх попытках Лёни попасть в NIX Solutions, и перешёптываний HR-ов “снова этот повар к нам пришёл”; наши походы на тесты в EPAM и Global Logic для прохождения стажировки. Хочу отметить, что в EPAM тестирование было заметно сложнее, но намного лучше организовано! Правда обе попытки не увенчались для нас успехом.
Потенявшись таким образом было решено сначала хоть что-то написать, чтобы было с чем приходить к HR-у. Тут я сразу же вспомнил свои детские попытки творить простенькие текстовые игры и предложил Лёне совместно сделать что-то подобное, только теперь на джаве и с картинками! Сказано — сделано! Процесс пошёл, но очень вяло. Лёня очень слабо разбирался в программировании и почти весь код приходилось писать мне! После месяца этих бесполезных телодвижений мы отказались от этой идеи, хотя я даже соорудил некий дешёвый аналог боёвки из БК.
Лёня решил идти в вёрстку, а я — попробовать себя в андроид-разработке и не прогадал! Хотя кол-во мучений превышало все мыслимые нормы…
Андроид forever
Многие, изучая определённую технологию, начинают практиковаться на задачках, каких-то примерах. Я же решил сразу делать свой pet-проект! Без подготовки, без прочтения книг — просто пилить приложение! Не долго думая был создан Android Project с именем Английский everyday и понеслась.
Первые строки кода давались невероятно тяжело! Андроид манифест, разработка интерфейса в XML, обработка кликов — всё было просто ужасно! Весь интерфейс плыл как Одиссей по морям, приложение то работало, то не хотело запускаться выдавая какие-то ошибки и направляло к манифесту! Первый месяц был просто адом! Stack overflow стал для меня вторым домом! К зиме 2013 года я сделал первый билд своего приложения. Мотивации уже никакой не было! Кодить было очень тяжело, выглядел проект ужасно! Всё падало и тормозило!
Я уже перестал ежедневно заниматься кодингом, как вдруг в городе встретил своего старого знакомого Лёню! Мы разговорились и я показал ему своего первенца на телефоне! К моему удивлению Лёня пришёл в дикий восторг! “Мишаня, смотри, оно же работает”! “Ой, нажал на кнопочку и оно упало, но кнопочка то работает!”. Вся эта встреча вдохнула в меня какую-то свежую струю! Я пришёл домой и начал выискивать в гугле самые удачные дизайнерские решения в интерфейсе! Узнал про Behance и Dribbble. После нескольких месяцев работы моя апликуха стала выглядить очень сочно, правда у каждого экрана был свой абсолютно уникальный стиль! Получился эдакий разноцветный попугай — симпатичный, но полностью безвкусный!
25 долларов были переведены на счёт компании Google — аккаунт разработчика получен и Английский Everyday, моё первое серьёзное приложение, появился на Google Play и форуме 4PDA! Естественно, я абсолютно ничего не знал об оптимизации интерфейса под различные экраны, маркетинге, раскрутке, рекламных биржах и тд. Я просто доделал проект, вставил туда баннер от Admob и пустил в свободное плаванье.
Первые комментарии не заставили себя долго ждать и, как ни странно, людям моё приложение действительно понравилось! Я активно начал дополнять контент и править ошибки. Про подключение библиотек я тогда ничего не знал — всё писалось вручную и с нуля! Вместо того, чтобы использовать какой-нибудь BaaS, я заливал тексты и слова в блог на блогере, а затем выкачивал html страничку и парсил её! Да кол-во велосипедов в моём проекте превышало весь московский автопарк!
Нежданно — негаданно мой английский начал приносить деньги! Изначально всего пару долларов в месяц, но для меня это уже было нечто! Постепенно я стал замечать, что в день я получаю 400-1000 органических установок с маркета! Забив в поиск ключевое слово английский я обнаружил, что в выдаче по Украине я обогнал LinguaLeo! LinguaLeo КАРЛ! Выдача гугл поиска так же показала, что большое кол-во различных сайтов сами зарелизили моё приложение на свои сервера, даже рецензии какие-то были! Тут то и появились в Английском полноэкранные банеры, которые начали приносить ещё большие доходы! 150$ в месяц, затем 200$, затем и вовсе 350!!! На своём приложении я стал зарабатывать больше чем на официальной работе!
Мотивация подскочила до невиданных высот и я решил приступить ко второму приложению, а именно Everyday Weather! А затем и к третьему — Number Mix Saga! Естественно, частенько падающее и ни чем не выделяющееся погодное приложение получило свои 1000-2000 установок и было забыто. Только после этого я узнал, что погодные приложения — одни из самых низкоскачиваемых!
Number Mix Saga тоже не приобрела должного успеха! Выпускать простенькую логическую игру, в которой не было ничего уникального в эпоху битвы многомиллионных маркетинговых бюджетов — бессмысленная затея!
При разработке двух последних приложений я успел освоить различные альтернативные маркеты(Опера, SlideMe и др).
Двигаться дальше
В начале 2015 года гугл без шума и пыли забанил мой чудесный английский! Ведь контент для приложения брался абсолютно отовсюду! Картинки тырились со всего интернета, звуковые эффекты, иконки. Весь ресурсный набор Английского выглядел как дача Виктора Януковича в Межигорье: берём всё что плохо лежит и используем в своих целях! Тем временем я устроился в маленькую компанию как андроид-разработчик, что немного увеличило мой профессиональный потенциал.
Воевать с гуглом по поводу своей блокировки я не стал, ибо понимал, что затея абсолютно провальная! Было принято решение сделать что-то подобное, только больше, лучше, красивее и без багов! Сказано — сделано!
В апреле этого года я начал свой новый проект — Английский 4 You. Подключив весь свой предыдущий опыт и одного знакомого я с головой ушёл в разработку. Если раньше я абсолютно ничего не знал про мобильный маркетинг, раскрутку приложений и альтернативные магазины, то в этот раз я подготовился основательно. Был готов большой план по разработке с макетами и спринтами, расписана вся маркетинговая политика как до релиза приложения, так и после. Разработаны пресс-релизы, собран какой-никакой бюджет!
Первый месяц разработки был проведен на Pinterest, Behance и Dribbble. Понимая, что дизайнер из меня не самый лучший, я решил выбрать стилистику будущего приложения из уже чего-то готового и симпатичного, а только потом приступать к разработке. Ещё недельку я потратил на аналитику конкурентов: Duolingo, LinguaLeo, Memrise, Busuu, 6000 слов. Почти все они не давали какой-то комплексной базы (не считая LinguaLeo). В основном все конкуренты специализировались на увеличении базы слов, при этом много контента было закрыто, с предложением купить его в дальнейшем. LinguaLeo безусловный лидер в этой области, огромная база всего и вся: грамматика, слова, правописание, тексты, диалоги, статистика! И если на сайте всё это организовано удачно, то в самом приложении — наоборот, всё слишком скомкано, плюс привязанность к местной валюте — фрикаделькам.
Исходя из опыта схожих приложений, я окончательно решил, что абсолютно весь контент будет полностью бесплатным и доступным, интерфейс простым и понятным, а прибыль буду получать только с рекламы! Стоял выбор из двух рекламных агрегаторов: Appodeal и AdtoApp. После нескольких тестах на пробном приложении был выбран Appodeal. AdtoApp то работал, то почему-то мне на почту приходило письмо, о том что я что-то не так настроил и работать переставал, при этом некоторые мобильные антивирусы активно ругались при установке тестовой приложки. Окончательно про то насколько хорош Appodeal я сказать не могу, но пока меня всё устраивает.
Август. На улице +38. Все окна открыты на распашку. Жара невыносимая. Ползунок загрузки в Play Market потихоньку доходит до 100%. Английский 4 You отправляется во всемирные сети для покорения новых высот, а я отправляюсь в альтернативные магазины приложений, в сервисы покупки мотивированого трафика, на форум 4PDA. Хоть приложение и закончено — проблем меньше не стало: правка ошибок, доработка функционала, маркетинг.
Тут моя маленькая история постепенно подходит к концу. Планы на будущее — наполеоновские. Какой итого всего вышесказанного? Он прост: стремитесь делать то, что приносит Вам удовольсвтие, не обязательно уходить с текущей работы, просто саморазвивайтесь и стремитесь сделать свой продукт максимально интересным и удобным. Да, быть может на Вас свалится 100500 проблем и неудач, но это не повод останавливаться, — это мотивация для дальнейшего движения вперёд!
P.S. “А чего это я в начале писал про игры — да про игры, а потом начал разрабатывать приложения” — подумает читатель. А потому что сделать хорошую и красивую игру — большой труд, приличные финансовые вливания и какой-никакой опыт разработки. У меня его не было и я решил отталкиваться от того, что мне по силам. А игры не забыты, игры — это следующая стадия моего развития!