Category: Истории

18
Июл
2021

🗣 «Я программист от макушки до кончиков пальцев», – интервью с Seniour Software Engineer C#

Покупали в интернете пиццу или суши? Скорее всего ресторан получил ваш заказ через WebOrders. Корреспондент «Библиотеки программиста» поговорил о применимости и перспективах C# с Владимиром Каратаевым, разработчиком сервиса.

Герой интервью пишет программное обеспечение для доставки продуктов из ресторанов и кафе под брендом r_keeper Delivery. Сервис WebOrders – одно из его детищ – предоставляет API для доступа к кассовым серверам и CRM ресторанов. С его помощью разработчики интернет-магазинов и мобильных приложений подключаются к множеству заведений по всей стране и получают доступ к экосистеме r_keeper.


Расскажите о своей работе? Много ли вам приходится кодить?

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

Я работаю в команде программистов бэкенда, и кодирование – это существенная часть моей работы.

Командная работа, в отличие от индивидуальной, требует уделять немало времени взаимодействию с коллегами. Ежедневные совещания, встречи в течение дня, согласования и обсуждения – это обязательная, и весьма важная часть работы. Если вы не обговорили какой-то аспект, кажущийся вам незначительным, и закодировали на своё усмотрение, то есть немаленький шанс, что этот код придется выбросить из-за этого “незначительного” момента. Это вам он неважен, а для руководителя может оказаться ключевым.

В итоге само кодирование занимает 60 – 70% времени.

Остальное время уходит на:

  • краткое письменное описание и формализацию задачи,
  • разбиение на подзадачи и формирование тикетов,
  • планирование спринта,
  • утрясание с коллегами рабочих моментов по программным контрактам, функциям API,
  • сопровождение тестирования (подготовка плана тестирования, помощь тестировщику в настройке, разъяснении непонятных моментов, доработки),
  • демонстрацию завершенной и протестированной работы руководителям,
  • техническую поддержку (если три линии поддержки не смогли помочь клиенту, то задача попадает к разработчику),
  • работу со службой безопасности, если она выявила в работе сервиса уязвимости.

Почему вы выбрали именно это направление?

Я «заболел» программированием в 6-7 классе школы. После уроков я с такими же «страдальцами» бегал в класс информатики и просил учителя хотя бы посидеть за компьютером. Программировать нас тогда ещё только учили.

Именно поэтому у меня за плечами такой большой бэкграунд из вороха различных технологий я преподавал в университете информатику, программировал ERP на крупнейшем складе в России: в ваших авто наверняка есть детали с этого склада; разрабатывал САПР для электроэнергетики: почти все диспетчерские в России работают на этом ПО, так что свет в ваших домах это и мой труд тоже; сейчас разрабатываю микросервисы в сфере HoReCa ПО для ресторанов.

Я не выбирал этот путь осознанно, по каким-то критериям – он (путь) сам меня нашёл, целиком захватил и увлёк.

Долго ли пришлось идти к нынешнему уровню? Это было трудно?

В целом на уровень ведущего разработчика можно выйти за 3 – 5 лет работы программистом. При наличии соответствующих личных качеств можно стать тимлидом. И это трудно.

Например, строитель или токарь отработал свои 8 часов и далее занимается личной жизнью, о работе не думает. А тут порой решение задачи спать не дает: полночи мозг остыть не может, продолжая искать решения. И нередко добровольно, без всякой дополнительной оплаты, остаёшься поработать ещё, чтобы доделать задачу, пока мысль не ушла. Кроме того, отрасль так динамично меняется, что надо всегда дополнительно заниматься самообразованием. За свой счёт, в свободное от работы время.

Например, я прошёл такой путь: Assembler, программирование микроконтроллеров, Turbo pascal, Delphi, СУБД (Interbase, Firebird, MS SQLServer, Postgresql, Clickhouse, SQLite), Java, и, наконец, C#, Python.

И «бег» продолжается: сейчас присматриваюсь к Golang, Kotlin, Rust. Изучаю обработку больших данных, машинное обучение… много чего ещё. И всё для того, чтобы оставаться на современном уровне, поддерживая актуальность и ценность своих знаний и опыта на рынке труда.

Сложно ли учить С# с нуля новичку в программировании или программисту на другом языке?

Я изучал и использовал много различных языков программирования, так что могу сравнивать. У C# невысокий порог вхождения. Очень важный момент: у C# прекрасный инструментарий для разработки. Достаточно зайти на сайт, скачать и установить Visual Studio, и вы сразу всё получаете «из коробки», в готовом к работе виде.

Нажав пункт меню «новый проект» вы получите рабочую заготовку из простейшей программы “Hello word”. Запускайте, смотрите, как работает, модифицируйте и обучайтесь!

Ссылки на обучение приведены на приветственной странице в Visual Studio.

На первое время можно не задумываться про парадигмы программирования и обучаться, используя процедурный подход. Для сравнения, Python требует установить кроме самого языка отдельно среду разработки и настроить переменные окружения, а заготовки “Hello world” вам никто не предоставит.

Я думал о том, с чего лучше начинать программировать. И Python, и C# – хороший выбор. Они несложны при изучении базовых конструкций языка программирования и широко используются профессиональными программистами.

С чего бы вы посоветовали начинать изучение C# новичку?

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

Эта подготовка даётся в ВУЗах. Раньше она была и в школе, но сейчас фактически убили предмет. Надежда только на ВУЗовскую подготовку.

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

Сколько занимает путь от практиканта до полноценного боевого джуна в вашей команде? А от джуна до мидла и сеньора?

Я не советую идти работать практикантом. Надо работать 8 часов, а когда ещё учится программированию? Лучше полгода подучиться и пойти работать джуном. Далее 2-3 года надо не просто работать джуном, а продолжать обучение, чтобы выйти на уровень мидла.

Еще 2-3 года уйдут до уровня сеньора. Но тут уже надо больше вникать в специфику самой отрасли, для которой вы делаете разработку, чем в программирование. Например, делаете САПР в электроэнергетике – разберитесь в типах коммутационных аппаратов. Кодите для ресторанов – изучайте ресторанное дело.

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

Что самое важное и сложное в изучении С#?

Сам язык прост. Не тратьте много сил на изучении его языковых конструкций. Существенно сложнее освоить фреймворки, например, asp.net для разработки бэкендов интернет-сервисов. Тут уже надо знать интернет-технологии: что такое аутентификация, и чем она отличается от авторизации, http-протокол, почти всегда требуется работа с СУБД.

Это титанический объём информации, но без этих знаний сложно понять, почему asp.net устроен именно так и научиться эффективно его использовать.

Используйте последние версии фреймворков, библиотек и сред разработки и развертывания. Пока вы будете их изучать, они войдут в мэйнстрим. Обратите внимание, надо обязательно участвовать в проектах open source на GitHub. Это полезно во всех отношениях:

  • Поможете хорошему делу.
  • Найдёте интересную нишу для себя.
  • Научитесь работе с инструментарием разработки: трекер, система контроля версий, автотестирование, CI (continuous integration – постоянное, «на потоке» тестирование и деплой всего, что выкладывается).
  • Научитесь общаться в команде, освоите жаргон.
  • Поймёте и примете инженерную культуру разработки кода.
  • Почувствуете чем дышит отрасль, какие технологии являются мэйнстримовыми.
  • Наработаете себе базу проектов для резюме.

Что еще нужно знать джуну?

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

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

Также необходимо знать аппаратуру («железо»). Как устроен компьютер, какие блоки есть в CPU, что такое кэш, мат.сопроцессор, GPU, разрядность процессора и т.п. Вы же пишите программы для «железа», а не для некоей абстракции. Поэтому надо знать аппаратуру. Не детально, но иметь общее представление.

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

В части структур данных надо уметь работать с массивами, знать что такое списки и словари, их плюсы и минусы, древовидные структуры данных. Понимать, в каком случае что надо использовать. Из алгоритмов нужно знать: виды сортировки, поиск по массивам данных, работу с древовидными структурами данных (поиск, обход).

Как вы думаете, программисту нужно профильное высшее образование?

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

Куда податься свежеиспеченному джуну? В каких компаниях нужны С# разработчики?

Без опыта работы рассчитывать на приличные деньги не стоит. Надо браться за любую работу. C# любят на заводах и промышленных предприятиях за то, что на нём можно быстро делать пользовательские интерфейсы для ОС Windows. В игровой индустрии царит Unity, использующий C#. Виден явный тренд на более широкое использование C# в бэкендах интернет-сервисов, в банковском ПО. Хотя, конечно же, Java тут абсолютный лидер.

По разным рейтингам язык программирования C# является одним из мэйнстримовых, ведущих языков. Спрос на программистов C# высок: рекрутеры постоянно бомбят предложениями, а вакансии не закрываются месяцами. Это сказывается на уровне зарплат. По моим личным наблюдениям больше C# получают только программисты Java. Разница не сильная, но вполне видимая.

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

Каковы ваши планы на будущее?

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

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

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

Сейчас я вижу, что актуальной остаётся работа с огромными объёмами данных (big data). Это связано с текущим трендом на IoT. IoT сейчас бурно, взрывообразно развивается. Посмотрите – все крупные экосистемы (Мэйл, Сбер, Яндекс, МТС, Google, Amazon, Xiaomi, Apple) имеют в своем составе технологии для работы с умными домами и датчиками. Есть голосовые помощники, которые позволяют управлять устройствами с помощью голоса.

Эти системы состоят из отдельных программных модулей: кирпичиков, которые удобно и быстро можно интегрировать с помощью Python. Он же используется в машинном обучении. Учите Python, как вспомогательный язык, служащий для высокоуровневой интеграции разнородных систем. Для написания облачных микросервисов я рекомендую изучать Java, C#; для пользовательских интерфейсов – HTML и Javascript. Такой стек инструментария разработчика сейчас актуален, и пока не видно тенденций на изменение такого расклада.

***
Реклама
Если вы только начинаете путь в профессии, обратите внимание на курс «Разработка на C#» образовательной онлайн-платформы GeekBrains. Он охватывает все необходимые новичку темы от основ программирования и алгоритмов до публикации готового программного обеспечения. Изучается также работа с базами данных, бэкенд и фронтэнд, протоколы взаимодействия и даже основы архитектуры. Имеющие некоторый опыт программисты смогут попробовать новые фреймворки и современные технологии, а также расширить портфолио, познакомившись с основами разработки корпоративных приложений.

06
Июл
2021

👨‍💼 Тимлид из народа: как жить дальше?

Зачастую история успеха звучит так: «он пришел простым разработчиком, а вырос до руководителя департамента разработки». Кажется, будто человек сделал головокружительную карьеру – ему достается почет, уважение и непыльная работа руководителя. Разбираемся, так ли это на самом деле.

До тех пор пока у тебя есть план, и ты его придерживаешься – все будет хорошо. Главное убедить всех вокруг, что этот план сработает.
Василий Семенов, руководитель направления разработки ЦК SAP.

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


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

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

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

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

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

Обязанности и навыки тимлида


Деловая коммуникация и межличностное общение

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

Если нужных навыков делового общения у вас нет, на помощь придут книги:

  • Максим Батырев, «45 татуировок менеджера». Основанная на личном опыте книга российского руководителя. Название каждой главы – «татуировка», которая осталась с ним навсегда, и обязательно рассказано – почему.
  • Максим Батырев, «Сложные подчиненные. Практика российских руководителей». Еще одна книга того же автора, основана на выводах из реальных кейсов бизнеса. Каждая глава рассказывает про свой тип сотрудников.
  • Деннис Шервуд, «Системное мышление для руководителей: Практика решения бизнес-проблем». Книга о работе бизнеса в целом и о связях между всеми элементами этой цепочки. О системном мышлении и системном подходе к совершенствованию бизнес-моделей.
  • Бен Хоровиц, «Мы – то, что мы делаем». Рассказы о корпоративной культуре на ярких примерах.
  • Фонс Тромпенаарс и Пит Хэйн Кеберг, «100 ключевых моделей и концепций управления».
С самого начала моей карьеры, каждый раз после прочтения книг/курсов я старался сделать выжимку из материала и поделиться новым с людьми, которые меня окружали. Я понимал, что получаю многократный профит: растут мои технические знания, растет уровень окружающей меня команды, растут навыки общения, растет авторитет у других сотрудников.
Василий Семенов, руководитель направления разработки ЦК SAP.

Ресурсное планирование и экспертиза вместо написания кода

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

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

Контроль эмоционального состояния коллектива

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

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

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

Управление общими процессами и формирование единого вектора развития

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

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

Борьба с профессиональным выгоранием


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

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

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

Будь открытым и честным перед собой и своими сотрудниками. И тогда они тебя выручат в трудный момент.
Василий Семенов, руководитель направления разработки ЦК SAP.

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

Однако кто бы не пришел на позицию тимлида, он должен учиться. Учиться смотреть на бизнес-процессы с другой точки зрения, учиться расширять границы, учиться общаться, слышать и слушать.

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


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

***

Образовательная платформа Skillbox проводит набор на курс «Профессия TeamLead». За 6 месяцев действующие тимлиды российских технологических компаний дадут слушателям необходимые для успешной карьеры теоретические знания и практические навыки. Вы поймете, чем команда разработки отличается от других команд, как ее развивать и оценивать, а также какие soft skills нужны современному тимлиду и как быстро их развить.

02
Июл
2021

🍏 Путь в профессию: интервью с iOS-разработчиком Кевином Ренскерсом

Создание приложений для iOS – одно из самых перспективных направлений в IT. Наш корреспондент пообщался с программистом-фрилансером из Голландии, который трудится в этой сфере уже 11 лет. Он рассказал о своем пути в iOS, Swift и SwiftUI, а также о будущем iOS-разработки.

– Как вы пришли к разработке приложений для iOS?

В 2009 году я начал работать в местной компании в качестве программиста на Python. Мы создавали веб-сайты для крупных компаний, используя Plone и Django. В 2010 году некоторые клиенты начали просить приложения для iPhone, и это стало началом моей карьеры разработчика iOS: мне платили за то, чтобы научиться создавать эти приложения.

К тому времени у меня уже был десятилетний опыт работы в программировании. Я начал в 2000 году создавать веб-сайты с помощью HTML и Flash, в 2001 году занялся PHP и JavaScript, а в 2009 году перешел на Python.


– Вы занялись разработкой для iOS в 2010 году. Что изменилось сейчас?

Почти все. Когда я начинал, мы не только все еще использовали Objective-C (который мне действительно очень нравился), но даже ARC еще не существовало. Xcode еще не был интегрированным инструментом, Interface Builder был отдельным приложением, поэтому вы могли открывать обе программы одновременно. Это было очень мило.


Даже блоки (замыкания, обработчики завершения) еще не существовали, не было дополнительных элементов, не существовали литералы массивов и словарей и раскадровки – список можно продолжать и продолжать.

– 11 лет – большой срок. Чему вам пришлось научиться за это время?

Очевидно, мне сначала нужно было изучить Objective-C, UIKit, Foundation и другие фреймворки. Позже мне пришлось изучить Swift, функциональное программирование, реактивное программирование, а также все новые фреймворки и API, которые Apple представила за эти годы. MVC, MVVM, координаторы, составная архитектура – обучение никогда не прекращается!

Однако написание приложений для iOS сильно отличается от написания веб-приложения, поэтому освоение правильных шаблонов, таких как делегаты и способы работы с (фоновыми) потоками, было своего рода кривой обучения.

– В 2010 году Apple была не такой огромной корпорацией. Почему вы выбрали разработку под iOS?

Я бы не сказал, что они не были крупной компанией в 2010 году. Конечно, сейчас они огромны, но iPhone стал хитом с самого первого выпуска. В любом случае меня не волновал размер, я просто знал с первых же слухов о телефоне Apple, что он будет отличным. Когда Джобс представил iPhone, я был влюблен и знал, что мне нужен именно такой. Требовалось, чтобы iPhone 3GS был доступен в Нидерландах.

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


Что вы думаете о Swift и SwiftUI? Хотите что-то в них изменить?

Обожаю Свифт! Я дождался Swift 3, пока не начал его использовать. Я работал над большими сложными приложениями Objective-C, мне очень нравился Objective-C, поэтому я дождался подходящего момента для перехода. Этот момент наступил в декабре 2016 года: я только начал работать фрилансером и начал новый проект с нуля, поэтому в тот момент Swift казался очевидным выбором.

SwiftUI, с другой стороны… Мне нравится его концепция, я бы хотел иметь возможность использовать его, но он еще не готов. Я создал побочный проект средней сложности с использованием SwiftUI 1, когда он был только что выпущен, и хотя мне понравилось первоначальное повышение производительности, это быстро превратилось в раздражение, так как я потратил слишком много времени, работая над ошибками и сбоями в самом SwiftUI. Легкие вещи стали действительно легкими, а сложные – невозможными. Я отказался от этого побочного проекта.

Я действительно надеюсь, что SwiftUI стал лучше с iOS 15, но если вы не пишете приложение только для iOS 15+, это не имеет значения. На самом деле я не думаю, что буду использовать SwiftUI для производства в ближайшие 2 или 3 года.

Я бы хотел изменить то, чтобы изменения Swift и SwiftUI можно было использовать со старыми версиями iOS. Например, новая поддержка async/await в Swift действительно потрясающая. Но… только для iOS 15+. Я бы хотел, чтобы Apple нашла способ удалить такие зависимости из самой базовой ОС, чтобы отдельные фреймворки могли обновляться без полного обновления ОС. То же самое и с такими приложениями, как Mail, Weather, Notes и т. д. Почему они являются частью самой iOS? Если бы они были в App Store, как и любое другое приложение, их можно было бы обновлять чаще и с меньшими проблемами.

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

– Были у вас ошибки, и что бы вы посоветовали ребятам из России, которые только начинают осваивать профессию?

На самом деле это не ошибка, но мне бы хотелось, чтобы я вскочил на подножку FRP немного раньше. Мне никогда не нравился RxSwift (или ReactiveCocoa во времена Obj-C), он никогда не работал до тех пор, пока я не начал использовать ReactiveKit и Bond еще в 2019 году. Теперь я использую Combine во всех своих приложениях с 2020 года, и не могу представить, что вернусь к старому способу создания приложений.

Если вы только начинаете разработку iOS, совет номер один – не перегружаться всеми вариантами архитектуры и не пытаться делать все идеально с самого начала. Просто используйте MVC, не волнуйтесь, получите ли вы в итоге массивные контроллеры представления или нет. Используйте раскадровку с переходами, если они вам нравятся, даже не думайте пока о координаторах. Забудьте о комбинированном и реактивном функциональном программировании.

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

– Какое будущее у iOS-разработки?

SwiftUI и async/await. Жаль, что будущее реальных приложений, где вы должны поддерживать старые версии iOS – это буквально несколько лет.

– Чем вы занимаетесь сейчас и какие у вас планы?

Я занимаюсь проектом для клиента, в котором также работаю над приложением iOS и серверным кодом. Планирую продолжать получать удовольствие как разработчик-фрилансер, принимая проекты, которые меня интересуют.

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

Если вы хотите получить необходимые знания в структурированном виде и без лишней воды, стоит обратить внимание на курс Факультета iOS-разработки образовательной онлайн-платформы GeekBrains. За 12 месяцев вы освоите два языка программирования и современные технологии создания приложений, научитесь писать чистый код и реализуете несколько проектов для портфолио. Обучение будут курировать эксперты-практики, а после защиты финального проекта студентам выдадут электронные сертификаты и дипломы о профессиональной переподготовке. HR-специалисты GeekBrains помогут выпускникам с трудоустройством.

23
Июн
2021

🗣️ Путь в профессию: интервью с бизнес-аналитиками

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

Кирилл Рябков, руководитель отдела аналитики ПАО «Северсталь»

О рабочем бэкграунде

Основное образование я получил по специальности «Менеджмент качества» в Московском Государственном Институте Электронной Техники (ТУ).

Первый рабочий опыт был связан с основной специальностью. Занимался внедрением и поддержанием системы менеджмента качества (ISO 9000) в организации, осуществляющей услуги лингвистического перевода.

Работа состояла в оптимизации бизнес-процессов. Там же я увлекся и автоматизацией бизнес-процессов (внедрением информационных систем). Это увлечение определило мою дальнейшую судьбу в бизнес-анализе.

Профессии бизнес-аналитика и системного аналитика: в чем отличия?

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

Основная задача бизнес-аналитика – проработка бизнес-требований на предмет их влияния на сам бизнес.

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

Профессия может быть одна, но я сторонник того, чтобы четко определять роли и подбирать под них наиболее подходящих исполнителей.

Обязанности и основные задачи бизнес-аналитика

Из обязанностей и основных рабочих задач бизнес-аналитика могу выделить следующие:

  • выявление, сбор, систематизация требований;
  • анализ проблем заказчиков, их потребностей и их связь с предлагаемым решением;
  • анализ и моделирование бизнес-процессов;
  • выявление влияния изменения на смежные подразделения (участников процессов);
  • определение объема изменений и организация оценки их стоимости;
  • поддержка внедрения изменений.

Основные требования, которые предъявляют к специалистам работодатели

Основные требования к соискателям на позицию бизнес-аналитика выглядят примерно так:

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

Типичный рабочий день бизнес-аналитика

Опишу скорее не типичный рабочий день, а набор типичных повседневных задач бизнес-аналитика, ведь иногда целый день может быть посвящен только одной задаче (например, написанию регламента):

  • встречи с заказчиками (сбор требований);
  • встречи с владельцами/участниками процессов (описание бизнес-процессов);
  • проведение встречи по согласованию бизнес-процессов;
  • отправка, получение и обработка запросов на экспертизу влияния от ответственных за функции лиц;
  • формирование презентации для защиты инициативы;
  • уточнение информации у ответственных лиц (телефон/мессенджеры);
  • отрисовка бизнес-процесса;
  • написание регламента.

Стек технологий


Стек технологий, необходимый для работы бизнес-аналитика, минимален:

На мой взгляд, технологии в бизнес-анализе имеют меньшее значение, чем умение коммуницировать с людьми и системное мышление. Кроме указанных выше технологий, могу выделить системы Process Mining (глубинный анализ процессов).

Трудности профессии бизнес-аналитика, к которым должен быть готовым новичок

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

Как и где лучше получить знания?

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

Рекомендую:

  1. Изучать стандарт BABOK – это свод знаний по бизнес-аналитике от Международного института бизнес-анализа IIBA (хотя без практики и минимальных знаний будет сложно, но это уже достаточно важный первый шаг к развитию в профессии).
  2. Курсы по процессному подходу (это основа для любого бизнес-аналитика).
  3. Авторский курс Андрея Коптелова по управлению бизнес-процессами.
  4. Книга «Процессный подход к управлению», В. Репин, В. Елиферов.

Диана Саввова, IT бизнес-аналитик компании DataArt

О рабочем бэкграунде

Я училась в Одесском Национальном экономическом Университете по специальности «Экономическая кибернетика».

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

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

Профессии бизнес-аналитика и системного аналитика: в чем отличия?

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

Разделение этих двух профессий скорее зависит от проекта, и того, насколько бизнес-аналитик готов погружаться в технические детали.

Обязанности, навыки и основные задачи бизнес-аналитика

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

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

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

Если рассматривать классическое деление навыков специалистов на hard skills и soft skills, то в качестве soft skills важно: знание иностранного языка, умение кратко формулировать мысли и аналитическое мышление.

В качестве hard skills: знание методологии управления требованиями к программному обеспечению, прототипирование, умение работать с диаграммами, иногда использовать SQL.

Типичный рабочий день бизнес-аналитика

Условно мой рабочий день выглядит так (чаще всего это все-таки мультизадачная работа):

  • утром – коммуникация с командой, планерки, ответы на вопросы;
  • затем, работа с документацией, написание новых технических заданий;
  • после обеда – общение с клиентом, выявление новых требований, утверждение готовых документов;
  • потом, написание заметок после общения с клиентом и планирование следующих шагов.

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

Стек технологий

Чаще всего я использую в работе такие инструменты: Confluence, Jira, Figma, Gliffy, Microsoft Teams. Для бизнес-аналитика не так принципиально использовать различные технологии, иногда достаточно Microsoft Word и телефона.

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

Трудности профессии бизнес-аналитика, к которым должен быть готовым новичок

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

Как и где лучше получить знания?

Советую начать свое развитие в бизнес-анализе с чтения литературы, такой как «Разработка требований к программному обеспечению» Вигерса К. и Битти Дж. и BABOK (Guide to the Business Analysis Body of Knowledge).


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

Выводы

Если вас заинтересовала профессия, можно получить знания самостоятельно с помощью упомянутых героями статьи материалов. Другой способ – пройти курс «Профессия Бизнес-аналитик» образовательной онлайн-платформы Skillbox.

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

***

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

16
Июн
2021

∞ Путь в профессию: интервью с инженером DevOps

Библиотека программиста продолжает серию интервью с представителями IT-индустрии. Наш корреспондент побеседовала с Алексеем Шараповым, Head of DevOps компании «ЦРПТ». Он рассказал о своем пути в отрасли, какие требования к кандидатам предъявляют работодатели и стоит ли считать DevOps профессией или только ролью.

Библиотека программиста: Добрый день, Алексей! Расскажите, пожалуйста, для начала о своем бэкграунде. Где учились, работали, прежде чем стать инженером DevOps?

Алексей Шарапов: Учился в Ярославском Государственном Техническом Университете по специальности «Органическая химия», но вскоре понял, что больше люблю разработку и все, что с ней связано.

Еще в университете я, читая разные статьи, наткнулся на самые первые упоминания DevOps. Это был примерно 2013 год, статья Барух Садогурского, которая меня невероятно впечатлила. Тогда было абсолютно непонятно что такое DevOps, кроме того, что этим занимаются парни, которые погружены в администрирование и разработку с одинаковой интенсивностью. Мне понравилось, загорелся идеей и решил для себя, что буду заниматься именно DevOps.

После окончания университета работал сначала на «Почте России», позже в небольшой компании фармацевтического завода, а разработкой занимался на фрилансе, искал клиентов на бирже Upwork. Со временем попал в «СберТех» в первую волну DevOps и закрутилось.

Б.П.: С чего начался ваш путь в профессию, почему решили уйти именно в DevOps?

А.Ш.: Мой путь в профессии начался с двух направлений параллельно. На основной работе я занимался администрированием парка серверов и в это же время разрабатывал сайты на фрилансе. После этого более глубоко погрузился в администрирование, Linux сервера. При этом разработку не бросал никогда, делал простые задачи, изучал Java и даже брался за задачи по разработке наравне с коллегами. Также проходил курсы по разработке на Java для более глубокого погружения, курсы по PHP и JavaScript, так как хотелось больше узнать о программировании изнутри.

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

Б.П.: Дайте свое определение DevOps.

А.Ш.: DevOps – это практики, направленные на взаимодействие между отделом разработки и отделом Ops, которые помогают быстрее поставлять продукт с меньшим количеством ошибок и проблем.

Б.П.: По вашему мнению, DevOps – это профессия или часть обязанностей?

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

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

А.Ш.: Требования к специалистам с одной стороны растут, даже к джуниорам. С другой стороны – нехватка хороших инженеров DevOps позволяет на некоторые вещи закрыть глаза.

На данный момент я определяю требования к специалистам разных уровней следующим образом:

  1. Junior – это базовые знания Linux-администрирования, базовые знания одного-двух языков программирования, для старта этого бывает достаточно;
  2. Middle – к требованиями выше добавляются знания базовых инструментов контейнеризации, оркестрации, систем сборок, понимания принципов построения CI/CD процессов;
  3. Senior – ко всему прочему добавляется широкий бэкграунд в разных технологиях, а также умение правильно построить процесс и дать грамотную оценку задачи. Немаловажным является умение наладить контакт с коллегами. У специалиста, который будет в роли прокси-сервера между отделами, так называемые софт скиллз должны быть на высоте.

Б.П.: Опишите ваш типичный рабочий день.

А.Ш.: Типичный день обозначить очень сложно, так как каждый приносит что-то новое и интересное.

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

Б.П.: Какой стек технологий вы используете в работе?


А.Ш.: Стек технологий, который я использую в работе, достаточно широк. Это и K8S для запуска сервисов, GitLab CI для процессов CI (непрерывной интеграции), Ansible в связке с Python – для автоматизации всего.

Вокруг этих инструментов сосредоточен еще очень большой набор технологий. Например, Helmfile для накаток на разные среды, Argo CD в других проектах, иногда приходится писать на Go (например для экспортеров), где-то копаться в Java.

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

А.Ш.: Я бы выделил K8S, сейчас без него никуда. А также весь около K8S стек технологий. Это и Helm и GitOps-инструменты. Ну и облачные платформы – AWS и GCD идут впереди планеты всей и позволяют делать невероятные вещи.

Б.П.: К каким трудностям в профессии специалист DevOps должен быть готовым?

А.Ш.: Первое, что я выделил бы – понимание того, что коммуникации будут составлять достаточно большую часть вашей работы. Второе – вы должны всегда успевать за стеком разработчиков, за их изменениями и нововведениями. Ну и третье – отслеживать, что нового в индустрии, а новостей всегда много: K8S без Docker, Ansible без модулей и все в этом духе. Высокий темп в этой области превосходит многие другие.

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

Б.П.: Сколько лет вам понадобилось, чтоб вырасти до уровня senior? Что больше всего повлияло на ваш рост, как специалиста?

А.Ш.: До senior я морально вырос спустя семь лет с начала работы. Сейчас я лид направления DevOps в компании, руковожу лидами DevOps в группах разработки, но не бросаю и работу руками. Работаю с командами разработки, эксплуатации. Стараюсь уделять внимание и той и другой стороне.

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

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

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

Самая моя любимая книга для новичков – «Unix и Linux: руководство системного администратора», Немет Эви, Снайдер Гарт.


Полезно смотреть видеозаписи крупных российских и зарубежных конференций, таких как DevOpsConf, KubeCon, DockerCon.

Из ресурсов я читаю в основном блоги на официальных сайтах Docker, K8S, Red Hat, ну и Хабр, он до сих пор несет много полезной информации.

Выводы

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


***

Если вы находитесь только в начале пути, стоит обратить внимание на курс Факультета DevOps образовательной онлайн-платформы GeekBrains. Эксперты-практики из ведущих российских технологических компаний научат вас использовать методологии Agile и Scrum, оптимизировать CI/CD и работать с облачными технологиями. Курс подойдет как новичкам в IT, так и опытным специалистам, которые хотят сменить направление.

За 18 месяцев обучения вы освоите актуальную программу по DevOps, решите шесть проектных задач и создадите итоговую работу с сокурсниками, а также изучите основы Python и облачных технологий, работу с сервисами Linux и Kubernetes.

Успешно окончившим курс студентам HR-специалисты GeekBrains помогут создать резюме и предложат вакансии. Гарантия трудоустройства закреплена в договоре.

14
Июн
2021

🗣️ Путь в профессию: интервью с бизнес-аналитиками

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

Кирилл Рябков, руководитель отдела аналитики ПАО «Северсталь»

О рабочем бэкграунде

Основное образование я получил по специальности «Менеджмент качества» в Московском Государственном Институте Электронной Техники (ТУ).

Первый рабочий опыт был связан с основной специальностью. Занимался внедрением и поддержанием системы менеджмента качества (ISO 9000) в организации, осуществляющей услуги лингвистического перевода.

Работа состояла в оптимизации бизнес-процессов. Там же я увлекся и автоматизацией бизнес-процессов (внедрением информационных систем). Это увлечение определило мою дальнейшую судьбу в бизнес-анализе.

Профессии бизнес-аналитика и системного аналитика: в чем отличия?

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

Основная задача бизнес-аналитика – проработка бизнес-требований на предмет их влияния на сам бизнес.

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

Профессия может быть одна, но я сторонник того, чтобы четко определять роли и подбирать под них наиболее подходящих исполнителей.

Обязанности и основные задачи бизнес-аналитика

Из обязанностей и основных рабочих задач бизнес-аналитика могу выделить следующие:

  • выявление, сбор, систематизация требований;
  • анализ проблем заказчиков, их потребностей и их связь с предлагаемым решением;
  • анализ и моделирование бизнес-процессов;
  • выявление влияния изменения на смежные подразделения (участников процессов);
  • определение объема изменений и организация оценки их стоимости;
  • поддержка внедрения изменений.

Основные требования, которые предъявляют к специалистам работодатели

Основные требования к соискателям на позицию бизнес-аналитика выглядят примерно так:

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

Типичный рабочий день бизнес-аналитика

Опишу скорее не типичный рабочий день, а набор типичных повседневных задач бизнес-аналитика, ведь иногда целый день может быть посвящен только одной задаче (например, написанию регламента):

  • встречи с заказчиками (сбор требований);
  • встречи с владельцами/участниками процессов (описание бизнес-процессов);
  • проведение встречи по согласованию бизнес-процессов;
  • отправка, получение и обработка запросов на экспертизу влияния от ответственных за функции лиц;
  • формирование презентации для защиты инициативы;
  • уточнение информации у ответственных лиц (телефон/мессенджеры);
  • отрисовка бизнес-процесса;
  • написание регламента.

Стек технологий


Стек технологий, необходимый для работы бизнес-аналитика, минимален:

На мой взгляд, технологии в бизнес-анализе имеют меньшее значение, чем умение коммуницировать с людьми и системное мышление. Кроме указанных выше технологий, могу выделить системы Process Mining (глубинный анализ процессов).

Трудности профессии бизнес-аналитика, к которым должен быть готовым новичок

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

Как и где лучше получить знания?

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

Рекомендую:

  1. Изучать стандарт BABOK – это свод знаний по бизнес-аналитике от Международного института бизнес-анализа IIBA (хотя без практики и минимальных знаний будет сложно, но это уже достаточно важный первый шаг к развитию в профессии).
  2. Курсы по процессному подходу (это основа для любого бизнес-аналитика).
  3. Авторский курс Андрея Коптелова по управлению бизнес-процессами.
  4. Книга «Процессный подход к управлению», В. Репин, В. Елиферов.

Диана Саввова, IT бизнес-аналитик компании DataArt

О рабочем бэкграунде

Я училась в Одесском Национальном экономическом Университете по специальности «Экономическая кибернетика».

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

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

Профессии бизнес-аналитика и системного аналитика: в чем отличия?

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

Разделение этих двух профессий скорее зависит от проекта, и того, насколько бизнес-аналитик готов погружаться в технические детали.

Обязанности, навыки и основные задачи бизнес-аналитика

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

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

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

Если рассматривать классическое деление навыков специалистов на hard skills и soft skills, то в качестве soft skills важно: знание иностранного языка, умение кратко формулировать мысли и аналитическое мышление.

В качестве hard skills: знание методологии управления требованиями к программному обеспечению, прототипирование, умение работать с диаграммами, иногда использовать SQL.

Типичный рабочий день бизнес-аналитика

Условно мой рабочий день выглядит так (чаще всего это все-таки мультизадачная работа):

  • утром – коммуникация с командой, планерки, ответы на вопросы;
  • затем, работа с документацией, написание новых технических заданий;
  • после обеда – общение с клиентом, выявление новых требований, утверждение готовых документов;
  • потом, написание заметок после общения с клиентом и планирование следующих шагов.

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

Стек технологий

Чаще всего я использую в работе такие инструменты: Confluence, Jira, Figma, Gliffy, Microsoft Teams. Для бизнес-аналитика не так принципиально использовать различные технологии, иногда достаточно Microsoft Word и телефона.

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

Трудности профессии бизнес-аналитика, к которым должен быть готовым новичок

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

Как и где лучше получить знания?

Советую начать свое развитие в бизнес-анализе с чтения литературы, такой как «Разработка требований к программному обеспечению» Вигерса К. и Битти Дж. и BABOK (Guide to the Business Analysis Body of Knowledge).


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

Выводы

Если вас заинтересовала профессия, можно получить знания самостоятельно с помощью упомянутых героями статьи материалов. Другой способ – пройти курс Факультета системной и бизнес-аналитики образовательной онлайн-платформы GeekBrains.

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

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

***

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

11
Июн
2021

🗣 «Я даже не видел себя разработчиком, это было просто хобби»

Александр – разработчик на Ruby c семилетним стажем. Он рассказал нашему корреспонденту, какие сложности встречаются в карьере программиста, можно ли стать профессионалом без высшего образования и какие мифы о Ruby – просто мифы.

  • Здравствуйте, Александр! Расскажите о себе.
  • Мне 28 лет. Закончил 11 классов и 1 курс физфака СПБГУ, потом бросил. Живу в Петербурге. Программирование изучал самостоятельно: в школе участвовал в олимпиадах по С++, а потом уже на работе учил.

  • С университетом история довольно простая, выбрал физический факультет, потому что в школе был хороший учитель физики. Выяснил в начале обучения, что физика мне не настолько интересна, насколько я думал, и я стал прогуливать пары.
  • Почему не перевелись на программирование?
  • Как ни странно, программирование тоже не особо интересно, если учится этому в вузе. Один из больших минусов вуза – программа для всех одна. В итоге первый курс для меня разделился на то, что я уже знаю, и то, что мне скучно. В любом случае, когда я начал получать какие то деньги, даже мысли продолжать учебу уже не было.
  • Как получилось, что вы стали Ruby-программистом?
  • Если говорить о выборе, я изначально изучал очень много языков, от Lisp до C++. Все это было последовательно. Когда я изучал Ruby и прогуливал универ, мы как то сидели с другом в кафе, пили чай и наш общий знакомый пришел с историей. Он написал биржевого бота для торговой площадки steam и начал зарабатывать на нем какие-то деньги. Я предложил бесплатно переписать его проект на Ruby, потому что это была интересная практика. История закончилась тем, что у меня был практический опыт разработки около года. Наш «стартап» закончился, когда владельцы Steam закрыли удобные пути вывода средств с биржи, и я пошел искать работу. На резюме с практическим опытом в Ruby отреагировали моментально.
Тогда я особо не задумывался, стоит изучать язык или нет, я изучал языки в очень бодром темпе и так совпало, что история с Ruby закончилась трудоустройством. Хотя я даже не видел себя разработчиком, это было просто хобби.

  • У вас не было проблем при трудоустройстве? Никто из-за корочки не отказывал?
  • У меня есть резюме, где написано, что диплома нет. Если у работодателя в требованиях ВО, то тоже первым не пишу. Даже не знаю, много ли потерял. В высшее образование для прикладного айти я в принципе не особо верю: это в основном нужно теоретикам. Если мне предложат на выбор человека с ВО без стажа и человека без ВО, но со стажем 1 год, я выберу второго.
  • При этом понятно, что опытные программисты математику все равно так или иначе знают, просто теоретикам надо из теории графов знать кучу всего, а практикам определение и какие алгоритмы для работы существуют.
  • Многие пишут, что Ruby не очень популярен в России, разве что для стартапов и релокаций. Это правда?
  • По поводу популярности языка в России – это немного миф, на рынке очень сильный дефицит кадров, в основном джунов и сеньоров. При том что самих вакансий немного, найти работу достаточно легко.
  • Можете сказать, какие скиллы нужны для разработчика на Ruby для джуна, мидла и сеньора?
  • Я бы предпочел сослаться на общепринятые определения. У Ruby нет особой специфики. Джун делает задачи под руководством, мидл может работать самостоятельно, сеньор руководит.
  • Сеньор обычно ставит задачи, но и мидлы могут заниматься постановкой задач. Руководство со стороны сеньора состоит в том, что он определяет, как именно будут сделаны задачи, что они должны затрагивать помимо бизнес скоупа и когда пора заниматься бэклогом. При совмещении с бизнес-процессом сеньор должен выступать скорее экспертом, который помогает тимлиду.
  • Разумеется, в реальности все совершенно не так, и даже джуны являются экспертами в каких то узких областях, а сеньору не стыдно попросить у кого-то помощи в его экспертной области – это просто общая схема. Есть еще стажеры/ньюби/новички. Джуны могут решать задачи любой сложности без руководства, но не очень хорошо. Стажеры все еще учатся этому.
Собственно, тут первое заблуждение с пониманием всего этого. Обычно стажер думает, что стал джуном, когда у него начинает получаться решать свои задачи самостоятельно, но ему пока не ставят очень сложных задач. Джун думает, что становится мидлом, когда ему начинают ставить сложные задачи, и он с ними справляется. Мидл думает, что стал сеньором, когда сеньоры перестают его обильно критиковать. Ну и обычно люди думают, что если они проводят ревью, то они уже сеньоры, хотя я считаю что даже джуны должны принимать участие.

  • У меня есть один знакомый, тоже рубист, кстати, он из стажера перепрыгнул сразу в CTO. Вера в себя есть, нормального понимания того, что нужно от CTO, у работодателя нет, в итоге получаем историю успеха. И в целом он справился. Как говорится, не можешь – научим.
  • Сеньор это должность. Ты можешь быть готов ее занимать, думать что готов ее занимать или ее занимать. Причем то, что ты ее занимаешь, не означает, что ты в принципе готов, но может быть и приятный сюрприз.
  • Сейчас вы на Ruby работаете? Говорят, будто там довольно высокий порог входа. Это правда?
  • В данный момент я уволился с работы (в январе), но продолжаю консультировать бывшую команду и прямо сейчас делаю довольно объемную задачу. Это сложно назвать увольнением даже. Планирую в ближайшее время начать что-то искать, но пока не обновлял резюме.
  • Про высокий порог входа это какой то миф. Я занимаюсь сейчас подготовкой кадров. На знакомство с языком для человека с определенным бэкграундом я отвожу две недели, дальше идет уже знакомство с какими то удобными инструментами и обучение общепринятым практикам. Если брать стажеров с базовым знанием языка, то до уровня джуна они поднимаются за 2 – 4 месяца работы.
  • Фактически вы сейчас занимаетесь обучением?
  • Скорее консалтингом. Обучение занимает у меня несколько часов в неделю. Правильнее даже не консалтинг, а расслабленный фриланс с единственным контрагентом.
  • Чему учите новеньких? Вы учите тех, кто уже что-то знает, или вообще нулевичков?
  • У меня было пока две группы: первая с неоконченным высшим, вторая – просто случайные люди. Совсем с нуля тяжело, плохо понимаю в чем у людей могут быть проблемы. Я познакомился с программированием лет в 8, у меня совершенно другой бэкграунд. Если мы про пару недель на изучение, то это про людей с каким то околоайтишным бэкграундом типа хороших оценок в школе на информатике.
  • Как вы пришли к тому, что стали учить?
  • Учить я начал, потому что мне просто нравится учить людей. Можно учить кого то в интернете жизни, а можно учеников руби. Можно просто помогать с домашкой одноклассникам, тоже обучение. Наверное, примерно в таком порядке и было: сначала чуть чуть помочь подруге с информатикой в школе, потом в универе. Случайно оказавшись в репетиторской тусовке, тоже взял учеников, которые учатся в той же школе и у того же преподавателя, а дальше все как то затихло. Два года назад начал учить сестру с подругами, одна из подруг в итоге работает вместе со мной.
Учить кого то в интернете жизни, кстати, до сих пор нравится больше, хоть и менее продуктивно 🙂

  • Над какими проектами вы работали? Какой из них был самым сложным и интересным?
  • Я работал над gettransfer.com, gettransport.com, wfolio.ru и еще некоторыми проектами. Это не мои проекты, в геттрансфере/транспорте я в принципе был линейным сотрудником. В wfolio.ru – уже сеньором.
Сложными обычно бывают задачи, а не проекты. Самая сложное – это, наверное, промо-акции, которые реагировали на события у пользователей и по каким то настраиваемым правилам выдавали вознаграждение. Но по субъективному ощущению, именно на этой задаче я рос из джуна в мидла.

  • На самом деле это была не одна задача, а много связанных, и не все из них делал я, но я занимался общим рефакторингом архитектуры и потом запиливал большую часть фич, так как кроме меня там мало кто мог разобраться. В целом я воспринимаю это скорее как провал, но я вынес из него много опыта на тему того, как не нужно делать. И было интересно.
  • Из того, с чем сейчас сталкиваюсь, самое сложное – это быстро вникнув в проблему другого человека, объяснить ему решение так, чтобы он мог самостоятельно найти в этом решении несостыковки. Очень мешает авторитет, особенно когда взаимодействуешь с джунами. Тут еще, вероятно, не очень хорошие процессы сказываются: я где-то год хочу попробовать design-review.
Если человек тратит на задачу несколько недель, а ты – пару часов, разумеется, ты не можешь придумать оптимальное решение какой то проблемы. Какой бы у тебя не был опыт, все равно он не переносится дословно.

  • Почему вы решили уйти?
  • Хочется роста, в идеале хочу найти работу, где меня будут учить управлению командой. В принципе, после того как я лучше познакомился с процессом руководства, меня это начало привлекать гораздо больше разработки. Ну и как минимум – разнообразие. Я почти 7 лет пишу код, от этого можно устать.
  • Почему на прежнем месте вы не стали делать карьеру тимлида? Не было возможности?
  • Во-первых, у нас небольшая команда и вряд ли там нужен будет второй тимлид в ближайшем будущем. Во-вторых, это в принципе не так удобно, как расти в большой команде, где тебя могут и научить и подстраховать более опытные лиды.
Говорить о росте сеньора до тимлида в принципе не очень корректно, так как это уже разные направления развития – тут скорее перепрофилирование. Конечно, у сеньора есть набор soft skills, который применим и при работе тимлидом, но на мой взгляд это довольно разные вещи. Сеньор – это эксперт, а тимлид занимается принятием решений. Это разные области.

***

Не все готовы изучать новое сами и покорять вершины так быстро, к тому же опытным специалистам тоже иногда требуется помощь. Идти по пути наименьшего сопротивления и учиться у лучших можно на факультете «Ruby on Rails» образовательной онлайн-платформы GeekBrains. Выпускники курсов получают диплом о профессиональной переподготовке, электронный сертификат и гарантию трудоустройства.

01
Июн
2021

🗣 Путь в Java, или Зачем нужен ментор: интервью

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

Б.П.: Привет! Расскажи для наших читателей, чем ты сейчас занимаешься и где работаешь.

А.М.: Привет! Я сейчас занимаюсь разработкой middleware-сервисов одного крупного коммерческого банка России. В моих руках изменение всяких важных пользовательских данных вроде паспорта, номера телефона и кодового слова.

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

Б.П.: Не поделишься, о чем этот хобби-проект?

А.М.: Мы с женой хотим открыть зоогостиницу, в которой можно будет дистанционно следить и ухаживать за своим питомцем. Сам проект — полноценная CRM для управления бизнес-процессами в зоогостинице плюс интеграция с IoT-устройствами.

Б.П.: Какое у тебя образование? Как ты пришел в профессию?

А.М.: У меня высшее образование по специальности “Программная инженерия”, я получил диплом уже после того, как начал работать. В универе я лепил всякие поделки на С++ и Go, искал себя в разработке инди игр на UE и Unity.

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

Преподавал на курсах по С++ для школьников и студентов при универе, потому что единственное, что я умел это много разговаривать и чуть-чуть писать на плюсах. Но преподавание позволяло получать хоть какие-то деньги.

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

Б.П.: Почему ты выбрал Java? Как человек, который преподавал C++, не мог бы ты сравнить для новичков два этих языка?


А.М.: С++ суров, в нем не место мальчикам, только суровые бородатые мужчины. Java открыта всем и каждому, приятно улыбается каждому встречному и прощает отсутствие базы по Computer Science. Можно учиться многим вещам на практике, а потом уже узнавать о том, как же оно на самом деле работает внутри.

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

Б.П.: Нас с тобой свели Java Mentor, так что если ты не против, давай немного поговорим о них. Ты учился на курсе по системе оплаты после трудоустройства. Не было ли каких-то опасений на этот счет, когда поступал?

А.М.: Конечно были опасения, формат оплаты после трудоустройства не то, что не пробовал никто из знакомых о нем даже никто не слышал пару лет назад. У JM еще не было так много отзывов, да и по сути я был в числе тех, на ком этот формат тестировали. Мои опасения развеял Герман, он чертовски убедительно умеет доносить свои мысли. Да и договор мне показался не самым страшным.

Б.П.: Сколько длились курсы и что ты на них изучал? Почему выбрал именно их?

А.М.: Призываю сюда сотрудника JM, который бы с праведным гневом бросился объяснять, что это не курсы. Это персональный менторинг. Я учился быть универсальным солдатом энтерпрайза: Java, Spring, SQL, Git, Agile. Достаточно глубоко, чтобы свободно плавать в теме и учиться самому при необходимости в будущем, но без копаний в недрах технологий и фреймворков, чтобы уложиться плюс-минус за полгода.

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

Б.П.: Сколько часов в неделю уходило? Что было самым сложным?

А.М.: В неделю учебе уделял точно больше 20 часов, даже ближе к 30, наверное. У меня нет проблем с мотивацией, даже наоборот. И самым сложным было успевать (и не забывать) справляться с ежедневными делами: работа, учеба, быт.

Б.П.: Как ты оцениваешь уровень преподавания? Какие основные плюсы и минусы?

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

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

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

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

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

Б.П.: Как быстро нашел работу? Сколько было собеседований?

А.М.: Работу нашел довольно быстро. Собеседований прошел около 5-7. Согласился на не самое шикарное предложение в пользу работы в большой компании, которая занимается аутсорсом. Не сильно об этом жалею, потому что это позволило приобщиться к культуре разработки и быстро расти, принимая участие в разработке разных проектов.

Б.П.: Какие самые каверзные вопросы были на собеседованиях?

А.М.: С некоторых пор самые каверзные вопросы я сам задаю собеседующим. По большей части они касаются нюансов моей потенциальной работы на проекте. Что-то в духе: «Есть ли в команде свой саппорт, или мне придется самому с утра до ночи в логах с прода разбираться?»

Б.П.: Кстати, а если серьезно — на что стоит чаще обращать внимание Java-джуониром для подготовки к собеседованиям?

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

Б.П.: Как юридически оформлена постоплата курса? За какое время ты его оплатил?


А.М.: Юридически договор не сложный, на мой взгляд. Условия такие же простые, как о них изначально заявляют: процент от зарплаты при работе в IT в течение двух лет после обучения и успешного трудоустройства. Я, честно, не представляю как доказать в рамках договора, что ты прошел n собеседований и тебя никуда не взяли, не знаю случалось ли такое с кем-то, но это единственный момент, который меня в нем на самом деле смущал.

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

Б.П.: Поговорим о языке. Java всё ещё топ? Что думаешь о Kotlin и других современных альтернативах?

А.М.: Последнее время люблю писать на Kotlin, но если честно признаться: я далек от Kotlin-евангелистов и не использую его мощь на полную. Для меня это просто немногословная, удобная обертка на Java с кучей простых и понятных фич, которые хотелось бы видеть в Java (но их нет ): ). Очень жду, когда в Java завезут nullable-типы, extension’ы и аргументы по умолчанию.

Б.П.: Что посоветуешь почитать начинающему Java-разработчику?

А.М.: Для совсем начинающих я бы порекомендовал Шилдта, в его книгах грамотно структурирована информация. Мне когда-то отдельные главы помогли разобраться с исключениями, коллекциями и многопоточностью. В частности ответить на вопрос «Зачем?», потому что «Как?» я уже знал.

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

Раджпут Динеш. Spring. Все паттерны проектирования
Раджпут Динеш. Spring. Все паттерны проектирования

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

А.М.: Я бы стал джаваскриптизером. Иногда душа просит что-то красивое сделать на фронте, но как только я начинаю писать, то компилятор в голове, обученный на С и Java, с отвращением сигнализирует об отсутствии типов и здравого смысла. На этом мои потуги обычно заканчиваются 😀

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

А.М.: В работе использую то, что приходится. Большие дяди, которые делают бизнес, не очень любят новаторские идеи. От проекта к проекту технологии, конечно, разные, но в основном все около стека Spring, Webflux, Postgre, Mongo, Kafka, Redis.Я поклонник АОП, но мне не дают внедрять его где попало (и правильно, хе-хе), поэтому развлекаюсь исключительно для себя. Надеюсь, скоро явлю миру удобный АОП-стартер для интеграционного тестирования.

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

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

Б.П.: Напоследок, какие у тебя дальнейшие планы?

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

Б.П.: Спасибо за интервью! Могут ли читатели Библиотеки программиста сами задать вопросы? Не против ответить в комментариях?

А.М.: И вам спасибо за внимание. Конечно не против, жду ваших вопросов.

02
Апр
2021

🗣 45 русскоязычных подкастов для программистов

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

16
Мар
2021

👨‍🔧️ «Диплом ради диплома или галочки никому не нужен»

Считается, будто профессию тестировщика освоить относительно несложно. На самом деле стать высококлассным инженером по Quality Assurance нелегко: Любовь Попова рассказала нашему корреспонденту, почему из программирования она решила уйти в Q…

15
Мар
2021

☕ «Тот, кто приходит за деньгами либо для престижа, не выдерживает темпа»

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

23
Янв
2021

🗣️ Навыки и инструменты, которые пригодятся системному аналитику в 2021 году

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

27
Дек
2020

😢 Дорогостоящие ошибки: почему нам пришлось отказаться от Firebase

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

Статья публикуется в переводе, автор оригинального текста – Mohammad Faisa…

17
Окт
2020

📈 Четыре примера работы аналитиков: кейсы IT-компаний

Аналитики крупных компаний рассказали корреспонденту Proglib о самых интересных кейсах, над которыми им приходилось работать.

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

Иллюстрация с сайта pixabay.com
Иллюстрация с сайта pixabay.com

«Такое решение не имело аналогов на рынке»

О разработанной специалистами АО «Альфа-Банк» системы управления портфелями проектов рассказывает Алексей Лобзов, главный системный аналитик и выпускник университета «МИФИ» по специальности «Прикладная информатика».

Описание задачи

Наша команда внедряла систему управления портфелями проектов в ИТ-департаменте отечественной нефтяной компании. Заказчик предоставил описание процесса, в том числе методики ранжирования и выравнивания проектов относительно заданных ограничений. Ранее эти операции выполнялись с использованием нетривиальной модели, реализованной в файле Excel. Задача состояла в автоматизации процессов, причем решение должно было быть интуитивно понятным и удобным в использовании.

Этапы реализации

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

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

  • количества стартов проектов в промежуток времени;
  • объема платежей за единицу времени;
  • количества доступных специалистов.

Мы точно знали, что Microsoft Project (на тот момент версии 2013 года) имеет близкую к нашей задаче функцию распределения доступных ресурсов и трудовых затрат. Внедряемая система включала модуль календарного планирования на базе Microsoft Project Server, поэтому мы решили построить решение на движке Microsoft.

  1. Совместно с архитектором мы разработали сводную модель план-графиков проектов портфеля. В нее включались наиболее приоритетные проекты, попадающие в выделенный на исполнение лимит денежных средств;
  2. Затем провели тестирование и отладку модели, выставляя ограничения на даты стартов проектов, назначая затраты и трудовые ресурсы, устанавливая лимиты и выполняя выравнивание средствами Microsoft Project.

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

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

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

Такое решение по ранжированию и выравниванию проектов на тот момент не имело аналогов на рынке.

Выводы

Это внедрение было для меня ценным по нескольким причинам:

  1. Я глубоко погрузился в процессы управления портфелями проектов и получил уникальный опыт их автоматизации. На своей практике не вспомню столь масштабных задач в данной области;
  2. Удалось подтвердить важность анализа возможностей переиспользования существующих решений. Кто знает, сколько времени и ресурсов мы бы потратили на разработку аналогичного Microsoft Project движка;
  3. Участие в подобных проектах побуждает делиться знаниями с окружающими.

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

  1. Лобзов А.В. На что обратить внимание при балансировке портфеля и выборе проектов // Управление проектами и программами. — 2016. — No2. — С.138–143
  2. Лобзов А.В. Балансировка портфелей и выбор проектов при наличии альтернативных вариантов достижения стратегических целей.
Иллюстрация с сайта pixabay.com
Иллюстрация с сайта pixabay.com

Превратили платформу интерактивного телевидения «Ростелекома» в современный сервис Wink

О создании сервиса Wink рассказывает Константин Валеев, руководитель центра компетенций по системной аналитике в «Ростелеком Информационные Технологии». Константин окончил «Московский Институт Электроники и Математики», а затем аспирантуру и сейчас пишет диссертацию.

Описание задач и их решение

Нашей компании поручили развивать платформу интерактивного телевидения Ростелекома (сейчас это сервис Wink).

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

1. Провести анализ пользовательской части продукта;

2. Описать модель данных и сценарии использования;

3. Разобраться в архитектуре компонентов и их функциях;

4. Зафиксировать потоки данных.

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

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

1. Собирают и документируют требования бизнеса;

2. Анализируют, декомпозируют и детализируют их;

3. На основе требований продумывают потоки, модель и маппинг данных;

4. Вместе с командой дизайна проектируют UX;

5. Совместно с разработчиками проектируют и согласовывают API.

Выводы

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

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

Иллюстрация с сайта pixabay.com
Иллюстрация с сайта pixabay.com

Как сделать реверс-инжиниринг банковской системы с закрытым кодом и без документации

О проекте рассказывает старший аналитик компании Luxoft Анастасия Соболева. Анастасия окончила «Московский университет экономики, статистики и информатики» по специальности «Прикладная информатика в экономике». Ведет Telegram-канал Путь аналитика.

Описание задачи

Сейчас наша команда из 15 человек работает над проектом для крупного российского банка. Система поддерживает процессы фронт-офиса валютного дилинга. Также над проектом работает команда от бизнеса и ИТ-департамента банка.

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

Этапы реализации

Во время карантина нам нужно было провести реверс-инжиниринг одной крупной системы, которая использовалась заказчиком, и спроектировать перенос функциональности в новую. Сложность была в отсутствии документации, закрытом коде и доступе к просмотру интерфейса только через сотрудника (в условиях карантина это было еще и по звонку в Zoom: нельзя было самостоятельно кликать разные сценарии).

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

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

Выводы

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

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

Еще могу посоветовать для работы PlantUML – это инструмент для кодирования UML-диаграмм. В нем не нужно рисовать стрелочки и квадратики, вместо этого пишется несложный код с определением методов и объектов. Такой инструмент хорошо систематизирует мышление и заставляет думать как разработчик.

Иллюстрация с сайта pixabay.com
Иллюстрация с сайта pixabay.com

«Понимание, как все должно все работать, пришло после изучения сотен страниц текстов и десятков экранов интерфейса»

О создании решения SaaS по модели White Label рассказывает Ольга Крамарченко, проектный и продуктовый менеджер компании Winvestor. Она начинала путь в ИТ как бизнес-аналитик, а затем перешла в управление. Образование Ольга получила в «Ростовском государственном экономическом университете» на факультете «Компьютерных технологий и информационной безопасности».

Описание задачи

Наиболее интересный для меня кейс – переход от заказной разработки к продуктовой, а именно изучение финтех-рынка и работы инвестиционных и управляющих компаний. Мы делали личный кабинет для таких компаний и их клиентов.

Этапы реализации

  1. Тестирование гипотезы, что такой продукт необходим рынку;
  2. Разработка MVP;
  3. Выход в продакшн, активные продажи и внедрение новой функциональности;
  4. Фаза поддержки существующих клиентов, усовершенствование системы.

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

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

Выводы

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

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

***

Аналитикам приходится решать нетривиальные рабочие задачи и вырабатывать соответствующие навыки. Если вы только задумываетесь о карьере в этой отрасли, мы рекомендуем пройти обучение на факультете Системной и бизнес-аналитики в GeekBrains. Занятия ведут опытные преподаватели, а студенты за время обучения выполняют четыре проекта. Личный куратор помогает им быстро разобраться задачами, на решение которых в ином случае ушли бы недели. Успешно окончившие курс студенты получают диплом о профессиональной подготовке и помощь в трудоустройстве: год обучения в онлайн-академии эквивалентен году реальной работы.

01
Окт
2020

Инженер DevOps компании Wargaming Сергей Макаренко рассказывает о лучших технологиях, проектах, недостатках профессии и работе в крупной международной компании.

В предыдущих статьях о DevOps мы писали о том, Чем занимается DevOps-инженер? Обзор базовых практик и Как и зачем становиться DevOps-инженером. Другие публикации по DevOps доступны по ссылке: https://proglib.io/tag/DevOps.

В этом материале Сергей Макаренко (LinkedIn) рассказал о своем профессиональном пути.

Почему DevOps

Я учился в СПБГПУ на факультете технической кибернетики. Работал в разных отраслях: бизнес-консалтинге, IT-аутсорсинге, банковской и телевизионной сферах, телекоме, гемблинге, в индустрии компьютерных игр, в госкомпании.

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

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

О текущей работе

Изначально мне было интересно, как оно – в геймдеве? Поэтому я выбрал компанию Wargaming – это разработчик и издатель популярных компьютерных игр: World of Tanks, World of Tanks Blitz, World of Warships и многих других. Ради работы переехал в Беларусь. Компания помогла мне с релокацией: сопровождала процесс переезда на всех этапах.

Причина такого выбора – большая, известная и интересная в плане задач компания, поэтому я работаю на нее уже 2 года. Численность сотрудников Wargaming превышает 5000 человек в 17 филиалах по всему миру. Самый большой офис расположен в Минске, здесь трудится более 2200 человек. Мое подразделение называется Platform, мы производим общие для всех игр сервисы.

Иллюстрация с сайта pixabay.com
Иллюстрация с сайта pixabay.com

Кто такой инженер DevOps

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

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

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

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

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

О рабочем дне

Мой обычный день без дежурства выглядит примерно так:

  • Разбор того, что пришло за ночь: сообщений в почте и мессенджерах, сработавших триггеров и инцидентов (при этом инциденты, которые ночью были критичными, скорее всего уже были решены дежурным инженером);
  • Корректировка плана на день;
  • Stand-up митинг с проектной и/или структурной командой, частью которой я являюсь;
  • Решение различных задач согласно плана на день:
  1. Решение каких-либо проблем на стейджинг- или продакшн-окружениях с тем, чтобы они больше не повторялись;
  2. Улучшение процессов/инфраструктуры для различных систем и сервисов;
  3. Курирование в том или ином виде каких-либо проектов;
  • Различные встречи при их наличии;
  • Написание плана на следующий день.

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

Иллюстрация с сайта pixabay.com
Иллюстрация с сайта pixabay.com

О рабочих проектах и ошибках

В Wargaming я начинал с улучшения работы стейджинг-окружений и встраивания новых сервисов, которые были внедрены в существующую инфраструктуру.

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

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

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

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

Плюсы и минусы профессии DevOps-инженера

Из плюсов можно отметить, что данная профессия позволяет непрерывно развиваться и сразу видеть, какую пользу ты приносишь.

Из минусов – зачастую работа может быть сопряжена с большим количеством стрессов, но к этому со временем привыкаешь.

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

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

10 лучших технологий DevOps

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

CI/CD (Pipeline as Code)

Инфраструктура как код

Контейнеризация и оркестрация

Облачные сервисы

Observability и мониторинг

Service mesh

Централизованное логирование и трейсинг

API gateways

Feature toggle

Микросервисы и микрофронтенды

Полезные книги, курсы и каналы на YouTube

Книги, которые я рекомендую прочитать как опытным специалистам, так и новичкам:

  • Дженнифер Дэвис и Кэтрин Дэниелс «Философия DevOps. Искусство управления IT».
  • Джин Ким, Джордж Спаффорд, Кевин Бер «Проект “Феникс”. Роман о том, как DevOps меняет бизнес к лучшему».
  • Джин Ким, Патрик Дебуа, Джон Уиллис, Джез Хамбл «Руководство по DevOps».
  • Бетси Бейер, Дженнифер Петофф, Крис Джоунс «Site Reliability Engineering. Надежность и безотказность как в Google».

Об этих и других полезных для DevOps-специалистов книгах мы писали в материале – ТОП-10 книг из библиотеки специалиста DevOps.

Вдобавок могу посоветовать читать книги об операционной системе Linux и языках программирования.

Отчеты об индустрии DevOps:

От частной глобальной технологической компании ThoughtWorks(англ.)

От американской исследовательской компании DevOps Research and Assessment (DORA)(англ.)

Полезные Тelegram-каналы: devopsminsk и devops_deflope.

Каналы на YouTube с записями с различных конференций: CNCF, DevOpsDays, Ontico, Jugru.

***

DevOps – сложная и неоднозначная сфера. Судя по истории героя этой статьи, вам понадобится потратить немало времени, чтобы стать востребованным специалистом. Для освоения новой профессии или повышения квалификации есть и более легкие пути. К примеру, вы можете пройти курс DevOps от онлайн-университета GeekBrains.

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

25
Сен
2020

История Тима Хоппера – математика, который построил карьеру аналитика данных в сфере кибербезопасности.

Во вступительных публикациях серии мы писали о том, как можно изучить Data Science онлайн с нуля, а также о навыках, необходимых в профессии Data Scientist. В этом материале, подготовленном при поддержке Факультета Искусственного интеллекта онлайн-университета GeekBrains, мы перевели рассказ Тима Хоппера специалиста по анализу данных, разработчика программного обеспечения в области кибербезопасности и инженера машинного обучения. Тим изучал математику в колледже, а затем провел год в аспирантуре Университета Вирджинии. Сейчас он работает архитектором Data Science в DNT и ведет блог.

Перевод оригинального текста выполнен с сокращениями.

***

«Не было еще лучшего времени, чтобы стать математиком»

Во время моей учебы в колледже Business Week опубликовал статью, в которой говорилось: «не было еще лучшего времени, чтобы стать математиком». Тогда я видел огромное несоответствие между этим материалом и тем, чему меня учили на занятиях (а, значит, и теми, кого я считал математиками). Сталкиваясь с другими статьями, восхваляющими «век математиков», я все чаще задавался вопросом, знают ли их авторы, что на самом деле изучают студенты математических факультетов.

<a href="https://press.princeton.edu/sites/default/files/styles/hero_background/public/2019-09/SUB_Math_01_0.jpg?itok=dmWvu8Xm" target="_blank" rel="noopener noreferrer nofollow">Источник</a>
Источник

Небольшая предыстория обо мне

Пройденные мною в колледже курсы:

  • линейная алгебра;
  • дискретная математика;
  • дифференциальные уравнения (ОДУ и численные методы решения);
  • математическая статистика;
  • численные методы (линейное и квадратичное программирование);
  • общая алгебра;
  • теория чисел;
  • теория функций действительной переменной;
  • теория функций комплексной переменной;
  • общая топология.

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

Что такое Data Science?

Хотя моя текущая должность иногда и требует математических доказательств, я подозреваю, что это редкость среди специалистов по данным. Хотя проблема определения границ Data Science является трудной задачей (и я не буду пытаться ее здесь решать), кажется очевидным, что в моей учебной программе не хватало подготовки по многим областям науки о данных. Главными из них являются навыки программирования, практические аспекты работы со статистическими данными и опыт математического моделирования.

Программирование и инжиниринг

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

Работа в сфере Data Science требует даже большего, чем просто решать проблемы с использованием программного кода. Как писал Трей Коузи, многие должности требуют навыков разработки программного обеспечения и владения инструментами написания повторно используемого кода – систем контроля версий и методов тестирования программного обеспечения. Хотя я учился в колледже программированию, некоторые необходимые мне сейчас в работе навыки, долго оставались для меня неизвестными.

Прикладная статистика

Мое краткое знакомство с математической статистикой было полезным для освоения машинного обучения, но в моей математической подготовке отсутствовали курсы, связанные с постановкой статистического эксперимента. При этом многие команды Data Science занимаются причинно-следственным выводом, проектированием экспериментов и их анализом. Об этих необходимых для Data Scientist навыках на математическом факультете я ничего не узнал. Более того, до написания курсовой работы, я бы даже не смог дать определение машинному обучению, которое является краеугольным камнем науки о данных. Я бы сказал, что искусственный интеллект – это системы исполнения бизнес-правил на Lisp и Prolog.

Прикладная математика

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

Подозреваю, что многие люди, даже технические специалисты, не уверены в том, что академическая математика выходит за рамки студенческих вычислений. Математики в основном работают с абстрактными структурами, которые редко имеют какое-либо отношение к наборам данных. Джон Д. Кук сделал аналогичные наблюдения об ограничениях дисциплин чистой и прикладной математики, назвав себя «очень прикладным математиком». Под очень прикладной математикой он понимает «готовность к “грязной” работе, необходимой, чтобы увидеть, как математика используется на практике. Это касается не только самой математики, но и консалтинга, менеджмента, маркетинга и т. д.» Эти навыки явно отсутствуют в большинстве учебных программ, с которыми я знаком.

Математика → Data Science

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

<a href="https://digitalsocietyschool.org/wp/wp-content/uploads/2018/09/data_track_banner.png" target="_blank" rel="noopener noreferrer nofollow">Источник</a>
Источник

Первая причина

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

Вторая причина

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

Третья причина

Я получил степень бакалавра по информатике. Это обеспечило прочную основу, когда я решил серьезно заняться развитием навыков программирования в 2010 г. Хотя мое академическое знакомство с компьютерными науками не дало навыков инженера-программиста, я окончил колледж с четким пониманием основных структур данных, анализа алгоритмов, теории сложности и нескольких языков программирования.

Четвертая причина

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

Пятая причина

Ненасытный интерес к компьютерам и решению задач сыграл ключевую роль в моем карьерном успехе. Страстно желая освоить программирование, я изучил PHP и SQL еще в средней школе (кстати, чтобы сделать фан-сайт Толкиена). Получив небольшие домашние задания по решению дифференциальных уравнений в Mathematica, я купил и прочитал книгу по программированию в Mathematica. В колледже и аспирантуре я часто пытался (иногда это удавалось) писать программы для решения домашних заданий, которые, как ожидали профессора, должны были решаться вручную. Эта любознательность снова и снова доказывала свою ценность: мне приходилось осваивать новые навыки и решать технические проблемы всех видов. Я с удовольствием принимаюсь за решение новых задач как на работе, так и в свободное время, вот уже пятнадцать лет.

Шестая причина

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

И наконец

Благодаря четырем с половиной годам участия в сообществе Data Science в Twitter, у меня была возможность общаться с одними из самых ярких умов в сфере Data Science (большинство этих людей я никогда не встречал лично), и построить социальную сеть, которая помогла мне найти текущую работу. Однако я больше всего хочу подчеркнуть педагогическую ценность твиттера. Каждый день я узнаю о выпуске новых программных инструментов, новых постах в блогах и размышлениях моих героев Data Science. Твиттер помогает понять, какие посты стоят времени, и благодаря ему я знаю о Theano, Scalding и dplyr.

Заключение

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

Если вы все еще студент, у вас есть прекрасная возможность взять под контроль свой карьерный путь. Подумайте о занятиях по информатике (например, структуры данных, алгоритмы, разработка программного обеспечения, машинное обучение) и статистике (экспериментальный дизайн, анализ данных, Data Mining). Ваши математические знания станут востребованы при сочетании таких навыков, как программирование и машинное обучение. Не позволяйте курсовой работе быть пределом вашего образования. Так много еще предстоит узнать!

***

Желающим освоить профессию аналитика данных мы рекомендуем курс Data Science Факультета Искусственного интеллекта. Программа включает основательную математическую подготовку: введение в математический анализ, теорию вероятностей и математическую статистику, линейную алгебру и алгоритмы анализа данных. А также программирование и навыки практической работы в команде. Кроме того, онлайн-университет GeekBrains позволяет не только получить студентам необходимые знания, но и устроиться на работу.

23
Сен
2020

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

Ранее мы уже писали о том, как стать системным аналитиком, а также о различиях системного и бизнес-аналитика. Продолжаем разбираться в профессии вместе с экспертом из отрасли, Ярославом Атроховым (LinkedIn). Интервью подготовлено при поддержке факультета Системной и бизнес-аналитики онлайн-университета GeekBrains.

***

Библиотека программиста: Добрый день, Ярослав! Расскажите, пожалуйста, для начала, как вы пришли в профессию? Где проходили обучение системному анализу?

Ярослав Атрохов: Общий опыт моей работы 10 лет, в IT уже 5 лет. Некоторое время я работал руководителем проектов. Эти проекты были на 40-100% связаны с IT. Со временем захотелось глубже уйти в технические аспекты информационных систем.

Я получил дополнительное образование в Высшей Школе Экономики по направлению бизнес-информатики. Проходил профильные курсы для подготовки к сертификации IIBA и PMI.

Б.П.: Как вы определите термин «системный аналитик»‎?

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

Б.П.: В чём разница между бизнес-аналитиком и системным аналитиком?

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

Б.П.: В чём суть работы системного аналитика, какие задачи он решает?

Я.А.: Если говорить упрощённо, то системный аналитик это своего рода переводчик с языка бизнеса на язык, понятный разработчикам. Однако обязанности системных аналитиков сильно разнятся.

Б.П.: Что входит в ваши обязанности?

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

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

Б.П.: Можно ли утверждать, что системный аналитик – это человек, который берёт на себя обязанности недостающей роли в команде или компании?

Я.А.: В команде любая недостающая роль распределяется между всеми. Системный аналитик, наверное, в этом наиболее универсален.

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

Б.П.: Можете объяснить, что значит «спроектировать решение» со стороны системного аналитика?

Я.А.: Чаще всего я имею дело не с разработкой с нуля, а с доработкой систем, поэтому под «спроектировать решение» имею в виду изменения в текущем состоянии приложения. Это изменения в базе данных и интерфейсах, причём больше с пользовательской стороны. Изменения, которые будут произведены в системе – прерогатива архитектора системы, руководителя команды разработчиков, им я предлагаю своё решение, а не диктую его. Впоследствии разработчики уточняют конкретную реализацию исходя из принятых в системе правил разработки.

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

Я.А.: Цена ошибки всегда велика, если сравнивать её с масштабом проекта. Мы редко меняем «цвет кнопки» просто так – у всего есть своя цель и стоимость. Аналитик обычно ближе всех к источнику требований – заказчику, он получает больше информации, и лучше других должен понимать ожидания заказчика, а значит, повлиять на разработчика, чтобы эти ожидания были исполнены наилучшим образом.

Б.П.: Какие инструменты используете в работе?

Я.А.: Некоторые из программ я использую раз в квартал, некоторые каждый день. Могу выделить Jira и Confluence, незаменимые MS Word, Excel и Notepad++, программы для прототипирования интерфейсов, как Figma, Axure RP, Pencil и работа с SQL-запросами.

Так как я работаю над веб-приложением, инструментами можно считать и несколько рабочих браузеров. Ещё пользуюсь Skype, сервисами для рисования диаграмм, например, Cawemo, diagrams.net, программами для тестирования веб-сервисов, как SoapUI, Postman.

Б.П.: К чему нужно быть готовым в профессии?

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

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

Я.А.: Боюсь, что здесь я скован соглашениями с работодателем и мне не следует распространяться на эти темы. Мои любимые задачи – когда нужно «на вчера» и круто. Люблю экстремальные ситуации, но постоянно в них бывать не хотелось бы.

Б.П.: Возможно, расскажете о сложностях, которые возникали по мере внедрения ваших проектов?

Я.А.: Самые частые сложности – непродуманные решения или изменение ситуации, нежелание заказчика разобраться и довериться. Порой нужно отказаться от большого количества выполненной работы, чтобы верно выполнить задачу. Иногда требуется признавать и исправлять свои ошибки, цена которых очень велика. В таких случаях помогает команда. Команда – это всё.

Б.П.: Расскажите об особенностях взаимодействия с заказчиком и исполнителями. Какие методы используете?

Я.А.: Работа с людьми – это навык коммуникации, и в работе системного аналитика он нужен постоянно. Общение один на один, общение в рабочих группах, во время карантина – онлайн-встречи, переписка в почте и мессенджерах, Service desk (программа для техподдержки, куда обращаются пользователи), таск-трекеры и так далее.

Б.П.: Каким бэкграундом нужно обладать, чтобы стать системным аналитиком?

Я.А.: Желательно – техническим, хотя масса системных аналитиков имеют и другой багаж знаний.

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

Б.П.: Какие есть плюсы и минусы в профессии системного аналитика?

Я.А.: Я очень люблю свою работу. Минусы чаще всего люди сами создают в своей голове. Плюсы тоже очень субъективны, но из них я бы выделил: высокий спрос на специалистов, высокий уровень окружения – можно развиваться.

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

Б.П.: Что должен знать и уметь хороший аналитик?

Я.А.: Это сильно зависит от команды. Аналитик должен дополнять её и помогать команде быть эффективной.

Б.П.: Как прокачиваете свои навыки?

Я.А.: Учусь и учу. Приходится много читать, огромная польза от обучающих видео на YouTube, но большую часть информации, конечно, лучше узнавать на практике.

Из профильной литературы могу посоветовать SWEBOK, для системных аналитиков это единственная профильная книга. Есть также BABOK (для бизнес-аналитиков), но в ней не выделяется роль именно системного аналитика. Советую читать профильную литературу о тех технологиях, которые используются в конкретном проекте.

Б.П.: Что посоветуете новичкам в профессии?

Я.А.: Учиться и не бояться признавать своё незнание, быть дружелюбными и хорошими собеседниками – тогда информация и знания будут сами к вам идти.

***

Обучиться описанным в интервью навыкам можно на факультете Системной и бизнес-аналитики в GeekBrains. Благодаря объёмной и содержательной программе обучения вы сможете получить все необходимые для работы знания. Изучить организацию процесса разработки и узнать, как правильно написать техническое задание, понять принципы описания архитектур систем, оптимизации и интеграции в них новых решений.

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

01
Сен
2020

Для типичного айтишника главный мотив работы – ежемесячная оплата труда. Владимир Мельник рассматривает финансовую составляющую мотивации в ИТ и объясняет, почему, по его мнению, вся эта махина движется «не туда».

19
Авг
2020

Библиотека программиста продолжает публикации диалогов с представителями IT-индустрии. В этом интервью поговорили с С#-разработчиком из Рязани Романом Китаром об удаленной работе во время пандемии, книгах, учебных проектах и IT-мероприятиях…

24
Мар
2020

«Ни в одном месте не проучился дольше года». Интервью с Java-разработчиком

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

Никто не охарактеризует университет или другую образовательную площадку лучше обучавшихся выпускников. Библиотека программиста следит за тем, чтобы рекомендуемые курсы приносили читателям отдачу. Мы поговорили с Сергеем Алексеевым (страница вк) – выпускником курса Java Mentor.

Б.П.: Привет! Расскажи для начала, чем сейчас занимаешься, где работаешь?

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

Б.П.: Какой у тебя был опыт в программировании до начала курса?

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

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

Поступил в один колледж и два вуза, но попытки получить высшее образование кончились крахом – ни в одном месте не проучился дольше года. Две причины: 1) больше внимания и часов уделялось нетехническим предметам, чем программированию, 2) нельзя использовать функции, которых нет в методичках 1988 года.

Б.П.: Почему выбрал курс Java Mentor и сколько месяцев он занял?

С.А.: В течение года видел рекламу Java Mentor в интернете, переходил на сайт, но после непродолжительного времени закрывал.

Написание дешевых программок перестало приносить удовольствия – решил устроиться стажером в Райффайзенбанк. Но там в работе отказали, потому что… «Я не знаю, что такое абстрактный класс». Понял, что если не найду того, кто научит, всю жизнь прострадаю ерундой. Зашёл на сайт JM, оставил заявку на обратную связь. Оказалось, что учиться можно сколько нужно, хоть год, а оплатить, когда уже устроюсь. Схема удивила – неделю искал подвох. Не нашёл – сообщил, что хочу учиться. Скинули тестовое задание, которое еле-еле выполнил. Три дня подряд писал код, но справился.

Обучение началось 10 августа, а 22 ноября я прошел собеседование на работу.

Б.П.: В чем для тебя преимущество формата?

С.А.: Заинтересованность в качестве твоих знаний. Если ментор видит, что ты не понял, дальше пройти не получится. Прогоняй материал, пока не разберешься – никакой халтуры. «Грызть гранит» придётся тебе самому, но если уперся лбом в стену, менторы помогут выйти из тупика, не терять много времени на одном вопросе.

Б.П.: Сколько часов в неделю уходило? Были жесткие дедлайны?

С.А.: Жестких дедлайнов не было. Но я свел до минимума подработки и взялся за учебу с фанатизмом, уделял по 10–12 часов в день, и сам создал сложности – игнорировал ментора, когда «зависал». Не люблю просить помощи.

В результате перегорел, забросил учебу и две недели не мог ничего делать, смотрел в ковёр на стене. Узнав о моем состоянии, Герман (основатель проекта Java Mentor Герман Севостьянов – прим. редактора) позвонил, нашел слова поддержки и помог заново разжечь интерес. Я благодарен ему за это.

Б.П.: Как ты оцениваешь уровень преподавания? Какие основные плюсы и минусы?

С.А.: JM – лучшее, с чем я сталкивался, но не лучшее, на что они способны. Ребята работают над собой, поэтому те, кто будут учиться после меня, попадут в лучшие условия. Компания хорошо принимает критику и предложения.

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

Б.П.: На сайте говорится про неограниченное общение с ментором 6 дней в неделю. Было ли комфортно общаться с наставником?

С.А.: Иногда два человека не сходятся темпераментами. Так произошло с первым ментором. Когда стало понятно, что я способен на лучшие результаты с другим наставником, Герман сменил ментора.

Б.П.: Чему был посвящён командный проект?

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


Б.П.: Как организована работа в команде?

С.А.: Общались в Slack. Несколько человек плюс ментор в роли заказчика. Задачи ставили сами, наставник мониторил прогресс и направлял.

Б.П.: Что с гарантиями по трудоустройству? Оправдались ли ожидания?

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

Б.П.: Сколько собеседований пришлось пройти до устройства на работу после обучения?

С.А.: Первое собеседование – первое приглашение на работу.

Б.П.: Какой вопрос с собеседования больше всего запомнился?

С.А.: Сказал, что хочу зарплату в x рублей. «Тебе всего 20 лет. Куда ты будешь тратить такие деньги? Возьмем, но будем платить х/2». Теперь получаю больше, чем запросил на собеседовании.


Б.П.: Насколько знания курса соответствуют работе? Сколько заняло дополнительное обучение?

С.А.: В каждой работе есть своя специфика. Например, первый месяц текущей работы я посвятил лекциям по экономике.

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

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

Б.П.: Какие планы?

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

Б.П.: Спасибо за интервью! Могут ли читатели Библиотеки программиста сами задать вопросы? Не против ответить в комментариях?

С.А.: Да, конечно! Пишите – буду рад ответить. Интересно пообщаться с людьми, которые хотят в IT, но не знают с чего начать или боятся. Вы убедитесь, что я живой человек, а это не рекламная кампания.

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

24
Мар
2020

«Ни в одном месте не проучился дольше года». Интервью с Java-разработчиком

Взяли интервью у парня, ставшего Senior Java Developer в 21 год (!), узнали его поучительную историю. В комментариях под постом вы можете задать ему вопрос лично.

Никто не охарак…

15
Янв
2020

Опыт разработки: почему мы пишем инфраструктуру машинного обучения на Go, а не на Python

Разработчик Cortex Калеб Кайзер делится соображениями о преимуществах применения Go для инфраструктурных решений в ML-проектах и о том, как два языка могут дополнять друг друга.

Python – самый популярный яз…

14
Янв
2020

«Старое железо»: компьютер, который отказывается умирать — FACOM 128B

«Время жизни» технологий сократилось — смартфоны можно менять хоть каждый год. Но пока еще остается оборудование, которое работает на протяжении десятилетий. Одна из таких систем — японский компьютер FACOM 128B, введенный в эксплуатацию в 1…