Из 1С в Android-разработку: мой опыт перехода внутри Lamoda

    Меня зовут Виталий Хмелёв, с 2019 года я работаю в команде Аndroid-разработки в Lamoda, а до того почти семь лет проработал здесь же программистом 1C. В этой статье хочу поделиться своим опытом и дать некоторые советы, которые, я надеюсь, помогут, если вы тоже задумываетесь заняться разработкой на Android.

    image

    Как я попал в программирование


    Я учился в универе по айтишной специальности, немного поработал системным администратором, а после универа устроился WEB-разработчиком в строительную компанию. Но работы было немного, а вот в соседнем отделе, который занимался 1С-разработкой, было задач предостаточно. Я начал постепенно им помогать и в итоге стал работать с этим языком.

    В 2012 году я пришёл в Lamoda в отдел 1С-разработки и остался в нем на целых 7 лет. В самом начале моей работы все процессы товародвижения были автоматизированы на 1С. На нём же работала наша собственная фотостудия. Это всё входило в одну большую конфигурацию, основанную на решении 1С: Комплексная Автоматизация. В ней же были бухгалтерия и кадровый учёт.

    Постепенно какие-то части стали выводить из состава большой конфигурации. Первой стала фотостудия, которую переписали на PHP. Затем в компании начали внедрять Microsoft Dynamics AX, и товародвижение и бухгалтерия перешли на нее. Кадровый учёт переехал в отдельное готовое решение 1С: ЗУП.

    Но одновременно с этим происходило расширение компании, открывались новые филиалы в странах СНГ, и в большинстве из них кадровый учёт и бухгалтерия велись на 1С, а поддержкой занимался наш московский отдел 1С-разработки. Большая часть задач решалась удаленно, но как-то раз я даже ездил в командировку в Казахстан для внедрение проекта в филиале.

    Карьера складывалась успешно — почему же я решил заняться чем-то другим?


    В нашей команде в Lamoda мы старались писать на 1С качественно и применять современные подходы. Ориентировались на рекомендации самой компании 1С и на то, как написаны базовые конфигурации.

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

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

    Я не знал, как я буду развиваться дальше, если останусь в 1С. У меня были основные сертификации (несколько Профессионалов, Специалист по платформе 1С). Следующая ступень — сертификация как Эксперта 1С. Экзамен там достаточно сложный, и либо мне надо было начинать готовиться к нему, либо уходить в какую-то другую сферу.

    В итоге я признался себе, что да, мне нравится 1С, но не настолько, чтобы идти с ним до уровня Эксперта =)

    Как я выбирал, в какую область перейти?


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

    Хотелось выбрать мощный язык, не нишевый. Чтобы можно было использовать удобную среду разработки — в 1С с этим не очень. Есть решение 1С:EDT, которое позволяет приложить некоторые дополнительные усилия и пользоваться не встроенной средой (Конфигуратором), а Eclipse. Однако в 2018 году мы посчитали его достаточно сырым и неподходящим для каждодневной разработки, поэтому в Lamoda мы продолжали писать в Конфигураторе.

    Мобильная разработка показалась мне очень перспективной областью (и я не поменял свое мнение до сих пор). Осталось выбрать между Android и iOS, что было достаточно легко, потому что я уже имел опыт разработки на Java в институте и писал небольшой личный проект для Android еще в 2011 году. Поэтому я решил, что проще будет восстановить и углубить знания именно в этой сфере.

    Подготовка к переходу — самообучение


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

    Сразу решил, что платные курсы проходить не буду, но старался, чтобы мое самообучение было достаточно структурированным. Начал с курса Гугла, потом добавил ютуб курсы от Яндекса и Mail.ru, плюс книги (в основном по Java). Конечно, изучал официальные гайды по Android от Google — их много, они качественные и постоянно обновляются. В какой-то момент Google официально рекомендовал Kotlin как язык для разработки под Android. Я понимал, что работать буду, скорее всего, на Kotlin, и добавил его в свою программу обучения.

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

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

    Переход на новое (?) место работы


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

    Хотелось узнать, как вообще выглядит Android-разработка в Lamoda. Я установил и изучил приложение компании как пользователь, но хотелось больше узнать про техническую сторону. В Lamoda есть TechTalks — встречи внутри компании, где разные команды выступают с докладами о том, чем они занимаются, какие технологии используют. Они открыты для всех желающих, и я стал слушать доклады команды Android-разработки. После внутренних выступлений специалисты с этими же докладами идут во “внешний мир”. Вот, например, запись того доклада, что я слушал, но уже с конференции Mosdroid. Из докладов я узнал, какие у них в принципе задачи, а заодно стал изучать именно те технологии, которые используются в компании — это помогло мне в дальнейшем с переходом.

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

    На новом месте


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

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

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

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

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

    Мне нравится, что в нашей команде организована постоянная работа с техдолгом. Мы регулярно занимаемся рефакторингом старого кода, переписываем с Java на Kotlin. Это погружение в чистое программирование, когда нет необходимости думать даже про дизайн: берешь старый legacy код, и переписываешь его в удобный, быстрый, легко читаемый, в соответствии с современными подходами. Привычка сразу задумываться о качестве и удобстве кода, которую я получил еще в команде 1С-разработки, сильно помогла мне здесь.

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

    Кратко: как перейти в Android из какой-то другой области?


    1. Изучить теорию. Либо на платных курсах, сейчас их достаточно много. Либо заниматься самообучением. Есть хорошие бесплатные вводные курсы от Google и целые плейлисты на ютубе . Объем теории большой (посмотрите, например, на эту дорожную карту), но если это ваше — вам будет интересно.
    2. Написать свое демо-приложение, которое можно будет приложить к резюме. Опыта коммерческой разработки у вас нет, но будущим работодателям нужно хоть как-то оценить ваши навыки. Приложение даст им возможность это сделать. Код нужно выложить в открытый репозиторий, например, на GitHub.
    3. Хорошо подготовиться к техническому интервью. Первые два пункта нужны, чтобы вас позвали на собеседование, но потом его нужно еще пройти =)
    4. Готовиться я советую по телеграм-каналам. Есть хорошие каналы отдельно для подготовки к общим IT-вопросам, вопросам по Android и по Java. Там разбираются все основные вопросы, которые задают на собеседованиях. Многие из них и мы в Lamoda задаем кандидатам. Сейчас я сам принимаю участие в собеседованиях, и когда видно, что человек подготовился — это всегда создает хорошее впечатление.

    Эти три пункта должны помочь найти первую работу в Android.
    Если у вас появились какие-то вопросы — буду рад ответить на них в комментариях!
    Lamoda
    Russian Fashion Tech

    Похожие публикации

    Комментарии 34

      0
      Вакансии для 1сников у вас еще остались?
      0
      Добрый день! Проект на гитхабе уже был «собран» и его можно было опробовать? Или только код? Презентация к проекту?
        0
        Добрый! Достаточно выложить только код, нет необходимости прикладывать apk, если кто то захочет то сам соберет. Презентации тоже не было, в этом нет необходимости, опытный разработчик знает куда смотреть) В резюме я все таки советую написать несколько строк, что это за приложение.
        +2
        О, прямо почти моя история) Учился на околоайти специальности (информатика в экономике) где нам немного преподали основы баз данных, разработку на 1с и т.п. вещи, в итоге написал диплом на 1с, в 2014 году попал на стажировку в довольно неплохой франч (деснол софт), по меркам нашего городка так вообще идеальный.
        Тоже старались следовать хорошим практикам и рекомендациям, были планы обучения и подобное. Тоже заимел спеца по платформе и несколько профессионалов, тоже стала напрягать ограниченность среды разработки, языка и платформы так как распробовал в свободное время какой может быть разработка на самом деле. Ну и тоже очень напрягало что технические вещи стояли далеко не на первом месте, а на первом месте была необходимость разбираться с предметными областями, и тем как правильно на конкретном «фреймворке» реализовывать задачи из этих областей.
        После одного из проектов который нам заказывали (добавление к нашей конфигурации доработанной для магнита мобильного приложения внутреннего) решил что надо что то менять, да и начинался мой интерес к айти когда то с мобильных телефонов. Потому решил уходить в мобильную разработку.
        Я ярый не любитель яблок, так что с выбором первой платформы вопросов не стояло. Разве что сомневался не стоит ли флаттер попробовать, но это был конец 18 года, тогда он был слишком сырой и вакансий слишком мало (да и сейчас не много). К тому же по моему убеждению прежде чем писать на кроссплатформе надо освоить нативы всех платформ под которые пишешь.
        В итоге за несколько месяцев прочел пару книг по java, прошел 2-3 курса на курсере по разработке под андроид, несколько на степике. Планировал переходить после года самообучения, но в итоге мне под новый год (18-19) написала HR из одной местной компании, они искали фронтендеров и бекендеров, но я решил уточнить нет ли вакансий андроид разработчиков, и на удивление нашлась одна. Правда писать на котлине нужно будет сразу. За неделю подтянул основы котлина и приступил к работе.
        Там проработал почти два года, а в октябре прошлого года случайно увидел вакансию удаленного андроид разработчика в интересном мне проекте, написал, прошел собеседование, и вот уже третий месяц работаю удаленно.
          0
          Добрый день. Скажите пожалуйста, до какого уровня вы учили чистый Java? Ну т.е. это Java Core или..?

          И сложно ли перекатываться на Kotlin после Java? Спасибо.
            +2
            Добрый день. Из книжек по Java мне больше всего понравилась Effective Java: Joshua Bloch, мне кажется нужно освоить Java до уровня, что бы понимать, что написано в этой книге. Знания из этой книги пригодятся и для понимания как работает Котлин.

            Переходить на Kotlin после Java совсем не сложно и очень даже приятно. Думаю после Котлина вам на Java писать не захочется)
              0
              Имхо, для 1сника с опытом достаточно базовый синтаксис подучить, а дальше углубляться в темы которых в 1с не было. Многопоточность, конкурентность, ООП, архитектурные подходы и общепринятые хорошие практики. Ну и на практике уже библиотеки осваивать и Android SDK.
              0
              ты максимально близок к конечному пользователю и максимально далек от реальных бизнес-процессов

              Подозреваю, что это самое важное/большое отличие.

                0
                Не знаю как для автора, а для меня самое важное было все же технологические отличия и принятые подходы с применяемыми практиками в разработке. Так в целом кроме андроида еще и переход в бекенды рассматривал, но все же в итоге к андроиду склонился, так как бекендерам еще и веб фронтенд знать надо, пусть не сильно глубоко, а я его не люблю лишь немногим меньше чем 1с.
                0
                Не особенно встреваю в споры про 1С программистов, потому что как в любой драке можно отгрести минусов от обеих сторон. Но даже официальные преподаватели 1С стараются избегать слова «программист», он говорят «разработчик».
                В этом и есть основное отличие.
                В самом языке 1С много чего нет, но сама 1С зато ближе к предметной области, если это учет конечно.
                Поэтому склад характера нужен немного разный.
                А так если голова на месте и руки из правильного места, то и там человек приживется.
                Как например автор.
                Я пробовал уйти на Андроид, окончил курсы и прошел в ИТМО семестр.
                Но 1С меня вернуло и я пока не против )
                В мирововм масштабе конечно перспективнее Котлин учить.
                  0

                  Интересно Ваше мнение относительно Мобильной платформы 1С под Android, по сравнению с Kotlin.
                  И можно ли/есть ли смысл перевести одно в другое (например, прототип на коленке сделать на 1С, потом достать оттуда исходники java и доработать их уже в не-1с среде?...)

                    0
                    Никаких исходников java там нет, код платформы разве что частично (и то больше на плюсах). Код конфигурации в сорцах на 1с так и хранится. Можете мою статью глянуть, я там немного ковырял 1с мобильную, правда немного с другой стороны. Да и если бы был — вытягивать и работать с минифицированным кодом такое себе.
                    З.Ы. дополню еще мнением о самой мобильной платформе. Когда я с ней работал это была еще та жесть. Какие то простые вещи если нет требований к дизайну особых делать можно — но чуть влево/вправо — приплыли. Либо костылить рядом нативное приложение и их связывать (в проекте для магнита было два таких рядом ставящихся нативных), либо вообще ничего сделать не выйдет. Более менее симпатичный интерфейс разве что через html делать, и то есть немало ограничений, не говоря о связи js и 1с.
                      0
                      Я глубоко не разбирался с мобильной платформой 1С, но мне кажется этот путь трудно выполнимым. Скорее всего код такого приложения будет очень сильно завязан на мобильную платформу 1С и ее будет очень трудно выпилить. Проще переписать приложение с нуля.
                      +3
                      У 1С есть большой плюс — высокая востребованность разработчиков. Практически в любом городе России можно найти себе работу.

                      Есть и минус — 1Сники не нужны за пределами СНГ.
                        +2

                        Тоже ушел из 1С в andgoid, и так же как и у автора причина это желание программировать, а не консультировать пользователей

                          0
                          xvv Кстати, не думали статью еще и на инфостарт запостить?
                            0
                            Мне кажется люди сами должны прийти к изменению сферы деятельности, не совсем корректно постить такую статью на тематическом для 1С разработчиков ресурсе.
                              0
                              Возможно смысл есть. Многие просто думают что это очень сложно, а потому даже не рассматривают такой вариант. А хабр в 1с коммьюнити далеко не все читают (тем более регулярно).
                              +1

                              А зачем она там? Хотя там последнее время встречается "сочинения" из жизни.

                                0
                                Да не только последнее время. Когда я там еще сидел — там нередко попадались как статьи о смене 1с на что то другое, так и прочие в том же духе.
                            • НЛО прилетело и опубликовало эту надпись здесь
                                0
                                В 1С нельзя быть просто разработчиком. Ты должен хорошо разбираться в тех областях, которые автоматизирует 1С

                                Странное утверждение, 1с это платформа а не язык программирования. Для разработки на любом другом языке так же придется разбираться в предметной области. Да и к примеру БСП пишут не "бухгалтера" а всё же разработчики.

                                  0
                                  А как было с зарплатой? потеряли ли в деньгах при переходе или уговорили их оставить такую-же?
                                    0
                                    Я бы не хотел комментировать свой случай, но в интернете пишут, что у андройд разработчиков все в порядке с ЗП =)
                                      0
                                      Лично я перешел на ту же ЗП, хоть и в другую компанию. А через пол года подняли еще на 40%. З.Ы. Сейчас, спустя два года, ЗП выше в два раза чем после 4.5 лет в 1с.
                                      0
                                      Тоже пытаюсь из 1С в Java перейти, OCA сдал, готовлюсь к OCP, в этом году заканчиваю магистратуру, завалил уже несколько собеседований, готовлюсь дальше ;))
                                        0
                                        1. Ты понимаешь как работает 1Сник — за 1 день можно сделать пару отчетов на СКД, пару форм запилить и т.п. — если сравнить с андроид разработкой — загрузка больше/меньше? темп работы в командах?
                                        2. З/п наверняка просела, уже удалось выйти на уровень 1Сника?
                                        3. Насколько сложно вникать что написано более опытными коллегами? Как с этим справляешься?
                                        4. В каком возрасте получился переход, если не секрет.

                                          0
                                          1. Мне кажется темп разработки в Андройде пониже чем в 1С. Условно один экран можно делать от одного до нескольких дней, если он конечно не очень простой. На это есть много причин, мне кажется это тема для отдельной статьи)
                                          2. Ответил выше
                                          3. Первые месяца 3 было сложно, потом освоился и стало проще.
                                          4. Мне было 34
                                          0
                                          Перепись одинэсников в комментариях открыта /s

                                          А вообще я зашёл сюда из-за КПДВ. Автор реально так выглядит, или просто художник всегда только женщин рисовала до сегодняшнего дня так видит?)
                                            0
                                            У меня схожий план, пытаюсь уйти в android-разработку из 1С через внутри компании. Одна проблема — это деньги. Сейчас я получаю 200к+, и что с этим делать непонятно. Оставить часть работы и переходить потихоньку или рискнуть и сразу погрузиться в android-разработку…
                                              +1
                                              Спасибо, статья мотивирует, тоже 1с-ник 4.5г. стажа и каждый вечер трачу на изучение другого языка уже пол года
                                                +1
                                                Спасибо Вам! Толкнули меня на андройд разработку. Давно думал над этим, но никак не решался. 7 лет 1С :)
                                                  0

                                                  Занимаюсь 1С более 20 лет. Скажу так, это унылое… Ну вы поняли. Во первых, надо обладать знаниями в разных областях экономики. Во вторых, оплата не является достойному. В третьих, никакого развития. В четвёртых, для новой линейки конфигураций на управляемых формах конфигуратор плохо адаптирован. А их БСП ужасно документирована. Поэтому я плавно ухожу в мобильную разработку.

                                                  Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                                  Самое читаемое