Рустем, React Native разработчик из Казани, больше 10 лет работал в 1С, пробовал заниматься Axapta и, наконец, нашел себя в мобильной разработке. Рустем рассказал, как освоил React Native за полгода, и поделился ссылками на полезные материалы, по которым учился сам.
ШАЯ, кибернетика и завод
Интерес к программированию и точным наукам у меня появился еще в школе. На информатике мы проходили Basic, Focal, Pascal, C++ и даже познакомились с ШАЯ — школьным алгоритмическим языком, с помощью которого на русском языке описывался алгоритм действий.
Класса с девятого я вместе с одноклассниками ходил на дополнительные занятия, где мы решали задачи по физике, математике, статистике. После выполнения заданий нам разрешали поиграть в компьютерном классе. Тогда почти ни у кого компьютера дома не было, неудивительно, что мы старались решить задачи побыстрее и пойти играть.
После школы я поступил на «Вычислительную математику и кибернетику». Название факультета звучало круто, но на деле оказалось, что теорию по математике и алгоритмам там дают сильную, а языки программирования преподают древние: Fortran, FoxPro. Уже в то время их никто, кроме наших преподавателей, не использовал. Мне, как и многим ребятам, было скучно учиться.
После первого курса я начал искать работу в ИТ-отделе с современными компьютерами, чтобы иметь доступ к машине и писать программы для себя. Это оказалось непростой задачей — не каждая организация могла позволить себе компьютер IBM PC XT 286, который стоил около пяти тысяч долларов. В итоге я устроился в ИТ-отдел на электротехнический завод. Мне там понравилось, я взял академический отпуск в университете и остался работать на предприятии.
ИТ-отдел занимался всем: мы редактировали тексты, делали рекламные ролики в 3D Studio Max, писали на Clipper и FoxPro программы учета — 1С тогда еще не было. Я проработал на заводе 10 лет, дорос до ведущего инженера-программиста. Потом стали задерживать зарплату и я пошел в 1С. Специально язык 1С не изучал, разбирал код на месте.
От системного администратора до техлида по 1С
Дальше я около 10 лет работал с 1С в разных местах. Начинал как системный администратор в фармкомпании с самописной конфигурацией, похожей на «1С:Торговля и склад», затем стал там разработчиком 1С.
Потом перешел в холдинг, где были классные спецы, особенно бухгалтерия, которая на пальцах объясняла, что хочет. Я разобрался, что такое «себестоимость», «среднее скользящее», «среднее взвешенное». Сейчас эти понятия не каждый 1С-ник знает, поскольку в системе они считаются автоматически, а я это писал руками.
Дальше была торговая компания, где я дорос до менеджера проекта и техлида по 1С, но вскоре понял, что мне больше нравится программировать, а не управлять. Кроме того, там стояла «1С:Предприятие 7.7», хотя везде уже работали на «восьмерке». Я как специалист терял квалификацию, поэтому ушел оттуда стажером в Neti на зарплату в три раза меньше зарплаты РП. К потере в доходе отнесся спокойно — хотелось программировать и профессионально расти.
Из 1С в Axapta
Тогда, в 2012 году, в Neti был один департамент 1С, где занимались всем: сопровождением, поддержкой, аутсорсингом. Года три я работал на проектах, решал задачи и рос как 1С-специалист. Прокачался в различных областях 1С 8: конвертации данных, СКД, планах обмена.
Но потом захотелось нового. Тогда уже появились первые мобильные приложения, и меня заинтересовала эта тема. Я понял, что за мобильной разработкой будущее. Подошел к руководителям компании и спросил, не собираются ли они открыть направление мобильной разработки. Мне ответили, что если я его возглавлю, откроют. Я отказался: у меня не было ни знаний, ни опыта, да и становиться руководителем не хотелось.
Когда заниматься 1С стало совсем скучно, я перешел в новое направление NetSuite и начал программировать на английском, а не на русском. Оно не взлетело и его закрыли, а я перевелся в Microsoft Dynamics AX. Порог вхождения в Axapta выше, чем в 1С, но у меня был прекрасный ментор, Айрат, благодаря которому я быстро освоился и уже спустя полгода работал на проектах самостоятельно.
Мобильная разработка: «для перехода потребовалось меньше полугода»
В августе 2019 года в Neti появилось направление мобильной разработки, где сначала приложения делали только на React Native. Я подошел к руководителям «мобилок» и спросил, готовы ли они взять меня через полгода, когда я освою React Native на уровне джуна. Они согласились, дали обучающие материалы, подсказали курсы.
Я работал разработчиком Axapta полный день, а по вечерам учился: проходил курсы, смотрел вебинары, пробовал что-то писать. Иногда помогал ребятам из «мобилок» с тестированием. Благодаря этому увидел другую сторону разработки — узнал, на что обращать внимание и какие проблемы бывают в готовом продукте. Изучив кучу материалов, я понял, что знания необходимо структурировать, стал искать хороший курс и нашел «Хекслет». Рекомендую: платформа дает отличный фундамент. Также купил несколько курсов по React Native, и они оказались в тему.
Для перехода в «мобилки» мне потребовалось меньше полугода. Во время испытательного срока я получал в два раза меньше, чем в Axapta, но относился к этому спокойно, потому что чувствовал, что нашел свое дело. Мне понравилось заниматься именно фронтендом приложения, потому что на экране сразу видны изменения, которые вносишь. Бэкенд тоже важная часть, и позже я его изучу, но пока фронт нравится больше.
Больше всего запомнился проект, в котором я участвовал в качестве РП. Руководитель направления знал, что у меня есть опыт управления командой, и попросил взяться за срочное приложение, которое осталось без РП. Я согласился с условием, что когда мы сдадим проект, я снова вернусь в программисты.
Мы делали приложение для риелторов по продажам квартир и оформлению сделок. На разработку было всего два месяца. У меня подобралась отличная команда, и мы справились с задачей, несмотря на жесткие сроки. Проект был интересен еще и тем, что там не было аналитика, и мне пришлось лезть в дебри и изучать взаимосвязь базы данных, чтобы знать, откуда что брать. Это был хороший челлендж, на котором я понял, что потяну роль РП, но все же хочу быть программером. После проекта я с удовольствием вернулся к чистому программированию.
Я кайфую от своей работы. Мир мобильной разработки меняется быстрее, чем все остальное. Чтобы быть просто хорошим, а не самым крутым специалистом, нужно постоянно учиться и развиваться. Этим мне и нравится в «мобилках». Я продолжаю изучать новые технологии: полез во Flutter, собираюсь освоить Node.js, поскольку это востребованная область.
Как стать разработчиком React Native
У меня нет диплома о высшем образовании, но мне это не мешает. Знания и опыт я получил самостоятельно: на курсах, реальных проектах, от коллег. Так что не бойтесь учиться. Это прикольно и весело, плюс когда что-то получается, испытываешь эйфорию. Сейчас на рынке востребованы программисты любой специализации, так что всегда можно выбрать то, что интересно.
Курсы
- Фундамент — курсы на «Хекслет» https://ru.hexlet.io/courses, в частности курс «Фронтенд-программист» https://ru.hexlet.io/programs/frontend
- Очень хороший курс на Udemy (на английском) The Complete React Native + Hooks Course https://www.udemy.com/course/the-complete-react-native-and-redux-course/
- Основы — https://ru.code-basics.com
- YouTube-каналы по React на свой вкус, но на английском языке