Category: Истории

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…

21
Сен
2018

Опыт разработчика: как получить 15600$ от Google за найденные баги

Пересказываем историю разработчика, который обнаружил баги в баг-трекер Google и смог получить значительную сумму за уведомление об их наличии. Вы когда-нибудь слышали про Google Issue Tracker? Вряд ли, если вы не находитесь в кругах, близких к разработчикам Google. Я и сам не знал о нём, пока не обратил внимание, что для моего отчёта об уязвимости была […]

Запись Опыт разработчика: как получить 15600$ от Google за найденные баги впервые появилась Библиотека программиста.

26
Июл
2018

5 столпов программирования, с которыми вы точно освоите азы

5 столпов программирования, с которыми вы точно освоите азыАвтор заметки имеет большой стаж обучения программированию. Он рассказывает про 5 столпов программирования, которые помогут освоить азы. Автор выделил 5 столпов программирования, на которые должна опираться эффективная программа обучения. Эти азы помогут новичку освоить необходимую для успешного развития базу. Столп № 1: разработка через тестирование Разработка через тестирование или TDD (от англ. test driven development) […]

Запись 5 столпов программирования, с которыми вы точно освоите азы впервые появилась Библиотека программиста.

17
Июл
2018

Почему вы никогда не научитесь фронтэнд-разработке

Почему вы никогда не научитесь фронтэнд-разработкеПеревод заметки Муна Мохаммед, адаптированный к нашей реальности. Автор рассказывает о фронтэнд-разработке и сложностях ее освоения. Спойлер: разработке невозможно научиться раз и навсегда. Учиться придется всю жизнь. «Петя Пяточкин прошел два курса на FreeCodeCamp, после которых устроился на должность фронтэнд-разработчика». Подобные объявления на YouTube, в соцсетях и в «Яндексе» появляются регулярно. В пабликах и на […]

Запись Почему вы никогда не научитесь фронтэнд-разработке впервые появилась Библиотека программиста.

29
Апр
2018

Как IT-специалисту зарабатывать 2 миллиона долларов

Пока планета испытывает недостаток в профессионалах в отрасли искусственного интеллекта, любому IT-специалисту можно пробовать вливаться в их ряды. Из Силиконовой Долины в Сан-Франциско пришла интересная информация об огромных зарплатах и бонусах специалистов в области искусственного интеллекта. Некая компания OpenAI поделилась с общественностью данными о нескольких своих сотрудниках. Топовый исследователь, Илья Суцкевер, получил больше 1,9 миллиона […]

Запись Как IT-специалисту зарабатывать 2 миллиона долларов впервые появилась Библиотека программиста.

04
Ноя
2017

Объяснение современного JavaScript для динозавров

современного JavaScriptСтатья помещает вас в хронологию развития JavaScript, от самого простого сайта до современного положения дел в области frontend и современного JavaScript в частности. Изучение современного JavaScript, является довольно трудной задачей, если вы не следили за его историей развития. Экосистема постоянно растет и изменяется настолько стремительно, что трудно понять те проблемы, которые разработчики пытаются разрешить с […]

Запись Объяснение современного JavaScript для динозавров впервые появилась Библиотека программиста.

01
Ноя
2017

5 собеседований в топовых компаниях и 5 предложений о работе

работе5 дней я проходил собеседования в LinkedIn, Salesforce Einstein, Google, Airbnb, и Facebook и получил 5 предложений о работе. Это был невероятный опыт, и я очень счастлив, что мои труды оправдали себя. Поэтому я решил написать что-то об этом. Я расскажу, как я готовился, а также поделюсь впечатлениями о собеседованиях и самих компаниях. Как всё началось […]

Запись 5 собеседований в топовых компаниях и 5 предложений о работе впервые появилась Библиотека программиста.

26
Окт
2017

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

webПривет! Надеюсь, тебе понравился новый мир web-разработки. Он сильно отличается от мира 2007 года. Cовет: если вы только что получили ипотеку, отмените ее. Мы рады, что тебя все еще интересуют компьютеры! Сегодня у нас их гораздо больше, чем 10 лет назад. Мы носим компьютеры на наших запястьях, держим их в карманах, в холодильниках и чайниках. […]

Запись Как рассказать историю десятилетия веб-разработки путешественнику во времени впервые появилась Библиотека программиста.

12
Окт
2017

Как стать архитектором ПО

архитектором ПОСтатья посвящена этапам становления архитектором ПО. Первая из серии статей, посвященных этой тематике. Начни с неё и может ты захочешь пройти этот путь! Есть ли жизнь после 45 Вы когда-нибудь задумывались над тем, какие возможности карьерного роста есть у разработчика? Какие направления для роста открыты? А главное, что случается с разработчиками старше 45 лет? Вот […]

Запись Как стать архитектором ПО впервые появилась Библиотека программиста.

18
Июл
2017

Делаем стримы кодинга: чему я смогу научиться?

Мы перевели для вас пост Сьюзан Хинтон, которая работает в Microsoft. В нем она поделилась опытом, который приобрела после года стрима кодинга на Twitch. Автор начала стримить в прошлом июле. Вместо игр, которыми занимается большинство стримеров на Твитч, она хотела делать трансляции работы с открытым исходным кодом, которым она занималась в свободное время. Разработчик работала […]

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