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

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

«Рекрутеры не дают прохода» — история веб-разработчика

Михаил Логинов оставил собственный бизнес ради IT. Год работал в тестировании, окончил курс Frontend в GeekBrains и уже три месяца трудится веб-разработчиком полного цикла. Стоило ли оно того? И реально ли собрать портфолио за время учебы? Об этом и о пути в профессию сейчас поговорим.

Михаил, с чего начался ваш путь в разработку и в GeekBrains?

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

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

Но бизнес шел нестабильно — мне были интересны альтернативы. Обратил внимание на зарплаты в IT и решил попробовать. Для начала прошел бесплатные курсы Portnov Computer School и устроился тестировщиком. Удивительно, что меня в 30 лет взяли без опыта!

Я ежедневно общался с разработчиками, пробовал их инструменты, привыкал к их порядкам и жаргону. Через несколько месяцев стал просить у начальства небольшие задачки по программированию. Когда решил, что хочу учиться на разработчика, нашел GeekBrains.

Платить за учебу не пришлось — курс Frontend я выиграл в конкурсе от GB «Мы ищем таланты». Из восьми тысяч претендентов отбирали по 30 человек в две группы: Fronted и Ruby. Меня интересовал только Frontend, хотя проходной балл здесь был выше, а конкурс — более 100 человек на место!

Тест включал задачи по дискретной математике — тут мне и пригодился мехмат…

Почему выбрали веб?

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

До сих пор удивляюсь скоростям веб-сервисов! Забываешь, что твои файлы проделывают путь «через весь интернет». Это вдохновляет.

Но решающим фактором была популярность веб-разработки. Ведь программировать я планирую не «для себя». Важно, чтобы мои умения пользовались спросом.

Выполненный Михаилом проект из курса HTML/CSS. Смотреть онлайн

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

— Я веб-разработчик полного цикла: пишу и серверную, и клиентскую сторону приложений. Стек технологий: Vue (Vuex, Nuxt.js, Apollo), React (Redux), Node.js (TypeScript, GraphQL, Mongodb).

Меня сразу взяли на зарплату ближе к уровню middle. До максимумов, которые были в бизнесе, не дотягивает, но тут другие преимущества: больше стабильности и перспективы карьерного роста.

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

А ведь еще полтора года назад я не знал даже основ веб-разработки. Понятия не имел, что такое CSS и «ре-по-зи-то-рий».

Рекрутеры вас находят на работных сайтах (hh.ru, Superjob) или вы еще на каких-то площадках разместили резюме?

— Я искал работу через HeadHunter — там меня в основном и находят. Еще пишут в Linkedin, но этот аккаунт я завел больше «на вырост»: если решу искать работодателя за рубежом.

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

Работаете в офисе?

— Да, в просторном офисе в центре Ростова-на-Дону. У нас в компании около ста человек. Подразделения расположены в России, Украине, Израиле и США. Приятно быть частью большой команды и решать задачи плечом к плечу с профессионалами своего дела.

Как в Ростове с вакансиями? И в плане количества, и в плане уровня компаний.

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

Насколько пригодился опыт тестировщика?

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

Тестирование стало для меня черным ходом в веб-разработку, хотя изначально я этого не планировал. Именно тогда у меня появился минимальный «опыт коммерческой разработки», жизненно необходимый кандидату на позицию junior developer.

Я понял, что в IT нехватка опытных специалистов и им готовы предлагать любые деньги и условия. Люди без знаний видят такие вакансии на HeadHunter и отчаянно стремятся на стартовые должности в разработке. Конкуренция огромная. Получить место джуниора — ключевой и самый сложный момент в карьере разработчика. К этому нужно готовиться. Тестирование дало мне такую возможность.

Какие проекты, сделанные в GB, вы взяли в портфолио?

— Например, два fullstack-проекта на React + Redux + Node.js + Express + Mongodb, которые мы делали в рамках курса React. Одно из приложений общается с сервером в реальном времени с помощью Socket.io.

Еще я включил в портфолио frontend-приложение на Vue + Pug + Stylus, сделанное во время курса JavaScript #2. Преподаватель вел факультатив по Vue, а я был рад освоить эту технологию.

Добавил три верстки — в основном на моем любимом стеке Pug/Stylus/Gulp — и небольшую игру на HTML Canvas.

Верстка из курса HTMLl5/CSS3. Смотреть онлайн: здесь и тут

Сейчас не ищу работу, но при случае обязательно включу в портфолио и более новые проекты. Например, который я сделал в рамках командной разработки. Кстати, надо будет упомянуть, что я стал «контрибьютором» популярного компонента для Vue.

По своему опыту рекомендую будущим разработчикам уже во время учебы наполнять портфолио проектами. Пусть они не будут шедеврами, но поставьте себя на место работодателя. На собеседовании кандидат говорит, что знает CSS и JavaScript, но не может показать ни одного проекта. Что он реально умеет — неизвестно. Другой соискатель дает ссылки на свои работы: «Они еще не доделаны, но вот верстка, тут я упражнялся с таким-то фреймворком, а здесь у меня простенький API». Сразу понятно, какие задачи можно доверить кандидату на первых порах. Подумайте об этом.

Работодатели зачастую даже не просят меня выполнить тестовое задание. Им достаточно взглянуть на похожие проекты в моем портфолио!

Как давалась работа над проектами: насколько было сложно? И что было самым трудным за все время обучения?

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

Не все технологии, которые я применял, входили в программу курсов, но мне попадались замечательные преподаватели: они рассказывали больше и готовы были дать совет по темам за рамками учебного плана.
Например, я быстро перешел от обычной верстки на HTML/CSS к использованию шаблонизатора Pug и препроцессора Stylus. Когда преподаватель стал рассказывать о модных Single Page Applications, я охотно перешел на эту технологию с помощью Vue.

Проект из курса JavaScript #2 (Vue)

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

Расскажите подробнее о командном проекте. Насколько понимаю, он был самым масштабным. Как распределились роли в команде? Вы руководили?

— В командной разработке мы примеряли разные роли, и я не ставил себе цели руководить. Хотелось углубить знание React-Redux, и это удалось.

Вместо «гипотетического учебного» мы сделали проект для реального бизнеса, и он будет внедрен. Это сервис аренды автомобилей Rent Auto для компании, у которой свой автопарк в Екатеринбурге. Идею предложил наш руководитель проекта.

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

Два backend-разработчика реализовали сервер на Ruby и MySQL. Руководитель проекта выступил также третьим бэкендером. Еще у нас были два фронтендера и дизайнер.

Лично я написал пользовательское веб-приложение (кому интересно — вот оно). Не считаю его чем-то выдающимся, но в целом все получилось. По сути, это Single Page Application. Клиент выбирает машину из каталога, время, когда она будет нужна, и заполняет заявку.

По макету дизайнера я сверстал сайт с помощью Stylus, Bootstrap и Bem. Применил адаптивную, кроссбраузерную и кроссплатформенную верстку. Использовал современные подходы: grid и flex. Сердце проекта — React. К нему прикручены хранилище данных Redux и другие библиотеки.

Для сборки мы использовали Webpack и компилятор Babel. Выдержать единый стиль помог Eslint.

В работе над этим проектом мы погрузились в условия, максимально близкие к «боевым», то есть к настоящей коммерческой разработке. Такой опыт особенно ценен.

Кстати, я делал сразу два командных проекта. Так получилось, что я занимался в двух группах.

Как так?

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

К другим направлениям присматриваетесь? Что-то кроме JS хотели бы изучить?

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

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

Есть любимые книги и статьи по специальности, которые особенно помогли?

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

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

Из учебных ресурсов для начинающих, помимо GeekBrains, рекомендую FreeCodeCamp, серию мобильных приложений Solo Learn и YouTube-канал Traversy Media. Еще советую грызть гранит науки на learn.javascript.ru, хотя это и сложновато.

Если уже вышли на продвинутый уровень — смотрите уроки технопарка Mail.ru, которые читают в МГТУ им. Баумана, записи уроков от Академии Яндекса и курс по JavaScript от Киевского политехнического института (лекции этого года есть на YouTube). Упомяну и канал «Веб-Стандарты» — там вы найдете доклады веб-разработчиков с крупных русскоязычных конференций.

При подготовке к собеседованиям на позиции уровня middle и выше полезны ресурсы hackerrank.com и leetcode.com.

Как планируете развиваться дальше?

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

Сейчас меня приглашают на стажировку в Mail.ru, и еще я дополнительно прохожу в GB курс по Node.js.

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

Спасибо, что уделили время! Может быть, желающие учиться на веб-разработчика еще что-то спросят в комментариях.

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

19 фев 19, 15:41
0 0
Статистика 1
Показы: 1 Охват: 0 Прочтений: 0

Чем заняться на досуге

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

Держи пари

Отличная семейная игра-викторина для веселого времяпрепровождения. В ней 700 вопросов — но выигрывает тот, у кого лучше развита интуиция, а не эрудиция. Каждый раунд ведущий зачитывает вопрос, а другие игроки пишут ответы. Анонимные карточки с ответами выкладывают на игровое поле, и все пытаются угадать, какой из них верный. Для этого игроки делают ставки на свой или чужой ответ. Если есть абсолютная уверенность, можно дополнить ставку фишкой — 1, 5 или 25 очков. Выигрывает тот, кто наберет больше очков за все семь раундов.

Сложность — простая.

Возраст — от 10 лет.

Количество игроков — от 4 до 20 человек.

Навыки — интуиция, внимательность, скорость переработки информации.

Варианты — нет.

Эврика

«Эврика» — игра, в которой важно быстро вспоминать слова по теме. Игроки раскладывают карты рубашкой вверх на две равные стопки, а затем каждый кладет по одной перевернутой карте себе. Как только у игроков совпадут символы на картах, необходимо быстро выкрикнуть слово по теме, которая написана на карте оппонента: это может быть «Дерево», «Слово из трех букв» или «Знаменитая собака». Нужно назвать имя, предмет или понятие. Если сказали слово раньше соперника, забираете его карту себе. Выигрывает тот, кто соберет больше всех карт.

Сложность — простая.

Возраст — от 6 лет.

Количество игроков — от 3 до 6 человек.

Навыки — быстрое мышление, скорость реакции.

Варианты — «Универсум», «Терра», «Игнис», «Венус».

Шакал

Для тех, кого манит пиратская романтика, создана игра «Шакал». Ей уже около 40 лет, но интерес к ней не ослабевает. Это связано с продуманной механикой и многочисленными вариантами игрового поля. Цель — найти сокровища и перенести их на свой корабль. Для этого игрок управляет тремя пиратами: они рыщут по острову, разыскивая сокровища, отбирают их у других пиратов, могут познакомиться с прекрасной туземкой или полететь на воздушном шаре.

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

Сложность — средняя.

Возраст — от 6 лет.

Количество игроков — от 2 до 4 человек.

Навыки — внимательность, пространственное мышление, логика.

Варианты — «Карточная игра», «Архипелаг», «Остров сокровищ», «Подземелье», Lux.

Поднять перископ

Сюжет игры заинтересует любителей альтернативной истории. Действие происходит в 1918 году, во время Первой мировой войны. Сражение идет на море — игроки управляют старинными подводными лодками. Игра состоит из двух частей: комплектации субмарин и поединка. В начале игрок выбирает 10 карточек-отсеков для моделирования и составляет из них корабль. Каждый отсек обладает четырьмя характеристиками: тип, действие, запас прочности и запасы кислорода — каждую надо продумать и учесть при строительстве. Если только начинаете играть — используйте готовые наборы подводных лодок.

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

Сложность — средняя.

Возраст — от 13 лет.

Количество игроков — 2 человека.

Навыки — стратегическое мышление, логика.

Варианты — нет.

LibertEx

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

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

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

Сложность — средняя.

Возраст — от 12 лет.

Количество игроков — от 3 до 6 человек.

Навыки — финансовая грамотность.

Варианты — другие издания LibertEx.

Проект Манхэттен

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

Сложность — сложная.

Возраст — от 12 лет.

Количество игроков — от 2 до 5 человек.

Навыки — стратегическое мышление.

Варианты — нет.

Космические дальнобойщики

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

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

Сложность — высокая.

Возраст — от 13 лет.

Количество игроков — от 2 до 4 человек.

Навыки — стратегическое мышление.

Варианты — нет.

Космическая тревога

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

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

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

Сложность — высокая.

Возраст — от 12 лет.

Количество игроков — от 1 до 5 человек.

Навыки — стратегическое мышление.

Варианты — нет.

Надеюсь, подборка вам пригодится. Меня больше всего заинтересовали «Эврика» и LibertEx, а вас?


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

О стажировке и учебе в GeekBrains

Разговариваем о том, как выглядит стажировка в GB и что она дает. Попутно обсуждаем путь в профессию, выбор между JS/PHP и fullstack JS, создание портфолио. Мой собеседник — Владислав Мищенко — освоил веб-разработку в GeekBrains и стал наставником.

Владислав, чем занимаетесь сейчас?

— Прохожу стажировку по итогам курса веб-разработки: обычно она длится полтора месяца, но мы взялись за масштабный проект — форум. Его за такое время удалось написать лишь на 35–40 %. Чтобы получить минимально жизнеспособный продукт, пришлось идти «на второй круг». Пишем уже третий месяц. Сейчас делаем личный кабинет и авторизацию через соцсети.

Над проектом работает несколько распределенных команд: одна пишет backend, другая — frontend, третья отвечает за дизайн. У каждой команды свой тимлид.

Чем стажировка в GeekBrains отличается от финального проекта по профессии?

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

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

Берут всех или есть отбор? И кто предлагает идею?

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

Главная страница форума

Ваш участок работы в команде?

— Я в первую очередь менеджер: координирую работу над бэкендом и с тимлидами других команд, проверяю код участников. Если нахожу ошибки — объясняю, что исправить. Если у кого-то из коллег возникают трудности — подключаюсь к проблемной задаче и вместе мы ее решаем. То есть на мне организаторские задачи и code review.

Опыт проджект-менеджера для резюме?

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

На чем пишете и сколько вас в бэкенде?

— Используем PHP, фреймворк Laravel. На стажировке по веб-разработке нас четверо, включая меня.

Сколько времени уделяете проекту ежедневно?

— Стараюсь заниматься форумом не менее 2–3 часов в день, по возможности — 4–5 часов. Бывает, до двух дней не прикасаюсь к проекту, потому что выполняю заказы на фрилансе.

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

Базовое оформление дизайнеры нарисовали еще в «первый заход» стажировки. Теперь они изредка что-то дорабатывают или объясняют нам назначение неподписанных элементов интерфейса.

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

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

Второй момент — мы изучаем новые фреймворки. В основном курсе мы работали с Yii 2, а для проекта понадобилось учить Laravel. Это приблизило нас к реальной ситуации, когда на работе требуется быстро вникнуть в незнакомую технологию.

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

Так выглядит страница темы на форуме

Какое образование получали до GeekBrains?

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

В интересах у вас многое перечислено: JS, PHP, Python, Java, — то есть вы искали свое направление, свой стек технологий. А в итоге решили на вебе сосредоточиться. Почему?

— Так исторически сложилось. Я начинал как автоматизатор тестирования: для тестов использовал Java, затем переключился на полноценную Java-разработку. Позже возглавлял отдел разработки на оборонном предприятии. Мы писали Windows-приложения на C# для внутреннего использования в организации.

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

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

Я устроился работать в веб-студию и понял, что мне не хватает знаний и опыта в этой сфере. Тогда я нашел портал GeekBrains. Понравилось наличие бесплатных интенсивов и курсов. На тот момент GeekUniversity еще не открылся.

Сначала я купил обучение профессии «Веб-разработчик», а затем еще прошел бесплатный курс Ruby, который выиграл по конкурсу. Занимался практически параллельно: веб-разработку начал с марта, Ruby — с июня. Так что я проходил 2–3 курса в месяц.

Ruby пока не пригодился?

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

Фрагмент главной страницы проекта

Веб-разработчику со знанием PHP проще в Нижнем Новгороде найти работу?

— Вакансии есть, но такой, которая бы меня зацепила, пока не нашел. Хочу профессионально развиваться, а не сидеть на одном PHP-фреймворке или на одной CMS типа Wordpress или Bitrix. Мне нужна компания, которая предложит разноплановые проекты и перспективы карьерного роста.

Дистанционные варианты рассматриваете?

— Сейчас я как раз фрилансер: сотрудничаю с заказчиками из других городов. Но параллельно ищу постоянное место.

Предпочитаете офис?

— Да. Когда смотришь, как работают другие, проще настроиться на дело. Дома я более расслаблен.

Пока вы учились на веб-разработчика, было деление на тех, кто хочет в fullstack, и тех, кому нужен только бэкенд?

— Некоторые предметы мы изучали вместе. Для большей ясности приведу пример. Курс «JS. Уровень 1» — он и для веб-разработчиков полного цикла, и для фронтендеров, и для тех, кто купил отдельный курс вне профессии. Со мной учились люди не только с курсов GeekBrains, но и из GeekUniversity. Были новички в программировании, были и опытные люди, которые пришли освоить новую для себя технологию.

Кстати, почему вы не захотели стать fullstack-разработчиком JS?

— Я покупал профессию, когда работал в веб-студии, где мы использовали системы управления контентом: Wordpress, Open Cart и Bitrix. Все эти CMS написаны на PHP. Мне нужен был этот язык, плюс понимание бэкенда, фронтенда и верстки. Поэтому профессия «Веб-разработчик» подходила идеально.

Но от перспектив fullstack-разработки я не отказываюсь: с конца февраля начну проходить курс Node.js, который получил в подарок от GeekBrains. Node.js — это фреймворк, который позволяет писать серверную часть сайта или веб-приложения на JavaScript. Когда освою его, до JS-разработчика полного цикла мне останется изучить Vue и/или React.

Кроме форума и сервиса Linker, какие сделанные в GeekBrains проекты возьмете в портфолио?

— Я вставил в резюме ссылку на GitHub, где храню проекты, которыми горжусь и за которые меня хвалили преподаватели. Один из них — интернет-магазин на чистом PHP, который я делал на курсе «PHP. Уровень 2». Да, это учебная работа: в базе магазина всего несколько товаров. Зато я глубже вник, как реализовать функции: корзину, разбивку по категориям, подбор товара и другие.

Когда я пользовался системой Open Cart, алгоритмы добавления в корзину и поиска по сайту казались запутанными. Теперь я сам расписал порядок этих действий для своего проекта и понимаю, почему и как все работает.

Сколько времени заняло написание интернет-магазина?

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

Вы не только ученик, но и наставник в GeekBrains. Сколько времени это отнимает и насколько трудно?

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

Мне нравится, что через наставничество я сам учусь. Студенты подчас задают очень интересные вопросы с подвохом. С ходу не ответишь — идешь в Google, вникаешь и дальше объясняешь, как сам понял. Это помогает разобраться в темах, которые ускользнули из твоего поля зрения во время учебы.

Как собираетесь дальше развиваться в карьерном плане?

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


14 фев 19, 14:34
0 0
Статистика 1
Показы: 1 Охват: 0 Прочтений: 0

Карьера в IT: от админа до JS-разработчика

Знакомьтесь, это Анатолий. Родился в Беларуси, переехал в Москву, закончил курсы в GeekBrains. Прошел путь от системного администратора до верстальщика и разработчика JavaScript. Мы поговорили с Анатолием о том, как строить карьеру, что читать перед собеседованием и куда бежать, если таск уже стоит, а ты не знаешь, что делать.

Карьера в IT: от админа до JS-разработчика

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

Мой путь в IT начался с верстки. Тогда я переехал в Москву и работал системным администратором в «ЖКО «Город». Однажды компании понадобилось, чтобы я сделал сайт — так я попал на курсы GeekBrains, после окончания которых разработал свой первый веб-сайт на Wordpress — jkogorod.ru.

Цель обучения была для меня совершенно конкретной — освоить необходимые навыки, чтобы сделать сайт для своего работодателя. Я прошел курсы по JavaScript, HTML и CSS — от них и стал отталкиваться, занимаясь версткой. Продолжил изучать JS уже самостоятельно. Обучаясь веб-разработке, в GeekBrains можно освоить PHP, Node, JavaScript, верстку... По выбранному направлению получаешь все необходимые знания в рамках одной учебной программы.

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

«Верстка хороша, когда ты только входишь в мир фронтенда»

В «ЖКО «Город» я проработал год и понял, что хочу заниматься веб-разработкой более серьёзно. Стал искать работу: ходил на собеседования, читал профессиональную литературу, стараясь «прокачать» свои навыки. Устроился в «Модульбанк»: на тот момент у меня не было портфолио как такового, но были знания и желание развиваться.

«За три месяца испытательного срока освоил многое»

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

Мне пришлось взять на себя его обязанности и быстро учиться: читал книги и статьи, смотрел вебинары. Много полезного можно найти на Habrahabr или в блоге GeekBrains, где каждую неделю выходит дайджест новостей о новейших технологиях. За три месяца испытательного срока я освоил многое. В итоге мы переписали сайт с asp.net и Angular на Keystone.js — это библиотека на express.js c готовым роутингом (сайт работал по принципу конструктора).

«Портфолио сыграло большую роль в трудоустройстве»

После года в «Модульбанке» я понял, что уже научился быстро верстать, а чтобы развиваться, нужно поработать в других компаниях. Верстка поднадоела, хотелось углубиться в разработку. Особенно интересовал язык Javascript. В течение трех месяцев я был фрилансером: сначала в «МКБ», потом в Boomstarter, где более плотно познакомился с JavaScript и React.js. Так я нарабатывал портфолио, которое сыграло большую роль в дальнейшем трудоустройстве. По крайней мере, больше мне не приходилось делать тестовых заданий.

Устроился в группу компаний «ПИК» frontend-разработчиком. Работодатель оценил мой бэкграунд: опыт разработки на JavaScript, навыки работы с React и Redux.

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

Собеседование в «ПИК» было четвертым — после трех неудачных. Эта закономерность прослеживается на протяжении всего моего карьерного пути: стоит пройти два-три неудачных интервью, чтобы четвертое оказалось на 100% успешным.

В «ПИК» я работал в команде, где было по четверо fronfend- и backend-разработчиков. Мы создавали личный кабинет и основной сайт компании. Здесь я погрузился в разработку и получил удовольствие от работы. Но по завершении основной части проекта понял, что впереди ждут однотипные задачи.

«За три года опыта вырос не только мой профессионализм, но и доход»

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

  • Джон Дакетт «Javascript и Jquery». Подойдет тем, кто лучше воспринимает информацию в графическом виде: в книге много подробных иллюстраций и наглядных схем;
  • Этан Браун «Изучаем JavaScript». Хорошая книга с описанием стандартов ES6;
  • Николас Закас «ECMAScript 6 для разработчиков»;
  • Серия книг Кайла Симпсона «Вы не знаете JS»;
  • Луис Атенсио «Функциональное программирование на JavaScript».

Сейчас мы разрабатываем веб-приложение: я делаю клиентскую часть на React JS и Redux, а ядро биржи — на C#. Познакомился с новыми технологиями и сегодня больше занимаюсь разработкой на JavaScript, чем версткой, — к чему и стремился все это время.

За три года опыта вырос не только мой профессионализм, но и доход: зарплата увеличилась с 60 до 140 тысяч рублей. В перспективе хочу стать fullstack-разработчиком, чтобы самостоятельно писать и серверную, и клиентскую части.

Верстка или JavaScript?

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

Считаю, что для разработчика больше перспектив открывается именно в IT-компаниях, где работа программистов структурирована лучше, чем на предприятиях из других сфер. Наиболее универсальным языком считаю JavaScript, ведь на нем можно писать и фронтенд, и серверную часть.

Советы начинающим

  • Старайтесь постоянно расти и развиваться, осваивать новые направления. Не бойтесь менять работу, если понимаете, что стало скучно или надоели однотипные задачи. За три года я сменил три места работы: понимал, что надо двигаться вперед, приобретать новый опыт.
  • Набивайте руку — cо временем придет и скорость. Раньше на разработку веб-ресурса у меня уходила неделя, сегодня могу сделать адаптивный сайт за день–два. Конечно, все зависит от конкретных задач. Но чтобы их решить, нужно постоянно развиваться самому. Не забывайте и про soft skills: особенно пригодится английский язык. Еще советую дружить с дизайнерами: им постоянно нужны люди, готовые заняться версткой.
  • Нарабатывайте портфолио — это крайне важно в начале карьеры. Для этих целей подойдет фриланс, где зачастую работает принцип «сарафанного радио». Работайте с максимальной отдачей – и труды не пропадут зря.
  • Правильно оценивайте время и трудозатраты. Заказчик частенько просит вносить правки. В итоге вы делаете гораздо больше работы, чем было оговорено на начальном этапе. Поэтому все нюансы лучше фиксировать заранее.

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

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

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

Сам себе инженер: домашняя автоматика и роботы на JavaScript

Собирайте умные вещи и радиоуправляемые игрушки с подключением к домашней сети Wi-Fi, исследуйте мир летающими и подводными зондами, дайте развернуться вашей инженерной мысли!

На базе Arduino, Espruino и их аналогов можно создавать технику без инженерного образования и навыков низкоуровневого программирования. Для работы с Espruino и Tessel даже С/С++ знать не обязательно — весь код вы пишете на JavaScript. Сегодня мы расскажем об Arduino-подобных платах с поддержкой JS и о том, что можно делать с их помощью.

Что такое Arduino, Espruino и аналоги?

Это платформы для создания умных вещей и роботов в домашних условиях. У платформ есть:  

Аппаратная часть  — плата с микропроцессором, к которой можно подключать внешние модули: датчики, дисплеи, электродвигатели, адаптеры Bluetooth, WiFi и Ethernet и др.

Программная часть:

  • прошивка — движок платформы, который позволяет запускать JS на микропроцессоре;

  • среда разработки (IDE), где мы пишем код и откуда загружаем его на плату;

  • стандартная библиотека, которая обеспечивает базовый функционал: работу с интерфейсами, светодиодами, таймерами, форматами данных (типа JSON) и т.д.

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

А ещё у производителей наготове наборы-конструкторы: плата + функциональные модули и заготовки кода под конкретные задачи.

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

15 идей для проектов на базе Arduino, Espruino и Iskra JS

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

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

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

  2. Перчатка-манипулятор — пульт дистанционного управления для техники и игр.

  3. Игрушки, управляемые по Bluetooth с планшета или мобильного устройства, в том числе голосом.

  4. Металлоискатель или дозиметр.

  5. Сигнализация (в том числе для холодильника) или кодовый замок.

  6. Динамическая задняя подсветка для ЖК-телевизора или монитора.

  7. Система управления умным домом: открытие/закрытие жалюзи, управляемая с телефона дверная задвижка и др.

  8. Робот-сортировщик предметов по цвету.

  9. Автополив для дачных грядок.

  10. Мусорное ведро с фотоэлементом.

  11. Светильник с тачскрином для управления оттенком освещения.

  12. Погодный информатор с детализацией по городам мира.

  13. Портативные устройства на солнечной батарее, например, метеостанция с Wi-Fi.

  14. Система сбора данных о чём угодно: о погоде, статистике вашего сайта, группы в соцсети или youtube-канала.

  15. Интерактивный кофейный столик с реакцией на прикосновения или с тетрисом.

Arduino и JS — это совместимо?

Если у вас есть плата Arduino, но вы хотите писать код на JS, выход есть. Фреймворки типа Johnny-Five позволяют исполнять JavaScript на Arduino и других платформах:  Raspberry Pi, Tessel 2, pcDuino, Linio One, BeagleBone, BlendMicro, Particle Photon, Intel Galileo и других.

«Костыль!» — скажет кто-то. Отчасти да. Но для маленьких проектов и прототипирования это может быть удобно.

Почему JavaScript

Опытные программисты микроконтроллеров скажут, что C/С++ быстрее и ближе к «железу». Да, это мощные, но сложные и не самые лаконичные языки. Если вы их уже знаете — отлично. Но не всем они нужны, особенно в начале. Пусть выполнение JS-кода займёт на 10-15 миллисекунд дольше — для любительского проекта это не критично. Новичку важнее получать быстрые результаты и читать интуитивно понятный код.

Основные преимущества JS:

  1. Этот язык востребован: за последние 5 лет он —  самый популярный ЯП на StackOverflow. В рейтинге TIOBE за апрель 2018 JavaScript   — восьмой по популярности.

  2. Это один из самых простых в изучении языков, в отличие от С/C++.

  3. JS ускоряет разработку: с ним код бывает в 4 раза короче, чем на Arduino (Си)  — можно быстро реализовывать и тестировать новые задумки. Краткий и понятный синтаксис упрощает знакомство с чужими наработками и их переделку под ваши задачи.

  4. JS универсален: полезен и веб-разработчику, и игроделу, и тому, кто занимается интернетом вещей. Если вам интересно хотя бы одно из этих направлений, программирование автоматики на JS даст дополнительную практику.

  5. У JavaScript есть ясные перспективы развития, в том числе благодаря фреймворкам Node.js и Vue.js. Противостояние адептов AngularJS и React — один из увлекательных эпизодов истории языка, и сколько еще таких эпизодов нас ждёт! Пока web-разработка на подъёме, знание JS будет приносить доход.

Если вы недавно увлеклись робототехникой и ещё толком не умеете программировать, JavaScript — добрый помощник.

Бонусы JS-платформ

Большинство плат Arduino по умолчанию работают с урезанной версией C++, которую мало где применишь. Платформы Espruino и Iskra JS работают со стандартным JS, так что синтаксис и изученные приёмы можно использовать в других направлениях разработки.

Ещё один плюс Espruino и JS — автоматическое подключение библиотек. Сторонние С-библиотеки нужно компилировать и подключать вручную, что отнимает время. На платформе Espruino и Iskra JS библиотеки подхватываются по команде require в коде. Указываете имя библиотеки, и при запуске программы начинается её поиск: сначала на локальном устройстве, затем в интернет-репозиториях, в т.ч. на GitHub.

Консоль в  Espruino IDE позволяет отлаживать код в интерактивном режиме: вы видите результат выполнения программы и можете тут же вводить команды и экспериментировать.

Hello, LED! Простейший код для Espruino

Вместо "Hello, World" для Arduino-совместимых устройств первым пишут программу мигания светодиодом. Примерно такую:

// Светодиод мигает с интервалом полсекунды (500 мс)

const LED = 2; //номер ввода (пина) для обращения к компоненту платы

var on = false;

setInterval(function() { // Задаём интервал мигания

   on = !on;

   digitalWrite(LED, on);

}, 500);

Выбор платформы и платы

Платы различаются по форм-фактору, числу пинов (интерфейсов для встроенных и периферийных устройств), входному напряжению и, в итоге,  — по функционалу.

Espruino

Это полностью открытая (open source) платформа: на её базе можно создавать новые платы, прошивки, средства разработки. По назначению она схожа с Arduino, но не совместима с последней технически. Нельзя комбинировать модули двух платформ или писать код для Espruino в Arduino IDE. Программы на JS вы пишете в среде Espruino IDE, которая доступна как:

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

Espruino поддерживает фреймворки Node.js и Electron. Первый позволяет использовать JavaScript на стороне сервера, второй  — создавать нативные приложения на JS.
Варианты плат:

  • Оригинальная Espruino — универсальна по функционалу плата размером меньше кредитки (54 мм x 41 мм). Изначально работает как проводное устройство, но вы можете добавить модули Wi-Fi и Bluetooth. По умолчанию на плате есть разъём MicroUSB, слот для SD-карт и 44 пина.

 

  • Espruino Pico — мини-плата (33 мм x 15 мм), похожая на USB-флешку. Её можно воткнуть в компьютер напрямую, удобно носить с собой, встраивать в корпуса разной формы. На её основе удобно делать измерительные приборы. Примеры проектов  — здесь.

 

  • Espruino WiFi — плата с быстрым доступом в интернет и беспроводную сеть. Позволяет быстро запустить свой веб-сервис, собрать и обработать данные из интернета и/или наоборот  — отправлять данные исследований на сервер.

 

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

 

  • Iskra JS от российской компании «Амперка»  — логическое развитие оригинальной Espruino c дополнительными плюшками, о которых стоит рассказать подробнее.

Iskra JS

Плата на ядре Espruino и в форм-факторе Arduino. Вы можете использовать комплектующие Arduino и управлять полученной системой с помощью JavaScript!  Средой разработки служит уже знакомая Espruino WEB IDE. Плюс Iskra JS имеет собственные модули и платы расширения. Энтузиаст, которому понравилась одна платформа, рано или поздно захочет попробовать другую, и возможность комбинировать модули будет очень кстати.

Когда платы нет под рукой, вы можете тестировать код в онлайн-эмуляторе Iskra JS.

Подключить больше модулей поможет плата расширения, такая как Troyka Shield. Она позволяет перестановкой джампера выбирать напряжение на одной из линий питания, причем напряжение управляющей платы не важно.Вы можете  комбинировать пятивольтовые модули с трёхвольтовыми платами Arduino (Due, M0).

Tessel 2  

Плата работает с JavaScript, поддерживает фреймворк Node.js и менеджер пакетов NPM, из коробки обеспечивает работу с HTTP и web-сервером, отправку сообщений в Twitter, цветное освещение. Имеет два USB-порта для подключения внешних модулей, таких как:

  • камера,

  • средства воспроизведения звука,

  • модуль сотовой связи (GSM),

  • модуль Bluetooth LE,

  • слот MicroSD.

Ещё целый арсенал модулей можно цеплять к свободным пинам на плате.

Arduino

Все варианты плат Arduino рассматривать сейчас не будем  — всё же они заточены под C++. Скажем только о нескольких интересных и компактных решениях, которые дружат с Python, а через Johnny-Five ладят и с JS.

Arduino Yún  — плата для тех, кто увлечён интернетом вещей. Может получать доступ к Google-почте, Twitter, Facebook, Dropbox и ещё сотне популярных веб-сервисов через библиотеку Temboo. Управляемый через Yún умный дом может связаться с вами, где бы вы ни находились.

Arduino Tian — плата на базе Arduino Yun, но более производительная, с Wi-Fi, Bluetooth, Ethernet-модулями и ОС Linux на борту. Поддерживает Node.js, чтобы вы могли писать на JS и front-end и back-end. Позволяет быстро развернуть сервер для видеотрансляций или оригинальный веб-сервис для дома.

Мозги  — решают!

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


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

React Native —  это возможность быть быстрым

Разработчик мобильного приложения GeekBrains Даниил Скрипник провел в офисе Mail.Ru Group открытый воркшоп по работе с фреймворком React Native. Участники за пару часов самостоятельно написали мессенджер и увидели, как технология позволяет сэкономить время и усилия программиста.

Мы попросили Даниила рассказать, как он начал работать на React Native и почему он хочет научить этой технологии коллег.

Сначала я ушел из логистики и за полгода переучился на frontend-разработчика

Программированием я занялся три года назад. До этого я жил в Сербии и работал совсем в другой сфере. У меня было два образования – экономическое и транспортный менеджмент. После вуза работал в логистической компании операционным менеджером по морским и авиаперевозкам. Но в какой-то момент вспомнил свои детские увлечения и решил сменить профессиональную сферу на IT.

Записался на онлайн-курсы в Школу-партнер Micrоsoft, занимался почти сутками и за 6 месяцев освоил тот минимум, с которым можно было найти работу или стажировку front-end разработчика: HTML&CSS, HTML5&CSS3, JavaScript, Bootstrap, JQuery, Angular.JS. Прошел стажировку в нескольких компаниях, получил от каждой из них предложения по работе. Но они работали с устаревшим стеком технологий и мне это было неинтересно.

Попробовал React Native и начал писать приложения

В результате я устроился на работу в Alpha Design. Компания занимается разработкой и дизайном для Apple, Rakuten, Amazon. Сначала я занимался только frontend-разработкой. Но в какой-то момент у нас появился заказчик – владелец глянцевого журнала, который хотел создать приложение для поиска и покупки одежды. По сути, это была соцсеть, похожая на Instagram, где ты листаешь фотографии с одеждой и можешь купить то, что тебе понравилось. В Alpha Design не было мобильных разработчиков и мы решили делать кроссплатформенное приложение на React Native.

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

Мне понравилось, как быстро с помощью React Native можно сделать что-то осмысленное, продукт, который сразу начинает работать. Front-end в сравнении c мобильной разработкой показался мне более долгим и ограниченным. Меня впечатлила скорость, с которой я мог писать приложения на несколько платформ с нуля.  

Написал три приложения за год

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

За год я поработал над тремя приложениями, которые с нуля создавались на React Native: «Дневник еды», Pinpil (приложение по поиску аптек) и Криптокошелёк для стартапа Humaniq.

«Дневник еды» я написал за месяц. Это период был для меня самым сложным, потому что я писал это приложение один и ничего не понимал. Все тогда было темным лесом, приходилось постоянно гуглить, разбираться с багами. Не было понятных изданий с разбором React Native, фреймворку был всего год, сообщество разработчиков было не развито. Сейчас, с опытом, я понимаю, где какой баг может вылезти, тогда терялся, но прототип приложения все-таки сдал заказчику.

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

Криптокошелек для стартапа Humaniq частично разрабатывался на Android, частично на React Native. Эта компания собрала на ICO 15 млн долларов и придумала приложение для людей, которые не умеют писать и читать (было нацелено на использование в африканских странах). Все управляется с помощь face id, иконок, голосовых сообщений. Было интересно работать над его прототипом.

Написал приложение для Mail.Ru Group и попробовал преподавать

Пока я работал в Evrone, я получил предложение от рекрутеров Mail.Ru Group. Они искали мобильного разработчика на React Native, чтобы написать кроссплатформенное приложение для сайта GeekBrains. Я успешно прошел собеседование и с удовольствием начал работать над этим интересным проектом. Версия под iOS и Android уже доступна для скачивания, но мы продолжаем разработку.

Став мобильным разработчиком в Mail.Ru Group, я также смог попробовать себя в качестве преподавателя. Мои коллеги, разработчики Java, поехали преподавать программирование школьникам из лагеря для одаренных детей «Сириус». Я решил к ним присоединиться и взял группы по обучению мобильной разработке. Это был интересный опыт. Я понял, что задача преподавателя – не отвечать на все вопросы подряд, тем более, что они часто одни и те же. Главное – научить студентов самостоятельно находить ответы и решения для своих задач.

Когда я вернулся в Москву, я захотел что-то подобное провести для своих коллег. Сначала провел воркшоп по React Native для сотрудников Mail.Ru Group,  а позже, когда получил положительные отзывы от коллег, мы провели открытый воркшоп для слушателей из других компаний.

Придумал свой формат для воркшопа React Native

На конференциях мне всегда не нравилось, что теоретической части уделяется слишком много времени. Поэтому воркшоп по React Native я разделил на две части. В первой – минимум необходимой теории. Во второй – практика. За несколько часов мы вместе с участниками написали мессенджер и к концу воркшопа уже могли переписываться друг с другом.

На первую встречу пришли мои коллеги — мобильные разработчики и frontend-разработчики из Mail.Ru Group. На втором воркшопе, который также прошел у нас в офисе 20 апреля, были представители Яндекса, Альфа-Банка, СберТеха, МФТИ, студенты и преподаватели GeekBrains, ВШЭ, Тинькофф, HeadHunter. Также было несколько владельцев веб-студий.

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

Я понимаю, что у технологии React Native есть свои критики. Они есть и среди тех, с кем я работаю бок о бок.  Но я вижу, как много времени и усилий я сейчас экономлю на мобильной разработке, как много ресурсов Facebook и другие IT-гиганты сейчас вкладывают в ее развитие. Я искренне считаю React Native очень полезным и для front-end разработчиков, и для мобильных программистов.

Почему React Native – это круто?

React Native – это фреймворк для создания кроссплатформенных приложений на языке JavaScript. Он позволяет писать приложения для IOS, Android, Windows Phone и даже VR (на React VR можно создавать приложения для шлемов и очков виртуальной реальности»).

React Native – это отличная возможность быть быстрым и пользоваться любимыми инструментами «прямо из коробки» (их не нужно настраивать, они работают здесь и сейчас): CSS, ES6, ES7, NPM, Yarn и т.д.

Создатель React Native – Facebook, лидер во front-end, компания, которая вкладывает огромные ресурсы в развитие своих технологий. Facebook активно развивает React и React Native, создает вокруг них целую инфраструктуру и мощное IT-сообщество.

Еще одно преимущество технологии – быстрорастущее комьюнити из компаний, которые используют технологию, инвестируют в нее и поддерживают ее развитие: GeekBrains, Yandex, Airbnb, Wix, Tesla, Soundcloud, Walmart.

На этом фреймворке написаны UberEats, FacebookGroups и частично Instagram и Facebook.


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

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

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

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

Люди

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