<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/">
  <channel>
    <language>ru</language>
    <title>Ответы экспертов</title>
    <description>Наши эксперты отвечают на все самые распространенные вопросы, приходящие от наших читателей</description>
    <link>https://tproger.ru/experts</link>
    <atom:link href="https://tproger.ru/experts/feed" rel="self" type="application/rss+xml"/>
    <lastBuildDate>Sat, 26 Sep 2026 12:55:07 GMT</lastBuildDate>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>12</sy:updateFrequency>
    <image>
      <title>Ответы экспертов</title>
      <link>https://tproger.ru</link>
      <url>https://tproger.ru/apple-touch-icon.png</url>
    </image>
    <item>
      <title>Что загадывать программисту в новогоднюю ночь — мечтают эксперты</title>
      <link>https://tproger.ru/experts/new-year-wishes</link>
      <comments>https://tproger.ru/experts/new-year-wishes?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Никита Прияцелюк]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/experts/new-year-wishes</guid>
      <description><![CDATA[<p>А что вы, как разработчик, загадаете в новогоднюю ночь? Давайте помечтаем вместе, ведь на носу Новый 2023 год!</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/experts/new-year-wishes">Что загадывать программисту в новогоднюю ночь — мечтают эксперты</a>»</p>]]></description>
      <category><![CDATA[Новый Год]]></category>
      <category><![CDATA[Ответы экспертов]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Sat, 31 Dec 2022 10:00:17 GMT</pubDate>
      <content:encoded><![CDATA[<p>Все люди мечтают, и программисты — не исключение. Кто-то хочет, чтобы перестали хейтить PHP, кто-то мечтает, чтобы компилятор исправлял ошибки самостоятельно, а кто-то хочет, чтобы вышла новая версия любимой IDE. Мы поинтересовались у экспертов, что они посоветуют загадать нашим читателям, и о чём мечтают сами.</p>]]></content:encoded>
    </item>
    <item>
      <title>Горящий ИТ-проект: искореняем дедлайны</title>
      <link>https://tproger.ru/experts/it-deadline</link>
      <comments>https://tproger.ru/experts/it-deadline?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Марина Александровна]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/experts/it-deadline</guid>
      <description><![CDATA[<p>Кажется, что бороться с дедлайнами в IT — всё равно, что сражаться с ветряными мельницами. И всё же стоит прислушаться к нашим советам.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/experts/it-deadline">Горящий ИТ-проект: искореняем дедлайны</a>»</p>]]></description>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[Советы]]></category>
      <category><![CDATA[Ответы экспертов]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 08 Sep 2022 11:22:41 GMT</pubDate>
      <content:encoded><![CDATA[<p>В IT дедлайны так же распространены, как и в других сферах, но обладают своей спецификой.</p><p>Собрали best practices по искоренению дедлайнов от ведущих айтишников, а также приложили инструменты для грамотного тайм-менеджмента.</p>]]></content:encoded>
    </item>
    <item>
      <title>Как быть с коллегой, который запарывает ваш проект</title>
      <link>https://tproger.ru/experts/kak-rabotat-w-komande-programistow</link>
      <comments>https://tproger.ru/experts/kak-rabotat-w-komande-programistow?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Марина Александровна]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/experts/kak-rabotat-w-komande-programistow</guid>
      <description><![CDATA[<p>Нас учат работе с Git, Agile, ретроспективам, но не учат главному: как работать в команде, где один из разработчиков тянет проект на дно?</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/experts/kak-rabotat-w-komande-programistow">Как быть с коллегой, который запарывает ваш проект</a>»</p>]]></description>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[Советы]]></category>
      <category><![CDATA[Карьера]]></category>
      <category><![CDATA[Управление проектами]]></category>
      <category><![CDATA[Soft Skills]]></category>
      <category><![CDATA[Ответы экспертов]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 23 Aug 2022 12:58:59 GMT</pubDate>
      <content:encoded><![CDATA[<p>Как работать в команде, если один из программистов плодит баги и люто дедлайнит? Первая мысль — бросить проект или пожаловаться на коллегу руководству. Но давайте будем рациональны и последовательны.</p><p>О своих кейсах и решениях проблемы рассказали опытные разработчики.</p>]]></content:encoded>
    </item>
    <item>
      <title>Что случится с Джуном в кресле Сеньора?</title>
      <link>https://tproger.ru/experts/chto-sluchitsja-s-junior-v-kresle-senior</link>
      <comments>https://tproger.ru/experts/chto-sluchitsja-s-junior-v-kresle-senior?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Марина Александровна]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/experts/chto-sluchitsja-s-junior-v-kresle-senior</guid>
      <description><![CDATA[<p>Давайте так: вселенная не схлопнется, но ряд проблем точно свалится на Junior-программиста, который решил скосплеить Сеньора. И вот каких.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/experts/chto-sluchitsja-s-junior-v-kresle-senior">Что случится с Джуном в кресле Сеньора?</a>»</p>]]></description>
      <category><![CDATA[Для начинающих]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[Карьера]]></category>
      <category><![CDATA[Ответы экспертов]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 09 Aug 2022 11:29:33 GMT</pubDate>
      <content:encoded><![CDATA[<p>Если Junior занял место Senior-разработчика без спроса, то случится увольнение. Вот и отсекли один сценарий.</p><p>А теперь серьёзно. Многие младшие разработчики спят и видят, как стремительно делают карьеру, быстро поднимаясь по лесенке Джуниор-Мидл-Сеньор-Лид. Но не всегда отдают себе отчёт в знаниях, навыках и зонах ответственности. Поговорим о том, с чем столкнётся среднестатистический программист Джуниор на позиции Сеньор программиста, чтобы   «младшенькие»   точно знали, к чему готовиться.</p><h2>Вчём разница между JuniorиSenior?</h2><p>В плане знаний языка и другой теории, разницы между джуном и сеньором может и не быть. А вот практические навыки, опыт применения своих знаний при решении различных рабочих задач у джуниоров могут полностью отсутствовать. Поэтому  джуниору ставится задача и даются подробные объяснения, как её нужно сделать. Результаты работы джуна также проверяются более опытными коллегами: сеньор-программистом или тимлидом.</p><p>Как правило, задача проходит несколько итераций, в ходе которых джун переписывает и улучшает свой код. Когда разработчик-джун научится работать самостоятельно, он может претендовать на переход в мидлы. Работу мидл-специалистов уже не нужно контролировать, но они всё ещё нуждаются в объяснениях, как сделать ту или иную задачу.</p><p>Сеньор-разработчик отлично разбирается в своей части проекта. Он понимает, что и почему нужно делать в данный момент, видит ошибки и знает, как их можно исправить. В отличие от джуна, он умеет общаться с коллегами, объяснить им, что, как и зачем нужно делать в проекте. Словом, сеньор работает на высоком уровне абстракции и видит всю картину в целом.</p><h2>Зоныответственности JuniorиSeniorразработчиков</h2><p>Задача джуна — писать код, а задачи сеньора — всё остальное, связанное с реализацией проекта. Сеньор помогает коллегам и может руководить работой подразделения. Он должен уметь решать все возникающие перед командой задачи, выбирать подходы и понимать, как будет реализован конкретный этап проекта.</p><p>Как правило, джун ответственен за небольшие части функционала, а сеньор может отвечать за весь продукт.</p><h2>Что запорет Джун, сидя в кресле Сеньора?</h2><p>Из-за отсутствия опыта джун запорет всё, что можно запороть. Просто потому, что не знает, где именно ямы на бильярдном столе. Код самостоятельно джун писать не умеет, проекта глубоко не знает, командами управлять не может. Поэтому с одинаковой вероятностью он провалит любой сектор ответственности сеньор-программиста.</p><p>Отличие в мышлении и представлении того, как всё устроено:</p><ul><li>Junior, скорее, работает над локальной задачей, его/её знания часто не позволяют использовать тот функционал который находится в библиотеках проекта.</li><li>Джуны нередко реализовывают функциональность с излишним дублированием кода, зачастую выбирают неподходящую структуру данных. Взаимодействие с другими частями проекта или с другими проектными решениями вызывают затруднения.</li><li>Коммуникация джуниора может хромать, так как присутствует неуверенность в том, когда и что нужно спрашивать, чтобы в каком-то смысле не показывать неполноту своих знаний.</li></ul><p>Junior больше сосредоточен на выполнении своих задач, часто работает над исправлением дефектов, мало влияет на развитие проекта, больше коммуницирует с другими разработчиками.</p><p>Senior же способен самостоятельно выполнять задания, помогает менее опытным сотрудникам, способен проанализировать задачу и предоставить варианты решения с развёрнутым выводом преимуществ и недостатков каждого из решений.</p><p>Прежде чем обсуждать разницу между должностями, стоит взять в расчёт, что от компании к компании понятие «Senior» может сильно отличаться. Если речь о небольшой компании, где стандарты и требования разработки на невысоком уровне, то, по сути, Junior может быть на позиции Middle или даже Senior. Но если речь о компании другого уровня, например Yandex, то таких прецедентов там не допускают.</p><p>У меня был опыт, когда я после получения диплома и переезда в Москву устроился на позицию Senior, хотя до этого работал на позиции Junior. Получилось так из-за того, что эта компания была интегратором и завышала должности разработчикам, чтобы продать их услуги по более выгодной цене. Senior разработчиками же, по факту, являлись люди уровня архитектора.</p><h2>Главные отличия позиций</h2><p>Если рассмотреть вопрос на уровне мирового рынка, то разница существенная. Junior   —   это такой же разработчик, как и Senior: это не стажёр, а человек, который может выполнять ту же работу, но с другой эффективностью. Также у него нет годов опыта и ответов на многие вопросы, из-за чего постоянно нужно корректировать работу и помогать ему разобраться в общепринятых практиках.</p><h2>Зоны ответственности Junior и Senior программистов</h2><p>Зоны ответственности Junior и Senior отличаются гораздо сильнее, чем навыки. Обычно Senior решает архитектурные вопросы, берёт на себя переговоры и декомпозирует, распределяет работу. Junior же занимается задачей и постоянным самообразованием.</p><h2>Что случится с Джуном на месте Сеньора?</h2><p>Если предположить, что Junior оказался в кресле Senior, то с огромной вероятностью упадёт эффективность всей команды, так как коммуникация, переговоры не будут проходить столь эффективно. Также замысловатые технические задачи вряд ли будут выполнены корректно, и это повлечёт за собой проблемы. В целом, такая смена кресел происходит редко, и если происходит, то с супервизией от старших коллег.</p>]]></content:encoded>
    </item>
    <item>
      <title>За голову идеального IT-работодателя: где водится и как поймать?</title>
      <link>https://tproger.ru/experts/za-golovu-idealnogo-it-rabotodatelja-gde-voditsja-i-kak-pojmat</link>
      <comments>https://tproger.ru/experts/za-golovu-idealnogo-it-rabotodatelja-gde-voditsja-i-kak-pojmat?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Марина Александровна]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/experts/za-golovu-idealnogo-it-rabotodatelja-gde-voditsja-i-kak-pojmat</guid>
      <description><![CDATA[<p>Найти лучшего работодателя не так-то просто, особенно в IT. Составили схему по поиску и поимке, а также поделились успешными кейсами.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/experts/za-golovu-idealnogo-it-rabotodatelja-gde-voditsja-i-kak-pojmat">За голову идеального IT-работодателя: где водится и как поймать?</a>»</p>]]></description>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[Карьера]]></category>
      <category><![CDATA[Ответы экспертов]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 03 Aug 2022 09:30:58 GMT</pubDate>
      <content:encoded><![CDATA[<p>Первый идеальный работодатель в ИТ — как глоток свежего воздуха: шикарные условия, высокая з/п + бонусы, соцпакет и другие плюшки. На такую IT-компанию работается и приятно, и продуктивно.</p><p>Видавшие разных ИТ-работодателей эксперты поделились своими кейсами и дали дельные советы по поиску того самого бриллианта — компании, в которой захочется осесть.</p>]]></content:encoded>
    </item>
    <item>
      <title>100 первых дней Джуна: как не облажаться</title>
      <link>https://tproger.ru/experts/100-dnej-na-pozicii-junior</link>
      <comments>https://tproger.ru/experts/100-dnej-na-pozicii-junior?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Марина Александровна]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/experts/100-dnej-na-pozicii-junior</guid>
      <description><![CDATA[<p>Junior-позиция — это лишь начало: впереди испытания технологиями, коллективом и руководством. Рассказываем, к чему и как готовиться.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/experts/100-dnej-na-pozicii-junior">100 первых дней Джуна: как не облажаться</a>»</p>]]></description>
      <category><![CDATA[Для начинающих]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[Карьера]]></category>
      <category><![CDATA[Ответы экспертов]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 27 Jul 2022 12:46:30 GMT</pubDate>
      <content:encoded><![CDATA[<p>Итак, вы добились долгожданной позиции Junior-разработчика. Что дальше? А дальше вас ждёт кипа работы, которая точно не волк и в лес убегать не намерена. Джун должен не только осваивать новые технологии, но и успешно интегрироваться в команду.</p><p>Мы узнали и делимся с вами, как заслужить доверие руководства на Junior-позиции в сжатые сроки.</p>]]></content:encoded>
    </item>
    <item>
      <title>Топ-9 стран для переезда айтишника: советы и Telegram-чаты для эмигрантов</title>
      <link>https://tproger.ru/experts/9-stran-dlja-relokacii-it-specialista</link>
      <comments>https://tproger.ru/experts/9-stran-dlja-relokacii-it-specialista?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Марина Александровна]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/experts/9-stran-dlja-relokacii-it-specialista</guid>
      <description><![CDATA[<p>Переезд для ИТ-специалиста — не проблема, если заранее изучены все варианты. Держите 9 популярных среди айтишников стран для релокейта.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/experts/9-stran-dlja-relokacii-it-specialista">Топ-9 стран для переезда айтишника: советы и Telegram-чаты для эмигрантов</a>»</p>]]></description>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[Карьера]]></category>
      <category><![CDATA[Релокация]]></category>
      <category><![CDATA[Ответы экспертов]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 06 Jul 2022 07:33:17 GMT</pubDate>
      <content:encoded><![CDATA[<p>Чтобы релокация IT-специалиста прошла мягко и безболезненно, сперва надо собрать максимум информации: куда, почему именно в эту страну и к кому обратиться за помощью в случае чего. Отвечаем по порядку.</p><h2>Выбор страны: мнение экспертов</h2><p>Мы опросили экспертов, которые не понаслышке знакомы с нюансами переезда, и вот какие страны они назвали наиболее оптимальными для переезда ИТ-специалиста.</p><h2>1. Турция</h2><p>Для самозанятых и основателей оффшорных компаний Турция предлагает самый низкий уровень затрат на проживание.</p><ol><li>Потребительские цены с учётом аренды в Анталии на 60,83% ниже, чем в Москве.</li><li>Цены на аренду в Анталии на 70,71% ниже, чем в Москве.</li><li>Цены на продукты в Анталии на 58,56% ниже, чем в Москве.</li></ol><p>При этом в Турции очень просто получить временный вид на жительство ВНЖ («икамет») за аренду апартаментов, открыть банковский счёт и летать в любую точки миру одной из лучших авиакомпаний Turkish Airlines. Однако открытие компании несёт в себе требование нанимать на 1 иностранца 5 турецких работников, нет стартап-виз и виз цифровых кочевников. Но Турция установила рекорд по венчурным инвестициям, <a href="https://vc.ru/u/1211063-advengene-relokaciya-biznesa/436157-turciya-ustanovila-rekord-po-venchurnym-investiciyam-obognav-irlandiyu-shveycariyu-i-oae">обогнав</a> Ирландию, Швейцарию и ОАЭ. Наиболее универсальное решение для основателей иметь ВНЖ Турции и открывать компании-оффшоры в США штате Вайоминг или Гонконге, работая за пределами этих стран и не становясь корпоративным налоговым резидентом.</p><h2>2. Франция</h2><p>ВНЖ для основателей инновационных компаний на 4 года.</p><ol><li>Потребительские цены с учётом аренды в Марселе на 12,49% ниже, чем в Москве.</li><li>Цены на продукты в Марселе на 24,71% выше, чем в Москве.</li></ol><p>Франция <a href="https://vc.ru/u/1211063-advengene-relokaciya-biznesa/437374-franciya-obognala-po-tempam-venchurnogo-investirovaniya-germaniyu">обогнала</a> по темпам венчурного инвестирования Германию. Юг Франции отличается мягким климатом, а во Франции лучше всего развита экосистема инновационных компаний. Однако есть существенное ограничение на получение венчурных инвестиций — один из сооснователей обязательно должен быть гражданином Франции или Канады.</p><h2>3. Швейцария</h2><p>Для обеспеченных основателей инновационных финтех компаний.</p><ol><li>Потребительские цены с учетом аренды в Женеве на 68,52% выше, чем в Москве.</li><li>Цены на продукты в Женеве на 89,88% выше, чем в Москве.</li></ol><p>Сотрудничество с инновационной экосистемой Швейцарии позволяет основателям получить в некоторых кантонах ВНЖ Grade B, скидку 50% на налоги, место в технопарке c трэкингом инвесторов из США и корпоративный трэк от лидеров рынка, таких как Swisscom and Credirsuisse.</p><p>Слово «релокация» обрело повсеместную популярность — компании переводят сотрудников на новое место работы по различным причинам.</p><p>Причин переезда может быть много. Одни уехали в связи с неопределенной ситуацией или сокращениями на работе, другие, возможно, не смогли обосноваться в новой стране, а третьи не нашли вакантного места.</p><p>Если ранее большинство российских айтишников стремилось переехать в США и Западную Европу, то сейчас их географические предпочтения изменились. Основными местами, куда передислоцировались специалисты, стали либо страны-соседи России, либо государства, принимающие россиян без виз — это Грузия, Армения, Турция, ОАЭ. Также многие релоцировались в Чехию, Сербию, Черногорию, Хорватию, Вьетнам, Таиланд.</p><p>В России айтишники получают меньше, чем тот же специалист на аналогичной должности и позиции в Америке. При прочих равных зарубежным компаниям выгодно нанимать на работу специалистов из России, так как они получают больше навыков за меньшие деньги. Прослеживается интересная корреляция востребованности российских программистов к курсу валюты. До экономического кризиса 2014 года лишь немногие компании могли себе позволить нанять российских программистов. Тогда компании приглашали в штат специалистов из Индии или Китая, что было для них более доступно. С началом кризиса заработные платы айтишников из России, Индии, Китая примерно сравнялись.</p><p>Средняя месячная зарплата специалиста по информационным технологиям в Америке с вычетом налогов в пересчёте на рубли составляет около 350 тыс. руб., во Франции и Великобритании — 250 тыс. руб., в Польше, Чехии, Словакии — 180 тыс., в Китае — 100 тыс. руб. Для сравнения, в России — 100 тыс. руб. Как правило, российские айтишники переезжают или работают на удалёнке за рубежом уже с опытом. Такие специалисты могут претендовать на повышенную заработную плату.</p><p>Также многие наши соотечественники отмечают неоправданно резкий рост цен на съём недвижимости за рубежом, поэтому они приняли решение вернуться. Мы связываем это с большим количеством российских граждан, которые мигрировали в другие страны. Наибольший рост цен на аренду жилья отмечается в Турции, Грузии и Армении (в 4, 1.5 и 1.6 раза соответственно)</p><p>Одно из самых популярных направлений среди цифровых кочевников — Таиланд. Страна хорошо знакома россиянам и привлекает их климатом и перспективой жизни у моря, а также яркой культурой и уровнем медицины. Среди digital nomads, которые переезжают в Таиланд — не только IT-специалисты, но и молодые инвесторы и другие люди, которые могут работать удаленно. Страна входит в тройку самых любимых у digital nomads и уступает только США и Испании.</p><p>В своей практике мы замечаем, что IT-специалисты, которые переезжают в Таиланд, выбирают для релокации в первую очередь развитые территории с быстрым интернетом, и это ожидаемо. В целом его качество и скорость в стране не высокие в сравнении с другими государствами: не во всех тайских населенных пунктах хорошая зона покрытия. Переезжая, IT-специалисты в первую очередь ориентируются на большие города, в числе которых — Бангкок, Паттайя, Пхукет и Чиангмай.</p><p>Интерес к получению иммиграционного статуса в Таиланде у россиян не самый высокий. Страна все же интересна в первую очередь среди тех, кто собирается переехать к морю временно, или рассматривает недвижимость страны как инструмент диверсификации активов и получения прибыли. Поэтому среди айтишников стабильно высок спрос именно на долгосрочную аренду.</p><p>Находиться в стране без визы не выезжая россияне могут тридцать дней. Чтобы поселиться там на длительный срок, можно получить визу студента или сделать взнос в размере 19 тыс. долларов и получить долгосрочную визу Elite: IT-специалисты чаще всего делают именно так, если планируют задержаться в Таиланде на действительно долгий срок. При этом виза не обязывает находиться в королевстве всё время и даёт возможность выезжать. Стать гражданином страны тоже можно, но процедура эта непростая. Согласно требованиям, человек должен не менее пяти лет жить в стране, а также пройти серьёзный экзамен и победить в тендере (в стране ограничены квоты на гражданство).</p><p>Дубай также привлекателен для желающих уехать и получить иммиграционный статус. Эмират привлекает digital nomads много лет. Город — центр притяжения для IT-специалистов. Он интересен сегодня владельцам технологичных компаний, которые заинтересованы в релокации бизнеса в ОАЭ.</p><p>Популярность ВНЖ Дубая объясняется тем, что в стране упрощённое налогообложение. Также среди главных плюсов — отсутствие требования обязательного проживания в стране для продления ВНЖ, возможность открытия счёта и возможности получения туристических и других виз через консульства в Эмиратах. Один из самых простых способов оформить ВНЖ Дубая — инвестиции в недвижимость от 205 000 $.</p><p>Сегодня интерес к релокации, безусловно, заметен, и в странах, где развивают IT-отрасль и сейчас, стремятся привлекать специалистов различными программами поддержки. Мы замечаем это и по сделкам на покупку недвижимости с целью получения ВНЖ и переезда, в том числе среди IT-специалистов. Так, сегодня в числе основных стран — Армения, Казахстан, Узбекистан.</p><p>Мы давно следим за тенденциями релокации IT-специалистов и даже ведём 3 специализированных чата в Телеграм по вопросам переезда в Грузию, Турцию и ОАЭ. Почему мы выбрали именно эти страны?</p><p>Грузия имеет следующие преимущества:</p><ul><li>близость культуры и понимание русского языка (особенно хорошо его помнит старшее поколение);</li><li>наличие сухопутной границы с РФ, можно приехать на своём транспорте;</li><li>хороший климат;</li><li>относительно недорогое жильё;</li><li>есть море (Аджария).</li></ul><p>Турцию выгодно отличают:</p><ul><li>низкие цены на объекты у моря (40 000–50 000 $ за бюджетные апартаменты);</li><li>возможность покупки недвижимости за биткоины;</li><li>возможность использования жилья в качестве объекта инвестирования;</li><li>курортная локация;</li><li>нравы и обычаи хорошо известны, большинство IT-специалистов уже посещали Турцию ранее в качестве туристов и отдыхающих.</li></ul><p>На фоне двух других стран ОАЭ выглядит премиальным сегментом и привлекает топовых IT-профи:</p><ul><li>элитарностью;</li><li>инфраструктурой;</li><li>нетворкингом с лидерами рынка, которые тоже туда уехали;</li><li>возможностью покупки недвижимости за криптовалюту.</li></ul><h2>Документы на визу для релокации IT-специалиста</h2><p>Допустим, вы определились со страной. Что дальше? Правильно: нужно собрать пакет документов на получение визы.</p><p>Вопрос сбора документов стоит остро, поскольку требования разных стран также разнятся. Но есть некий «классический» перечень, который почти гарантированно сохраняется, куда бы вы не планировали выехать:</p><ol><li>Анкета с двумя фотографиями.</li><li>Внутренний паспорт с актуальной пропиской (ксерокопии, оригинал).</li><li>Загранпаспорт (ксерокопии, оригинал).</li><li>Медицинская страховка.</li><li>Приглашение на работу.</li><li>Справка об отсутствии судимости.</li><li>Справка из банка.</li></ol><p>Дополнительно могут попросить рекомендательное письмо, диплом о высшем образовании, анкету на языке страны-реципиента и многое другое. Рекомендуем проверять список необходимых документов на официальных ресурсах, а при необходимости — уточнить всё в телефонном режиме.</p><h2>Telegram-чаты об эмиграции</h2><p>Но что делать, если при релокации IT-специалист столкнулся с трудностями, а уточнить необходимую информацию не у кого?</p><p>Существует <a href="https://www.google.com/maps/d/u/0/viewer?mid=1JGjMQmg_xNK4aInGlgXgb_ppBwfq8yng&amp;hl=en&amp;ll=34.41213370176877%2C19.725837813669045&amp;z=2">графическая карта</a>, созданная на базе <a href="https://mymaps.google.com">Google My Maps</a>, в которой представлены авторские блоги о жизни эмигрантов. Среди фильтров можно настроить отображение чатов об эмиграции. Мало того, что вы сможете пообщаться с соотечественниками, которые выбрались в другие страны, так ещё и увидите, за какими локациями чаты закреплены.</p><p>Звучит сложно, но на практике всё понятно:</p><figure><img src="https://media.tproger.ru/user-uploads/23823/2024-01-05/ec57d9ec-d341-4e3a-86b2-7f276c6c72c8.jpg" alt="" /><figcaption>Карта с авторскими блогами о жизни эмигрантов от творческой группы канала https://t.me/emigrantschannel</figcaption></figure><p>Также перед релокацией IT-специалисту не помешает ознакомиться с каналами, где представлены реальные кейсы переезда. Их также можно найти на представленной карте, настроив соответствующие фильтры.</p><h2>Статистика оттока ИТ специалистов из России</h2><blockquote>В феврале-марте 2022 года из России уехало 50-70 тысяч айтишников.<br />15% ИТ специалистов не вернулись в Россию до конца мая 2022 года.<br />Около 20 тысяч айтишников должны вернуться в страну до конца года.<br />177 иностранных ИТ компаний ушли из России в течении 3-х месяцев.<br />Российские программисты зарабатывают от 40 до 250 тысяч рублей.<br />40.2% айтишников не планировали менять работу до начала спецоперации.<br />31% владельцев ИТ бизнеса считают, что компания удержит показатели.<br />Больше всего ИТ специалистов уехало в Европу (45%) и Грузию (10%).<br />Только 4% айтишников потеряли работу из-за сокращения.<br />9% ИТ компаний разрешили релокацию сотрудников в другие страны.<br />85% айтишников сообщают, что им сталотруднее сконцентрироватьсяна работе иснизилась эффективность.</blockquote><p><a href="https://inclient.ru/outflow-it-specialists/">Ссылка на исследование</a></p><h2>Выводы</h2><p>Сегодня лучшими странами для переезда IT-специалиста считаются Турция, ОАЭ, Таиланд, Франция, Швейцария, Грузия, Армения, Казахстан и Узбекистан. Их отличают более высокие зарплаты, а ряд из этих стран близок нам по своей культуре.</p><p>Также рекомендуем почитать о том, <a href="https://tproger.ru/experts/relokejt-it-specialistov-kak-ego-organizovat/">как организовать переезд ИТ-специалиста</a>, и сохранить карту с чатами об эмиграции.</p>]]></content:encoded>
    </item>
    <item>
      <title>Откликнуться на IT-вакансию и запомниться: отвечают наниматели</title>
      <link>https://tproger.ru/experts/otkliknutsja-na-it-vakansiju-i-zapomnitsja-otvechajut-nanimateli</link>
      <comments>https://tproger.ru/experts/otkliknutsja-na-it-vakansiju-i-zapomnitsja-otvechajut-nanimateli?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Марина Александровна]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/experts/otkliknutsja-na-it-vakansiju-i-zapomnitsja-otvechajut-nanimateli</guid>
      <description><![CDATA[<p>Чтобы откликнуться на ИТ-вакансию и запомниться, следует придерживаться ряда правил. Об этих правилах нам рассказали HR и наниматели.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/experts/otkliknutsja-na-it-vakansiju-i-zapomnitsja-otvechajut-nanimateli">Откликнуться на IT-вакансию и запомниться: отвечают наниматели</a>»</p>]]></description>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[Собеседование]]></category>
      <category><![CDATA[Ответы экспертов]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 29 Jun 2022 11:58:50 GMT</pubDate>
      <content:encoded><![CDATA[<p>Мы редко задумываемся, как правильно откликнуться на конкретную IT-вакансию, часто отправляем шаблонные <a href="https://tproger.ru/experts/do-programmers-need-cv/">резюме</a> и сопроводительные письма, изменяя в них лишь з/п и должность. Такие ответы на вакансии — боль для HR, которые ищут действительно заинтересованного человека.</p><p>Вот что говорят о «правильных» откликах на IT-вакансии сами специалисты по найму.</p><h2>Цепляющее резюме</h2><ol><li>Структурное: в резюме нет каши, выделены смысловые блоки.</li><li>Легко читаемое и короткое: Идеальный объем 1–2 страницы. В среднем рекрутер тратит на одно резюме 15–30 секунд, если ты расписал на 5 страниц свои достоинства — их просто не дочитают.</li><li>Релевантно позиции, на которую ты откликаешься: опыт и навыки совпадают с вакансией. Ошибка: откликаться с резюме «Auto QA» на позицию «Java разработчик», думая «а вдруг прокатит, я в целом хочу в разработку перейти». Нужно составить отдельное резюме для позиции «Java разработчик».</li><li>Информативное: отвечает на все потенциальные вопросы рекрутера заранее. Что из себя представляет текущий проект? Что за стек вы использовали? А работали с такими технологиями? В разделе о себе четко прописано с чем ты знаком и на практике, и в теории. Достижения на работе и портфолио (у тестеров — пример чек-листа, у разработчиков — код в репозитории, у дизайнеров — оформленные кейсы на behance).</li><li>Не вызывает негатива: ты избежал капса. Вместо того что не хочешь видеть на новой работе, рассказал о том, что хочешь найти. Если напишешь, как недоволен прошлыми работодателями и как тебе надоели переработки, процент тех, кто захочет с тобой поговорить, снизится.</li><li>Отражает твою личность: у рекрутера должен сложиться твой профессиональный портрет. Для этого используй раздел «о себе». Расскажи, как ты развиваешься в нерабочее время: профессиональные книги, курсы, конференции. Добавь в сухую информацию о проектах и навыках что-то про себя (с т. з. профессионализма).</li></ol><h2>Несколько правил для отклика</h2><ol><li>Подготовь сопроводительные письма для каждой вакансии. Можно использовать общий скелет, но обязательно редактировать его — выделить релевантный опыт именно для этой позиции. В письме должно быть: приветствие, короткое объяснение причины интереса к вакансии, пара предложений о задачах на текущем месте (если у тебя нет опыта, расскажи, что ты умеешь и какие учебные проекты ты делал), ссылка на портфолио, способы быстрой связи.</li><li>Лучшее время для отклика на headhunter — вечер воскресенья и утро понедельника. Так больше шансов, что рекрутер заметит твое резюме.</li><li>Если тебе отказали стандартной отпиской — вежливо спроси причины отказа, ведь тебе «будет полезно узнать зоны развития, чтобы попасть в компанию в будущем».</li></ol><h2>Как откликнуться на ИТ-вакансию, чтобы запомниться?</h2><p>На рынке идет борьба за ИТ-специалистов, поэтому чаще сами сотрудники HR-функции ищут профессионалов и презентуют им себя, чтобы запомниться. В любом случае важно грамотно составить резюме с учетом специфики вакансии и функционала компании и дать понять работодателю, что вы можете быть полезны, что ваши профессиональные качества могут дать результат, на который компания рассчитывает. Также очень важно сопроводительное письмо, чтобы HR-специалиста зацепить. Кроме этого, важно подобрать фотографию для резюме, учитывая специфику компании — это тоже увеличит шансы на успех.</p><h2>Уместно ли прикладывать свои проекты сразу?</h2><p>Зависит от вакансий. В целом, в вакансиях без обязательного приложения практической части можно этого не делать, поскольку это не всегда может характеризовать соискателя с положительной стороны. Чтобы портфолио дало позитивный эффект, необходимо подробнее изучить компанию и выбрать только наиболее релевантные проекты.</p><h2>Каким ответом на вакансию можно спугнуть работодателя?</h2><p>Когда работодатель задает вопрос о мотивации к работе в этой компании или на этой должности, а соискатель обозначает своевременную зарплату, близость офиса к дому и хороший коллектив, то у работодателя может возникнуть вопрос, насколько сотрудник мотивирован, заинтересован в профессиональном развитии и какую пользу может принести компании за полученные блага.</p><h2>Заинтересовать работодателя</h2><p>Я не раскрою никакого секрета, так как самым верным способом чтоб заинтересовать работодателя является сопроводительное письмо.</p><p>Другой вопрос, это то, как оно должно быть составлено. Если говорить об IT отрасли, то тут чаще наблюдается другая тенденция, обычно пишут разработчикам рекрутеры, и тут, наверное, правильнее спросить, а как заинтересовать кандидата.</p><p>Конечно, мы получаем отклики и от разработчиков, и сопроводительное письмо будет в помощь для рекрутера, если вы расскажете о своём опыте, какой стек технологий применяли на том или ином проекте, какой результат получили, с кем работали.</p><p>Это позволит понять — подходим ли мы друг другу по стеку технологий, опыт работы был фриланс или проект или компания, это важно, так как разные цели, ну и наличие команды — один вы работали или в команде, кто принимал решения, как строились коммуникации — это позволит сократить наличие первичных вопросов при интервью, мы сможем перейти к техническому интервью.</p><h2>Уместно ли прикладывать свои проекты без запроса?</h2><p>Как я описала выше, да — уместно, так как без них сложно будет понять какой у вас был опыт. Таким образом вы показываете проект, над которым работали, вашу роль в этом проекте, какие задачи решали. Можно понять — справитесь ли вы с поставленными задачами которые будут стоять перед вами.</p><h2>Как ответить на IT-вакансию и не спугнуть?</h2><p>Я общаюсь со всеми, кто откликнулся — даже если опыт кандидата не подходит, обязательно объясняю причину.</p><p>Прекращаю общение, только в том случае, если вдруг кандидат начинает грубо общаться, или сразу предъявляет претензии, что мы по какой-то причине не ответили ему сразу, или не пригласили на интервью.</p><p>Но, к счастью, что касается IT сферы, тут как правило в основном воспитанные кандидаты, знающие себе цену. Бывает так, что кандидат сам пропадает — вот как раз таких в нашей сфере много, но и это нас не пугает. Мы не из пугливых, если нам нужен кандидат — будем искать всевозможные способы коммуникации.</p><p>Отклик на IT-вакансию принципиально не отличается от отклика на любую другую. Во-первых, важно откликаться резюме, отражающим релевантный опыт и акцентировать внимание на сильных сторонах. Во-вторых, необходимо показать стек технологий, которыми кандидат владеет. Если был перерыв или смена деятельности, нужно отразить, насколько высок уровень владения той или иной технологией сейчас. Сопроводительное письмо будет плюсом и покажет заинтересованность кандидата в работе.</p><h2>Портфолио</h2><p>Для кандидатов на вакансии UI/UX дизайнера наличие портфолио — маст-хев. Во всех остальных случаях такая информация снимает многие вопросы и привлекает внимание, но как обязательное требование не подразумевается:</p><ol><li>За разработчика многое скажет ссылка на GitHub.</li><li>Для вакансий на стыке разработки с Data Science хорошо подтвердить опыт решения задач с использованием алгоритмов машинного обучения.</li><li>Потенциальный product owner может предоставить презентации о проектах.</li><li>Бизнес- или системный аналитик — обезличенные документы с описаниями процессов в разных нотациях.</li></ol><h2>Общение</h2><p>Главное правило в общении с потенциальным работодателем, помнить о том, что перед вами живой человек: обращайтесь вежливо, честно и с уважением к адресату.</p><p>При поиске работы в ИТ-сфере важно помнить общие правила:</p><ol><li>Если соискатель ищет работу на специализированных рабочих сайтах, то стоит делать акцент на емкое и краткое резюме. В нём опишите компетенции, применяемые технологии, знание языков программирования, а также опыт участия в проектных группах.</li><li>Не стоит забывать про сопроводительное письмо при откликах на вакансии. Так можно выделить своё резюме из всего пула кандидатов. В сопроводительном письме можно кратко указать, чем вызван интерес к вакансии, какой опыт и компетенции будут полезны работодателю. Письмо должно быть не более пяти-шести предложений — не нужно копировать всё резюме.</li><li>Если соискатель рассматривает предложения в социальных сетях, то важно быть активным в переписке с потенциальными работодателями. Возможно, не все HR смогут ответить на технические вопросы. Однако не стоит забывать, что, как правило, они являются проводниками в ИТ-департаменты, а с их руководителями можно общаться на одном языке.</li></ol><h2>Каким должно быть портфолио IT-специалиста?</h2><p>В резюме или в переписке с потенциальным работодателем можно указать краткую информацию о проекте, в котором соискатель принимал активное участие, — какова его роль, какой технологический стек применялся. Не нужно подробно описывать весь проект: работодатель должен заинтересоваться опытом кандидата и пригласить его на интервью. Также не стоит отмечать проекты, завершившиеся более пяти лет назад. ИТ-решения быстро развиваются, и то, что было актуально тогда, сейчас может не вызвать интереса и внимания. Можно выделить успешные проектные решения, в которых участие было значимым, — как по объему рабочих часов, так и по роли в проекте. Например, в качестве бизнес-аналитика, системного аналитика, разработчика, тестировщика, системного архитектора, технического лидера, технического писателя, менеджера ИТ-проекта и т. д.</p><h2>Правила общения с работодателем</h2><p>Для того чтобы не спугнуть работодателя, нужно соблюдать все те же правила вежливости и хорошего тона — не проявлять агрессии, негативных высказываний как в адрес прошлого работодателя, так и в адрес потенциального. Можно уточнить момент, с чем связан поиск сотрудника на данную вакансию, однако не стоит озвучивать свои выводы в формате: «Понятно, мало платили, вот и ушел», «Наверно, устал разбираться в старом чужом коде и ушел». Также можно открыто выразить свои пожелания, но в позитивном русле: «Я рассматриваю уровень дохода не менее определенной суммы», «Мне интересны проекты на определенном стеке и проекты с нуля». Так работодатель поймет, насколько вы подходите друг другу и даже если не сделает предложения о работе, то кандидат оставит о себе положительное впечатление.</p><ol><li>Перенесите в верх резюме опыт, важный для вакансии — так HR быстро поймет вашу ценность. Перечисляйте достижения, а не описывайте процессы. Посмотрите, как это делается, у продажников в резюме или изучите примеры американских CV. Свяжите достижения с целями компании — чаще всего это деньги. Расскажите, сколько вы заработали для предыдущей компании своими действиями.</li><li>Добавьте адекватное сопроводительное письмо, чтобы была понятна ваша мотивация. Мало людей пишет сопроводительное письмо, а хорошо — вообще единицы. Поэтому резюме с хорошим сопроводительным HR переносит вверх стопки.</li><li>Отвечайте на вопросы: зачем вас нанимать, чем вы можете быть полезны? Не повторяйте резюме и не пишите, что хотите развиваться. Дайте факты из своей биографии, чтобы работодатель сам сделал такой вывод.</li><li>Найдите кого-нибудь из топов компании в Фейсбуке. Будьте навязчивы, пишите напрямую — можно несколько раз, если быстро не ответили. Ещё лучше позвонить и сказать, что очень хотите поговорить. Можно прийти в офис и познакомиться вживую, даже без приглашения — это покажет вашу мотивацию работать именно тут.</li><li>Ссылки на проекты уместно прикладывать сразу. Расположите проекты в порядке релевантности — чем ближе к вакансии, на которую вы откликаетесь, тем выше. Будет отлично, если вы опишете задачу, способ решения и использованные технологии.</li><li>Спугнуть можно таким ответом, из которого понятно, что вам нужно что-то другое. Или таким, где не указаны ваш опыт и достижения. Хуже всего — перепутать и отправить резюме на другую вакансию.</li><li>Если назначили встречу и не можете прийти, обязательно предупредите HR. А на собеседовании не будьте слишком упрямы или принципиальны. Это может показать, что с вами сложно работать в коллективе.</li></ol><h2>Как откликнуться на IT вакансию?</h2><p>Пишите сопроводительное письмо к резюме. Мы их читаем, они могут сильно прибавить вам баллов при первой фильтрации резюме и на дальнейших этапах. В письме, как минимум, ответьте на вопрос, почему вы заинтересованы в вакансии в этой компании и благодаря каким вашим качествам вы лучше всего закроете эту вакансию. Также мне запоминаются те кандидаты, которые используют дополнительные каналы для связи. Лично я не против, когда мне пишут в ТГ, мне нравится, когда люди стремятся максимально себя продать. Откликов на почту приходит много, можно пропустить резюме классного специалиста. С другой стороны, если в вакансии стоит строгая пометка, куда необходимо отправлять резюме, пожалуй, к этому стоит прислушаться.</p><h2>Прилагаемые проекты</h2><p>Первый приоритет — проект, который релевантен области, в которой работает компания. Размер проекта не имеет значения. Второй приоритет — проект, который по подходу к реализации отвечает ценностям компании, как вы их видите. И в любом случае это должен быть хорошо оформленный проект с описанными целями, задачами, стеком технологий, результатами.</p><h2>Чего не следует говорить?</h2><p>Самая частая напрягающая фраза, которая мне встречается: «У меня недостаточно опыта, но я буду стараться». Попробуйте посмотреть на свой даже небольшой опыт — не обязательно только технический — через призму отрасли, в которую вы идете, и написать о нем с такой точки зрения.</p><h2>Так как же откликнуться на IT-вакансию и запомниться?</h2><p>Подытожим:</p><ul><li>напишите спокойное краткое вступление;</li><li>обозначьте, почему именно вы заслуживаете получить эту должность;</li><li>ваши предыдущие места работы, если они действительно заслуживают внимания;</li><li>пишите понятное развёрнутое резюме;</li><li>прилагайте проекты, которые соответствуют размещённой вакансии;</li><li>не забывайте о сопроводительном письме.</li></ul>]]></content:encoded>
    </item>
    <item>
      <title>Атака на RuTube: в чём опасность для пользователей и разработчиков</title>
      <link>https://tproger.ru/experts/ataka-na-rutube-v-chjom-opasnost-dlja-polzovatelej-i-razrabotchikov</link>
      <comments>https://tproger.ru/experts/ataka-na-rutube-v-chjom-opasnost-dlja-polzovatelej-i-razrabotchikov?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Рафаил Агазода]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/experts/ataka-na-rutube-v-chjom-opasnost-dlja-polzovatelej-i-razrabotchikov</guid>
      <description><![CDATA[<p>Взлом RuTube поразил 75% баз данных и 90% резервных копий и кластеров для восстановления. Опасен ли этот взлом для обычных пользователей?</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/experts/ataka-na-rutube-v-chjom-opasnost-dlja-polzovatelej-i-razrabotchikov">Атака на RuTube: в чём опасность для пользователей и разработчиков</a>»</p>]]></description>
      <category><![CDATA[Безопасность]]></category>
      <category><![CDATA[Хакеры]]></category>
      <category><![CDATA[Информационная безопасность]]></category>
      <category><![CDATA[Взлом]]></category>
      <category><![CDATA[Ответы экспертов]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Fri, 20 May 2022 09:59:59 GMT</pubDate>
      <content:encoded><![CDATA[<h3>Атака на RuTube: в чём опасность для пользователей и разработчиков</h3><p>В результате атаки на RuTube было поражено более 75% баз и инфраструктуры основной версии и 90% резервных копий и кластеров для восстановления баз данных.</p><p>Обычно на такой случай предусмотрены бэкапы, но в конкретной ситуации проблема, видимо, в том, что в сервисе до сих пор не понимают, имеет ли по-прежнему хакер доступ к системе или уже нет, писало The Village.</p><p>Также был удалён весь код и, возможно, украден.</p><p>В чём кроется опасность этого взлома для обычных пользователей? В чём ошибка разработчиков, которая смогла привести к взлому? Какие риски несут разработчики RuTube?</p><p>Первичная ошибка свойственна не только команде Рутуба, а практически всем разработчикам нашей страны. Мы с очень большим трудом перенимаем лучшие практики мирового сообщества в сфере разработки, доверия к иностранному ПО всегда было больше, но практически никто не задумывается по какой причине.</p><p>Весь секрет заключается в том, что разработка должна включать в себя безопасность, сейчас понемногу набирает популярность именно безопасная разработка, которая в свою очередь включает в себя процессы тестирования на каждом этапе для выявления уязвимостей до начала эксплуатации, что в свою очередь сокращает дальнейшие издержки или полное закрытие продукта.</p><p>Так же огромная ошибка отдавать весь процесс безопасности в руки одной организации, без альтернативного мнения риски, пропустить или намеренно закрыть глаза на какую либо ошибку, практически неизбежны.</p><p>У пользователей опасности разные, так как угроз раскрытия личных данных может повлечь за собой необратимые последствия.</p><p>Естественно доверие к сервису упало до критического уровня, чтобы исправить сложившуюся ситуацию команде Рутуба необходимо приложить все усилия по минимизации последствий и пересмотреть подход к защите данных и своего сервиса.</p><p>Тот факт, что в команде RuTube отсутствует понимания, есть ли до сих пор доступ к ресурсу у злоумышленника, демонстрирует наличие организационных проблем у персонала.</p><p>Очевидно, что у них нет четкого перечня лиц, имеющих доступ, а также отсутствует матрица доступа, что не позволяет гарантированно устранить последствия компрометации доступов.</p><p>Удаление и кража кода представляют собой большую опасность, прежде всего, для репутации сервиса, поскольку ценность самого кода неизмеримо меньше, чем расходы на инфраструктуру и PR площадки.</p><p>Ну а единственная серьезная угроза состоит в том, что в коде могут присутствовать и другие уязвимости, которыми пока не воспользовались злоумышленники. Ведь полноценный анализ безопасности ресурса (хотя бы по ГОСТ/ISO 15408) наверняка не проводился, публично нет даже информации о проведении его пентестов.</p><p>Кроме того, если бы подобные работы имели место, то наверняка избавили бы ресурс от наличия таких серьезных проблем безопасности, которыми воспользовались хакеры.</p><p>Ну а для обычных пользователей опасность взлома чревата утечкой персональных данных и, потенциально, снижением уровня ценности продвижения видео.</p>]]></content:encoded>
    </item>
    <item>
      <title>Какие софт-скилы важны в IT? Отвечают руководители отделов и HR</title>
      <link>https://tproger.ru/experts/kakie-soft-skilly-vazhny-v-it-otvechajut-rukovoditeli-otdelov-i-hr</link>
      <comments>https://tproger.ru/experts/kakie-soft-skilly-vazhny-v-it-otvechajut-rukovoditeli-otdelov-i-hr?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Рафаил Агазода]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/experts/kakie-soft-skilly-vazhny-v-it-otvechajut-rukovoditeli-otdelov-i-hr</guid>
      <description><![CDATA[<p>Руководители отделов разработки и HR-менеджеры рассказали, на какие софт-скилы IT-специалистов они обращают внимание во время найма.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/experts/kakie-soft-skilly-vazhny-v-it-otvechajut-rukovoditeli-otdelov-i-hr">Какие софт-скилы важны в IT? Отвечают руководители отделов и HR</a>»</p>]]></description>
      <category><![CDATA[HR]]></category>
      <category><![CDATA[Soft Skills]]></category>
      <category><![CDATA[Ответы экспертов]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 18 May 2022 12:10:14 GMT</pubDate>
      <content:encoded><![CDATA[<h3>Какие софт-скилы важны в IT? Отвечают руководители отделов и HR</h3><p>В межсезонье сотрудники чаще задумываются о том, чтобы сменить работу. В их числе — IT-специалисты.</p><p>Мы попросили руководителей отделов разработки и HR-менеджеров рассказать, на какие софт-скилы они обращают внимание при найме.</p><p>Мы всегда уделяли пристальное внимание оценке софт-скилов разработчиков, это всегда было важной частью как собеседования, так и онбординга сотрудников. В течение многих лет мы, опираясь на реальные сценарии и примеры из собственной практики, собирали список качеств, которые в нашей компании в значительной степени влияют на качество работы разработчика, своевременную реализацию сложных проектов, а также способность наших сотрудников из разработки развиваться как горизонтально, так и вертикально. Условно это всего три основных качества, которые можно декомпозировать на умения, которые в той или иной мере демонстрируют наличие этих качеств в любом сотруднике – не только разработчике.</p><h2>Самые важные софт-скилы:</h2><h3>Осознанность</h3><p>1. Умение четко и структурировано излагать свои мысли устно и письменно. Если ты способен структурировать и систематизировать свои размышления, это позволяет добиться высококачественного результата.</p><p>2. Умение сформулировать причины выбора того или иного решения, описать алгоритм решения задачи и последовательность шагов для достижения цели. Если ты принимаешь решение задачи на основе осознанного выбора и умеешь его обосновать – твое решение с большей вероятностью оптимально.</p><p>3. Умение смотреть в будущее дальше сдачи проекта – то есть осознание того, что вы несете ответственность за то, как будет дальше “жить” продукт вашего труда после завершения проекта. Например, это означает готовность аккуратно документировать сделанную работу, уделять внимание оформлению кода и тестированию – чтобы потом его могли эффективно поддерживать и развивать дальше.</p><p>4. Способность нести ответственность за обещания и за результат. При этом важнее не стремление “разбиться, но сделать“, а адекватно оценивать силы, ресурсы, ситуацию, проанализировать требования, давать адекватные оценки и обеспечивать соответствие им результатов.</p><h3>Открытость</h3><p>Для разработчика важно оставаться открытым – для других членов команды, для новых подходов и технологий, для альтернативных мнений, для целей и задач за пределами кода.</p><p>1. Готовность погружаться в предметную область. Если ты действительно стремишься разобраться, для чего именно ты пишешь код, то это поможет решать даже новые и незнакомые задачи. Человек, цель которого – исключительно выдать код “в вакууме”, строго по шаблону/по аналогии/по инструкции”, способен быть только исполнителем механической работы.</p><p>2. Готовность приоритизировать то, что необходимо команде и компании, и понимание итоговой цели своей работы. Здесь важно умение находить баланс между исследовательской жилкой, которая всегда присутствует в технарях, и стремлением находить наиболее эффективный (и иногда наиболее реалистичный) способ реализации и дальнейшего сопровождения проекта силами команды. Новые инструменты и любопытные технические решения — это хорошо, но это не должно становиться самоцелью.</p><p>3. Умение и желание непрерывно учиться и совершенствоваться, находя при этом баланс развития и реализации текущих задач.</p><h3>Коммуникабельность</h3><p>В пику общепринятым стереотипам, разработчики должны уметь общаться и иметь/ развивать коммуникативные навыки — это залог успешной командной работы, которая необходима для своевременного достижения лучшего результата:</p><p>1. Умение отстаивать и обосновывать свою точку зрения – логично и без лишних эмоций – и умение и желание выслушать и понять мнение коллег.</p><p>2. Способность уважать и принимать решение команды, даже если оно противоречит собственному, и не быть при этом токсичным.</p><p>3. Готовность делиться планами и наработками с коллегами и позитивно воспринимать конструктивную критику.</p><p>В современном IT “софт скилы” – это такой баззворд, который употребляют все, но каждый подразумевает под этим что-то свое. Я сразу сформулирую свою формулировку что я подразумеваю под софт скилами и обозначу какие из них я считаю важными для себя, как для разработчика и те, которые я, как разработчик, ценю в коллегах вокруг – как со стороны бизнеса, так и других технических ребят.</p><p>Во первых что такое софт скилы для меня – это все те, что не хард скилы, но которые помогают быть более эффективным, приятным членом команды. А быть более эффективным в свою очередь значит – сохранять свои силы.</p><p>И хоть большинство разработчиков с начала ковида перешли на удаленку и не общаются в офисе, но общения с командой не стало меньше. Оно просто сменило формат – где-то стало больше текста, где-то больше созвонов. Но необходимость тренировать софт скилы чем дальше, тем более актуальна.</p><h2>Самые важные софт-скилы:</h2><h3>Навык коммуникации</h3><p>Первый и самый важный, который я тренирую сам и очень ценю в окружающих. В него я закладываю вежливость, ясность изложения своих мыслей, тактичность и все, что поможет тебе провести беседу эффективно и чуть-чуть улучшить отношение с человеком, с которым ты общался. Это поможет, во-первых, потратить меньше сил и времени на обсуждение вопроса встречи и, во-вторых, чуть улучшить атмосферу в команде, что будет win-win для всех.</p><h3>Пунктуальность. Умение планировать время</h3><p>Под этим скилом я подразумеваю как банальное “не опаздывать на встречи”, так и навык планировать свое время таким образом, чтобы между встречами, дейликами, планированиями еще и работать успевать. Это требует понимания в первую очередь своего организма – кому-то после большой встречи нужно минут 10 перевести дух, а кто-то с радостью погрузится в код и забудет обо всем вокруг и там отдохнет. И в зависимости от своего организма и психологии нужно планировать свой рабочий день так, чтобы поддерживать свою продуктивность и не выгорать.</p><h3>Терпение</h3><p>Многие удивятся увидев такой софт скил. Но На деле же – это очень важный скил, который действительно требует тренировок. Польза его будет чувствоваться везде – начиная от проведения онбординга новому товарищу в команде, продолжая борьбой с противным багом и заканчивая повторными переговорами с заказчиками или соседними командами. Плюс этот скил отлично помогает первому – навыку коммуникации. Всегда лучше терпеливо и подробно объяснить кому-то вопрос, чем сгореть в процессе и после полчаса приходить в себя.</p><h3>Объективность и критическое мышление</h3><p>Суть этого скила заключается в том, чтобы адекватно погружаться в суть задачи, терпеливо (смотри предыдущий скил) выяснять у заказчика полный список требований для того чтобы в будущем объективно оценить объемы и сроки. Таким образом не побоявшись (или заленившись) изначально можно сэкономить свои и чужие силы на дальнейших коммуникациях, а также добавит прозрачности в весь процесс.</p><h3>Умение в асинхронные коммуникации и здравый смысл</h3><p>И последний, но не по важности скил заключается в умении общаться текстом, когда не нужен созвон, а также думать прежде чем что-то делать. К примеру – нет никакого смысла экстренно созывать на обсуждение глубокой архитектуры половину команды в пятницу вечером. Гораздо продуктивнее будет заранее поставить встречу на комфортное время в понедельник, подготовить агенду и план. В наше время удаленной работы нужно ценить возможность превратить часовую встречу в несколько хорошо сформулированных вопросов, на которые в течении часа можно получить хорошо сформулированные ответы.</p><h2>Самые важные софт-скилы:</h2><h3>Критическое и аналитическое мышление</h3><p>Умение выразить и показать свою точку зрения. Необходимо, чтобы разработчик не просто выполнял задачу, а мог предвидеть подводные камни и предложить альтернативные способы, уменьшающие эти риски, или более оптимальное решение задачи. Это же влияет на возможность видеть упущения и недостатки и обратить на них внимание команды.</p><h3>Ответственность и самодисциплина</h3><p>Важны, чтобы иметь возможность доверять разработчику, не следить за каждым его шагом и не заниматься так называемым микроконтролем. Такой сотрудник может сам правильно управлять своей нагрузкой, что экономит время всей команде. Особенно это ценно при удаленной работе.</p><h3>Адаптивность</h3><p>Нужен чтобы разработчик мог переключатся. Например быстро перейти с большой сложной задачи, которой давно занимается, на срочную, но от которой зависит работа других коллег. Сюда же можно отнести умение действовать в форс-мажорных ситуациях.</p><h3>Личные качества</h3><p>Доброжелательность, вовлеченность, умение слышать тиммейта, желание развиваться. Это важно чтобы быть на одной волне с командой, чтобы на каждого члена команды можно было положиться и доверять. Все это в результате влияет на микроклимат в коллективе.</p><p>Мы работаем по методологии SAFe – команда разработки разбита на кроссфункциональные команды, которые работают по одному из направлений развития продукта Bimeister. В команде есть все роли, которые необходимы для решения бизнес-задач – дизайнеры, аналитики, фронт и бэк разработчики, QA-инженеры.</p><p>Стараемся по максимуму внедрить децентрализацию принятия решений, избавиться от «боттлнеков» через которые идут все процессы. Нет одного гуру, который отвечает за все, команда должна уметь и иметь все возможности разработать техническое решение. При этом решение команды не должно разрушить общую платформу, оно должно синхронизироваться с другими решениями.</p><h2>Больше всего важны следующие навыки:</h2><h3>Командная работа</h3><p>Цели ставятся команде, группировка индивидуалистов вряд ли достигнет успеха. Успех команды зависит от каждого ее члена. Эффективные коммуникации, нацеленность на результат, стремление выполнить командную цель, а не только личную задачу, взять на себя ответственность, продрайвить внедрение нового процесса, который повысит производительность команды. Не ждать, когда какой-то внешний гуру/авторитет/руководитель придет и все настроит, это ответственность каждого члена команды.</p><h3>Стремление к постоянному совершенству</h3><p>Когда мне задают вопрос – когда у вас уже стабилизируются процессы? Я отвечаю – Никогда! Процессы разработки никогда не достигнут идеала – окружение меняется, меняются задачи, требования, клиенты и вся компания. Необходимо постоянно искать места для улучшения и брать на себя ответственность по внедрению, при этом не бояться совершать ошибки, главное делать выводы и не повторять их. В нашей работе велик фактор новизны и неопределенности, новые гипотезы, эксперименты – часть нашей жизни. Нужно всегда пробовать новое, анализировать, признавать ошибки и идти дальше.</p><h3>Открытость для обратной связи и навыки обратной связи</h3><p>Часто сталкиваюсь с фактом, что члены команды не хотят обсуждать друг с другом «неприятные» вопросы. Донести до своего коллеги свое мнение воспринимается как критика и боязнь испортить отношения. Нужно уметь определить зоны роста и донести их без обид, помочь построить план развития и вместе исправлять недостатки.</p><h3>Умение говорить на языке, понятном не разработчику</h3><p>Приходит продакт-менеджер, руководитель проекта и задает простой вопрос – когда будет готова фича? Ему в ответ начинают рассказывать какие сложные технологические задачи уже решили и предстоит решить, какие гениальные подходы применили, но на вопрос не отвечают. Нужно понять проблему, с которой к тебе приходят и помочь решить ее без лишних технических деталей. Дать сроки или, если в сроки не укладываемся, предложить альтернативы – сдать в срок, но уменьшить объем функциональности, пожертвовать качеством, сделать «костыль».</p><p>Спрос на кадры на российском ИТ-рынке продолжает расти. Среди гибких качеств (soft skills) именно для “входа” в профессию по-прежнему достаточно коммуникабельности — это некий базовый и порой единственный критерий, на который большинство рекрутеров обращают внимание.</p><p>Но одно дело — попасть в отрасль, другое — задержаться и построить успешную карьеру. Особенно, если предел ваших мечтаний — это не отдел с, условно, командой из двух человек и одним заказчиком, а крупная международная ИТ-компания или ИТ-департамент корпорации.</p><h2>Мы выделяем следующие гибкие навыки, критически важные для долгосрочного развития в ИТ-отрасли:</h2><p><b>1. Умение строить эффективные коммуникации. </b></p><p>Ошибочно полагать, что разработка — это только про качественный код. Вся ИТ-индустрия — это, прежде всего, работа в команде, а значит постоянная и, чаще всего, прямая коммуникация. И не только с коллегами по цеху, но и с другими департаментами. Для эффективного взаимодействия с ними необходима эмпатия, как один из элементов эмоционального интеллекта: нужно уметь определять, понимать и  управлять своими и чужими эмоциями, а также договариваться с собой, своей командой и руководителем.</p><p>Каким бы гениальным не был программист, без навыка выстраивания отношений с коллективом ничего не получится: велик риск превратиться в изгоя, с которым никто в команде будет не готов сотрудничать,  а это напрямую влияет на бизнес-результат.</p><p>Хорошая новость: несмотря на то, что эмпатия — качество, не свойственное людям с техническим типом мышления, — его вполне можно развить через ежедневные практики.</p><p><b>2. Клиентоориентированность.</b></p><p>Умение учитывать потребности и интересы других людей и в нужный момент ставить их на первое место — крайне важное качество. Кроме разработчиков, в создание и развитие технологических продуктов вовлечены и другие команды: например, маркетинг, отдел продаж и бэк-офис, — и все они периодически могут выступать в роли “клиента”. В такие моменты важно отодвинуть на второй план свое мироощущение, а иногда свои амбиции, и сфокусироваться на том, чтобы услышать заказчика и правильно интерпретировать его задачу (возвращаясь к пункту про эмпатию).</p><p>Многочисленные сертификаты и чины, возможно, помогут вам при трудоустройстве, но будут никому не нужны в конечном итоге, если заказчик не доволен результатом.</p><p><b>3. Стрессоустойчивость</b>.</p><p>Это качество может показаться какой-то абстракцией, которую все подряд бездумно включают в свое резюме. В ИТ-отрасли это не так.</p><p>Как мы упоминали выше, разработка во многом завязана на командной работе,  значит и стрессоустойчивость здесь проявляется в другом виде:</p><ul><li>Неправильные решения имеют место быть, и не важно — ошибка ли это одного человека или коллегиально допущенная оплошность:  решать проблему и выкарабкиваться, скорее всего, придется всем вместе. А это значит: давление по срокам и качеству и — главное —  понимание, что вы сами себя загнали в эту ситуацию. Такой внутренний психологический прессинг сильно угнетает и может существенно снизить мотивацию и даже привести к быстрому выгоранию.</li><li>В руках разработчиков — порой критически важные для бизнеса задачи и продукты, иногда влияющие на жизни миллионов людей. Поэтому второго шанса выпустить качественный продукт не будет. Приведем аналогию с Олимпийскими играми: перенести день старта Олимпиады невозможно, даже если кто-то не успел “допилить код”  — в ИТ такие проекты тоже бывают. Помимо того, что понимание масштабов и последствий своих действий некоторых пугает, и многими очень сложно переносится, это также может проявляться в отрицании своей ответственности.</li></ul><p><b>4. Самоанализ</b>.</p><p>Все допускают ошибки в работе, но только настоящие профессионалы смело их признают и делают из них правильные выводы. Постоянная саморефлексия позволяет менять в лучшую сторону паттерны своего поведения и справедливо оценивать себя как специалиста на каждом этапе развития карьеры. Важно распознавать и понимать свои ощущения и эмоции, критически относиться к себе, совершенствуя таким образом уровень своей осознанности. Все это позволит комфортно работать на максимальной мощности.</p><p>Разумеется, здесь важно вовремя определить собственные границы, чтобы не превратить этот процесс в “самокопание”.</p>]]></content:encoded>
    </item>
    <item>
      <title>Первомай: безумные случаи на работе в IT</title>
      <link>https://tproger.ru/experts/pervomaj-bezumnye-sluchai-na-rabote-v-it</link>
      <comments>https://tproger.ru/experts/pervomaj-bezumnye-sluchai-na-rabote-v-it?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Рафаил Агазода]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/experts/pervomaj-bezumnye-sluchai-na-rabote-v-it</guid>
      <description><![CDATA[<p>Ко Дню труда опросили IT-специалистов и узнали, какие дикие и безумные истории случались с ними во время работы в IT.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/experts/pervomaj-bezumnye-sluchai-na-rabote-v-it">Первомай: безумные случаи на работе в IT</a>»</p>]]></description>
      <category><![CDATA[Советы]]></category>
      <category><![CDATA[Карьера]]></category>
      <category><![CDATA[Ответы экспертов]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Sun, 01 May 2022 06:31:34 GMT</pubDate>
      <content:encoded><![CDATA[<h3>Первомай: безумные случаи на работе в IT</h3><p>Сегодня — Первомай или День труда. К празднику мы решили узнать у сотрудников IT-компаний, какие безумные истории случались с ними на работе.</p><p>Дело было в 2018-м. Мне был 21 год, и я устроился на свою первую работу по специальности. В небольшой веб-студии я работал бэкенд-разработчиком, а фактически выполнял ещё функции тестировщика и нескольких других специалистов.</p><p>Нашим клиентом стал небольшой сервис для профессиональных фотоуслуг. Фотограф создавал свой профиль и размещал портфолио, а клиент мог оставить заявку, выбрать исполнителя и оплатить услуги. Такой фото-YouDo.</p><p>Как-то вечером я тестировал в сервисе работу с картинками. И мне открылась истина: сервису нужен механизм очистки серверного пространства от лишних файлов. Я ни секунды не сомневался, что придумал отличную фичу. Быстро написал скрипт для удаления мусорных файлов из базы данных. И запустил его.</p><p>Запустил я скрипт, как выяснилось, сразу на проде, минуя дев-стенд. Скрипт отработал отлично — он снёс абсолютно все записи обо всех размещённых фотографиях.</p><p>Я облился холодным потом и сразу же написал аккаунт-менеджеру — повинную голову меч не сечёт. Функцию бэкапа на сервисе мы тогда ещё и не начинали обсуждать. Оставалось только написать юзерам сообщение в стиле «простите, произошёл сбой, часть фотографий утеряно».</p><p>Пользователей на тот момент было в пределах 20 человек, и залить они успели около 1,5 тысяч фоток. Катастрофы не произошло, и не считая пары косых взглядов со стороны пользователей начинающего сервиса, всё сложилось хорошо — наша веб-студия благополучно довела свою часть работ и уложилась в сроки.</p><p>Но перепугался я тогда знатно. И сделал соответствующие оргвыводы:<br />1. Нельзя давать джунам доступ к проду. Есть ненулевая вероятность, что джуниор положит всё. Из самых благих побуждений, разумеется.<br />2. Бэкапы — мастхэв. От ошибок не застрахован никто, и должна быть возможность восстановить утерянное.<br />3. Сначала подумай, потом сделай. Подумай трижды, если делаешь что-то с базами данных и запросами, которые эти базы данных меняют.</p><p>Больше таких факапов в своей работе я не допускал.</p><p><b>История №1</b></p><p>К нам за помощью обратился клиент с просьбой сделать доработку на сайте.</p><p>При этом, его сайт разрабатывала одна из самых топовых студий в России, с безупречным рейтингом и большим опытом работы. Наш программист, мягко говоря, удивился, открыв код сайта.</p><p>«Андрей, вот этот кусок кода надо переделать полностью» — комментарий, оставленный в самом коде. Видимо, Андрей так и не переделал и оставил послание нам. Спасибо ему за хорошее настроение в процессе работы!</p><p><b>История №2</b></p><p>Второй клиент заказал у нас редизайн сайта. Сайт был не древний, видно, что делали его максимум пару лет назад. Но что мы увидели, открыв исходные файлы:</p><p>1. Создалось впечатление, что сайт разрабатывали 2-3 человека, при этом, как будто сотрудничали друг с другом впервые.<br />2. Один использовал табличную верстку, а другой абсолютное позиционирование (Tilda-стайл). Третий, видимо, был немного опытнее и использовал блочную верстку.<br />3. Правда, третий вместо flex/grid использовал float left/right.<br />4. Про кроссбраузерность там и речи не шло, про никакой gulp и префиксы они и не слышали.</p><p>К сожалению, мы никогда не узнаем, как именно у них шла работа над проектом. Возможно, они одновременно что-то делали, но не контактировали между собой. А может, скидывали архив с версткой друг другу, с комментариями: «Сами придумаете?». Или, как вариант, каждый из них учился на онлайн-курсах по программированию и выполнял своё домашнее задание на сайте клиента. Вопрос остаётся открытым…</p><p><b>История №3</b></p><p>К нам обратилась одна крупная частная клиника за новым сайтом. Заказчик рассказал нам, что несколько лет работал с одной SEO-студией, но результата в продвижении так и не увидел.</p><p>Мы провели SEO-аудит. И уже при первой прогонке сайта через SEO-шный сервис ужаснулись. Количество технических ошибок зашкаливало. Причем там были такие грубейшие ошибки, такие как отсутствие h1 на некоторых страницах, а местами не было даже title и descriptions. То есть несколько лет SEO-студия брала с нашего клиента деньги за продвижение, при этом ничего не делая.</p>]]></content:encoded>
    </item>
    <item>
      <title>Соцсеть Now от бывшего сотрудника Яндекса, Росграм и Грустнограм. Есть ли у них будущее?</title>
      <link>https://tproger.ru/experts/socset-now-ot-byvshego-sotrudnika-jandeksa-rosgram-i-grustnogram-est-li-u-nih-budushhee</link>
      <comments>https://tproger.ru/experts/socset-now-ot-byvshego-sotrudnika-jandeksa-rosgram-i-grustnogram-est-li-u-nih-budushhee?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Рафаил Агазода]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/experts/socset-now-ot-byvshego-sotrudnika-jandeksa-rosgram-i-grustnogram-est-li-u-nih-budushhee</guid>
      <description><![CDATA[<p>Соцсеть Now от бывшего разработчика Яндекса, патриотический Росграм и ироничный Грустнограм. Спросили экспертов, есть ли у них будущее.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/experts/socset-now-ot-byvshego-sotrudnika-jandeksa-rosgram-i-grustnogram-est-li-u-nih-budushhee">Соцсеть Now от бывшего сотрудника Яндекса, Росграм и Грустнограм. Есть ли у них будущее?</a>»</p>]]></description>
      <category><![CDATA[Социальные сети]]></category>
      <category><![CDATA[Стартапы]]></category>
      <category><![CDATA[Ответы экспертов]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 27 Apr 2022 14:30:56 GMT</pubDate>
      <content:encoded><![CDATA[<h3>Соцсеть Now от бывшего сотрудника Яндекса, Росграм и Грустнограм. Есть ли у них будущее?</h3><p>Meta была признана экстремистской организацией на территории России, поэтому соцсети компании оказались заблокированы. При этом быстро появились аналоги – социальная сеть Now от бывшего разработчика Яндекса, патриотический Росграм и ироничный Грустнограм. Спросили экспертов, есть ли у них реальное будущее.</p><p>Сейчас активно запускаются аналоги Инстаграма: соцсеть Now от бывшего сотрудника Яндекса, Росграм и Грустнограм. Есть ли у них будущее?</p><p>Аналоги запускаются, но, по моему мнению, чтобы стать действительно значимыми площадками, им придется проделать поистине гигантскую работу. Сделать быстро это точно не получится. Просто «запустится» здесь явно недостаточно. Так, Росграм собрал порядка 10 тысяч заявок на регистрацию, но сломался, так и не стартовав. Инстаграм развивался много лет, делал многомиллионные инвестиции – это не продукт «на коленке», а серьезный успешный проект, как на технологическом, так и на бизнес-уровне. Его создавал многотысячный штат сотрудников –от талантливейших маркетологов до специалистов по искусственному интеллекту и Big Data.</p><p>Инстаграм объединяет интернациональную аудиторию, там ведут свои аккаунты звезды спорта и шоу-бизнеса, политики, общественные деятели. Пока, к сожалению, Росграм, кроме созвучного названия и похожего интерфейса (судя по демо-слайдам), не предлагает и малой доли от того, что имеется в Инстаграм – как для пользователей, так и блогеров и рекламодателей.</p><p>Вместе с тем, в России есть действительно мощные соцсети – с большой историей, значительной базой пользователей, развитыми бизнес-инструментами. Именно туда уже мигрирует немалое количество блогеров и их аудитория. Среди них и Телеграм, и ВКонтакте, и Дзен. Полагаю, именно такие соцсети являются наиболее перспективными в данный момент.</p><p>Это вполне закономерный ответ рынка на изменения в привычном «ландшафте» блогосфере и существенные изменениями правил игры, возникшие в связи с запретом или ограничением работы некоторых соцсетей. Грубо говоря, маркетолог, который создал Росграм, решил хайпануть и сделать свой проект.</p><p>Да, люди пользуются VPN, но не для всех это удобно. Некоторые VPN-сервисы становятся недоступны, и люди постоянно ищут альтернативу. Не все готовы использовать эту технологию. Так, согласно исследованиям Livedune, с момента начала спецоперации охваты в Инстаграм уменьшились почти вдвое; около половины аудитории блогеров перестала смотреть их «сторис». И, как мы знаем, в последнее время в том же Инстаграм постоянно росла доля пользователей возраста 55+, а этой группе сложнее привыкать к новым технологиям и дополнительным «неудобствам», таким, как VPN.</p><p>Я считаю, что достойных аналогов Инстграм пока нет, и в среднесрочной перспективе полноценной замены не будет. Пользователи уже почувствовали, что значит удобная и качественная площадка. И, что не менее важно, профессионалы рынка инфлюенс-маркетинга, которые использовали Инстаграм как один из ключевых бизнес-инструментов, сейчас вынуждены искать возможности на альтернативных площадках. Но здесь предстоит проделать серьезный путь, и прежде всего – самим платформам.</p><p>Появились новые площадки быстро, но также быстро про них и забыли, ведь, по сути, они так и не начали работу. Лендинг Росграма собрал много саркастических замечаний от дизайнеров и маркетологов (чего стоит логотип, в котором пользователи узнали стоковое фото). Да, как личностный PR-основателя, возможно, это было неплохо, но пользователям, блогерам и рекламодателям нужно совсем не это.</p><p>Сейчас мы только «приземлились и осматриваемся», но что будет дальше и как будет меняться рынок мы узнаем лишь через некоторое время. Я напомню, что на развитие соцсети в нашей стране большое влияние оказали международные агентства и бренды (и их бюджеты), многих из которых теперь нет. Вместе с тем, можно предположить, что им на смену уже в самое ближайшее время придут новые игроки. И здесь очень важно не упустить правильный момент – занять свою нишу. Сегодня мы видим мощный рост Телеграма — блогеры и бренды массово переходят на эту площадку.</p><p>Еще в начале 2022 года считалось, что если у ТГ-блогера 100 тысяч подписчиков, то это – крупный канал, с соответствующими контрактами и ответственностью перед аудиторией. Но уже в феврале-марте эта картина изменилась, и теперь появились ТГ-каналы, насчитывающие миллион и более подписчиков. Немало этому способствуют удобство для пользователей и интерфейс приложения, постоянные обновления: только за последнее время там появились возможности комментариев и реакции, благодаря чему пользователи получили возможность удобно общаться и просматривать контент, а блогерам, соответственно, его размещать.</p><p>Аналоги &lt;соцсети на букву “I”&gt; появились из-за желания перетянуть пользователей из заблокированной социальной сети и получить прибыль от монетизации: рекламы, промоутирования постов, создания платных аккаунтов и так далее.</p><p>Пользователям действительно не очень удобно использовать VPN. Бесплатные проекты часто предлагают невысокую скорость передачи данных и необходимость периодически менять IP-адреса для proxy. Платные VPN хоть и стабильней, но также страдают от высокой нагрузки других пользователей, что негативно влияет на скорость передачи данных. А поднять собственный VPN могут только продвинутые пользователи.</p><p>Now, Росграм и Грустнограм не станут полноценной заменой для &lt;соцсети на букву “I”&gt;. Во-первых, у них узкая аудитория, которая будет состоять только из русскоязычных пользователей. Во-вторых, в них нет идолов, за которыми следили в &lt;соцсети на букву “I”&gt;. Например, Криштиану Роналду или Джерард Лето вряд ли зарегистрируются в представленных проектах. В-третьих, аналоги всегда буду отстающими в плане функциональности, так как им предстоит копировать функции и вряд ли они смогут предложить что-то оригинальное из-за нехватки подходящих кадров, более низкого уровня скилов и недостатка бюджета.</p><p>Разработчики смогли быстро запустить площадки, так как, по сути, представили нам MVP. Собрать сервис для публикации фотографий в ленту, прикрутить к нему комментарии и личные сообщения, а также возможности лайкать и шерить посты можно с помощью фреймворков за короткое время. Пока очень напряжённый и опасный момент связан с нагрузками. Хватит ли используемых серверов для стабильной работы при большом количестве пользователей и публикуемого контента?</p><p>Блокировки соцсетей заставили людей искать альтернативы. Блогеры пошли в Telegram, но там другой формат контента. Привычное выкладывание фотографий с короткими записями не проходит. Поэтому блогеры будут менять формат подачи информации. Часть блогеров всё-таки перейдут на отечественные сервисы, например, явственна видна миграция с YouTube на RuTube после отключения монетизации на американском сервисе. А за инфлюенсерами на новые площадки потянутся и их поклонники.</p><p>Поэтому будет три категории пользователей соцсетей: кто умеет пользоваться VPN, останутся в заблокированных соцсетях и, скорее всего, будут постепенно переходить на потребление англоязычного контента, так как количество российских блогеров снизится. Вторая категория — готовые перейти на отечественные альтернативы. Однако можно уже сейчас предсказать нестабильную работу и волную критики работы сервисов из-за большого наплыва новых пользователей. Третья категория — перебравшиеся в Telegram.</p><p>Подобные соцсети появляются из-за новостного повода. Есть новость, которая широко тиражируется, в данном случае блокировки соцсетей &lt;компании на букву “M”&gt;. За счет одной новости можно раскрутить и другую, например про новую соцсеть. Сейчас новости – это лучшая реклама. Чтобы тобой интересовались, надо постоянно быть в новостях. При этом удобство, функционал и прочие вещи вообще не рассматриваются, главное быть на хайпе.</p><p>Плюс &lt;соцсети на букву “I”&gt; – это его огромная аудитория и в общем-то простой и понятный функционал. Если второй плюс может сейчас сделать любой студент (на всяких курсах по зерокодингу это очень популярный пример приложения, которое можно сделать на коленке), то с первым будет плохо у любой соцсети. Единственный способ набрать аудиторию по-быстрому – это разрекламироваться на новости, что &lt;соцсеть на букву “I”&gt; заблокировали. Но сейчас уже видно, что не получилось. Новостной шум быстро переключился внимание людей на другие проблемы.</p><p>Базовый функционал &lt;соцсети на букву “I”&gt; очень прост. Повторить его может любой разработчик на Бабл или Adalio примерно за день-два. Если разрабатывать по классике, то требуется где-то недели две.</p><p>Развитие соцсетей довольно циклично. То на первое место выходят отдельные мессенджеры и средства индивидуального общения и какие-то приватные каналы, то большую популярность приобретают сайты, где человек может вещать на большую аудиторию. В настоящее время существует огромное множество социальных сетей и площадок для общения людей по интересам, городам, странам, языку и т.д. &lt;Соцсеть на букву “I”&gt; и &lt;соцсеть на букву “F”&gt; – это очень массовые социальные сети, популярные из-за свой популярности. Но много альтернатив с функционалом на голову выше, например в VK или VChat давно имеют внутренние оплаты и магазины, а в &lt;соцсети на букву “I”&gt; и &lt;соцсети на букву “F”&gt; такие функции так и не появились.</p>]]></content:encoded>
    </item>
    <item>
      <title>У Яндекс.Еды украли данные пользователей. Как избежать таких ситуаций?</title>
      <link>https://tproger.ru/experts/u-jandeks-edy-ukrali-dannye-polzovatelej-kak-izbezhat-takih-situacij</link>
      <comments>https://tproger.ru/experts/u-jandeks-edy-ukrali-dannye-polzovatelej-kak-izbezhat-takih-situacij?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Рафаил Агазода]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/experts/u-jandeks-edy-ukrali-dannye-polzovatelej-kak-izbezhat-takih-situacij</guid>
      <description><![CDATA[<p>Данные пользователей оказались в открытом доступе. В утечке виновен один из сотрудников компании. Узнали, как можно избежать утечки данных</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/experts/u-jandeks-edy-ukrali-dannye-polzovatelej-kak-izbezhat-takih-situacij">У Яндекс.Еды украли данные пользователей. Как избежать таких ситуаций?</a>»</p>]]></description>
      <category><![CDATA[Базы данных]]></category>
      <category><![CDATA[Информационная безопасность]]></category>
      <category><![CDATA[Ответы экспертов]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Mon, 25 Apr 2022 13:30:32 GMT</pubDate>
      <content:encoded><![CDATA[<h4>У Яндекс.Еды украли данные пользователей. Как избежать таких ситуаций?</h4><p>В марте у Яндекс.Еды случилась утечка данных: имена, адреса и мобильные телефоны 5 миллионов пользователей оказались в открытом доступе. Мы узнали у экспертов по безопасности данных, как предположительно произошла утечка и что делать, чтобы уберечь данные пользователей.</p><p>Я работаю в отделе антифрод и основная задача – обеспечение безопасности операций. До этого работал в Сбербанке и застал большую утечку данных изнутри в 2020 году.</p><p>Начнем с базового вопроса – как именно любая IT компания хранит ваши данные? Ответ довольно прост – в файлах баз данных на жестких дисках на сервере. И принципиально это мало отличается от хранения любого текстового файла на вашем личном компьютере. Все ограничения доступов начинаются от физической недоступности сервера для сотрудника и заканчиваются ограничениями доступов, запароленными учетными записями и другими способами ограничения доступов.<br />Как правило идет разделение окружений – на продакшен и тестовое. К продакшен окружению доступ имеет крайне ограниченное число сотрудников и их доступы должны тщательно модерироваться. К тестовому окружению есть доступы у большинства разработчиков, тестировщиков, аналитиков.</p><p>Отвечая на вопрос – как именно сотрудник Яндекс.Еды смог добраться до данных из базы можно предположить несколько вариантов.</p><p>Первый и самый прозаичный – с некой периодичностью данные из базы данных с продакшена копируются на тестовое окружение для того, чтобы можно было проводить тестирования на данных, максимально приближенных к реальным. Но здесь есть загвоздка – уважающие себя компании перед таким копированием производят процедуру обезличивания чувствительных данных, таких как номера телефонов, имя фамилия и т.д. Если данные были выгружены с тестовой базы данных, это может значить, что отсутствуют механизмы обезличивания, либо они работают некорректно.</p><p>Второй способ, как данные можно унести за пределы компании – непосредственно выгрузка с продакшен базы. Но если это так, то сразу появляется большое количество вопросов – как такое пропустила команда поддержки. Потому что большая единовременная выгрузка данных провоцирует большую нагрузку на базу и пропустить такой скачок на графиках довольно сложно.</p><p>Возможны способы более экзотические – во время техобслуживания оборудования диски с незашифрованной информацией попали к недобросовестному сотруднику, которые передал их тому, кто смог понять какие данные там хранятся и как их достать. Но чаще всего все куда прозаичнее.</p><p>Можно ли не отдавать свои данные корпорации и хранить личную информацию только на смартфоне? Краткий ответ на такой вопрос – да, можно. Вполне возможно хранить всю личную информацию на телефоне, а на сервер отправлять какой-то обезличенный токен. Однако в таком случае потеряется часть функциональности. Например вы подключаетесь с нового устройства и вам будет нужно вбивать все свои личные данные. А также не стоит забывать, что Яндекс занимается анализом данных для оптимизации своих рекомендательных и рекламных алгоритмов. Анализировать “обезличенные” данные пользователей можно только имея их на своей стороне. Плюс хранение данных пользователя на устройстве увеличит количество памяти, которое будет занимать приложение и количество сетевого трафика для неочевидных функций, где ваша информация потребуется на другом устройстве. Именно поэтому компаниям не выгодно хранить данные пользователей удаленно на устройствах.</p><p>Как можно защитить БД с помощью современных технологий? На самом деле все необходимое уже придумано и реализовано. Шифрование данных доступно, разбиение базы физически на разные сервера, чтобы даже доступ к одному элементу не дал доступа ко всей картине данных. Вопросы к тому – как именно собрать систему, чтобы ей было удобно пользоваться и она была безопасной.</p><p>К сожалению безопасность системы рассчитывается по самому слабому звену этой системы. А самым слабым и в то же время незаменимым звеном оказывается человек.</p><p>Насколько я понял, из тех данных, что утекли, это больше напоминает выборку данных, сделанную для какой-то последующей обработки – построение аналитики или обучения моделей ML. Вариантов, как эти данные оказались у сотрудника два: либо этот сотрудник участвовал в данном процессе, либо это последствия безалаберного отношения к работе с персональными данными в целом, когда доступ к ним получают сторонние сотрудники.</p><p>Есть еще третий вариант – сотрудник имел доступ к базе данных и осуществил выборку данных с преступной целью. Но я считаю этот вариант маловероятным: на мой взгляд, инцидент с утечкой данных из почты «Яндекса», раскрытый в 2021, должен был ниверилировать подобную возможность.</p><p>Данные хранились на серверах Яндекса. Но можно ли сделать так, чтобы личная информация клиента хранилась исключительно на смартфоне клиента? К сожалению, это затруднительно. Как курьер узнает номер телефона и адрес доставки клиента, если телефон потеряет сеть?</p><p>Защитить данные помогут не конкретные технологии, а скорее процессы:<br />– Доступ к данным должен регламентироваться и жестко контролироваться;<br />– Ограничивать, какие данные для каких задач передаются. Например, если это были сырые данные для аналитики – убирать из них не относящиеся к решаемой задаче поля.<br />– Использовать контролируемые средства передачи данных, исключающие прямой доступ к файлу с данными.</p><p>Возможно ли сделать так, чтобы ни один сотрудник не мог получить доступ к незашифрованным данным? Я допускаю, что такое возможно сделать. Однако это решение будет очень сложным, дорогим и потенциально медленным. Что неизбежно выльется в повышение стоимости сервиса для пользователей и снижении качества.</p>]]></content:encoded>
    </item>
    <item>
      <title>Что такое цифровой рубль и как он работает</title>
      <link>https://tproger.ru/experts/chto-takoe-cifrovoj-rubl-kak-on-budet-rabotat</link>
      <comments>https://tproger.ru/experts/chto-takoe-cifrovoj-rubl-kak-on-budet-rabotat?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Рафаил Агазода]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/experts/chto-takoe-cifrovoj-rubl-kak-on-budet-rabotat</guid>
      <description><![CDATA[<p>Центробанк сообщил, что в России появится цифровой рубль. Узнали, в чём разница между ним, обычным рублём и криптовалютой.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/experts/chto-takoe-cifrovoj-rubl-kak-on-budet-rabotat">Что такое цифровой рубль и как он работает</a>»</p>]]></description>
      <category><![CDATA[Финтех]]></category>
      <category><![CDATA[Криптовалюты]]></category>
      <category><![CDATA[Ответы экспертов]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Fri, 22 Apr 2022 12:15:26 GMT</pubDate>
      <content:encoded><![CDATA[<h4>Что такое цифровой рубль? Как он будет работать?</h4><p>Центробанк сообщил, что в России появится новая форма валюты — цифровой рубль. Узнали у экспертов, чем он отличается от привычного рубля и имеет ли что-то общее с криптовалютой.</p><p>Цифровой рубль — это дополнительная (третья, наряду с наличной и безналичной) форма российской национальной валюты, которая будет выпускаться Банком России в цифровом виде.</p><p>Предварительный механизм работы Центробанк предлагает такой: каждому цифровому рублю присваивается уникальный цифровой код. Он будет находиться в цифровом кошельке клиента на специальной платформе. Сначала Центробанк откроет кошельки Федеральному казначейству и банкам. Затем финансовые организации дадут доступ в кошельки своим клиентам. Каждому клиенту будет доступен только один цифровой кошелёк.</p><p>Мы, как разработчики мобильных приложений, считаем, что распространение цифрового рубля потребует комплексных изменений в логике и структуре мобильных приложений банков. Скорее всего, по аналогии с СБП, ЦБ РФ подготовит единые рекомендации по реализации платформы цифрового рубля для коммерческих банков. И каждому банку придётся под них подстраиваться даже в ущерб существующим возможностям в мобильном приложении.</p><p>Вероятно, как и в СБП, это будет строгая последовательность запросов для перевода цифровой валюты, которая может в корне расходиться с логикой приложения банка. Чтобы реализовать её, банкам придётся не только внести изменения в само мобильное приложение, но и реализовать новую логику на бэкенде. Резюмируя, в любом случае, внедрение цифрового рубля в мобильные сервисы не произойдёт «по щелчку». Это потребует серьёзной переделки существующих у банков решений и не менее серьёзных вложений.</p><p>Это не отдельная валюта, это дополнительная форма национальной валюты с равным правовым статусом. Сейчас в ходу только две: наличная и безналичная. Это не крипта. У криптовалюты нет эмитента — выпускающего органа, а у цифрового рубля он будет — и это Центральный Банк РФ. Главное отличие цифрового рубля от привычных нам денег в том, что он выпускается с помощью цифровых технологий, а от криптовалют он отличается наличием эмитента.</p><p>Можно будет намайнить цифровой рубль? Вряд ли. Официальной информации от ЦБ по этому вопросу нет, но смеем предположить, что это расходится с концепцией. Майнинг предполагает неограниченное создание платёжных единиц. В то время как выпуск цифрового рубля будет установлен Центральным Банком.</p><p>Зачем он вообще нужен? На банковских картах находится безналичная форма денег, а цифровой рубль, согласно концепции ЦБ, будет являться третьей формой. Её будет выпускать непосредственно ЦБ, без привязки к «бумажным» деньгам. К тому же, на цифровой рубль делают ставку как на валюту, способную проводить транзакции в офлайн-режиме.</p><p>Банк России берёт на себя разработку основной инфраструктуры — программного модуля, интегрированного в мобильные приложения банков. А значит и за безопасность должен отвечать главный выпускающий и регулирующий орган. Но наш 12-летний опыт работы с банковскими проектами свидетельствует, что не всё так просто. Такие проекты требуют большого внимания и много ресурсов и со стороны разработчика мобильного приложения, и со стороны конкретного банка. В этом смысле можно говорить о распределённой ответственности: главный эмитент отвечает за безопасность транзакций, разработчики и пентестеры — за кибербезопасность, банки — за реализацию.</p><p>Можем предположить, что ЦБ сделает всё, чтобы минимизировать вероятность подделок. В цифровом пространстве это, возможно, даже проще отследить, нежели с фиатной валютой.</p><p>Цифровой рубль не имеет ничего общего с криптовалютой и способами ее добычи. Это не отдельная валюта, это третья форма национального российского рубля в дополнение к наличным и безналичным деньгам. Привычные безналичные средства лежащие на картах граждан расположены на счетах различных коммерческих банков, цифровой рубль же на счету только Центрального Банка России.</p><p>Прежде всего, внедрение цифрового рубля — шаг в сторону контроля за передвижением денежных средств. Как показывает практика, контролировать безнал удается далеко не всегда, а передвижение наличных средств отследить практически невозможно.</p><p>На мой взгляд, дан старт глобальной перестройки финансового сектора. Рядовой потребитель не заметит колоссальных изменений, так как обладатели любых форм национальной валюты полностью равноправны. Цифровой рубль объединит сочетание наличных и безналичных денег.</p><p>Определенно коммерческие банки постепенно потеряют определяющую роль и перейдут в разряд посредников, функцией которых, станет открытие счетов клиентам в Центральном Банке России, так как именно в нём будет храниться национальная цифровая валюта.</p><p>Запуск цифрового рубля выведет из банковской системы триллионы рублей и сократит объем кредитования. Со временем потребность в наличии большинства банковских коммерческих организаций пропадёт, они будут закрываться.</p><p>Простыми словами, цифровой рубль сделает Центробанк единственным необходимым банком. Цифровизация рубля изменит баланс сил в сторону государства и существенным образом снизит влияние действующей финансовой системы. Диктат коммерческого банковского капитала останется в прошлом, ключевая роль в развитии государства перейдет в реальный сектор экономики. Многое будет решать позиция Центробанка и его действия. Объективно, Центробанк может стать главным органом государственной власти страны, от которого будет зависеть всё, так как он сможет отслеживать и накладывать вето на любые транзакции.</p><p>Цифровой рубль — это новая форма национальной валюты России. Отдельной валютой его считать нельзя, так как концепция предполагает полную привязку цифрового рубля к физическому, а также возможность в любой момент обменять цифровые рубли на физические деньги.</p><p>На Западе для цифровых валют, выпускаемых центральными банками, уже давно придумали отдельное название (CBDC), так как они существенно отличаются от традиционных криптовалют. Основное различие — отсутствие децентрализации. Цифровым рублем будет управлять Банк России. Это значит, что ЦБ может увеличивать/снижать эмиссию e-RUB, блокировать операции с валютой для лиц из черных списков и даже манипулировать курсом цифрового рубля.</p>]]></content:encoded>
    </item>
    <item>
      <title>Какие существуют сервисы для нефункционального ручного тестирования для новичков</title>
      <link>https://tproger.ru/experts/kakie-sushhestvujut-servisy-dlja-nefunkcionalnogo-ruchnogo-testirovanija-dlja-novichkov</link>
      <comments>https://tproger.ru/experts/kakie-sushhestvujut-servisy-dlja-nefunkcionalnogo-ruchnogo-testirovanija-dlja-novichkov?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Рафаил Агазода]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/experts/kakie-sushhestvujut-servisy-dlja-nefunkcionalnogo-ruchnogo-testirovanija-dlja-novichkov</guid>
      <description><![CDATA[<p>Составили перечень полезных сервисов для нефункционального ручного тестирования, которые подойдут даже новичкам.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/experts/kakie-sushhestvujut-servisy-dlja-nefunkcionalnogo-ruchnogo-testirovanija-dlja-novichkov">Какие существуют сервисы для нефункционального ручного тестирования для новичков</a>»</p>]]></description>
      <category><![CDATA[Тестирование]]></category>
      <category><![CDATA[Инструменты]]></category>
      <category><![CDATA[Ответы экспертов]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Mon, 18 Apr 2022 12:27:47 GMT</pubDate>
      <content:encoded><![CDATA[<h4>Какие существуют сервисы для нефункционального ручного тестирования для новичков?</h4><p>Прежде чем научиться автоматизированному тестированию, было бы полезно узнать, как продукты тестируются вручную. Спросили, какие инструменты используются новичками для нефункционального ручного тестирования.</p><p>Выполняя функциональное тестирование, мы проверяем, что делает продукт, тогда как нефункциональное тестирование описывает, как он работает. Например, когда вы вводите в поисковую строку сайта какой-либо запрос, то за релевантность выданных результатов отвечает функциональный тест, а за скорость выгрузки — нефункциональный.</p><p>Я бы выделил все виды тестирования производительности:</p><ul><li>нагрузочное тестирование (Performance and Load Testing),</li><li>стрессовое тестирование (Stress Testing),</li><li>тестирование стабильности или надежности (Stability / Reliability Testing),</li><li>объемное тестирование (Volume Testing).</li></ul><p>А также по возможности проверить следующий список нефункционального тестирования:</p><ul><li>тестирование установки (Installation testing),</li><li>тестирование удобства пользования (Usability Testing),</li><li>тестирование на отказ и восстановление (Failover and Recovery Testing),</li><li>конфигурационное тестирование (Configuration Testing),</li><li>тестирование безопасности (Security and Access Control Testing).</li></ul><p>Нефункциональные тесты по возможности стараются автоматизировать. Чаще всего автоматизируют или частично автоматизируют нагрузочное тестирование, тестирование производительности, тестирование безопасности — эти виды отнимают много времени при ручных проверках, но являются важными и требуют регулярной актуализации.</p><p>А вот тестирование удобства использования, тест на отказ и восстановление и конфигурационное тестирование проводятся реже, и иногда эффективнее организовать их в ручном режиме, чем тратить время на автоматизацию редкого процесса.</p><p>Чтобы выбрать программу для тестирования, сначала нужно понять, что вам нужно проверить. Например, для тестирования установки или совместимости можно взять Browsera или Browserling. Первая программа предоставляет подробный отчет о проблемах макета, также может тестировать сайты целиком. Второй вариант предназначен только для веб-тестирования, он создает интерактивные сеансы в режиме реального времени для кросс-браузерного тестирования.</p><p>Тестирование удобства пользования можно осуществлять в UserTesting — этот инструмент создает видео людей, использующих тестируемый сайт или приложение. По итогам предоставляется отчет, в котором выявляются основные проблемы. Есть еще Validately — это приложение позволяет тестировать живые сайты и анализировать результаты с помощью отчетов и видео, здесь можно общаться с тестировщиками вживую.</p><p>Для тестирования безопасности можно выделить несколько утилит.</p><ul><li>OWASP ZAP (Zed Attack Proxy) — это наиболее широко используемый в     мире веб-сканер уязвимостей, он полностью     бесплатный и имеет открытый исходный код, поэтому вы можете адаптировать его под свои нужды. Эта программа активно     поддерживается международным сообществом добровольцев, которые работают над постепенным улучшением инструмента, а также включают новые функции.</li><li>Burp Suite — во многом аналогичен OWASP ZAP.</li></ul><p>При выборе инструментов также важно понимать, каков бюджет и как часто вы планируете использовать программы — для этого есть платные и бесплатные решения. В некоторых случаях можно запросить краудсорсинговое тестирование, например для тестирования удобства использования, либо нанять фирму на аутсорсе для одиночного нагрузочного теста.</p><p>Если вы начинающий тестировщик и только изучаете инструменты, то стоит присмотреться к новинкам, там часто попадаются удобные, но пока еще непопулярные инструменты.</p><p>Что касается нашей компании, то для тестирования безопасности мы используем OWASP ZAP. При нагрузочном тестировании наши разработчики работают в Яндекс.Танк в частично автоматизированном режиме, а тестировщики иногда используют Siege. С помощью этой программы проверяется ресурсоемкость кода в условиях, максимально приближенных к реальным. Остальные нефункциональные тесты мы проводим в ручном режиме.</p><p>Если говорить кратко и ёмко, то функциональное тестирование – это то, что программа должна выполнять по требованиям и нуждам заказчика. А вот нефункциональное – то, с помощью чего приложение должно выполнять поставленные требования к функционалу.</p><p>Здесь даже можно отметить, что заказчик и/или конечный пользователь задает свои «хотелки» и то, как он видит продукт с ними к функциональной части программного продукта. Команда разработчиков в свою очередь помогает подобрать различные инструменты, чтобы этот функционал мог работать, но и конечно же команда разрабатывает функциональную часть тоже.</p><p>Как пример – ситуация: сможем ли мы оплатить покупку в онлайн-магазине, если интернет недоступен? Не сможем. И в данном случае функционал – это оплата онлайн-покупки, а интернет – это инструмент, т. е. нефункциональная часть, которая поддерживает оплату покупки. Исходя из логики, здесь стоит проверить восстановление системы путем отключения/включения интернета.</p><p>В целом автоматизировать тесты в нефункциональном тестировании можно, но некоторые существующие инструменты нефункционального тестирования являются более сложными для новичка и требуют набор определенных навыков. Есть и программное обеспечение, не требующее больших навыков для начинающих тестировщиков.</p><p>Для ручного нефункционального тестирования важно проверить документацию. Документация – это не только различный набор файлов, но и сам графический интерфейс программного продукта, который может иметь неверный шрифт, неправильные размеры изображений, какие-то орфографические ошибки. Соответственно, здесь применяются тесты для проверки верстки веб-страницы.</p><p>Здесь можно говорить об инструментах сравнения документации (один из популярных инструментов – это «CompareTools»). Открываем через этот инструмент два схожих файла или изображения, которые имеют небольшие отличия, и «CompareTools» отобразит, где есть расхождения. Также существует и онлайн-версия инструмента сравнения – «DiffNow».</p><p>Для тестирования верстки веб-страницы устанавливается плагин для браузера «Perfect Pixel», который помогает также делать сравнение между утвержденным шаблоном и реальной «картинкой» на той же веб-странице.</p><p>И, в конечном счете, почему бы такое нефункциональное тестирование не назвать автоматизацией? Ведь мы не делаем ручное сравнение, за нас это делают средства тестирования.</p><p>Приведенные мной программы и плагин достаточно просты в понимании – и, кроме того, очень четко подсвечивают несоответствия. В «CompareTools» и «DiffNow» отображаются окна с двумя (или более) схожими файлами, а различия подсвечиваются красным цветом – это достаточно удобно для тестировщика. А вот сам плагин «Perfect Pixel» даже может показать размер и стили шрифта, размер изображения на веб-странице, и в утвержденном макете.</p><p>Проблема, что может возникнуть еще на начальных этапах – это, конечно же, «замыливание» глаз, если не применять наших «помощников» и искать несоответствия вручную.</p><p>Вполне вероятны и трудности с программами для нефункционального тестирования: неверной установкой инструмента, установкой плагина на разных браузерах (конечные пользователи используют разные браузеры), установкой плагинов на разных устройствах (компьютер, планшет, мобильный телефон), разные операционные системы на всех этих устройствах, разные браузеры у этих операционных систем. И сколько таких площадок для нефункционального тестирования – известно только самому тестировщику.</p><p>Более сложное нефункциональное тестирование для повышения навыков</p><ul><li>Проверка производительности (мощности) системы – Apache JMeter, NeoLoad, HP LoadRunner, Dynatrace, JHM (Java Microbenchmark Harness), BenchmarkDotNet, Google Lighthouse;</li><li>Инструменты для нагрузочного тестирования – снова Apache JMeter, Gatling, HP LoadRunner, Яндекс.Танк, Taurus;</li><li>Тестирование безопасности – Netsparker, Metasploit, Acunetix, Core Impact, w3af, Wireshark, Kali Linux, Nessus, Burpsuite, Cain &amp; Abel;</li><li>Тестирование масштабируемости – BlazeMeter, WonderNetwork, Loader, Load Impact, Blitz;</li></ul><p>И последнее нефункциональное тестирование, которое можно предложить для начинающего тестировщика – это анализ сетевого трафика в Fiddler.</p>]]></content:encoded>
    </item>
    <item>
      <title>Что делать с перегруженным дизайном</title>
      <link>https://tproger.ru/experts/chto-delat-s-peregruzhennym-dizajnom</link>
      <comments>https://tproger.ru/experts/chto-delat-s-peregruzhennym-dizajnom?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Рафаил Агазода]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/experts/chto-delat-s-peregruzhennym-dizajnom</guid>
      <description><![CDATA[<p>Эксперты поделились, как выявить перегруженный дизайн и облегчить его, чтобы сайт начал работать быстрее и лучше индексировался.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/experts/chto-delat-s-peregruzhennym-dizajnom">Что делать с перегруженным дизайном</a>»</p>]]></description>
      <category><![CDATA[Веб-дизайн]]></category>
      <category><![CDATA[Дизайн интерфейсов и UX]]></category>
      <category><![CDATA[Советы]]></category>
      <category><![CDATA[Ответы экспертов]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Mon, 18 Apr 2022 10:17:01 GMT</pubDate>
      <content:encoded><![CDATA[<h4>Что делать с перегруженным дизайном?</h4><p>Дизайн влияет не только на визуальное восприятие сайта, но и на скорость его загрузки. Узнали, как найти золотую середину и не перегрузить сайты.</p><p>Громоздкий и тяжелый дизайн — это плохо, потому что пользователь будет теряться в огромном количестве информации, кнопок, ссылок. Зачастую попытки уместить все и сразу негативно сказываются на восприятии информации: фокус рассеивается, и вычленить главное становится сложно.</p><p>Если мы говорим об информационных порталах, нужная информация просто затеряется среди побочной.</p><p>Перегруженный дизайн интернет-магазина отвлекает от сути и “мешает” приобрести товар или услугу – это становится невозможно.</p><p>Сильно перегруженный дизайн влияет на работу сайта и скорость его загрузки.</p><p>Представьте страницу с галереей фото, на которой используются разные шрифты для заголовков, контента, ссылок. Изображения добавлены в оригинальном размере, их вес может достигать нескольких мегабайт, и подгружаться они будут все сразу.</p><p>В таком случае время загрузки страницы существенно увеличивается, да и пользоваться таким сайтом может быть неудобно из-за обилия стилей, начертаний, элементов.</p><p>Начните анализировать сайт с шапки. Если там указано по три телефона и e-mail разных филиалов и отделов, несколько адресов с указанием близости к станции метро и временем работы каждого, а также есть несколько меню (основное и каталог), логотип, девиз, кнопка заказать звонок – этот сайт однозначно перегружен.</p><p>Несмотря на благие намерения – указать всю важную информацию, мы невольно мешаем пользователю пользоваться сайтом. Шапка из примера займет 35% первого экрана и будет препятствовать совершению целевых действий.</p><p>Основное правило – использовать сетку. От нее зависит расположение контента, отступы. Кстати, и отступами пренебрегать не стоит: между блоками, внутри блоков, в тексте, в кнопках и элементах должен быть воздух. Это поможет сделать акцент на важном, расположить контент по приоритету.</p><p>В визуальном оформлении стоит также придерживаться здорового минимализма: в идеале это не более двух шрифтов, однотонный фон вместо изображений, абстракции и иллюстрации вместо тяжелых фото.</p><p>Стоит придерживаться минимализма и функционализма. Это поможет убрать лишний контент, избавиться от избыточного и неактуального функционала. Иногда помогает скрыть менее важную информацию под кнопкой, иногда приходится задуматься о переработке блоков и контента.</p><p>Для начала нужно определится с задачей сайта, для каких нужд он предназначен и какие цели он преследует. Далее определить функционал сайта, понять, какие элементы интерфейса должны быть на всех страницах, а какие можно убрать. После этого размещаем этот оставшийся контент и элементы навигации на широкую сетку, выставляем большие отступы – и легкий, просторный сайт готов.</p><p>Есть сервис Яндекс Взгляд –  это сервис по аналитике UX интерфейса, его УТП «Принимайте дизайн-решения, основанные на данных. Тестируйте варианты интерфейсов на этапе прототипа, чтобы выбрать самый понятный для пользователей».</p><p><b>Полезная литература:</b></p><ol><li>Стив Круг. «Веб-дизайн: книга Стива Круга, или Не заставляйте меня думать!»</li><li>Дональд Норман. «Дизайн привычных вещей»</li><li>Алан Купер. «Психбольница в руках пациентов»</li><li>Влад Головач. «Дизайн пользовательского интерфейса 2. Искусство мыть слона»</li><li>Джейми Леви. «UX-стратегия. Чего хотят пользователи и как им это дать»</li><li>Расс Унгер и Кэролайн Чендлер. «UX-дизайн. Практическое руководство по проектированию опыта взаимодействия»</li></ol><p>Для начала стоит сказать, дизайн делится на два направления: UI и UX. Первый – это интерфейс, второй это опыт пользователя. Мы сейчас будем говорить в общем, но акцент в каждом из ответов буду упоминать. Начнём с того, что понятие “перегруженный дизайн” довольно относительное. Ведь тут надо понимать, о чём собственно веб-страница, её цель.</p><p>Её цель может быть получить контакты лида, либо просто сделать так, чтобы пользователь засиделся на странице. В первом случае клиенту лучше увидеть проблему, её решение, цену и почему данная компания лучше клиентов, оказывающие аналогичные услуги. Это может его побудить оставить контакты.</p><p>Во втором случае же достаточно создать страницу с заголовками кликбейтных новостей, чтобы глаза пользователя разбегались. Когда мы говорим громоздкий дизайн, то скорее всего подразумеваем обилие ненужной информации, которая. не приведёт нас к цели. Если рассматривать случай, где надо получить контакты лида, то это может быть к примеру длинное описание решения проблемы с её технической стороны, которое не нужно пользователю.</p><p>По скорости загрузки, тут уже мы затронем скорее всего техническую часть. Потому что один и тот же дизайн можно сверстать так, что он будет оптимизирован буквально до 1 мегабайта и всё будет загружаться на отлично. Если сайт имеет километровую длину, то её тоже можно заставить быстро грузиться (есть такие технологии). Поэтому перегруженность дизайна скорее влияет на пользователя, на его время потраченное на сайте. Если он за 30 секунд не нашел для себя полезного, то он скорее всего выйдет из сайта.</p><p>Определить перегруженность дизайна непросто. Опять же тут уже обращаемся к UX составляющей. Может быть случай, где для 50% пользователь сайт полон изобилием информации, а для остальных он достаточно осветил их проблему и пути их решения. Тут уже следует разделять аудиторию, делать анализ и создавать AB тесты.</p><p>AB тестирование грубо говоря следующее: создаём 2 сайта заточенные под разные аудитории (например мужскую и женскую) и настраиваем рекламу или способы привлечения по полу. Оценив поведенческие факторы пользователей мы сможем подобрать для.каждой группы тот дизайн, который им больше всего подойдёт.</p><p>Можно пользоваться правилом пирамиды наоборот, т.е. создать дизайн с минимальной информацией и постепенно наращивать её и тестировать результат. Специальных автоматизированных сервисов нет, посколько дизайн никак алгоритмически. не читается. Да google pagespeed может определить насколько удобно пользоваться сайтом, но он это делает считывая машинный код.</p><p>Скорректировать дизайн могут специалисты. Литература конечно же есть, но не стоит забивать ею голову. Главное опыт, потому что каждый случай индивидуален. Можно локализовать каждый блок дизайна под уже известный проект, это сильно поможет. Про то как найти баланс я уже сказал. Надо проводить тестирование и реакцию пользователей.</p>]]></content:encoded>
    </item>
    <item>
      <title>Чем заменить Slack и другие ушедшие сервисы?</title>
      <link>https://tproger.ru/experts/chem-zamenit-slack-i-drugie-ushedshie-servisy</link>
      <comments>https://tproger.ru/experts/chem-zamenit-slack-i-drugie-ushedshie-servisy?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Рафаил Агазода]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/experts/chem-zamenit-slack-i-drugie-ushedshie-servisy</guid>
      <description><![CDATA[<p>Slack начал удалять рабочие пространства некоторых российских компаний. Узнали, какие аналоги позволят сохранить корпоративные данные.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/experts/chem-zamenit-slack-i-drugie-ushedshie-servisy">Чем заменить Slack и другие ушедшие сервисы?</a>»</p>]]></description>
      <category><![CDATA[Инструменты]]></category>
      <category><![CDATA[Сервисы]]></category>
      <category><![CDATA[Slack]]></category>
      <category><![CDATA[Ответы экспертов]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 13 Apr 2022 11:41:15 GMT</pubDate>
      <content:encoded><![CDATA[<p>Slack начал удалять рабочие пространства некоторых российских компаний: среди них, например, Сбер. Ещё компания перестала принимать платежи от россиян, а все пространства переведены на бесплатный тариф. Узнали, какие аналоги используют в России, чтобы не потерять корпоративные данные.</p><h2>Сервисы Atlassian</h2><p>Jira. Трекинг задач, логирование рабочего времени.</p><p>Сonfluence. Хранение проектной документации, ведение базы знаний.</p><p>Bitbucket. Мирроринг, хранение кодовой базы.</p><p>Статус. Австралийская компания Atlassian заявила, что приостановит продажу всех новых продуктов в России.</p><p>Также в компании говорят, что будут точечно отзывать лицензии у некоторых госструктур и корпораций. При этом компания обещает продолжить выполнять свои обязательства перед представителями малого бизнеса в РФ.</p><p>Решение. Пока мы рассматриваем сервисы GitLab как замену сервисам Atlassian. Регулярно выгружаем бэкапы в российский облачный сервис.</p><h2>GitLab. Разработка и хранение кодовой базы</h2><p>Статус. 4 марта представители платформы в ответ на требование блокировки российских пользователей заявили, что им важен вклад каждого участника, и они не будут блокировать юзеров из РФ.</p><p>Решение. Даже если ситуация поменяется, наша компания не должна пострадать. GitLab развёрнут на наших серверах на базе российского облака.</p><h2>Figma. Разработка и прототипирование интерфейсов</h2><p>Статус. Уже известны случаи отключения корпоративных аккаунтов, при этом частные аккаунты это пока не коснулось.</p><p>Решение. Пока не найдено. Сейчас мы подготовили скрипт, который позволяет забэкапить большую часть наших макетов «пакетно». Три больших проекта скрипт по-прежнему игнорирует, но выгрузить руками три проекта легче, чем восемьдесят. У сервиса не самый дружелюбный API, и пока это лучшее, что мы смогли сделать.</p><h2>Slack. Корпоративный мессенджер</h2><p>Статус. Компания уведомила, что все клиенты из РФ переведены на бесплатный тариф. Это значит, что количество хранимых сообщений будет ограничено 10 000, а добавлять в корпоративную учётную запись новых пользователей из РФ будет нельзя.</p><p>Решение. Мы попробуем обойтись бесплатной версией сервиса, предварительно создав запас пустых учёток для будущих сотрудников. Одновременно с этим попросили всех коллег выгрузить из чатов важные артефакты и не использовать Slack как хранилище. Ещё в прошлом году мы рассматривали аналоги Slack, и сейчас на наших серверах развёрнуты решения с открытым кодом Rocket.chat и Mattermost.</p><h2>Bitdefender. Корпоративный антивирус</h2><p>Статус. 11 марта румынская компания заявила, что приостанавливает продажи и маркетинг продуктов в России. Однако мы ведём переговоры с представителями компании. По их требованию мы заполнили анкету: на её основе данных они примут решение о дальнейшей поддержке нашей учётной записи.</p><p>Решение. Надеемся на положительное решение со стороны Bitdefender и продолжаем пользоваться продуктами Kaspersky.</p><h2>Zoom. Видеоконференции</h2><p>Статус. Zoom запретила продажи платной версии в России.</p><p>Решение. Помимо Зума на проектах мы используем MS Teams, а также Google Meet — он входит в наш корпоративный тариф на Google Workspace. Если придётся отказаться от Zoom, Meet и Teams, мы перейдём на отечественные Яндекс.Телемост и VideoMost.</p><h2>Сервисы Microsoft</h2><p>Статус. Американская корпорация Microsoft приняла решение о приостановке своей деятельности на территории России.</p><p>Решение. На протяжении всей истории компании мы исправно оплачивали Microsoft Office, но теперь вынуждены минимизировать его использование. Наш поставщик уверяет, что мы сможем продлить лицензию.</p><p>Однако мы, скорее всего, не будем этого делать — с учётом нынешней стоимости продукты MS станут для нас нерентабельными. Пока используем аналоги от Google и присматриваемся к решениям с открытым исходным кодом.</p><h2>Сервисы Google</h2><p>Статус. В случае блокировки Google в России всех нас ждут проблемы посерьёзнее, чем поиск аналогов любых перечисленных выше инструментов. 70% смартфонов в России могут превратиться в кирпичи, перестанет работать оплата картами банков, почта, приложения и онлайн-банкинг.</p><p>Решение. Невозможно подготовить внятный план на такой случай. Нам остаётся только надеяться, что до этого не дойдёт. На случай блокировки корпоративного аккаунта Gmail мы подготовили сценарий миграции на Timeweb с пересылкой писем на личные аккаунты.</p><h2>Остальное</h2><p>В работе мы используем и немало российских сервисов. Соответственно, наши процессы, завязанные на Bitrix24, 1C, Диадоке, Mango Office и Хантфлоу, не пострадали. Также в относительной безопасности серверная архитектура на Яндекс.Облаке и Timeweb.</p><p>От нескольких сервисов, которые не представляли существенной ценности, мы просто отказались. В их число попали Apiary, Dribbble и Dropbox.</p><p>До недавнего времени мы также готовились внедрять в компании сервис для построения ментальных карт Miro. Сейчас процесс подготовки на паузе, поскольку Miro ограничивает свою работу в России.</p>]]></content:encoded>
    </item>
    <item>
      <title>Как блокчейн может спасти ресурсы от блокировок?</title>
      <link>https://tproger.ru/experts/kak-blokchejn-mozhet-spasti-resursy-ot-blokirovok</link>
      <comments>https://tproger.ru/experts/kak-blokchejn-mozhet-spasti-resursy-ot-blokirovok?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Рафаил Агазода]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/experts/kak-blokchejn-mozhet-spasti-resursy-ot-blokirovok</guid>
      <description><![CDATA[<p>Заблокированные зарубежные сервисы ставят вопрос о стойкости ресурсов; оценивается, способен ли блокчейн повысить устойчивость к блокировкам.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/experts/kak-blokchejn-mozhet-spasti-resursy-ot-blokirovok">Как блокчейн может спасти ресурсы от блокировок?</a>»</p>]]></description>
      <category><![CDATA[Блокчейн]]></category>
      <category><![CDATA[Ответы экспертов]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Mon, 11 Apr 2022 09:39:30 GMT</pubDate>
      <content:encoded><![CDATA[<h4>Как блокчейн может выручить во время массовой блокировки ресурсов?</h4><p>В России оказались заблокированы некоторые зарубежные сервисы. Спросили, может ли блокчейн защитить от блокировок.</p><p>Готовых решений среди российских успешных кейсов я пока не знаю, но большинство российских компаний, начиная Дикси и заканчивая СберБанком, привлекали разработчиков с 2017-го года по нынешний.</p><p>Основные преимущества блокчейна в бизнесе — это, во-первых, скорость информации, поступления. Во-вторых, надежность реестра, в котором будет храниться информация, которую нельзя изменить. В-третьих, это некая печать, которой можно будет подписывать документы, делать это достаточно быстро и автоматизированно.</p><p>Опасность заключается в том, что в случае, если блокчейн будет перегружен, как это бывает с Эфиром, то это все может «встать» на неопределенное время.</p><p>Для сохранения корпоративной информации от утечек нужно следить за разработчиками. В случае, если какой-то сотрудник, который будет работать с блокчейном, внесет туда поправки для создания утечки, то она может произойти.</p><p>Развернуть блокчейн систему самостоятельно довольно затратно, хоть и не сложно, но всё зависит от масштабов. Полноценное формирование блокчейна под свои нужды будет стоить около 200 000 долларов.</p><p>Для использования децентрализованных систем не нужны особые навыки, рядовой бухгалтер справится с работой в блокчейне. Будет создан пользовательский интерфейс, где человек будет работать так же, как с браузером Chrome или с какой-то другой программой.</p><p>Прямого взаимодействия с блокчейном здесь нет, писать код и делать самостоятельно расчеты не придётся. Человек будет использовать это, как программу, здесь абсолютно всё просто.</p><p>На практике массовое применение блокчейн-технологий и децентрализованных систем в России не наблюдается, однако отдельные компании только начинают изучать подобные направления. Например, недавно СберБанк запустил собственную платформу для торговли ЦФА, которая была одобрена ЦБ и уже начала работу.</p><p>Основная особенность децентрализованных систем заключается в том, что они предоставляют равные права всем своим участникам. Если бы децентрализованные блокчейн-технологии уже повсеместно использовались в бизнесе, то у западных стран не было бы возможности вводить различные ограничения и санкции из-за отсутствия рычага давления. Бизнес начинает это осознавать и двигаться в сторону децентрализации, чтобы снизить риски от возможного вмешательства третьих лиц.</p><p>Именно для использования уже готовых децентрализованных систем особых навыков не нужно. Такие системы (те, что уже были заточены под пользователя) ничем не отличаются от обычного программного обеспечения. А вот для создания децентрализованных систем и их адаптации для конечного потребителя нужны блокчейн-специалисты, которых на рынке пока очень мало.</p><p>Это происходит из-за того, что отрасль крайне молодая и сейчас в ней работают самоучки, так как вузы только начинают открывать направления для подготовки кадров в области блокчейна.</p><p>После того, как некоторые российские банки отключили от международной платежной системы Swift, идея проведения транзакций на базе технологии блокчейн становится особенно привлекательной. Тем более, что такие операции они имеют большие преимущества перед Swift – занимают буквально минуты, тогда как межбанковские переводы длятся до 3 дней. Кроме того, комиссии за них тоже гораздо ниже, чем банковские.</p><p>Блокчейн в банковской системе можно использовать и для проверки клиентов, а также в перспективе и для отчетности перед финансовыми регуляторами. Также блокчейн применяется и для учета сделок с недвижимостью. Пилотный проект был запущен Росреестром, с его помощью ведомство уже зарегистрировало договор долевого строительства.</p><p>В России разработана блокчейн-платформа «Мастерчейн» — это полностью отечественное решение, которое не использует каких-либо зарубежных компонентов, используя сервисы и облачную инфраструктуру от российских поставщиков. Ее можно использовать в том числе в логистике.</p><p>Все экспедиционные документы хранятся в специальном онлайн-хранилище, а в распределенном реестре указывается место хранения данных. Все участники процесса на любом этапе могут фиксировать и отследить все операции в цепочке.</p><p>Нечто аналогичное есть у DHL – система создана для отслеживания цепочки поставки лекарств. Кроме того, «Мастерчейн» используется и банками. На этой платформе, к примеру, кредитные организации могут выпускать электронные закладные.</p><p>Блокчейн как раз представляет собой гораздо более безопасную систему для корпоративной безопасности, чем другие механизмы. Децентрализованная система позволяет хранить информацию рассредоточено, а не в одном месте, поэтому она никуда не утечет. И похитить ее/взломать систему тоже гораздо сложнее.</p><p>Получив доступ к блокчейну, все остальные вопросы решать будет уже легко и просто. Когда вы работаете с компаниями, предоставляющими такие услуги, они, как правило, ведут своего клиента — от и до. Им всегда можно задать вопрос, получить консультацию, если что-то вышло из строя, они помогут настроить систему. Также предполагается обучение для персонала.</p>]]></content:encoded>
    </item>
    <item>
      <title>Релокейт IT-специалистов. Как его организовать?</title>
      <link>https://tproger.ru/experts/relokejt-it-specialistov-kak-ego-organizovat</link>
      <comments>https://tproger.ru/experts/relokejt-it-specialistov-kak-ego-organizovat?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Рафаил Агазода]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/experts/relokejt-it-specialistov-kak-ego-organizovat</guid>
      <description><![CDATA[<p>Релокейт становится всё популярнее среди IT-специалистов. Узнали, какую страну стоит выбрать для переезда и как обосноваться на новом месте.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/experts/relokejt-it-specialistov-kak-ego-organizovat">Релокейт IT-специалистов. Как его организовать?</a>»</p>]]></description>
      <category><![CDATA[Релокация]]></category>
      <category><![CDATA[Советы]]></category>
      <category><![CDATA[Ответы экспертов]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Fri, 08 Apr 2022 09:00:32 GMT</pubDate>
      <content:encoded><![CDATA[<h4>Релокейт IT-специалистов. Как его организовать?</h4><p>Релокейт становится всё популярнее среди IT-специалистов и целых компаний. Узнали, какую страну стоит выбрать для переезда и как обосноваться на новом месте.</p><p>На мой взгляд, идеальные страны для переезда россиянам — страны с сопоставимым уровнем и стоимостью жизни, а также те страны, в которые легко попасть. В текущей ситуации это — Армения, Грузия, Турция, Казахстан, Узбекистан. Кто побогаче, едет в ОАЭ.</p><p>В Армении, Грузии и Казахстане, например, значимая часть населения владеет русским языком, а ещё в них есть часть российской инфраструктуры: например, в Грузии есть Яндекс.Карты и Яндекс.Такси. Многие из этих стран — либо наши географические соседи, либо часть бывшего СССР.</p><p>Я переехал в Грузию, так как планировал открывать здесь юрлицо. С точки зрения личной жизни здесь комфортно. Цены в Тбилиси сопоставимы с ценами крупных городов РФ, за исключением жилья: оно сильно выросло из-за повышенного спроса.</p><p>В Грузии много кто говорит по-русски или по-английски. Также здесь есть неплохие цифровые сервисы — доставки, такси, онлайн-магазины, к которым мы все привыкли.</p><p>Однако с точки зрения бизнеса я бы не спешил рекомендовать Грузию. Открыть здесь компанию легко, а вот открыть счет в грузинском банке — огромная проблема. Гражданам России сейчас практически не открывают счета для ведения бизнеса. Я застрял на этом этапе, теперь поглядываю на коллег из Армении, которые открылись без проблем.</p><p>Что будет с рынком труда в текущие месяцы — неясно. Могу сказать одно: в Грузии немного рабочих мест с оплатой труда на уровне Москвы и Санкт-Петербурга, многие экспаты здесь работают именно на международные компании. Я думаю, что опытный разработчик, дизайнер или менеджер с английским языком найдет себе работу без проблем практически в любой стране.</p><p>Можно оформить здесь ИП, получить ВНЖ и спокойно жить и работать легально. Чаще всего из основных документов нужен загранпаспорт и перевод диплома с апостилем для официального трудоустройства, но зачастую даже этого не нужно.</p><p>Многие просто оформляют ИП и заключают договор с работодателем как подрядчики, не подтверждая ничего, а просто приступая к выполнению обязанностей. Возьмут вас на работу или нет, зависит от вашей квалификации и желания работодателя работать с россиянами.</p><p>При этом лучше официального договора ничего не придумали. Заключайте договор, прописывайте в нем все условия, внимательно проследите, кто платит налоги: вы или ваш работодатель за вас. Уточните, какая у вас будет зарплата после вычета налогов.</p><p>Выбор страны для релокейта я бы разделила на 4 основных подхода.</p><ol><li><b> Уехать быстро – в безвизовые и понятные, знакомые страны</b></li></ol><p>Здесь в топе Грузия и Армения. И, по отзывам знакомых, эти страны оказались нерезиновыми: цены на аренду жилья взлетели в 2-5 раз в разных городах, а на улицах россиян чуть ли не больше, чем местных жителей.</p><p>Также популярны другие страны СНГ: Казахстан, Узбекистан, Азербайджан. В эти страны наплыв чуть меньше, там также можно достаточно легко адаптироваться. Многие мои знакомые улетели в Турцию – страну с развитой экономикой.</p><p>Я релоцировалась в Сербию. Мне в эту страну было проще всего переехать, ведь я ранее жила там 3 года. У Сербии есть ряд преимуществ:</p><ul><li>цены на жилье взлетели не так сильно, как в Армении и Грузии (400-1500 евро в месяц в Белграде);</li><li>очень хорошее отношение к россиянам, это сейчас большая редкость;</li><li>низкая стоимость жизни относительно европейских стран.</li></ul><p>Из более дорогих, но также легко реализуемых вариантов – Арабские Эмираты.</p><ol><li><b> Совместить релокейт с отпуском или выбрать более экзотические страны</b></li></ol><p>Это могут быть Шри-Ланка, Индонезия, Таиланд и другие страны. Большинство ИТ-специалистов могут работать откуда угодно, поэтому почему бы и нет.</p><ol><li><b> Уехать максимально далеко</b></li></ol><p>Мексика, Коста-Рика, Бразилия, Аргентина и другие страны Южной Америки.</p><p>Первые 3 варианта подходят, если вы продолжаете работать на своих текущих заказчиков или на основного работодателя. Найти работу на месте иногда проще (как в ОАЭ или Турции), а где-то заметно сложнее (на Шри-Ланке, в Армении).</p><ol><li><b> Найти работу в развитых странах (США, Канада, ЕС, Австралия и др.), и потом уже переехать с поддержкой работодателя</b></li></ol><p>Слухи о том, что россиян перестали брать на работу или выдавать визы чаще всего не подтверждаются. Знакомые продолжают переезжать в США, в Германию и другие страны.</p><p>Но ряд сложностей все равно есть:</p><ul><li>часто первые офферы стали приходить на совсем небольшую зарплату (точно не соответствующую квалификации);</li><li>выросла конкуренция среди специалистов;</li><li>россиян стали брать на работу заметно неохотнее (но продолжают брать);</li><li>это долго, на прохождение отбора и подготовку документов может уйти от нескольких месяцев до 1-2 лет.</li></ul><p>Если вы выбрали последний вариант, то к нему стоит подготовиться: подготовить хорошее резюме, потренироваться проходить интервью, подтянуть уровень английского и т. д. Возможно, имеет смысл это сделать с карьерным консультантом.</p><p>И это уже будет не знакомый российский рынок ИТ, где компании соревнуются за специалистов. Здесь уже вам нужно будет доказывать свою ценность и вести переговоры о зарплате, понимая, что на это место претендуют и другие хорошие специалисты.</p><p>Если вы все еще в России и готовитесь к отъезду, то имеет смысл подготовить документы: сделать справку о несудимости и апостили основных документов.</p><p>Посмотреть, какие специальности востребованы в других странах, можно на LinkedIn в разделе с вакансиями (и заодно обновить свой профиль).</p>]]></content:encoded>
    </item>
    <item>
      <title>Как разработчику-одиночке правильно построить процесс создания и деплоя ПО — отвечают эксперты</title>
      <link>https://tproger.ru/experts/kak-razrabotchiku-odinochke-pravilno-postroit-process-sozdanija-i-deploja-po-otvechajut-jeksperty</link>
      <comments>https://tproger.ru/experts/kak-razrabotchiku-odinochke-pravilno-postroit-process-sozdanija-i-deploja-po-otvechajut-jeksperty?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Никита Прияцелюк]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/experts/kak-razrabotchiku-odinochke-pravilno-postroit-process-sozdanija-i-deploja-po-otvechajut-jeksperty</guid>
      <description><![CDATA[<p>Эксперты отвечают, нужны ли соло-разработчику командные практики вроде системы контроля версий и CI/CD и как выстроить сопровождение и деплой.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/experts/kak-razrabotchiku-odinochke-pravilno-postroit-process-sozdanija-i-deploja-po-otvechajut-jeksperty">Как разработчику-одиночке правильно построить процесс создания и деплоя ПО — отвечают эксперты</a>»</p>]]></description>
      <category><![CDATA[Git]]></category>
      <category><![CDATA[Управление проектами]]></category>
      <category><![CDATA[Ответы экспертов]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 03 Feb 2021 09:17:29 GMT</pubDate>
      <content:encoded><![CDATA[<p>Часто разработчики-одиночки не пользуются привычными инструментами и практиками вроде VCS, CI/CD, которые используют в командах. Спросили у экспертов, правильно ли они делают и как можно самому построить процесс разработки, сопровождения и деплоя.</p>]]></content:encoded>
    </item>
    <item>
      <title>Какими будут зарплаты айтишников в 2021 году — прогнозы экспертов</title>
      <link>https://tproger.ru/experts/kakimi-budut-zarplaty-ajtishnikov-v-2021-godu-prognozy-jekspertov</link>
      <comments>https://tproger.ru/experts/kakimi-budut-zarplaty-ajtishnikov-v-2021-godu-prognozy-jekspertov?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Никита Прияцелюк]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/experts/kakimi-budut-zarplaty-ajtishnikov-v-2021-godu-prognozy-jekspertov</guid>
      <description><![CDATA[<p>Узнаём у экспертов, чего ожидать разработчикам от рынка труда в 2021 году.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/experts/kakimi-budut-zarplaty-ajtishnikov-v-2021-godu-prognozy-jekspertov">Какими будут зарплаты айтишников в 2021 году — прогнозы экспертов</a>»</p>]]></description>
      <category><![CDATA[Карьера]]></category>
      <category><![CDATA[Ответы экспертов]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 30 Dec 2020 13:42:06 GMT</pubDate>
      <content:encoded><![CDATA[<p>Чего ожидать разработчикам от рынка труда в 2021 году? Будет рост или падение зарплат? Как отличаются прогнозы в зависимости от отрасли, языка и грейда? Ответы на эти вопросы мы узнали у экспертов.</p><p>Какими будут зарплаты айтишников в 2021 году?</p><p>Весенний карантин дал всем отчетливо понять, что можно спокойно работать удаленно, даже тем, кто эту возможность ранее отрицал. При этом существенно расширились география для поиска специалистов и локация дополнительных офисов у компаний. В Москве, конечно, разработчиков с богатым и интересным портфолио больше, но и в регионах немало талантливых специалистов. И теперь, когда «удаленка» стала частью жизни, они могут смело искать работу в любом городе. Раньше заработная плата у специалистов в регионах была существенно меньше, чем у разработчиков в Москве или Петербурге, но теперь они могут получать почти ту же зарплату, что и столичные коллеги. Полтора года назад региональные показатели отличались от столичных на 40-45%, а сейчас разница составляет 10-15%. В некоторых регионах, которые активно развиваются с точки зрения ИТ, куда приходят крупные компании, она еще меньше или ее почти нет.</p><p>Что касается изменений в зарплатах, то, по моему мнению, ждать большого роста, как и падения, в следующем году не стоит. Рынок «перегрет», и главную роль на нем сейчас играют кандидаты. Вакансий много, и спрос иногда превышает предложение – хороших специалистов найти трудно. Для многих компаний «богатый» социальный пакет, гарантии и бонусы – это уже норма. И зачастую, чтобы заполучить талантливого сотрудника, компания предлагает ему более высокую зарплату, чем другие организации. Уровень заработных плат резко подрос за последнее время, и в ближайшее время каких-то серьезных изменений я бы не ожидала.</p><p>Что в мешке Деда Мороза для разработчиков? <a href="https://www.techrepublic.com/article/top-tech-trends-for-2021-gartner-predicts-hyperautomation-ai-and-more-will-dominate-business-technology/">Gartner в своем прогнозе</a> трендом номер 1 называет интернет поведения. Приятно, что от интернета вещей мы движемся к интернету людей, это означает, что большинство компаний будет инвестировать в автоматизацию и цифровизацию своих процессов и тренд затронет не только производственные (IoT), но и управленческие процессы (IoB). Этот тренд о создании пользовательского опыта, который влияет на выбор и поведение людей. В первую очередь будут востребованы специалисты по компьютерному зрению и управлению большими данными. А если есть спрос на рынке, предложение отстает от спроса, зарплаты вырастут.</p><p>Мы участвуем в обзорах заработных плат Willis Towers Watson и отмечаем что, компании сектора высоких технологий собираются увеличить свои затраты на персонал от 5 до 7% в 2021 года. Это означает, что индивидуальные зарплаты специалистов могут вырасти от 5% до 30% в зависимости от грейда и результативности.</p><p>Регионы становятся ближе: многие компании перешли на удаленку и охотно привлекают региональных специалистов, формируют все больше удаленных команд. Это означает, что разница между московскими и региональными зарплатами уменьшается. Если раньше эта разница могла доходить до 40%, в 2021 году мы прогнозируем разрыв в 10-15%.</p><p>В топе зарплат мы видим специалистов по системной архитектуре, архитектуре облачных вычислений, мобильной разработке, чуть замедлили рост зарплаты специалистов по искусственному интеллекту, которые возглавляли хит парад зарплат в 2019 и 2020 годах – на рынок выходит больше специалистов, но сеньоров по-прежнему остро не хватает.</p><p>Кто из IT управленцев может выиграть джек-пот в 2021 году? Тот, кто расширит свое сознание и начнет управлять командами как предприниматель: заработали – получили премию. Многие IT специалисты не готовы уйти от традиционного отношения «я сделал свою работу, а сколько заработал продукт мне не важно, поэтому я работаю на окладе», поэтому так незначительна доля премиальных, вознаграждения за риск. Работа IT команд на финансовый результат принесет наибольшее вознаграждение в 2021 году.</p><p>Вот чего точно не стоит ожидать, так это падения зарплат у айтишников.</p><p>Вероятно, динамика будет прежняя: в среднем зарплата разработчиков ползет вверх на 5-10%, но все зависит от стека технологий. Кого на рынке меньше, у тех зарплаты выше, конечно, это касается больше новых технологий.</p><p>В приоритете будут разработчики на базовых языках вроде JavaScript, SQL, Java, C#, PHP, Python, потому что это основной стек мастодонтов.</p><p>По-прежнему мало на рынке хороших системных аналитиков. Хочется верить, что это «мыльный пузырь», который когда нибудь лопнет, и мы не будем испытывать такого кадрового голода на рынке IT.</p><p>Большая надежда возлагается на обучающие курсы, которых запускается сейчас очень много. Они не только помогают студентам определиться с направлением, но и обучают людей более старших, тем самым помогают им переквалифицироваться. 2020 год показал нам, как быстро можно остаться без работы во многих сферах, а вот IT-специалисты практически не пострадали! Если популярность всех этих курсов останется на прежнем уровне, то, надеюсь, ситуация на рынке труда станет более стабильной, а значит мы не будем наблюдать такого дикого роста зарплат в сфере IT.</p><p>IT-подбор никогда не был простым: в этой сфере спрос по-прежнему превышает предложение, даже с учетом многочисленных курсов, онлайн-университетов и других обучающих программ, которые уверенно гарантируют трудоустройство по завершению.</p><p>За этот год поменялось многое, и всем известные обстоятельства наложили отпечаток и на область IT-найма.</p><p>Во-первых, серьезный всплеск активности в сфере электронной коммерции и онлайн-сервисов повлёк за собой рост и без того высокого спроса на IT-специалистов. В условиях перегретого рынка типичный соискатель ориентируется не на рыночную стоимость кандидата, а на те финансовые условия, которые будут комфортны для его работы и развития.</p><p>Во-вторых, опробованная на практике удаленка продемонстрировала даже консервативным компаниям, что дистанционная работа мало чем отличается от офисной. Таким образом, разработчик из небольшого провинциального города со средней зарплатой в условные 25 тысяч может рассчитывать на вознаграждение по столичным меркам. IT-компании, которые ранее целенаправленно открывали региональные представительства, теперь вынуждены не просто конкурировать за соискателей, но и повышать заработные платы, чтобы быть на уровне с предложениями удаленных работодателей.</p><p>В 2021 году ожидаем, что зарплаты junior и middle разработчиков в городах-миллионниках вырастут на 10-15%. В региональных центрах рост составит до 30%. У senior-разработчиков зарплата будет расти медленней.</p><p>В-третьих, по причине развития уже упомянутых в самом начале статьи курсов программирования, градация junior, middle и senior меняется. В рекламе таких программ обучения часто можно увидеть громкие обещания за 6 месяцев сделать из неофита middle-разработчика, и молодые специалисты искренне верят в то, что после небольшого проекта можно присваивать себе такой уровень. В свою очередь, у middle-специалистов после 5 лет стажа уже возникает желание продавать себя как senior или architect. К сожалению, как показывает практика, не всегда навыки и компетенция совпадают с градацией.</p><p>Как действовать IT-работодателю в таких условиях и какой стратегии придерживаться? Тенденция роста зарплат сохранится еще как минимум лет пять. IT-гиганты не станут менять тактику перекупа хороших специалистов, а остальным игрокам рынка придется ежегодно повышать финансовое предложение на 10-15%. В нашей компании кандидатам предлагается не только фиксированный оклад, но и бонусы, которые могут выплачиваться за полугодие или год. Это делает условия более привлекательными для соискателя, а компания получает заинтересованного в результате сотрудника.</p><p>При найме предлагаются и другие мотивирующие выплаты. Для разработчиков есть премии за проектные заслуги, когда руководитель перед релизом мотивирует сотрудников сдать продукт в определённый срок и получить единовременный бонус. Или когда специалисты технической поддержки превышают установленные нормы по обработке обращений, то за каждую перевыполненную заявку также получают бонусную выплату.</p><p>Если говорить о различии зарплат по технологиям, то когда узкопрофильный специалист нужен здесь и сейчас для решения конкретной задачи, мы ориентируемся на потребности и желания кандидата, а не на рыночную стоимость, на которую влияют стратегии найма IT-гигантов, или собственное понимание.</p><p>Выпускники курсов, которые позиционируют себя как middle-разработчики, не обманут наших рекрутеров: мы обучаем интервьюеров не допускать таких ошибок при найме и оценивать в первую очередь практический опыт соискателя. Все кандидаты, которые пройдут первичный отсев на этапе общения с рекрутером, проходят тщательное техническое собеседование, в процессе которого эксперт адекватно оценивает глубину знаний и компетенций.</p><p>Количество сфер жизни, которые еще не охвачены технологиями, стремительно уменьшается. На горизонте маячат телемедицина и другие перспективные технологии, а значит, мы можем и вовсе не дождаться, когда спрос на разработчиков сравняется с предложением. Кажется, нам остается надеяться только на тех самых выпускников онлайн-курсов.</p><p>IT — одна из немногих отраслей, зарплаты в которых в 2020 году не падали, а наоборот, росли. По данным Habr Карьера, медианная оплата труда в IT- индустрии в России составила 108 тыс. рублей в месяц, а зарплаты за первую половину 2020 года в среднем выросли на <a href="https://habr.com/ru/article/511700/">8%</a>. Во втором полугодии динамика сохранилась. Больше всего росли зарплаты разработчиков — на 9%. Однако, по нашим оценкам, эти цифры несколько занижены: доходы IT-специалистов росли динамичнее.</p><p>Зарплаты в сфере информационных технологий будут все больше зависеть от набора компетенций. В частности, трендом 2020 года на рынке труда можно назвать усиление спроса на специалистов, обладающих навыками работы с облачными технологиями. Например, сейчас у нас открыты несколько вакансий разработчиков Python для построения инфраструктуры частных облаков на базе нашей платформы и разработчиков Python/Go в команду платформенных сервисов. Однако мы видим рост запросов на «облачные» компетенции не только со стороны облачных провайдеров, но и многих компаний, которые переносят свою инфраструктуру в облака.</p><p>Спрос на «облачных» специалистов и их зарплаты будут расти выше рынка. Наибольшую зарплату будут предлагать экспертам, хорошо разбирающимся в базовых технологиях в сочетании с редкими компетенциями в узких отраслях.</p><h3>Чего ожидать разработчикам от рынка труда в 2021 году?</h3><p>В 2020 году ИТ индустрия достаточно легко перешла на полностью удаленный формат работы, так как в большинстве компании и до пандемии многие процессы были автоматизированы, а команды – распределены по городам и странам. Но к концу года сотрудники нашего HR отдела все чаще стали замечать переход программистов в международные компании, которые ранее даже не задумывались об удаленном найме. Естественно, заработанная плата в таких компаниях в иностранной валюте, рост которой мы также наблюдаем в конце года.</p><p>Как отмечают в своем письме премьеру Михаилу Мишустину Наталья Касперская (председатель правления ассоциации «Отечественный софт») и Валентин Макаров (президент ассоциации «Руссофт»), возможна эмиграция из России до 10-15 тысяч IT-специалистов в 2020–2021 годах. По их мнению, к этому может привести к дефициту специалистов в отрасли.</p><p>Все это привело к резкому росту зарплат осенью 2020 года и, по-моему мнению, этот рост будет только продолжаться. Соответственно, среди российских компаний идет большая конкуренция за ИТ-специалистами, да и спрос на них сильно вырос, так как не все индустрии были готовы к удаленке и автоматизации. По нашим наблюдением, количество предложений на ИТ-рынке в два раза превышает количество специалистов уровня middle и выше. С начала пандемии количество предлагаемых офферов у разработчиков увеличилось с 3 до 5-7 штук.</p><h3>Будет рост или падение зарплат?</h3><p>Пандемия в этом году повлияла на все сферы бизнеса, и пока одни компании достаточно безболезненно перешли на удаленку, другие в срочном порядке автоматизируют процессы, налаживают электронный документооборот, развивают и осваивают электронные площадки и так далее. Для всех этих работ нужны ИТ специалисты.</p><p>В связи с этим вырос спрос на ИТ-услуги и цифровизацию бизнеса. Новая реальность показала современному бизнесу новые точки развития и роста, а также дала возможность перевода части бизнеса в онлайн. Все это привело к росту зарплатных ожиданий ИТ-специалистов на 5-10% и мы ожидаем еще большего роста к весне 2021 года.</p><h3>Можно разбить по отраслям, языкам и грейдам?</h3><p>На наш взгляд, самыми популярными и предпочтительными отраслями для разработчиков остаются – финансы, ритейл и, как это ни странно, стартапы. А также все индустрии, которые используют современные стеки и технологии (ML, Blockchain и тд).</p><p>Ежегодно технические университеты выпускают сотни специалистов, которые хотят попасть в ИТ-компании на стажировку, но увы, не все компании готовы брать большое количество начинающих специалистов. И только в 2020 году в связи с нехваткой ИТ специалистов компании начали активнее обращать свое внимание на джунов, особенно хотя бы с минимальным опытом коммерческой разработки.</p><p>У разработчиков уровня мидл и выше уровень заработной платы будет расти, как было подчеркнуто выше, в связи с большим спросом на автоматизацию бизнес-процессов и востребованность международным рынком.</p><p>Но хочу обратить внимание, что понятие грейдов и их границ на российском рынке сильно стирается в последнее несколько лет. Все зависит от задач бизнеса и тех возможностей, что может дать компания специалисту.</p><p>Высокий уровень заработной платы будет у ИТ специалистов, которые работают с самыми востребованными языками, как Kotlin, Java, JavaScript, Go, и их зарплатные ожидания также будут расти в 2021 году.</p><p>Напоминаем, что вы можете <a href="https://docs.google.com/forms/d/e/1FAIpQLSdSanNvlfPRrSyQWfnoGPflSVwO4KctnjOdEKHzuxjCmFX2dA/viewform">задать свой вопрос</a> экспертам, а мы соберём на него ответы, если он окажется интересным. Вопросы, которые уже задавались, можно найти в списке выпусков <a href="https://tproger.ru/experts/">рубрики</a>. Если вы хотите присоединиться к числу экспертов и прислать ответ от вашей компании или лично от вас, то пишите на <a>experts@tproger.ru</a>, мы расскажем, как это сделать.</p>]]></content:encoded>
    </item>
    <item>
      <title>Как вывести свой сайт в зелёную зону PageSpeed Insights — советуют эксперты</title>
      <link>https://tproger.ru/experts/kak-vyvesti-svoj-sajt-v-zeljonuju-zonu-pagespeed-insights-sovetujut-jeksperty</link>
      <comments>https://tproger.ru/experts/kak-vyvesti-svoj-sajt-v-zeljonuju-zonu-pagespeed-insights-sovetujut-jeksperty?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Никита Прияцелюк]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/experts/kak-vyvesti-svoj-sajt-v-zeljonuju-zonu-pagespeed-insights-sovetujut-jeksperty</guid>
      <description><![CDATA[<p>Эксперты о скорости загрузки страниц: следить за размером бандла, помнить о tree-shaking, сжимать всё и проверять chunks через webpack-bundle-analyzer.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/experts/kak-vyvesti-svoj-sajt-v-zeljonuju-zonu-pagespeed-insights-sovetujut-jeksperty">Как вывести свой сайт в зелёную зону PageSpeed Insights — советуют эксперты</a>»</p>]]></description>
      <category><![CDATA[Веб-разработка]]></category>
      <category><![CDATA[Оптимизация]]></category>
      <category><![CDATA[Советы]]></category>
      <category><![CDATA[Ответы экспертов]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 16 Dec 2020 15:17:15 GMT</pubDate>
      <content:encoded><![CDATA[<p>При разработке сайта многие используют инструмент PageSpeed Insights для оценки скорости загрузки страниц и стремятся вывести сайт в зелёную зону. Спросили у экспертов, как этого добиться.</p><h2>Как вывести свой сайт в зелёную зону PageSpeed Insights?</h2><h3>Следите за bundle</h3><p>Часто новички пишут код и не задумываются о размере подключаемых библиотек, не вспоминают о tree-shaking и оптимизации ровно до того момента, как замечают, что их сайт стал очень медленным. Если вы собираете проект с помощью webpack, то перед новым релизом или после добавления новой функциональности, рекомендую проверять размер и количество chunks с помощью webpack-bundle-analyzer.</p><h3>Сжать всё!</h3><p>PageSpeed Insights обязательно даст рекомендации о минификации js и css. Это простые истины. Если вы не в курсе о кэшировании и gzip сжатии – самое время изучить это!</p><h3>Влюбитесь в lazy load</h3><p>Не стоит грузить все изображения сразу – этого уже не скроешь от PageSpeed Insights. Возможно пользователь никогда не доскролит до очень красивой картинки внизу страницы, а Вы ее упорно грузите. Важно следить за размером изображений, сжимать, несильно теряя в качестве. Не стоит забывать про формат изображений – если есть webp, то почему бы не загружать такие картинки для браузеров, поддерживающих этот формат?</p><h3>Если что-либо можно отложить – не сдерживайте себя</h3><p>Отложенная загрузка скриптов приблизит ваш сайт к зеленой зоне. Желательно загружать скрипты не в &lt;head&gt;, так как браузер ждет, пока загрузится всё, и только потом покажет страницу. Конечно же, есть и асинхронная загрузка. Отличным решением будет загружать скрипты только по необходимости, в идеале — реализовывать динамический импорт только при загрузке необходимого блока или элемента.</p><h3>Почистите свои стили</h3><p>PageSpeed Insights любит стили, которые добавляются inline. Но если их уже очень много, то советую проверить — нужны ли они все сразу на странице. Скорее всего нет. В идеальном мире мы чистим или не добавляем лишние стили в сборку и загружаем их динамически, но лучше проверить себя, например, использовав UnusedCSS или PurifyCSS.</p><h3>Всему свое время</h3><p>Производительность сайта у реальных пользователей может сильно отличаться в зависимости от их устройств и скорости доступа к сети. Не забывайте проверять скорость отрисовки после добавления нового функционала, изменяя скорость загрузки сайта на вкладке Network в Chrome Developer Tools.</p><p>Следуйте рекомендациям от PageSpeed Insights или Lighthouse при анализе сайта, но не забывайте, что в первую очередь сайт должен быть удобным и функциональным.</p><p>PageSpeed Insights — сервис Google для оценки скорости загрузки страницы. Все владельцы сайтов стремятся вывести свои ресурсы в зеленую зону — получить оценку от 90 баллов и выше.Чтобы улучшить скорость при проверке PageSpeed Insights, советую воспользоваться рекомендациями:</p><ul><li>Обратите внимание на размер загружаемых скриптов и стилей. Обязательно применяйте минификацию.</li><li>Используйте сжатие текстовых ресурсов: скрипты, стили, HTML.</li><li>Вынесите в инлайн набор стилей, которые используются для формирования каркаса страницы и первого экрана, и сделайте предзагрузку файла с оставшимися стилями.</li><li>Предзагружайте шрифты, используемые на страницах.</li><li>Используйте HTTP/2 Server Push для скриптов и стилей.</li><li>Стоит использовать lazy-loading для изображений, которые не показываются пользователю сразу.</li><li>Сам сервис рекомендует использовать современные форматы изображений: JPEG 2000, JPEG XR и WebP. Они обеспечивают более эффективное сжатие, но не все браузеры их поддерживают.</li><li>Контент со сторонних ресурсов (чаты, формы обратной связи, видео, карты и т. д.) лучше грузить отложено, например, по скроллу или первому движению мыши на странице.</li></ul><p>Советы по технической оптимизации для начинающих веб-мастеров:</p><ul><li>Старайтесь уменьшить объем и время выполнения скриптов при загрузке страницы. Если что-то можно отложить, то это лучше сделать.</li><li>Чтобы повысить рейтинг, старайтесь как можно меньше использовать большие сторонние библиотеки. По возможности рекомендовал бы отказаться от Jquery и использовать нативный JavaScript.</li><li>Если все-таки без Jquery никак, то не стоит подключать ее и код, который использует эту библиотеку в &lt;head&gt;. Чем ниже он будет подключаться на странице, тем лучше.</li><li>Не стоит сильно увлекаться различными метриками, потому что на странице они должны быть сразу. Чем больше подключено, тем ниже падает рейтинг.</li><li>Старайтесь не помещать лишний HTML, например, всплывающие окна сразу на страницу.</li><li>Стремитесь к показателям в зеленой зоне, но впадать в паранойю и обязательно стараться выжимать 100 пунктов под мобильную верстку не стоит.</li></ul><p>Прежде всего, не стоит смотреть на Google Page Speed как на единственную верную метрику измерения скорости загрузки сайта. На оценку скорости загрузки влияет множество факторов: состояние операторских сетей и межоператорских стыков, которые участвуют в передаче данных; состояние ресурсов и ПО сервера, обрабатывающего запрос пользователя; состояние ПО и производительность устройства конечного пользователя; скорость и тип подключения конечного пользователя (проводное / беспроводное).</p><p>Алгоритм Google Page Speed по умолчанию эмулирует взаимодействие с сайтом с мобильного устройства, находящегося не в самой быстрой сети (например, 3G), также учитывается возможный троттлинг процессора. Имеет значение также, откуда производится замер: чем дальше это местоположения о серверов, на которых развернута инфраструктура веб-ресурса, тем меньше будет итоговый результат замера. То есть, для замера Google использует эмуляцию среднестатистического мобильного устройства и средней скорости интернет-соединения в мире.</p><p>Для получения объективной оценки необходимо проводить измерения скорости непосредственно в браузерах/приложениях реальных пользователей веб-ресурса. Мы, например, используем для замера скорости технологию Real User Monitoring (RUM): размещаем на страницах веб-ресурса небольшой JS-код, который загружает тестовый объект c серверов, подключенных к интернету. Сервис может одновременно замерять скорость доставки данных из нескольких источников.</p><p>Есть вероятность, что отказаться от тех элементов, которые тормозят загрузку, согласно Google Page Speed, не получится: в частности, алгоритм Google «не любит» Яндекс.Метрику или пиксели Facebook, значительно влияют и используемые движки — нередко тормозят сами «коробочные» Битрикс и WordPress. Однако можно немного поработать над оптимизациями со стороны бэкэнда, чтобы улучшить показатели времени загрузки и приблизиться к «зеленой зоне» Google Page Speed и положительно повлиять на поисковое ранжирование веб-сайта.</p><h3>Ускорить доставку объектов на устройства пользователей</h3><p>Современные сайты содержат множество объектов — изображений, шрифтов и так далее. Открывая веб-страницу, пользователь отправляет HTTP-запрос на сервер, с которого на устройство пользователя доставляются все запрошенные объекты. Чем больше хопов (переподключений между промежуточными серверами) придется сделать, чтобы доставить объект с сервера оригинации до устройства, тем больше задержка при обработке запроса в каждой точке маршрута и тем дольше грузится страница на стороне пользователя. Ускорить доставку объектов можно при помощи CDN-сети: сеть доставки контента кэширует и хранит запрашиваемые объекты на географически распределенных edge-серверах, и при запросе пользователю отдается закэшированный вариант объекта, находящийся на сервере, наиболее близком к пользователю, поэтому задержка значительно снижается.</p><h3>Оптимизировать контент</h3><p>Изображения — одни их самых «тяжелых» объектов на веб-странице. Если пользователь обращается к странице, на которой, скажем, содержатся несколько десяткой изображений в формате JPEG весом в 2 Мбайт каждый, страница может грузиться несколько секунд. Ситуация усугубляется, если пользователь просматривает веб-страницу с мобильного соединения: канал ограничен возможностями сотовой сети, и качество соединения может ухудшить показатели скорости загрузки. Будет неплохо озаботиться автоматической конвертацией изображений в оптимизированный формат WebP от Google: изображение останется в довольно приемлемом для мобильных устройств качестве, но его вес сократится на десятки процентов — так можно выиграть 20-40% к скорости загрузки веб-страницы. WebP поддерживается большинством браузеров, включая последний Safari — однако более старшие версии браузера от Apple не поддерживают WebP — на такие устройства нужно раздавать картинки в оригинальном формате.</p><p>Если говорить о мобильных пользователях, в ряде случае ресайзинг изображений под более маленький размер экрана также позволяет уменьшить размер объектов.Разобравшись с оптимизацией изображений, можно приняться за текстовый контент (.js, .css и т.д.): для этого можно использовать алгоритм сжатия данных Brotli — он поддерживается браузерами Firefox, Chrome и другими браузерами, основанными на Chromium. Он способен на 20% более эффективно сжимать текстовые файлы по сравнению с deflate.</p><h3>Подключить протокол HTTP/2</h3><p>HTTP/2 многопоточный протокол, который позволяет в параллельном режиме загружать множество объектов с одного домена одновременно, в то время как у протокола HTTP 1.1 имеется ограничение на количество подключений (не более шести на один домен). Параллельная загрузка объектов способна ускорить доставку контента и, следовательно, ускорить загрузку веб-страниц.</p><h3>Использовать распределенный DNS</h3><p>Соединение пользователя с сервером открывается быстрее, если сервер расположен ближе к месту, откуда отправляется запрос. Обращение к централизованному DNS-серверу, расположенному далеко от пользователя или в AWS (точка присутствия которого, например, может быть в Европе), удлиняет маршрут и увеличивает задержку. Если использовать географически распределенную инфраструктуру для размещения DNS-зоны, то доменное имя быстрее резолвится в точке присутствия, расположенной ближе к источнику запроса, что позволяет выиграть порой до нескольких сотен милисекунд к скорости обработки запроса.</p><p>Напоминаем, что вы можете <a href="https://docs.google.com/forms/d/e/1FAIpQLSdSanNvlfPRrSyQWfnoGPflSVwO4KctnjOdEKHzuxjCmFX2dA/viewform">задать свой вопрос</a> экспертам, а мы соберём на него ответы, если он окажется интересным. Вопросы, которые уже задавались, можно найти в списке выпусков <a href="https://tproger.ru/experts/">рубрики</a>. Если вы хотите присоединиться к числу экспертов и прислать ответ от вашей компании или лично от вас, то пишите на <a>experts@tproger.ru</a>, мы расскажем, как это сделать.</p>]]></content:encoded>
    </item>
    <item>
      <title>Как отдыхать в пандемию — советуют эксперты</title>
      <link>https://tproger.ru/experts/kak-otdyhat-v-pandemiju</link>
      <comments>https://tproger.ru/experts/kak-otdyhat-v-pandemiju?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Никита Прияцелюк]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/experts/kak-otdyhat-v-pandemiju</guid>
      <description><![CDATA[<p>Эксперты объясняют, как восстанавливаться при закрытых границах и ограничении контактов, если работа связана с постоянной умственной нагрузкой.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/experts/kak-otdyhat-v-pandemiju">Как отдыхать в пандемию — советуют эксперты</a>»</p>]]></description>
      <category><![CDATA[Советы]]></category>
      <category><![CDATA[Хобби]]></category>
      <category><![CDATA[Ответы экспертов]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 09 Dec 2020 10:44:25 GMT</pubDate>
      <content:encoded><![CDATA[<p>Границы закрыты, а социальные контакты нужно ограничивать — пандемия накладывает определённые ограничения на отдых. Спросили у экспертов, как отдыхать в такое время.</p><p>Как отдыхать в пандемию?</p><p>Сфера IT равно постоянная умственная нагрузка и на 99% сидячий образ жизни. Кроме того, IT-специалисты — люди увлеченные, часто работают больше 8 часов в день. Жизнь — движение, нельзя 24/7 пребывать в мире кода и задач в Jira. Постоянно вариться в этом — сложно, рано или поздно организм потребует перезагрузку. Отвлекаться от работы можно и нужно. Но как это сделать в период «глобальных запретов»?</p><h3>Активный отдых</h3><p>Программирование требует большой умственной нагрузки и многих часов у монитора. Заметил, что многие разработчики подсознательно выбирают спорт в качестве хобби.</p><p>Сам я регулярно совершаю пробежки — минимум раз в день. На это уходит немного времени, а организм успевает перезагрузиться: улучшается кровообращение, бодрости больше, чем после нескольких чашек кофе. Параллельно можно слушать аудиокнигу, а это двойная польза. В планах — лыжи.</p><h3>Путешествия в ограниченном пространстве</h3><p>Границы закрыты. Если куда-то и можно уехать отдыхать, то делать это опасно для здоровья. Оптимальный вариант — провести выходные в родном городе и, к примеру, узнать его получше. Даже если культурные площадки закрыты, можно найти место, где вы ещё не были.</p><p>А если у вас в наличии есть автомобиль, легко освоить региональный туризм. Путешествовать по просторам родного края не запрещено, а любоваться природой и достопримечательностями можно не выходя из машины. Главное, помнить о личной безопасности.</p><h3>Виртуальные путешествия</h3><p>Сейчас виртуальными путешествиями не удивить. Но до этого с помощью них выбирали, куда лететь в отпуск, теперь придумали другое применение. Например, в GoogleArts&amp;Culture реально пройтись по музеям и галереям, в Google.Maps и «Я.Картах» множество достопримечательностей, даже на любой концерт легко попасть.</p><p>Отдых проводите с пользой. Пандемия пройдёт, здоровье останется, в ваших силах его сохранить и укрепить.</p><p>Отдых – это необязательно только путешествие за рубеж. Чтобы перезагрузиться, достаточно съездить на природу, в соседний город, пойти в поход, заняться спортом или тем, до чего руки не доходили, получить какие-то новые впечатления.</p><p>Что касается путешествий, лично я осознанно решила в этом году ездить только по России. Это любят не все, но здесь действительно много стоящих мест. Летом я с интересом наблюдала, как мои знакомые, раньше не признававшие отечественный отдых, с удивлением открывали для себя Дагестан, Алтай, Хибины, Тулу или Суздаль. В этом году российский туризм однозначно зажил новой жизнью.</p><p>Даже если вы всячески стараетесь избегать социальных контактов, отдыхать в пандемию вполне реально. Лайфхаки достаточно простые:</p><ul><li>Найдите альтернативу «людным» увлечениям. Вместо спортзала – аутворкинг или пробежка в парке, вместо прогулки в центре города – в каком-то новом отдаленном месте.</li><li>Поменьше пользуйтесь общественным транспортом, избегайте вокзалов и аэропортов. По возможности ходите пешком, путешествуйте на автомобиле.</li><li>Для перелетов выбирайте непопулярные направления и рейсы, где меньше вероятность высокой загрузки самолета и толпы в аэропорту.</li><li>При выборе кафе, гостиницы или любого другого общественного места оценивайте, носит ли персонал маски, ограничивает ли число посетителей, ответственно ли подходит к дезинфекции поверхностей.</li><li>Пользуйтесь средствами индивидуальной защиты, соблюдайте социальную дистанцию.</li></ul><p>На 2020 год у нас с молодым человеком, как и у многих, были грандиозные планы: путешествия в Молдову, Грузию, Таиланд и поездка по Европе. Но из-за коронавируса пришлось их пересмотреть, поэтому в этом году мы непреднамеренно познакомились чуть лучше со своей страной. И теперь можем посоветовать несколько вариантов отдыха, когда практически всё «закрыто»‎.</p><h3>Путешествие на машине с палаткой</h3><p>В первую очередь можно посоветовать путешествия на машине с палатками, чтобы контактировать с минимальным количеством людей. Например, этим летом, во время отпуска, мы вдвоём с собакой решили поехать на Алтай на машине. Взяли палатку, еду и собрали спальники. В дороге решили не торопиться и заезжать в понравившиеся места. По пути случайно наткнулись на небольшой город Сим недалеко от Челябинска, там очень красивое озеро, окружённое уральскими горами.</p><p>На Алтае мы были 5 дней с максимальной автономией — готовили на костре, ночевали в палатке, мылись в Катуни, с людьми контактировали только на заправках и когда надо было пополнить запас продуктов. Пару дней потратили на восхождение на вершину Орой, надышались чистейшим воздухом, подкачали ноги на подъёмах. Мне кажется, отдых на Алтае должен быть как раз таким — в полном единении с дикой природой, с минимальным использованием благ цивилизации.</p><h3>Лесной и грибной туризм</h3><p>Ещё один способ отдыхать во время пандемии — лесной и грибной туризм. Его мы, после поездки на Алтай, попробовали в Томской области, которая на 93% состоит из лесов и болот. В том числе несколько раз собирались со знакомыми из Томска и Новосибирска, искали грибы, шишки, играли в настолки, пели у костра под гитару (при планировании этих встреч первым вопросом было «‎как вы, запахи чувствуете»‎?)</p><h3>Поездки по российским городам</h3><p>Отличным вариантом станет и поездка по городам России, во многих из которых есть красивая архитектура и природа. Мы выбрали — Калининград (добирались на самолете, в процессе перелета ничего нового кроме масок, перчаток и внутреннего слегка тревожного настроя из-за обстановки в мире. Здесь множество старых немецких домов, брусчатка довоенных времен на дорогах, на каждом шагу парки и скверы, до Балтийского моря всего 30 километров.</p><p>Можно съездить в приморский город Светлогорск, ритм жизни там очень медленный и спокойный, людей на улицах практически нет, но при этом много зелени, красивых малоэтажных зданий и пешеходных маршрутов. Кстати, этот город единственный в России, который входит в ассоциацию Cittaslow («медленный город»‎).</p><p>И наверное многие слышали о том, что в области есть заповедник Куршская коса, но это слишком популярное место, куда приезжает много людей. Поэтому наш выбор — Балтийская коса, где такая же природа: пески, сосны, море с одной стороны, залив с другой, но только туристов там очень мало.</p><p>Кстати, если поездка по Алтаю у нас была во время отпуска, то в других городах мы совмещали работу и путешествия (а в Калининграде продолжаем это делать прямо сейчас) в формате: в будни работаем — в выходные изучаем окрестности.</p><p>В ситуации пандемии хорошей идеей кажется завести домашнего любимца. Общение с животным – прекрасный способ переключиться от работы. Собака – не только надёжный друг, но и регулярный повод для прогулки два раза в день в любую погоду. Среди кошек сейчас популярны породы с дикими повадками – саванна, абиссинская, бенгальская. Эти кошки не дадут скучать, с ними нужно много играть, поддерживая их инстинкт охотника.Если Вы не можете завести животное дома – можно стать волонтёром питомника. Помогать выгуливать животных или ухаживать за ними.</p><p>Прогулки пешком в парке или по любимым местам города безопасны и полезны. Гулять можно с кем-то или под любимый подкаст. Одевайтесь теплее и вперёд: пара часов – и 15000 шагов Вам обеспечены. После прогулки в зеркале Вы увидите розовые щёки, как в детстве после катания на горке в морозный день, а ночью – сладко уснёте без чтения или просмотра видео.</p><p>Можно расширить географию прогулок и отправиться в пеший поход в своём регионе. Выбрать экотропу можно в сети. Есть большое количество сайтов с экомаршрутами разной сложности и продолжительности. Для ценителей – есть маршруты по заброшкам. Выбирайте на свой вкус. И будьте здоровы!</p><p>Для того чтобы отдохнуть, не нужно ориентироваться на внешние обстоятельства. Отдых следует планировать так же, как и работу, а возможно и более тщательно. Мои способы отдыха и советы:</p><ul><li>Нужно обязательно заниматься спортом. Не важно каким, главное, регулярно. Для меня это бег и йога. Спорт помогает быть здесь и сейчас, решать простые задачи – как пробежать еще километр, как не сбивать дыхание, как удержать баланс. Так я отключаюсь от рабочих задач и круговерти мыслей. И, кстати, бегать можно в пустынном парке, а для занятий йогой нужно просто расстелить коврик – вот способы избежать социальных контактов.</li><li>Путешествия и смена обстановки меняют настроение и заряжают энергией. Не важно, куда путешествовать, важно с кем и как. Я выбираю активный отдых – горы, новые города, кому-то по душе пляж и коктейли. Оба варианта возможны и в пандемию и с любым бюджетом. Просто кто-то едет в Танзанию, а кто-то встречает самые красивые в жизни рассветы на берегу Ладожского озера.</li><li>Творчество дает ощущение свободы. Я — рисую, кто-то лепит из глины, кто-то готовит торты. Важна возможность создать что-то свое и по своим правилам. Нам сейчас приходится следовать жестким правилам и ограничениям, но творчество не имеет рамок и границ и именно это дает ощущение свободны, покоя и радости.<br />Отдых нужен вам и именно вы несете за него ответственность.</li></ul><h3>Как отдыхать в пандемию?</h3><p>Эксперты советуют следующие виды времяпрепровождения:<br />активный отдых, те же пробежки или йога;<br />региональный туризм;<br />виртуальные путешествия, например, в GoogleArts&amp;Culture и Google.Maps;<br />творчество любого рода.А как сейчас отдыхаете вы? Делитесь в комментариях.</p><p>Напоминаем, что вы можете <a href="https://docs.google.com/forms/d/e/1FAIpQLSdSanNvlfPRrSyQWfnoGPflSVwO4KctnjOdEKHzuxjCmFX2dA/viewform">задать свой вопрос</a> экспертам, а мы соберём на него ответы, если он окажется интересным. Вопросы, которые уже задавались, можно найти в списке выпусков <a href="https://tproger.ru/experts/">рубрики</a>. Если вы хотите присоединиться к числу экспертов и прислать ответ от вашей компании или лично от вас, то пишите на <a>experts@tproger.ru</a>, мы расскажем, как это сделать.</p>]]></content:encoded>
    </item>
    <item>
      <title>Как и где получить инвестиции в стартап — рассказывают эксперты</title>
      <link>https://tproger.ru/experts/finding-investors-for-startup</link>
      <comments>https://tproger.ru/experts/finding-investors-for-startup?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Никита Прияцелюк]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/experts/finding-investors-for-startup</guid>
      <description><![CDATA[<p>Эксперты объясняют, где искать инвесторов, чем их привлечь, что показывать на встречах и на какие подводные камни можно наткнуться.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/experts/finding-investors-for-startup">Как и где получить инвестиции в стартап — рассказывают эксперты</a>»</p>]]></description>
      <category><![CDATA[Советы]]></category>
      <category><![CDATA[Стартапы]]></category>
      <category><![CDATA[Ответы экспертов]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 18 Nov 2020 16:31:43 GMT</pubDate>
      <content:encoded><![CDATA[<p>На определённом этапе жизни стартапа может появиться нужда в инвестициях. Спросили у экспертов, где найти инвестиции в стартап, чем привлечь инвестора и на какие подводные камни при этом можно наткнуться.</p><p>Как и где найти инвестиции в стартап?</p><p>После выхода на рынок стартап должен стать видимым, попасть в списки «живых» проектов — для этого зарегистрироваться на специализированных площадках. Есть десятки сайтов и сообществ для стартаперов, ресурсы инвестиционных фондов, где можно рассказать о себе или найти контакты для рассылки релиза по интересующим именно вас компаниям. Это обычная практика, которую проходят все создатели новых продуктов.</p><p>По моему мнению, если стартап растет и становится заметным на рынке, то инвесторы сами проявляют интерес. Следовательно, хорошие показатели развития и PR в профессиональной среде — это основные факторы для привлечения инвестиций.</p><p>В первую очередь стартап должен думать о себе: не делать акцент на поиске инвестиций, не тратить на это слишком много времени в ущерб развитию. Важно сделать работающий проект, показывать динамику роста и добиться высоких показателей эффективности.</p><p>Инвесторы заинтересованы в поиске проектов не меньше стартаперов, мониторят рынок и обращают внимание на те, что в зоне их интересов.</p><p>Помимо развития функциональности сервиса, нужно, чтобы о нем узнал рынок. Этого можно добиться с помощью стандартной PR-активности: публикаций в СМИ, выступлений на профильных конференциях. Очень важно заявить о себе на площадках, где собирается ваша аудитория. Когда имя бренда на слуху, о стартапе говорят на рынке, — значит есть потенциал и проект стоит поддержать.</p><p>Часто бывает, что стартап задается целью — привлечь инвестиции. Сразу «по заказу» ничего не получается, проходит время, а потом инвестор узнает о проекте благодаря PR, видит, что он успешный, и сам предлагает сотрудничество.</p><p>Существует 2 очевидных способа привлечения денег: кредиты и инвесторы. По сравнению с долей инвестора, кредит обходится дешевле: процент небольшой, и долг вы через какое-то время закроете — а инвестору будете платить всегда. С другой стороны, вы не обязаны возвращать ему инвестиции — он получает только процент от прибыли.</p><h2>Где искать инвестора?</h2><h3>Ваши родственники и близкие друзья</h3><p>Нельзя исключать этот вариант. И продавать им проект нужно точно также, как и обычному инвестору: тотальная подготовка, презентация, заключение договора. Не надейтесь, что они вложат свои деньги только потому, что хорошо вас знают.</p><h3>Ваша записная книжка</h3><p>У любого человека сотни контактов в телефоне. Среди них есть как потенциальные инвесторы, так и те, кто может познакомить вас с ними. Не забывайте также про старых клиентов и поставщиков.</p><h3>Друзья в социальных сетях</h3><p>Здесь сотни или тысячи контактов. Вам не нужно просить у них деньги. Звоните и пишите по специальной технике — «Посоветоваться». Пример:</p><p>Привет, Алексей!Хочу посоветоваться. Я сейчас открываю бизнес по франшизе и ищу инвестора. Риски минимальны, все уже очень хорошо проработано и готово к запуску. Можно зарабатывать от 30% годовых.Может, у тебя есть знакомые, которым это будет интересно?</p><h3>Топ-менеджеры и владельцы компаний</h3><p>В России много топ-менеджеров, и многие из них зарабатывают более 300-500 тысяч в месяц, а то и больше миллиона. Многие из них стремятся создать себе подушку безопасности, поэтому ищут ниши для пассивного дохода.</p><p>Также многие владельцы малого и среднего бизнеса ищут новые направления, заскучали в своей нише и хотят чего-то нового.</p><p>Ищите их в социальных сетях. Составьте короткий хороший питч и пишите всем, кого найдете, с предложением о встрече или созвоне. Письмо должно быть коротким и емким. Пример:</p><p>Добрый день, Александр.Я нашел ваш профиль в группе Альфа-Банка. Меня зовут Сергей Дегтярев, я из Москвы. Сейчас я запускаю бизнес в сфере IT в Новосибирске. Это бизнес, который успешно работает уже в 90 городах России и СНГ, но его еще нет в нашем городе.Я ищу инвестора для развития этого проекта. Доходность для инвестора — от 50% годовых. Это действительно стоящий проект, на который следует обратить внимание. Уделите мне 10 минут по телефону, и я расскажу подробнее.</p><p>Также можно прийти в офис, например, под видом клиента и узнать, где кабинет руководителя. Включайте фантазию. Как можно больше встречайтесь и общайтесь с топами и предпринимателями по технике «Посоветоваться» и вас рано или поздно познакомят с нужным человеком.</p><h3>Инвесторы</h3><p>Люди, которые целенаправленно ищут бизнесы для вложения денег, тоже существуют в социальных сетях, кроме того их можно встретить, посещая инвестиционные мероприятия, инвестиционные клубы, сообщества бизнес-ангелов, небольшие инвестиционные фонды.</p><p>Можно даже разместить объявления на Авито и подобных сервисах. Среди наших партнеров есть те, кто нашел инвесторов именно там.</p><h3>Краудфандинговые и инвестиционные площадки</h3><p>На таких площадках как Boomstarter, Planeta, Kickstarter обычные люди скидываются небольшими суммами на интересные проекты. Это не инвесторы: вместо доли в бизнесе они получают от вас бесплатные товары или услуги.<br />На инвестиционных площадках, таких как StartTrack, люди объединяются, чтобы стать реальными инвесторами проекта. Если вы сделаете сильный питч, то есть шанс получить средства на запуск таким образом.</p><h2>Как привлечь инвесторов?</h2><p>Опытные инвесторы сначала выбирают людей, в которых будут вкладывать деньги. На проект они смотрят только во вторую очередь. Отсюда основные правила при поиске инвестора:</p><h3>Внешний вид</h3><p>Первое впечатление можно произвести только один раз, поэтому оденьтесь соответствующе. В костюме с галстуком можно пойти в инвестиционный фонд или в компанию с деловым дресс-кодом, но на встречу в более неформальной обстановке нет смысла одеваться в костюм: нужно всего лишь не вызвать отталкивающего впечатления.</p><h3>Тотальная уверенность</h3><p>Чтобы придерживаться этого правила, не придавайте каждой встрече слишком большой вес. Инвесторов много, а это только один из них. Просто сделайте все от вас зависящее наилучшим образом.</p><h3>Знайте хорошо свой продукт</h3><p>Принесите с собой наглядные материалы — очень короткие и понятные презентацию и финмодель. Ваш питч должен передать инвестору:</p><ul><li>суть продукта;</li><li>почему вы хотите заниматься именно им;</li><li>чем продукт лучше остальных;</li><li>почему нужно вкладываться именно в эту нишу;</li><li>почему этот бизнес просуществует много лет;</li><li>какие у него перспективы;</li><li>сколько заработает инвестор.</li></ul><h3>Подготовьтесь ко встрече</h3><p>Подготовьте вопросы к инвестору и узнайте как можно лучше этого человека из открытых источников. Убедитесь что хотите делать вместе с ним бизнес. Узнайте, где он работал, чем конкретно занимался, какие бизнесы строил, почему ушел из них.</p><h3>Сделайте предварительные шаги по проекту</h3><p>Заключенные договора, выбранные локации, собранная команда — лучше, чем просто идея: они подтвердят серьезность ваших намерений.</p><h3>Слушайте интуицию</h3><p>Ваша задача не только убедить инвестора вложить в вас деньги, но и понять: хотите ли вы работать с этим человеком? Задавайте вопросы, поймите его ценности и цели. Узнайте, почему он согласился на встречу и что его заинтересовало? Инвестировал ли он раньше и успешно ли? Какие у него отношения с партнерами?</p><p>Слушайте свою интуицию и не начинайте работу с теми, в ком возникают сомнения. Искать партнера по бизнесу — все равно что заключать брак. Вы ведь не будете делать предложение руки и сердца тому, в ком не уверены?</p><h3>Не соглашайтесь на невыгодные условия</h3><p>Условия предлагаете вы, инвестора выбираете вы. Даже если инвестор говорит, что будет с вами работать только на своих условиях — это может быть только началом переговоров.</p><h3>Не гоните лошадей</h3><p>Не торопите инвестора. Возможно, он слышит о вас и о проекте впервые, ему нужно во всем разобраться. Дайте ему время подумать, разобраться, оценить все детали. Не торопите инвестора и ни в коем случае.</p><p>Ваша цель на встречу: «продать» себя, проект, цифры и назначить следующую встречу. Уловите все вопросы и сомнения, чтобы подготовить ответы на них ко следующей встрече.</p><h2>Как работать с инвесторами на ваших условиях</h2><p>Самые популярные варианты в случае микробизнеса: либо инвестор выдает вам займ, либо он покупает долю в бизнесе и становится совладельцем.</p><h3>Займ</h3><p>Здесь можно договориться на 20-50% годовых. Если у вас есть ликвидное обеспечение (недвижимость, автомобиль) и его стоимость выше займа, то деньги можно получить под небольшой процент. Займ оформляется договором займа. По сути, инвестор, который дает вам займ — является кредитором.</p><h3>Доля в бизнесе</h3><p>Размер доли нужно рассчитывать с точки зрения потенциальной доходности. Она должна быть от 50% годовых, т.е. инвестор должен вернуть свои деньги за 2 года или быстрее. Возможен вариант, когда инвестор получает больший процент до возврата своих вложений, а затем процент снижается. Например, сначала 30%, а после возврата вложений – 15%.</p><p>Я рекомендую входить в партнерство с инвестором, отдавая ему долю до 50% и хотя бы частично вкладываться в проект своими деньгами, чтобы быть собственником бизнеса. Доля в бизнесе официально оформляется созданием ООО с соответствующими долями учредителей, либо инвестиционным договором. И главное: если вы идете по варианту доли в бизнесе, ни в коему случае не берите на себя обязательство вернуть деньги.</p><h2>Напоследок история</h2><p>На выставке франшиз в Париже мы познакомились с парнем по имени Джамбулат. Простой парень из Ингушетии, владеющий бургерной в центре Парижа. Я спросил у него: «Откуда у ингуша из простой семьи бургерная в Париже?» Он ответил, что у него даже близко не было денег на ресторан, но была гипотеза, что у владельцев помещений в 200 квадратных метров в центре Парижа также есть деньги, чтобы инвестировать в его бизнес. Тогда он начал ходить по владельцам помещений, подходящих под бургерную, и предлагать им стать инвесторами. Гипотеза сработала. Он обошел 200 владельцев помещений, и 1 из них согласился. Отсутствие денег, опыта в бизнесе и других вещей можно компенсировать количеством попыток.</p><p>Прежде чем говорить о финансировании стартапов, нужно обозначить стадии их развития: Pre-Seed, Seed, серии A, B, C и т. д. Иногда отдельно выделяют ангельские инвестиции в стартап — это начальная стадия, которую можно отнести к раунду Pre-Seed.<br />Источники финансирования зависят от стадии развития стартапа.</p><p>Классические источники финансирования стартапа:</p><ol><li>Ангельские инвестиции в стартап от частных лиц.</li><li>Инкубаторы.</li><li>Венчурные фонды — обычно заходят на раундах Seed и серия A.</li></ol><p>Чем раньше инвестор вкладывается в стартап, тем меньше сумма инвестиций и выше запросы на долю в компании. В отличие от ангельских инвесторов, фонды чаще всего не готовы брать на себя серьезные риски, зато они вкладывают бОльшие суммы.</p><p>Важный момент — создатель стартапа должен вложить в него и свой капитал тоже: инвесторы не доверяют основателям, которые не рискуют собственными средствами.</p><p>Инвесторы бывают разных типов. Портфельные участвуют только капиталом, управление компанией их не интересует (по большей части это ангельские инвесторы). Стратегические инвесторы не просто имеют долю в компании, но и участвуют в ее развитии. Например, так делают инкубаторы — они могут ставить стартапам конкретные KPI, внедрять своих сотрудников в совет директоров и т. д. Венчурные фонды участвуют в управлении меньше, но тоже предпочитают сажать своих сотрудников в совет директоров, чтобы принимать решения по стратегическим вопросам и контролировать важные решения.</p><h3>Где найти инвесторов?</h3><p>Как я уже сказал, это зависит от стадии развития стартапа. Если есть хотя бы MVP, можно договариваться с инкубаторами, ангельскими инвесторами. Существуют синдикаты, объединяющие ангельских инвесторов.</p><h3>Что и как нужно показывать инвесторам?</h3><p>Работающую бизнес-модель, расчет юнит-экономики. В плане визуала — питч-дек, который состоит не просто из красивых картинок и мотивирующих фраз, а содержит реальные показатели бизнеса и методики оценки юнит-экономики. Конкретно — cтоимость привлечения клиента (Customer Acquisition Cost, CAC), пожизненная ценность клиента (Life-time Value, LTV), стоимость конверсии (Cost per Action, CPA), Средний доход с одного пользователя и Средний доход с одного платящего пользователя (Average Revenue per User, ARPU и Average Revenue per Paying User, ARPPU).</p><p>Оперируя этими показателями, вы должны продемонстрировать инвестору потенциал вашего бизнеса. В частности, что он легко масштабируем: что доход с одного пользователя в разы больше стоимости его привлечения.</p><p>Если стартап на ранней стадии и показателей юнит-экономики пока нет, надо быть готовым отдать инвесторам достаточно большую долю в компании. Инвесторы хотят получать высокую доходность за высокие риски.</p><h3>Что инвесторы берут себе за инвестирование?</h3><p>Долю в проекте.</p><h3>Какие подводные камни при привлечении инвестиций?</h3><p>Их довольно много: от юридических тонкостей структурирования сделки до рисков потери контроля над продуктовой стратегией. Стартап может сильно отклониться от первоначальной идеи, если это приведет к росту выручки. При этом надо отметить, что опытные инвесторы иногда более адекватно оценивают продукт и направление его развития, чем его создатели.</p><p>Всё зависит от того, какой это стартап и какого размера инвестиции нужны.</p><p>Есть первый этап инвестиций. Инвесторы называют его 3F — «friends, family and fools», потому что обычно на ранней стадии стартапа получить деньги можно только из своего круга.</p><p>На этапе разработки MVP лучше всего получить грантовое финансирование, за которое не попросят ни долю в компании, ни возврата денег. Иными словами, за деньги гранта этот самый MVP и можно разработать. На стадии, когда совсем ничего нет, бизнес-ангелы деньги дают редко, потому что им непонятны возможности команды. А когда MVP есть, его уже можно показывать фондам и бизнес-ангелам.</p><p>Бывает так, что фонд даёт какую-то сумму от денег, которые у вас уже есть. Например, вы хотите привлечь 8 миллионов рублей от фонда, но условием стоит, что у вас уже должно быть 2 миллиона. И здесь начинает закручиваться цепочка. Вы привлекаете небольшую сумму (500 тысяч рублей) от бизнес-ангела на начальной стадии. Потом пишете заявку на грант (там обычно суммы до миллиона). Получаете грант, отчитываетесь за него и уже с MVP идете к какому-то из инвесторов. И уже ему рассказываете, что для получения большого гранта от фонда вам не хватает определенной суммы.</p><p>Примерно на этой же стадии можно пойти в один из акселераторов (акселерационных программ). Они бывают бесплатные и платные. Последние могут стоить в районе 2,5-3 млн рублей на период в три месяца. А что касается бесплатных, то за участие в акселераторе организаторы могут запросить долю в вашем стартапе. Вы можете отказаться, но тогда вам предложат оплатить стоимость акселерационной программы.</p><p>Информацию о грантах, фондах, акселераторах и участии в них вы можете найти в интернете. Надо гуглить и вчитываться.</p><p>Если говорить о презентации, то ваш питч должен быть лаконичен, информативен и укомплектован. Вы должны понимать, что у вас за продукт и для кого он. Да, звучит банально, но стартаперы до сих пор рассказывают инвесторам о каких-то технических наворочках вместо того, чтобы говорить, для кого они это сделали. Говорят о том, что у них «биткоин» вместо того, чтобы сказать, кому этот биткоин нужен и как он поможет пользователю продукта.</p><p>Презентации и общению с инвесторами учат на акселерационных программах. На питч-сессиях фонды не только дают деньги, но часто приглашают сторонних инвесторов, так что я бы посоветовал новичкам обратить внимание на такие программы.</p><p>А у вас был опыт привлечения инвестиций в стартап? Делитесь им в комментариях.</p><p>Напоминаем, что вы можете <a href="https://docs.google.com/forms/d/e/1FAIpQLSdSanNvlfPRrSyQWfnoGPflSVwO4KctnjOdEKHzuxjCmFX2dA/viewform">задать свой вопрос</a> экспертам, а мы соберём на него ответы, если он окажется интересным. Вопросы, которые уже задавались, можно найти в списке выпусков <a href="https://tproger.ru/experts/">рубрики</a>. Если вы хотите присоединиться к числу экспертов и прислать ответ от вашей компании или лично от вас, то пишите на <a>experts@tproger.ru</a>, мы расскажем, как это сделать.</p>]]></content:encoded>
    </item>
    <item>
      <title>Резюме программиста: как правильно составить и можно ли без него обойтись — отвечают эксперты</title>
      <link>https://tproger.ru/experts/do-programmers-need-cv</link>
      <comments>https://tproger.ru/experts/do-programmers-need-cv?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Никита Прияцелюк]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/experts/do-programmers-need-cv</guid>
      <description><![CDATA[<p>Спросили у экспертов, нужно ли сейчас резюме программиста, когда есть GitHub и LinkedIn, и если да, то как его составить.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/experts/do-programmers-need-cv">Резюме программиста: как правильно составить и можно ли без него обойтись — отвечают эксперты</a>»</p>]]></description>
      <category><![CDATA[Советы]]></category>
      <category><![CDATA[Собеседование]]></category>
      <category><![CDATA[Ответы экспертов]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 11 Nov 2020 13:41:21 GMT</pubDate>
      <content:encoded><![CDATA[<p>Порой возникает ощущение, что для трудоустройства программисту не нужно резюме. Мол, вот вам мой GitHub с красивым кодом, вот LinkedIn со списком моих скиллов. Спросили у экспертов, актуально ли сейчас резюме программиста, и если да, то как его составлять.</p><p>Резюме программиста: как правильно составить и можно ли без него обойтись?</p><p>Движущая сила на рынке труда – соискатель, но играть приходится по правилам компаний, а они ждут соблюдения определенных ритуалов. В «чайной церемонии» поиска работы грамотно составленное резюме – основа, все остальное, будь то GitHub, LinkedIn или даже «Одноклассники» – только дополнительные элементы.</p><p>Соцсети, даже профессиональные, только косвенно показывают ваш скилл, потому что решают принципиально другую задачу – помогают в общении с коллегами. Те, с кем вы пересеклись на том же GitHub, могут предложить вам работу, потому что видели вас «в деле», но даже там рано или поздно встанет вопрос: «А можно ознакомиться с вашим опытом поподробнее?».</p><p>CV и есть выжимка из вашего профессионального пути. У него есть классическая структура, работодатель сразу видит нужное. При этом соцсети тоже полезны, чтобы усилить эффект, но сработают только в том случае, если резюме программиста зацепило и работодатель хочет «копнуть поглубже».</p><p>Как этого добиться?</p><p>Во-первых, составить готовую «болванку», которая всегда будет под рукой. Перечислите места работы от последнего к первому, технологии, которыми владеете, решенные задачи, которые это владение проиллюстрируют. Самый свежий опыт (2-3 последних места работы / проекта) распишите развернуто.</p><p>Во-вторых, будьте готовы адаптировать «болванку» под каждого потенциального работодателя. Просмотрите информацию о компании в Сети, чтобы понять ее специфику и продукт. Расставьте акценты в CV так, чтобы было видно – вы понимаете, что нужно работодателю, и можете это дать. Недостаток рекогносцировки может выйти боком. Скажем, вы видите вакансию «Python-разработчик», и махом откликаетесь – ведь вы всю жизнь писали на питоне и вообще отличный кандидат. Но вам отказывают, потому что вы-то писали на питоне CRM, а компания на нем делает систему распознавания движения на видеокамерах.</p><p>Пример утрированный, но ситуация распространенная. Рассылка шаблонного резюме без адаптации и критического взгляда на свой бэкграунд в сравнении с требованиями работодателя – сигнал для HR, что работа в компании кандидату не так уж нужна.</p><p>В-третьих, не рассказывайте, какие вы классные, лучше покажите, какие полезные. Иногда перечня технологий и проектов, в которых вы принимали участие, недостаточно – расскажите, какой эффект оно принесло. Это особенно хорошо работает, когда у вас немного опыта, которым можно похвастаться. Если вчерашний студент в резюме опишет, как «допилил» 1C у отца на работе и на заполнение отчетов у бухгалтерии стало уходить 20 минут вместо двух часов, я с большой вероятностью заинтересуюсь: а как удалось этого добиться? И приглашу на собеседование, хотя бы чтобы оценить логику его работы. (Так что приписать себе подвиги не получится: готовьтесь описываемые эффекты подтвердить).</p><p>Иногда полезно сдобрить CV «техничкой» или живыми примерами. Например, тем, кто работает с интерфейсами и может показать скилл наглядно, стоит прикрепить портфолио. Для тех, кто пишет код, это не обязательно – по моему опыту, работодатель не будет в нем разбираться, а навык проверит удобным ему способом. Мы, например, однозначно предпочитаем глубокие интервью и тестовые задания, хотя примерно 10% резюме получаем со ссылками на примеры работ, а то и с кусками кода.</p><p>Наконец, помните основы. Грамотное резюме – это не только содержание. Когда информация структурирована, оформление аккуратное, стиль изложения деловой, HR уже понимает, что кандидат приложил усилия и скорее всего заинтересован. Отдельная песня – сопроводительные письма и фото. Разработка, конечно, профессия творческая, но порой креатив зашкаливает: мы получаем от кандидатов то фото «в космосе с тигром», то письма в стиле «Вы бывали в ситуации, когда мама по 5 раз на дню спрашивает, нашли ли вы работу?», то просто неуместный юмор. Держите в голове, что первый контакт с работодателем всегда формальный, это еще одно правило «чайной церемонии», которое лучше не нарушать.</p><p>В нынешних реалиях, где доминирует принцип «Цель на результат», дипломы, сертификаты и другие бумаги играют не столь весомую роль при устройстве на работу. Куда важнее – практический опыт в программировании. Резюме все еще важно, но не как показатель вашего профессионализма, а инструмент проверки на соответствие вакансии. Процесс найма начинается с HR, а они, как правило, не совсем сведущи в технических деталях. Их задача – найти кандидата, который максимально будет совпадать с требованиями на должность. На этом этапе ваше резюме должно четко отражать используемые вами технологии, владение языками программирования, ваши сильные и слабые стороны, софт скиллы, полученные сертификаты, дипломы, награды.</p><p>Одного правильного пути по составлению резюме – нет. Но есть общие рекомендации. Резюме может чем-то выделяться, например, иметь графики и диаграммы, демонстрирующие ваши сильные и слабые стороны. Обязательно наличие фотографии. Если у вас есть рекомендательные письма от бывших работодателей, то их тоже необходимо прикрепить к резюме. Для решения этой задачи также можно воспользоваться одним из многочисленных сервисов по составлению резюме, если «бумажная» работа вам не нравится.</p><p>Если вы успешно прошли это испытание от HR, то при непосредственном разговоре с техническим специалистом уже важен ваш практический опыт. И тут в дело вступает портфолио. Портфолио может быть разным: сайты, ссылка на GitHub с реальными проектами, рекомендации от бывших работодателей, ссылки на проекты, в которых вы принимали участие. Важно, чтобы ваши навыки программирования засияли всеми красками и были видны невооруженным взглядом.</p><p>Презентация ваших проектов тоже очень важна. Необходимо заострить внимание на том, что делали именно вы, рассказать о каких-то трудных задачах, которые пришлось решить. Весь рассказ должен быть четко структурирован, возможно, заранее отрепетирован.</p><p>Используя эти нехитрые советы, можно с легкостью получить работу «своей мечты».</p><p>Сегодня программист – это востребованная профессия, и многие компании охотятся за достойными кандидатами на рынке. Мы не только мониторим кандидатов на на job-сайтах, но и ищем на Facebook, GitHub или Linkedin. Соискатели это понимают и часто оправданно задаются вопросом о необходимости составления резюме.</p><p>Ответ таков: чтобы использовать по максимуму все возможные каналы поиска работы, резюме пренебрегать не стоит. Предлагаем взять на заметку несколько советов:</p><ul><li>Указывайте точную должность, на которую вы претендуете. Часто при поиске кандидатов специалисты по подбору указывают ключевые слова в фильтре, как следствие в списки выдачи попадают те, у кого указана конкретная должность или схожие слова.</li><li>Не поскупитесь на описание опыта. Укажите хотя бы 2-4 предложения о ваших задачах, достижениях на предыдущих местах работы.</li><li>Отметьте важное. При поиске программиста работодателю важен язык программирования, которым он владеет, hard skills – сделайте акцент на этом. Так вам будут задавать меньше вопросов на этапе звонка, и вы сэкономите свое время и время рекрутера.</li><li>Способы связи. Важно указать предпочтительный способ связи, чтобы вы не упустили звонок или письмо от работодателя. Сейчас в резюме можно указать мессенджеры, если для вас этот способ связи удобнее.</li></ul><p>Конечно, для удобства и полной заинтересованности со стороны работодателя лучше предоставить всю информацию, которую запрашивают на job-сайте: образование, возраст, фотографию, наименование компаний, желаемый уровень заработной платы и т.д. Вся эта информация поможет не только работодателю для понимания ваших ожиданий, но и вас оградит от нерелевантных обращений. Составляйте резюме самостоятельно, это же ваше лицо и ваш опыт. Или обратитесь за помощью к профессиональным консультантам по поиску работы. Не хотелось бы, чтобы вы попали в неловкую ситуацию, когда на собеседовании могут задать вопрос по резюме, а вы даже и не знали, что там такое указано.</p><p>В современных реалиях мы действительно сталкиваемся со случаями, когда взамен резюме получаем от кандидата ссылку на профили в соцсетях — LinkedIn, Github, Facebook и других.</p><p>Может ли страница в соцсети полностью заменить резюме в привычном понимании? Мнения расходятся, мы придерживаемся традиционного — все же лучше, чтобы резюме у кандидата было.</p><p>Резюме — не просто документ для подачи заявки на вакансию. Оно помогает экономить время всем участникам процесса: рекрутеру, нанимающему менеджеру и, конечно, самому кандидату.</p><p>В правильно составленном резюме опыт кандидата перечислен от самого актуального до того, который хотя бы косвенно относится к запрашиваемой позиции. Нерелевантный вакансии опыт можно указать лишь с точки зрения дат, без деталей, чтобы избежать дыр в истории трудоустройства. Все это поможет увидеть, какими актуальными знаниями обладает кандидат, и не предлагать ему позиции с технологиями, которые к его опыту явно не относятся. Чтобы еще лучше откалибровать предложения от компаний, укажите в резюме интересующие технологии (списком по убыванию),</p><p>Во многих компаниях ценится знание иностранных языков, прежде всего, английского. Стоит учитывать этот критерий, чтобы не получать предложения, где обязательные требования владения английским изначально могут оказаться значительно выше ваших навыков.</p><p>Часто в резюме, в отличие от страниц в соцсетях, есть подробное описание задач на каждом месте работы, что тоже сильно помогает при выборе подходящей для кандидата вакансии.</p><p>Если все вышеописанные детали представлены в актуальном и читаемом виде в профиле кандидата, скажем, в LinkedIn, можно смело направлять ссылку рекрутеру. Уверен, большинство компаний будут рады начать процесс собеседований сразу же, не теряя время, пока кандидат составит для них отдельное резюме.</p><p>Подытоживая, составим короткий список того, что важно указать в резюме или профиле, откликаясь на вакансию:</p><ul><li>Опыт работы, начиная от самого свежего.</li><li>Подробное описание своих обязанностей, относящихся к искомой позиции.</li><li>Знание языков.</li><li>Пожелания относительно задач или проекта.</li><li>Образование (для некоторых позиций может быть также важным критерием).</li><li>Контакты для быстрой связи.</li></ul><p>И не забудьте про краткое сопроводительное письмо — в нем достаточно приветствия и нескольких фраз о ваших ожиданиях от вакансии.</p><p>Резюме и профиль на GitHub, LinkedIn или ещё где-либо решают разные задачи и поэтому содержат разную информацию. Цель резюме — показать весь ваш опыт, задачи, с которыми вы работали, достижения, которые выделяют вас на фоне остальных кандидатов. Цель GitHub и LinkedIn — соединить вас с другими людьми в интересующей профессиональной сфере, дать возможность обменяться опытом, вынести в открытое пространство примеры ваших работ и, как вариант, найти интересное предложение по работе. По сути, оба средства хороши и одно другого не исключает, а скорее дополняет. Если у вас есть профиль на GitHub с примерами кода, ссылку на него точно нужно добавить в резюме.</p><p>Составляя резюме, опишите свой опыт: места работы, должность и задачи, которые выполняли. Вспомните и укажите свои достижения, которыми гордитесь. Резюме должно продавать вас, показывать ваши сильные стороны, но при этом и отражать реальное состояние дел. Конечно, важно указать стек технологий, с которыми вы знакомы, работаете. Напишите также, какую именно роль, вакансию вы ищете, какие ваши зарплатные ожидания.</p><p>Составляйте резюме под конкретную вакансию, конкретизируйте свой запрос. Так, если вы хотите быть разработчиком, но у вас нет релевантного опыта или вы только осваиваете какой-либо язык программирования, опишите, что вы уже изучили (какие курсы прошли, какие книги прочитали), добавьте ссылку на пример кода.</p><p>Если вы откликаетесь на вакансию, подготовьте сопроводительное письмо с описанием, почему вам интересна именно эта вакансия, компания, что именно вы хотите найти и почему, что можете предложить работодателю уже сейчас.</p><p>Ключ хорошо составленного резюме — без лишней воды описать свой опыт и свои сильные стороны.</p><p>Я каждый день просматриваю десятки резюме и профилей в различных соцсетях, направленных на установление деловых контактов. Могу с уверенностью сказать, что правильно заполненный профиль ни в чем не уступает резюме.</p><p>Что отличает хорошее резюме программиста? Ёмкое и структурированное описание опыта работы, включая информацию об основных проектах и сфере их применения, выполняемых задачах и достижениях, используемом стеке технологий и привычных методологиях создания продукта; ссылки на GitHub; перечисление полученных сертификатов и указание уровня владения иностранными языками; чёткое обозначение своих пожеланий к будущей позиции, а именно – интересна работа в продуктовых компаниях или/и аутсорсинговых, разработка нового функционала или/и поддержание текущих проектов и так далее. Всё это можно расписать как в резюме, так и в любой социальной сети, например, в LinkedIn.</p><p>Важно понимать, что наличие профиля в деловой социальной сети и активность в нём (расширение сети контактов, участие в обсуждениях) неизбежно ведут к письмам от рекрутеров, даже если вы сейчас не находитесь в поисках работы. Отключить эту опцию можно, указав в профиле, что не рассматриваете предложения, даже самые интересные.</p><p>При этом часть IT-компаний всё ещё публикует актуальные вакансии и ищет сотрудников на работных сайтах и только потом прибегает к другим источникам. Поэтому, если вы всерьёз задумались о смене места работы и хотите рассмотреть как можно больше вариантов, то рекомендую опубликовать резюме на работных сайтах и актуализировать профили в деловых социальных сетях. Тот же LinkedIn позволяет на очень широкую аудиторию распространить информацию о том, что вы открыты для новых карьерных возможностей.</p><p>Если же вы обращаетесь напрямую к конкретному работодателю: отклик через сайт компании, письмо на общую почту HR-отдела или вас рекомендуют в рамках реферальной программы, то подойдет как резюме с HH, так и сохранённый в PDF профиль c LinkedIn или Хабр Карьеры.</p><p>И да и нет. Заменить резюме сможет грамотно заполненный профиль в профессиональной социальной сети. Лайфхак: если компания просит на собеседование распечатанный вариант резюме (такое, увы, еще встречается), то знайте, что есть функция выгрузки профиля в PDF, а его уже можно распечатать.</p><p>Профиль на LinkedIn с актуальной информацией может стать альтернативой резюме, так как на странице описан весь путь программиста с указанием периода работы, компании, должности и списком задач, которые входили в зону ответственности специалиста. Если решили искать работу, то поставьте соответствующую галочку в профиле и кратко укажите, какие должности рассматриваете и чем вам интересно заниматься. Актуализируйте контактную информацию и расширяйте свою профессиональную сеть, чтобы стать заметней. Одним LinkedIn для активного поиска работы, к сожалению, не обойтись, так как он официально заблокирован в РФ. Блокировка соцсети — это фильтр для многих российских компаний, но по-прежнему действующая площадка для международных команд. Еще можно попробовать опубликовать профиль на Habr.Карьера (ранее: Мой.круг) — не самый популярный ресурс для поиска работы, но в арсенале IT-рекрутера он используется, а значит шанс найти работу есть. Обязательно в своём профиле укажите ссылку на GitHub или на другой ресурс с примерами кода.</p><p>Я встречала в практике разработчиков, которые хотели, чтобы их оценили только по профилю на GitHub, в котором более трех лет не было коммитов и один из двух — тестовое задание для какой-то компании. В таком случае мы запрашиваем резюме и, скорей всего, после технического собеседования, отправим тестовое задание, если кандидат не предоставит примеры кода из недавних проектов. Профиль на GitHub котируется, если код не старше одного-двух лет, так как мы всё-таки верим, что каждый программист за это время может улучшить навыки кодинга, а это повышает его шансы на успешное прохождение отбора и выше грейд. Смело выкладывайте свои пет-проекты в репозиторий, когда решите искать работу.</p><p>Я знаю, при огромном спросе на разработчиков, многие считают, что резюме не нужно. Бесспорно, профиль в соцсетях, даже если в нём исключительно профессиональная информация и ссылки на ваш Github, может стать хорошим дополнением к отлично составленному резюме, но не заменяет его полностью. В LinkedIn правильно устанавливать профессиональные контакты, развивать сеть знакомств, но при детальном обсуждении позиции в большинстве серьёзных компаний разработчика всё же попросят предоставить своё резюме.</p><p>Особенно важную роль резюме играет в ситуации, когда специалист только начинает карьеру или хочет совершить «карьерный рывок»: вырос из текущей должности, хочет попробовать себя в новой сфере или ищет работу с новой технологией, а предыдущий опыт не совсем релевантен желаемой позиции. В данном случае резюме лучше всего рассматривать не просто как описание профессионального пути, а как некую бизнес-презентацию своих навыков. Составление CV имеет и эффект тренинга – при структурировании информации о своем опыте и знаниях вы чувствуете себя увереннее и будете держаться на интервью соответственно.</p><p>Часто резюме технических специалистов довольно скромные и ограничиваются указанием позиции, вроде «Java-разработчик» или «Старший программист» и перечислением стандартного технологического стека. Но роли и функционал меняются в зависимости от проекта и компании. Понимание того, что входит в обязанности, например, старшего специалиста, могут сильно различаться. Чем больше деталей содержит резюме, тем меньше вопросов для обсуждения будет на интервью! ? Не сосредотачивайтесь на описании только технических навыков, в текущих реалиях soft skills – это не просто пустые слова в последней строчке резюме. Никто не ищет себе в компанию функцию, ищут коллегу, члена команды. Поэтому лучше заменить шаблонный набор про «коммуникабельность и умение работать в команде» на описание тех процессов, которые реально подтверждают наличие этих качеств — как происходило взаимодействие внутри команды, по какой методологии вы работали, в чем вы брали на себя ответственность (например, менторство, помощь junior-разработчикам, проведение code review, выступления на митапах, общение с заказчиками проекта напрямую и т.д.).</p><p>И, кстати, это кажется очевидным, но всё же уточню, что если вы ищете работу в зарубежном проекте или в международной компании, то составьте резюме на английском языке — в сети много информации о том, как сделать это корректно.</p><p>Мы считаем, что резюме — неотъемлемая составляющая поиска работы, ведь именно оно позволяет соискателю правильно заявить о себе. «Первичным фильтром» в любой крупной IT-компании выступает специалист по подбору персонала, а свое представление о кандидате он формирует именно на основе резюме.</p><p>Профиль на GitHub может использоваться как дополнительный источник сведений о соискателе, но практически не применяется рекрутером как основной. Конечно же, опытный специалист по найму ориентируется в стеке технологий. Однако если он попробует составить представление о кандидате исключительно на основании профиля на GitHub, то не сможет сделать этого. При таком раскладе рекрутер рискует упустить хорошего кандидата, а кандидат — лишиться интересного предложения.</p><p>Что же касается LinkedIn, то эта профессиональная соцсеть может стать эффективным инструментом трудоустройства для разработчиков уровня middle и выше, если они хотят работать за пределами РФ. Начинающему программисту профиль на LinkedIn не заменит полноценного резюме. К тому же, ситуация осложняется тем, что данный ресурс в России официально заблокирован, и определенный процент работодателей отсекает возможность его использования.</p><p>В резюме лучше сделать акцент на личных качествах, амбициях, навыках, пройденных курсах, прочитанной профессиональной и бизнес-литературе. Содержимое резюме должно соответствовать вакансии, на которую претендует соискатель: не нужно указывать здесь нерелевантную информацию. Документ должен быть информативным и лаконичным. Желательно коротко рассказать о текущем месте работы и проекте, котором участвовал соискатель. Хорошо бы представить команду проекта: описать роли участников и место самого соискателя в проекте. Можно кратко рассказать о задачах, которые лежали в зоне ответственности претендента, и сделать акцент на результатах. Также очень важно описать стек, с которым приходилось работать. Наконец, нужно правильно указать желаемую должность; технологии, с которыми было бы интересно поработать на новом месте. Лучше избегать общих фраз, неточностей и уж точно не надо врать — правда все равно вскроется на встрече.</p><p>Не стоит забывать и о контактной информации. В резюме должен быть, как минимум, актуальный email, который кандидат регулярно просматривает.</p><p>Изучая резюме, мы в первую очередь обращаем внимание на проект, в котором работал человек; на стек технологий и роль кандидата в этом проекте; на динамику карьерного роста и развития соискателя. Отдельно оцениваем, как долго он работал на последнем месте. В идеале этот срок должен быть не менее полутора-двух лет. Именно такой отрезок времени дает возможность отследить, как развивались профессиональные навыки кандидата.</p><p>Конечно, мы рассматриваем все резюме кандидатов. Однако, к сожалению, не всегда готовы пригласить стажера на позицию разработчика. Если требованиями бизнеса обусловлено, что мы ищем сотрудника уровня middle или senior, рассмотреть кандидатуру новичка мы не сможем. В любом случае, мы сохраняем резюме молодых специалистов в базе и с радостью предлагаем им присоединиться команде, как только в компании открываются подходящие вакансии.</p><p>Я считаю, что чем больше охват, тем больше шансов найти то, что по душе – команду и задачи. Поэтому я бы советовал не ограничиваться одной площадкой, ведь любое ограничение отрезает потенциальных работодателей. У каждой компании свой подход в рекрутинге: какие-то компании ищут только в LinkedIn и других соцсетях, какие-то смотрят только на классические работные сайты, и лишь изредка заглядывают в соцсети и GitHub, а кто-то активно ищет во всех источниках. Это ни в коем случае не характеризует компанию как плохого или хорошего работодателя, выбор подхода зависит от того, как организован процесс найма, какие задачи стоят перед компанией, какие объемы вакансий. Поэтому я рекомендую подходить к поиску работы мечты комплексно:</p><ul><li>иметь и подробное резюме на основных сайтах с вакансиями, как Head Hunter, Хабр Карьера и других, по возможности со ссылками на ваш профиль в профессиональных соцсетях, тот же GitHub;</li><li>и заполненный профиль на LinkedIn с включенной опцией – Show recruiters you are open to work.</li></ul><p>Вы очень поможете рекрутерам, если составите подробное, но не слишком длинное резюме:</p><ul><li>перечислите все свои места работы, начиная с текущего (последнего);</li><li>указывайте бренд, а не юрлицо;</li><li>должность пишите общепринятую, а не специфичную по матрице вашей компании (на русском языке «Старший разработчик/программист» или на английском Senior Software Engineer/Developer, а не «Java-ниндзя 3 уровня» – так вас сложно будет найти);</li><li>укажите проекты, в которых вы были задействованы и какую роль там выполняли;</li><li>технологии, с которыми работали; результаты, которых достигли лично вы.</li></ul><p>Что касается языков программирования, то их стоит на разделить на те, с которыми уже есть опыт работы, и те, по которым есть только теоретические знания. Также стоит написать, что вам интересно с технической точки зрения, какие языки, фреймворки, задачи, направления проектов, в которых интересно было бы развиваться – это все поможет рекрутеру предложить наиболее подходящую вакансию.</p><p>Профессия программиста – это не только интересные предложения, выгодные контракты, постоянное саморазвитие, но и большая конкуренция. Поэтому очень важно уметь себя презентовать, для того чтобы именно вашу кандидатуру выбрали среди других претендентов. Резюме – визитная карточка специалиста, возможность себя преподнести, подчеркнуть свои достоинства.</p><p>Умение правильно составить информативное резюме – это важная компетенция при поиске новых предложений.</p><p>Каким же основным требованиям должно удовлетворять резюме программиста?</p><ul><li>тезисность изложения, краткость;</li><li>конкретность, рекомендуется отражать только сведения о профессиональной деятельности;</li><li>отсутствие орфографических, синтаксических и стилистических ошибок;</li><li>достоверность представленной информации;</li><li>отсутствие личных местоимений.</li></ul><p>В резюме включают информацию, которая наилучшим образом характеризует вас как специалиста данной сферы деятельности. Из резюме должно быть ясно в какой именно области вы специализируетесь.</p><p>Как правило, резюме включает в себя следующие разделы:</p><p>1. Фотография.</p><p>2. Фамилия, имя, отчество.</p><p>3. Должность, на которую претендуете.</p><p>4. Год рождения.</p><p>5. Контакты:</p><ul><li>адрес электронной почты;</li><li>номер телефона;</li><li>мессенджеры;</li><li>ссылки на профиль в GitHub или LinkedIn.</li></ul><p>GitHub – это самая большая интернет платформа для размещения проектов в области информационных технологий и их групповой разработки. На своём аккаунте GitHub разработчик добавляет написанные им программные продукты, проекты, в которых он принимал участие, с открытым программным кодом в общий доступ. Работодатель может самостоятельно убедиться в ваших навыках написания кода на различных языках программирования.</p><p>LinkedIn – это социальная сеть, позволяющая объединяться людям по профессиональным интересам. Хорошо оформленный профиль в LinkedIn в настоящее время расценивается как дополнение к резюме, поскольку позволяет проверить достоверность информации, а также получить более полное представление о соискателе.</p><p>6. Владение иностранными языками. В соответствии со стандартом Общеевропейских компетенций владения иностранным языком (CEFR) требуется обязательно указать уровень владения языком:</p><ul><li>A1 – начальный;</li><li>A2 – элементарный;</li><li>B1 – средний;</li><li>B2 – средне-продвинутый;</li><li>C1 – продвинутый;</li><li>C2 – в совершенстве.</li></ul><p>7. Опыт работы в отрасли информационных технологий. Данный раздел должен включать структурированную информацию:</p><ul><li>название организации (предприятия) с указанием периода работы;</li><li>должность, перечень выполняемых должностных обязанностей;</li><li>достижения.</li></ul><p>Уделите особое внимание описанию своих достижений! Каких результатов вы добились, какие сложные задачи решили, каково ваше личное участие в проектах.</p><p>В случае, если опыта работы практически нет, сделайте акцент на мотивацию работать, активность, стремление к саморазвитию, желание профессионально развиваться.</p><p>8. Профессиональные навыки в разработке программного обеспечения. Пожалуй, наиболее важный раздел. Описанные навыки должны соответствовать выбранной должности.</p><p>Например, программист 1С может указать следующие навыки: 1С программирование, 1С: Предприятие 8, 1С: Производство, 1С: Бухгалтерия, MS SQL Server, ERP-системы, HTML, CSS, знания процессов деятельности организаций – торговля, производство, кадровый, финансовый, бухгалтерский учет.</p><p>9. Образование. Следует отметить название учебного заведения, год окончания, специальность (направление подготовки), квалификацию.</p><p>10. Курсы. В данном разделе следует разместить информацию о пройденных повышениях квалификации, образовательных курсах с целью приобретения дополнительных профессиональных компетенций.</p><p>11. Информация о себе. Раздел особенно позволяет обратить на себя внимание, выделиться среди других претендентов. Например, можно указать своё хобби, какие профессиональные СМИ вы читаете, на каких конференциях выступали с докладами.</p><p>Написание резюме является одним из способов самопрезентации. Успешность вашего трудоустройства во многом зависит от того, насколько серьёзно вы подошли к этому шагу, оценили и продемонстрировали все свои положительные профессиональные навыки.</p><p>Резюме программисту не обязательно, достаточно иметь примеры написанных кодов в GitHub. Желательно, чтобы это были крупные проекты, а коды были показательны: достаточно качественны и разнообразны по тем технологиям, которыми кандидат владеет.</p><p>Большинство работодателей активно запрашивают резюме, но, фактически, решение по кандидатам принимается на основе предоставленных ими примеров кодов, решений тестовых заданий до, на и после собеседований</p><p>Если все-таки резюме требуется, например, чтобы устроиться в крупную компанию, то в нем должны быть перечислены все места работы. Но желательно не писать о тех компаниях, где вы работали совсем мало. Бывает, что человек поработал 1-2 месяца, не понравилось, и он решил уволиться. Если это можно не писать в резюме, то лучше не стоит, так как это создает плохое впечатление.</p><p>В резюме нужно указывать ваш функционал, обязанности на каждом из мест работы: что именно вы делали и с какими технологиями работали. А также достижения — что конкретно было реализовано. В ключевых навыках должны быть обязательно перечислены технологии, которыми вы владеете, желательно с указанием уровня владения. Например, JavaScript — уверенно, React.js — опыт начинающий, Angular — опыт 5 лет. В резюме обязательно должна быть фотография и все контакты. Резюме не должно быть многословным — всё резюме должно занимать не более 2-х страниц.</p><h3>Как составить резюме программиста, и можно ли без него обойтись?</h3><p>Кому-то может показаться, что сейчас при устройстве на работу достаточно скинуть рекрутеру ссылку на свой GitHub и, например, на профиль в LinkedIn. В каких-то местах это может сработать, но многие компании всё ещё предпочитают видеть привычные резюме программиста, а всякие гитхабы и прочие идут как дополнение. Не стоит забывать, что людей зачастую ищет HR, который использует резюме в качестве первичного фильтра на вакансию, а ваши репозитории с крутым кодом мало что ему скажут.https://tproger.ru/translations/become-a-developer-and-get-your-first-job/Какого-то «правильного» способа написать резюме программиста нет, но есть общие рекомендации:<br />Опишите свой опыт работы, начиная от самого свежего и релевантного вакансии. Расскажите про свои задачи и достижения.<br />Опишите стек технологий, с которым вы знакомы и умеете работать.<br />Упомяните желаемую должность и/или зарплатные ожидания.<br />Укажите контактные данные, как минимум email, который регулярно проверяете. И да, не забывайте про никнейм вашего ящика, чтобы потом не было неловко за него.<br />Укажите образование. Сюда могут входить как университет, так и различные профильные курсы. Также можно перечислить, какие книги читали (из релевантных технологиям вакансии), что особенно актуально, если вы новичок и особо нет опыта, которым можно похвастаться.<br />Если есть код, который хочется/не стыдно показать, прикрепите ссылку на GitHub. То же касается других платформ вроде LinkedIn, из которых можно получить дополнительную информацию о вас.<br />Укажите уровень знания иностранных языков.<br />Желательно всё написать сжато, без лишней воды, т.к. через HR-ов обычно проходит много резюме и у них может не оказаться ресурсов на чтение целого эссе. Если вам есть о чём написать за пределами резюме, можете прикрепить к нему сопроводительное письмо.</p><p>Напоминаем, что вы можете <a href="https://docs.google.com/forms/d/e/1FAIpQLSdSanNvlfPRrSyQWfnoGPflSVwO4KctnjOdEKHzuxjCmFX2dA/viewform">задать свой вопрос</a> экспертам, а мы соберём на него ответы, если он окажется интересным. Вопросы, которые уже задавались, можно найти в списке выпусков <a href="https://tproger.ru/experts/">рубрики</a>. Если вы хотите присоединиться к числу экспертов и прислать ответ от вашей компании или лично от вас, то пишите на <a>experts@tproger.ru</a>, мы расскажем, как это сделать.</p>]]></content:encoded>
    </item>
    <item>
      <title>Как избежать выгорания на работе — советуют эксперты</title>
      <link>https://tproger.ru/experts/how-to-avoid-work-burnout</link>
      <comments>https://tproger.ru/experts/how-to-avoid-work-burnout?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Никита Прияцелюк]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/experts/how-to-avoid-work-burnout</guid>
      <description><![CDATA[<p>Программисты, как и многие другие, подвержены выгоранию. Эксперты объясняют, как заметить первые признаки усталости и что делать, если оно наступило.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/experts/how-to-avoid-work-burnout">Как избежать выгорания на работе — советуют эксперты</a>»</p>]]></description>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[Советы]]></category>
      <category><![CDATA[Ответы экспертов]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 03 Nov 2020 10:16:29 GMT</pubDate>
      <content:encoded><![CDATA[<p>Как и многие другие, программисты подвержены выгоранию. Спросили у экспертов, как его избежать, и что делать, если оно всё-таки наступило.</p><p>Как избежать выгорания на работе?</p><p>Что нужно делать, чтобы избежать выгорания?</p><p>Всё начинается с внимания к себе. Задайтесь вопросом: «‎Как я себя чувствую?». Это поможет вовремя заметить первые признаки усталости и недовольства. Обратите внимание на то, что некомфортно и попробуйте найти решения, например:</p><ul><li>большой объём задач: обратитесь к руководителю для перераспределения задач; попробуйте новые agile-подходы к работе, например Kanban;</li><li>неконкретные цели и задачи: вынесите на командное обсуждение, сделайте чек-лист постановки задач, создайте форму для подачи ТЗ команде;</li><li>нет распределения ответственности: обсудите с руководителем и командой, синхронизируйтесь со смежными командами, закрепите договорённости между всеми участниками процесса;</li><li>нехватка обратной связи от коллег и руководителя: запросите обратную связь, выстройте процесс её постоянного потока; обратитесь к HR-специалисту или в отдел обучения для тренировки корректной подачи и принятия обратной связи;</li><li>конфликты в команде: развивайте навык управления конфликтом, научитесь оценивать риски, а если самостоятельно разрешить спорную ситуацию не получается, привлекайте третьих лиц в качестве примирителя (фасилитаторы, руководители, HR);</li><li>нехватка общения в команде: внедрите регулярные митапы и неформальные встречи с командой или попробуйте в течение дня находиться в лобби в Discord или другом сервисе.</li></ul><p>Дальше важно посмотреть, всем ли сферам жизни вы уделяете внимание.</p><ul><li>Насколько вы довольны своими планами, мечтами и насколько вы к ним продвигаетесь.</li><li>Насколько часто вы уделяете время себе. Вы имеете право не только на рабочую, но и на частную жизнь. Занимайтесь тем, что нравится. Например, запишитесь на мастер-класс по игре на барабанах, лепки из глины, займитесь активным отдыхом.</li><li>Насколько вы удовлетворены своими социальными контактами, временем, которое проводите с друзьями и близкими и качеством этих отношений.</li><li>Обратите внимание на физическое самочувствие: насколько вы заботитесь о своём здоровье, занимаетесь спортом, высыпаетесь.</li></ul><p>Запишите конкретные и реализуемые шаги для развития каждой сферы жизни и начните их выполнять.</p><p>И ещё одна рекомендация: посвятите хотя бы один день в неделю отдыху — в это время ваш организм будет восстанавливаться от эмоциональных перегрузок. Стоит забыть о работе и, например, посмотреть сериал или просто полежать.</p><p>Что можно предпринять, если человек уже чувствует, что выгорание наступило?</p><p>Выход из выгорания возможен через внимание к своим чувствам, состояниям и заботу о себе.</p><ul><li>Нужно признать выгорание. Не убегать от него и не говорить: «У меня всё хорошо». А осознать, что сейчас я нахожусь в состоянии, которое мне важно поменять.</li><li>Делать паузы. Останавливаться в напряжённые моменты, спрашивать себя о том, что я чувствую? Что мне хочется? Для чего я это делаю? Ценно ли это для меня? Нравится ли мне делать то, что я делаю? Возможно, не все ответы будут положительными, но чувство удовлетворения должно преобладать.</li><li>Отказаться от лишнего. Подумайте, от каких действий, задач, проектов вы можете отказаться? Что вы можете делегировать? Это умение обращаться за помощью вместо того, чтобы взваливать всё на себя. Потому что сейчас ваша задача — помочь себе.</li><li>Найти ресурсы. Те действия, которые приносят положительные эмоции и помогают отдохнуть. Это могут быть разные хобби, музыка, рисование, водные процедуры, спорт, медитация.</li><li>Попросить помощи. Обратитесь за помощью к близким, поделитесь переживаниями. Если не хотите делиться, то хотя бы запишите их. Это работает, так как при выражении переживаний устно или письменно интенсивность эмоций снижается, и быстрее находится решение.</li><li>Обратиться к специалистам. Например, к неврологу, чтобы он выписал витамины для поддержки нервной системы; к психологу, если причина выгорания в неправильных установках по отношению к себе и к своей работе.</li><li>Нормализуйте режимы работы-отдыха, сна-бодрствования, физической активности-пассивности, питания.</li><li>Развивайте навыки эмоционального интеллекта. Научитесь осознавать и выражать свои состояния вовремя и грамотно. Это позволит сохранять эмоциональное равновесие.</li><li>Решите организационные вопросы. Если причина выгорания кроется в процессах работы, во взаимодействиях, в постановке и планировании задач, в признании вклада или в чём-то другом — инициируйте решение проблем. Заявите о дискомфорте сами, потому что другим людям со стороны обнаружить ваше выгорание непросто.</li></ul><p>Выгорание — проблема самых ответственных работников. Иногда причиной может быть несоответствие между затраченными усилиями и полученным результатом. Когда сотрудник считает, что «он так старался, а это, оказалось никому не нужным». Чтобы избежать выгорания необходимо с самого начала прозрачно расставлять приоритеты и понимать, что любой аврал и «давайте напряжемся» — это временный и крайний инструмент, а вовсе не постоянная практика (если вы не рабовладелец, конечно же). Сконцентрируйтесь вместе с командой на действительно важном, а по факту выполнения не скупитесь на демонстрацию важности выполненного для компании.</p><p>Еще у сотрудников бывает «синдром отличника», когда они хотят не только любой ценой выполнить все идеально, но и проверить то, что напрямую к их работе не относится. Как итог — переработки, нарушение лайф-ворк баланса, ощущение, что «вокруг все недорабатывают и прохлаждаются». Рецепт примерно тот же: четко выделять зону ответственности и требовать работы в ней, без «распыления» по всем направлениям.</p><p>В ряде случаев без частичного выгорания никуда, так как у нас бывают проекты, которые обязательно надо сдать в срок, и приходится работать на износ. В таких случаях лучше всего действует заслуженный отдых по итогу выполненного проекта.</p><p>Если же человек уже близок к выгоранию/выгорел, а отпустить его возможности нет, то надо прежде всего пнуть самого себя за то, что ты, как руководитель, допустил подобное. А затем пообщаться с человеком чтобы, снять с него часть нагрузки и/или психологического напряжения. Объяснить, что это не навсегда и проговорить план, как и когда реально станет по-другому.</p><p>Главное, чтобы руководитель отдавал себе отчет в том, когда задача действительно срочная, и нужно выполнить ее здесь и сейчас, а когда сроки еще не поджимают, но просто хочется сделать все побыстрее. Нужно понимать, что если игра ведется «в долгую», то 100% отдача почти невозможна — необходимо всегда иметь «резерв мощности» на действительно критические ситуации. Кроме этого, всегда можно в чем-то уступать тем сотрудникам, которые этого заслуживают. Схема win-win, как итог вашей работы.</p><p>Во-первых, нужно понять: избежать выгорания на работе нельзя – можно лишь взять его под контроль.</p><p>Во-вторых, хотелось бы рассмотреть этот вопрос именно со стороны тестирования – области, где выгорание встречается, пожалуй, чаще всего (привет, регрессия!)</p><p>Что нужно делать, чтобы избежать выгорания?</p><p>Самая частая проблема в работе тестировщика: однообразие задач и регрессия. Тут можно попробовать следующие трюки:</p><ul><li>Посмотреть на задачу под другим углом. Простой пример: тестировщику нужно в очередной раз проверить авторизацию пользователя. Можно, как и всегда, пойти и проверять это через WEB-интерфейс. А можно и попытаться проверить это через API: новый подход и опыт всегда помогают немного себя взбодрить.</li><li>Включаться в задачи раньше этапа тестирования: современные гибкие методологии разработки итак заставляют специалистов QA участвовать с самого начала проработки задачи. Но по опыту могу сказать, что многим это кажется пустой тратой времени. Можно обернуть себе во благо и это: углубиться в архитектуру решения, поискать проблемы в серверной части кода. Прописать простой Е2Е сценарий – то, что доктор прописал, чтобы уйти от рутины тестирования</li><li>Если ресурсы и время позволяют, то всегда можно взять к себе стажёра: пока учишь кого-то, сам начинает пересматривать приоритеты и обретать ментальное спокойствие.</li></ul><p>Что можно предпринять, если человек уже чувствует, что выгорание наступило?</p><ul><li>Перво-наперво, нужно признать, что такая проблема либо уже есть, либо она на подходе.</li><li>Во-вторых, четко понять, что какой бы путь решения не был выбран, его успех лежит исключительно на своих же плечах.</li><li>Если отношения с линейным/проектным руководством хорошие и доверительные, то можно уже на самом раннем этапе поделиться с ними проблемой. Всегда лучше поменять сферу деятельности (ну или проект) хорошего работника, чем потерять его вообще.</li><li>Понять, что ваш случай – не уникален. Обратиться за советом к коллегам по индустрии никогда не бывает лишним.</li></ul><p>Вообще, выгорание на работе — явление, которое в течение жизни случается почти с каждым, только для сферы IT здесь есть свои нюансы. Так, если в других отраслях причинами могут стать монотонность, рутинность, проще говоря «надоело», то для айтишников, как ни парадоксально, ловушкой становится именно то, что работа им очень нравится. Просто гики — это такие люди, которые после долгого рабочего дня приходят домой, удобно располагаются за компом и кодируют просто уже «для души». Или в любом случае проводят свободное время опять же за компьютером — за видосиками, в переписке.</p><p>Айтишник — это как правило не сильно общительный человек, который фактически всю жизнь проводит, глядя в экран компьютера. Он постоянно решает сложные задачи, и радость, которую он испытывает от своей работы, дает ему выброс дофамина — дофаминовое подкрепление. Но время идет, и наступает привыкание, точно так же, как к наркотикам — нужно повышать дозу, т.е. сложность задачи. Повышать сложность невозможно до бесконечности, наступает недовольство собой, да и организм не выдерживает — и тогда наступает срыв.</p><p>Что можно предпринять, чтобы не дойти до состояния выгорания? В первую очередь срочно обзавестись какой-то радостью «на стороне» — вне работы. Желательно, чтобы это хобби как-то было связано с движением — тогда включатся чисто физиологические антагонисты стресса, будут вырабатываться эндорфины. То есть решать проблему толерантности к дофаминовому подкреплению не тем, чтобы «ещё немножко поработать», а переключением, причём не на виртуальную жизнь, а на реальную — противоположный пол, спорт, прогулки, друзей — все это в любой комбинации и желательно с некими новыми впечатлениями вроде совместных поездок, участия в соревнованиях и т.п.</p><p>То есть в силу того, что айтишникам, как правило, нравится их работа и они предпочитают ее другим удовольствиям, им как никому другому нужно заранее, до выгорания, научиться переключаться. Не говорить и не думать о работе в нерабочее время, искать альтернативные задачи, например, учиться чему-то новому. Не брать переработок. Популярный в России способ переключения с участием алкоголя в случае предотвращения дофаминовой недостаточности не работает и только ухудшает положение, добавляя шума в голове и болезненных отходняков.</p><p>Профессиональному выгоранию подвержены практически все люди. На это могут быть разные причины: перегрузка и неспособность поддерживать баланс работы и личной жизни, отсутствие карьерного роста или хоть какого-то развития, токсичные отношения в коллективе. Именно IT-компании создают условия, помогающие минимизировать риски профессионального выгорания, по сути занимаются профилактикой.</p><p>Одна из задач хорошего руководителя – регулярно отслеживать амбиции и желания сотрудников: предлагать варианты по развитию, обучению, карьерному росту и т.п. Исследователи Массачусетского университета опытным путем вывели формулу, по которой раз в 5 лет у сотрудников возникает желание сменить работу – даже в самой стабильной компании. При этом как раз именно компания может сделать так, что ценный сотрудник не уйдет на рынок, а останется, например, на другой должности – это тоже смена работы и деятельности.</p><p>А что же можно порекомендовать каждому из нас для профилактики профессионального выгорания?</p><ol><li>Следить за своим балансом работы и личной жизни: вовремя уходить в отпуск, стараться переключаться, не думать о рабочих задачах вне рабочего времени, регулярно заниматься хобби, не связанными с работой. И здесь IT компании тоже впереди планеты всей, т.к. гибкий график и система отгулов, позволяет без вреда для бизнес-процессов высыпаться, отдыхать и заниматься любимым делом.</li><li>Отслеживать спад трудоспособности и концентрации внимания, т.к. это первый «звоночек» выгорания.</li><li>Отслеживать свои реакции: если вы заметили, что стали острее воспринимать конфликтные ситуации – скорее всего, вы устали. При появлении признаков в пунктах 2 и 3 – срочно спланировать отпуск.</li><li>Постоянно развиваться: смотреть вебинары, читать книги, общаться с коллегами из смежных областей – постоянно учиться чему-то новому даже в рамках своей специальности.</li><li>Если вы чувствуете, что заслуживаете повышения или переросли свою должность – не стесняйтесь говорить об этом своему руководителю. Возможно, именно сейчас есть подходящая вакансия для вас.</li></ol><p>Ну и самое главное – помните, что этап профессионального выгорания – это всего лишь жизненный этап. И если этот момент уже наступил, его нужно осознать, принять, сделать выводы, хорошенько отдохнуть – и с новыми силами двигаться дальше.</p><h3>Как определить, что у вас выгорание?</h3><p>HR-ы определяют выгоревшего работника по девяти маркерам. Даже два из них указывают на то, что человек выгорает.</p><ol><li>Не проявляет инициативу. Сотрудник работает на минимуме потенциала, перестает предлагать варианты, как улучшить рабочие процессы.</li><li>Имитирует работу. Человек проявляет апатию к достижению цели, не видит смысла полноценно сосредоточиваться и совершенствовать свою работу. Обязанности выполняет невнимательно в рамках необходимого минимума.</li><li>Допускает много ошибок. Работник перестает ответственно относиться к обязанностям. Не перепроверяет задачи перед тем, как сдать руководителю.</li><li>Демонстрирует цинизм. Человек колко высказывается о коллегах, управленцах и бизнес-процессах. Такое токсичное поведение заразно — его быстро подхватывают другие сотрудники.</li><li>Частит с перерывами. Работник использует любую возможность, чтобы передохнуть. Чаще раза в час выходит выпить чай, кофе, погулять или покурить. С собой берет других коллег. Их заражает собственным цинизмом, прокрастинацией, недовольством компанией и руководством. В результате через несколько месяцев «болеет» весь офис.</li><li>Задерживается в офисе. Сотрудник снижает темп работы. Привычные задачи выполняет дольше, чем раньше. Засиживается в офисе до ночи и трудится в выходные.</li><li>Конфликтует с коллегами. Работник раздражается по пустякам. Советы воспринимает как личное оскорбление. Сам генерирует скандалы или активно включается в те, которые спровоцировали коллеги.</li><li>Грустит и замыкается. Сотрудник впадает в уныние, и оно длится дольше двух дней. В подавленном настроении не вникает в бизнес-процессы и односложно общается с коллективом.</li><li>Изолируется от коллектива. Человек ищет уединения, молчит на совещаниях, не приходит на корпоративные мероприятия.</li></ol><h3>Как самому понять, что происходит выгорание?</h3><ul><li>Вы теряете интерес к работе — дольше выполняете обязанности, делаете это без энтузиазма. Все чаще думаете: «Моя работа никому не нужна. Только бы никто не пришел из коллег не пришел за советами и помощью. А зачем я все это делаю? Кому это надо?».</li><li>Появляются усталость, апатия, возникают проблемы со сном, снижается продуктивность. Появляется необходимость в дополнительной мотивации к труду.</li><li>Появляются соматические заболевания — насморк, ухудшается зрение, болят суставы, спина. Не покидает чувство измождения, хроническая раздражительность, обостренная злоба или чувство подавленности, загнанности в угол, начинает казаться, что не хватает времени.</li></ul><h3>Как избежать выгорания?</h3><ul><li>Соблюдайте баланс между работой и частной жизнью.</li><li>Отвлекайтесь на хобби, спорт, но только если еще больше не ухудшает жизнь.</li><li>Составьте и опирайтесь на личный карьерный план, чтобы вовремя сменить работу, если работодатель перестанет соответствовать ожиданиям.</li><li>Если почувствовали симптомы выгорания, не чурайтесь психотерапии.</li><li>Проявляйте ваши эмоции и позвольте вашим близким обсуждать их с вами.</li><li>Делайте в течение рабочего дня небольшие передышки. При возможности отказаться от работы в выходной день — откажитесь.</li><li>Уединяйтесь в рабочее время, если чувствуете, что это необходимо.</li><li>Стройте планы на будущее, планируйте детали ближайшего отпуска или неблизкого праздника.</li><li>Ходите в отпуск.</li><li>Осмысливайте прошедший день перед тем, как уйти с работы.</li></ul><p>Выгорание зачастую наступает, когда человек попадает в рутину – день сменяет день и ничего не происходит. Я бы мог выделить несколько причин этого.</p><h3>Надоела работа</h3><p>Если вы действительно давно работаете на одном месте, стоит рассмотреть вариант сменить её. Однако, если вы часто меняете работу и каждый раз думаете, что в другом месте всё изменится, то скорее всего это самообман. Я менял работы очень часто и делал это до тех пор, пока, придя на новое место не почувствовал вообще никакой разницы, даже не было ощущения, что это новый офис и новые люди. В таком случае стоит поискать проблему глубже.</p><p>Возможно, вам кажется, что вы не делаете ничего важного, ваша работа простая и с ней мог справиться каждый. Или вы совсем не делаете ничего нового уже несколько лет. В этом случае попробуйте выучить новую технологию или язык. Обязательно, чтобы это было что-то принципиально новое. Например, если frontend разработчик и пишете на React, то нет смысла учить Angular или Vue. Посмотрите в сторону серверных решений – Go, Scala и так далее. Для backend разработчиков, соответственно, наоборот. Начните осваивать devops, если вы совсем не знакомы с этой областью. Вы сразу вспомните как много всего нужно узнать и сколько преград преодолеть, прежде чем достигнуть вашего уровня на новом стеке.</p><p>Может быть процесс вас так увлечёт, что захочется работать с реальными проектами на выученном стеке. Узнайте в компании, есть ли возможность сменить проект. В любом случае, новые знания всегда мотивируют, знание смежной сферы дадут большее представление о том, что и как делают другие команды, как всё устроено изнутри. Возможно, это откроет новые возможности или идеи для вас.</p><h3>Нет более глобальной цели</h3><p>Может на работе у вас всё шикарно и нет проблем, описанных выше. При этом есть понимание, что в целом, это всё никуда не ведёт. Тогда это отличная возможность вспомнить, что работа это только часть жизни. В ней ещё много чего интересного. Это могут быть как хобби далёкие от разработки, так и сторонние проекты. Может вы давно хотели сделать что-то своё, воплотить какую-то идею. В рабочей суете может казаться, что вам не до этого и это никак не поможет. Но на самом деле высвобождение творческого потенциала играет огромную роль в самочувствии человека. Не обязательно и даже не желательно, чтобы это был стартап с большими планами. Сделайте что-то просто так, по фану! Привлеките друзей или знакомых, вспомните за что вы любили программирование, почему пришли в IT. Может быть вы хотели делать вещи для себя, которые облегчают жизнь, может быть мечтали написать игру или ещё что-то.</p><h3>Не хватает общения</h3><p>Всё хорошо, и работа есть и хобби, и проекты, но вот что-то не так. Вполне возможно, что всё это вы делаете один. С коллегами общаетесь по редким рабочим вопросам, проект стабильный, процесс в целом налажен, по крайней мере функционирует. При этом у вас может быть потребность улучшать что-то, предлагать идеи и обсуждать с коллегами, горячо спорить на различные темы, генерировать идеи и проверять их и обсуждать. Это совершенно другой уровень общения, которого может сильно не хватать. Это то, что называется командой.</p><p>Если этот вид общения, которого вам не хватает, вы всегда можете попробовать создать такую культуру в вашей команде. Выберите из своей команды человека, который кажется вам интересным, близким по духу и поговорите с ним для начала. Попробуйте сделать что-то вместе. Это может что угодно: проведение небольших митапов по пятницам, лекции для junior разработчиков, какой-то внутренний проект или улучшение текущего проекта. Если это не то, что вам нужно, есть смысл поискать новое общение во вне. Помните? Жизнь не ограничивается работой.</p><p>Причин ещё может быть очень много и у всех они разные. Главное помнить, что любая проблема побеждается действием, а обнаружить проблему помогает общение. Не стесняйтесь говорить о том, что вас беспокоит, даже если вы ещё сами не осознаёте, что это. А если уже определили проблему, то найдите человека, с которым можно было конструктивно общаться об этом. Помогайте друг другу. Иначе груз молчания и бездействия приведёт к выгоранию или его усугублению.</p><p>Выгорание часто становится неожиданностью: мы либо не замечаем его проявлений, либо просто игнорируем их. Но чтобы эффективно противостоять выгоранию, нужно сначала осознать его и принять, а потом уже начать действовать.</p><p>Понять, выгорел ли ты, можно, например, с помощью <a href="https://testometrika.com/business/diagnosis-of-professional-burnout/">теста К. Маслач</a> или проверки наличия у себя признаков выгорания:</p><ul><li>Чувства эмоциональной подавленности, безразличия, равнодушия к происходящему вокруг.</li><li>Раздражения по отношению к коллегам, клиентам, партнерам.</li><li>Ухудшения настроения, раздражительности, апатии.</li><li>Снижения продуктивности из-за того, что работа не доставляет радости, выполняется механически.</li><li>Реакций тела: бессонница, потеря аппетита, недомогания.</li><li>Ухудшения отношений с близкими.</li><li>Цинизма, саркастичности по отношению к людям.</li><li>Неуверенности в своих профессиональных навыках.</li><li>Усталости, которая не компенсируется выходными.</li></ul><p>Методы работы с симптомами зависят от стадии выгорания. Для борьбы с этим состоянием нужны физические и эмоциональные ресурсы, а на последних стадиях выгорания их просто нет. Тогда рекомендуется обратиться к специалисту — психологу или психотерапевту.</p><p>Обращай внимание на  свое ресурсное состояние, чтобы своевременно оказать самопомощь: анализируй, как много «дыр», в которые утекает энергия, насколько она восполняется. Здесь помогает так называемый «тонус-менеджмент». В его основе  — несколько уровней энергии и умение ими управлять. Практика дает точное понимание, что твою энергию забирает, а что пополняет, позволяет своевременно отследить потери и пополнить запасы.</p><ul><li>Сущностный уровень — понимание своих ценностей, целей, своей роли, ощущение причастности, ответ на вопрос «зачем?». На этом уровне мы теряем энергию, если не понимаем, ради чего живем, не видим целей, не мечтаем. А восполняем через постановку целей и создание позитивных образов будущего, занятием теми делами, которые считаем важными.</li><li>Интеллектуальный уровень — наш мозг и его наполненность, загруженность, заинтересованность. Тут нашу энергию забирают рутина, многозадачность, информационная перегруженность, отсутствие четкого планирования и интеллектуального вызова. А восполняют процесс творческой активности, поиск и создание новых идей, творческое напряжение, встреча с новым.</li><li>Эмоциональный уровень — про отношения, актуальные переживания, настроения и состояния. Тратим энергию на обиды, страхи, гнев, чувство вины, нерешительность, тревогу, чрезмерный контроль и когда постоянно пытаемся себя сдерживать или заставлять что-то сделать (ключевое «постоянно» —  волю никто не отменял, но когда это напряжение всегда на высоком уровне, организм не выдерживает). Восполнить можем положительными эмоциями, общением с близкими, пониманием своих сильных сторон и качественной обратной связью самому себе. Эмоциональные источники работают быстрее остальных, если мы знаем, как ими управлять.</li><li>Физический уровень — наше тело, то, что его питает и поддерживает в ресурсном состоянии. На этом уровне энергия утекает через отсутствие движения, неправильное питание (редкое, чересчур обильное, не питательное), недостаток сна и отдыха. А восполняется через регулярный отдых, короткие перерывы, достаточный сон, физическую активность, грамотный подход к питанию, медитации в любой форме  — шум моря, прогулка в лесу, наблюдение за огнем.</li></ul><p>Простой план по работе со своим состоянием выглядит так:</p><ol><li>Оцени наличие признаков выгорания у себя с помощью опросника или самостоятельной оценки симптомов.</li><li>Проанализируй источники энергии и уровень наполненности каждого на текущий момент.</li><li>Реши, какие действия можно предпринять для восполнения/сохранения энергии: что начать, что прекратить, что продолжить делать.</li><li>Выбери 3 ключевых действия, которые реально сделать в ближайшее время и сделайте их.</li><li>Проводи такой анализ регулярно: раз в две недели или месяц.</li></ol><p>Риск выгорания в IT, как и в других отраслях, как правило, появляется в том случае, если у специалиста нет возможности «открывать новые горизонты» и планировать свое развитие. Хотя выгорание обратимо, поначалу распознать его очень трудно, однако, этот риск касается каждого разработчика. Именно поэтому IT-компании стремятся заранее предпринимать меры для того, чтобы каждый специалист понимал, как ему расти, и чувствовал себя комфортно.</p><p>Выделяют три ключевые потребности, которые должны быть удовлетворены, чтобы сотрудники развивались, не выгорая. Сюда относятся потребности в принадлежности, компетенции и автономии – иными словами, важно отношение к каждому специалисту, возможность профессионально расти, гордиться выполненной работой и самостоятельно принимать решения в тех или иных вопросах. Эти потребности в полной мере справедливы и для IT-отрасли, где разработчики посвящают много времени самообразованию и тщательно выбирают, в какой команде они хотят работать. При этом в IT возможен не только вертикальный (управленческий рост) — также можно расти, изучая и применяя новые технологии разработки, смежные области, новые роли. Например, можно пройти внутреннее обучение и стать архитектором, тимлидом, ментором.</p><p>Что касается самого специалиста, для снижения риска выгорания нужно учитывать связь этого процесса с гормональной системой человека. Уделяйте время активностям, которые полезны для выработки ключевых гормонов. Например, вырабатывать дофамин помогает полноценный отдых (в свою очередь, это помогает в дальнейшем ставить перед собой новые цели), адреналин и эндорфин — умеренные физические нагрузки (как источник и эмоций, и удовольствия), окситоцин — удовольствие от общения с друзьями или близкими, а поддерживать серотонин помогают достаточное количество сна и прогулки на свежем воздухе. Забота о своем здоровье важна так же, как и профессиональное развитие – во всем нужен баланс.</p><p>ИТ – та сфера, в которой присутствует не только творчество, но и сжатые дедлайны, и необходимость постоянно быть готовым к изменениям, и большая ответственность. Все это делает «айтишников» особенно уязвимыми для симптома профессионального «выгорания». Задача же HR-специалистов и руководителей проектов – как можно быстрее выявить его у сотрудников: нельзя доводить до состояния, когда возникает апатия, появляется безразличие к работе, к проектам, к коллегам, да и к жизни вообще. В таком состоянии еще шаг – и можно получить заявление на увольнение.</p><p>Чтобы этого избежать, нужны превентивные действия, тем более, когда речь идет о так называемой «группе риска», – тех, кто работает на износ, делает это действительно самоотверженно, переживает, задерживается, перерабатывает. Это – «отличники» в лучшем смысле этого слова; те, кто стремится быть первым, лучшим. И так и работает.</p><p>Никто из руководящего состава проекта, сотрудников HR, а также коллег, не должен оставаться в стороне и быть равнодушным к ситуации. При любой проблеме нужен индивидуальный подход: говорить с каждым, и не формально, а о том, что ему действительно нужно; делать это регулярно; помогать ему рассказывать о своих проблемах. Необходимо, чтобы он доверял компании; людям, с которыми он рядом работает, делился реальными проблемами, рассказывал о сложностях, радостях, успехах, излишней нагрузке…</p><p>Казалось бы, как просто, – выслушать, понять, в чем причины неудовлетворенности, напомнить о положительных сторонах работы, отвлечь от негатива, который сегодня, по разным причинам, пытается заполнить нашу жизнь. Практика показывает, что зачастую достаточно просто профессионального и честного разговора.</p><p>Это не все. Обязательно надо общаться и с руководителем такого сотрудника. Только вместе можно скорректировать его рабочие планы и KPI, освободить от рутины, «зажечь» новые звезды, – а это, поверьте, сильнейший мотиватор. Такой подход мы стараемся использовать в нашей компании.</p><p>Хорошими инструментами для профилактики профессионального «выгорания» являются программы обучения, различные тренинги, чтобы сотрудники могли развиваться в других направлениях деятельности. Также эффективно проведение регулярных командообразующих мероприятий, например, спортивных и корпоративных. До недавнего времени в компании проводились такого рода мероприятия, но удаленная работа внесла некоторые коррективы. Сейчас стало сложнее определять степень «выгорания» работающих дома сотрудников, и, чтобы не потерять коммуникацию, мы взаимодействуем с ними через другие каналы связи (часто и по телефону). При этом мы всегда определяем круг наиболее значимых вопросов к сотруднику, составляем план разговора. И, конечно, регулярно проводим дистанционные встречи со всеми сотрудниками департамента (как правило, один раз в квартал). Затем полученная информация анализируется. При необходимости, в этот процесс мы привлекаем других участников рабочего процесса. В любом случае, если у сотрудника есть сложности или вопросы, находящиеся в нашей области компетенций, сразу решаем их.</p><p>Скажу еще об одном. Считаю крайне важным, чтобы и руководители высшего звена, и начальники отделов, и HR-специалисты действовали как единое целое. У каждого из них в арсенале свой набор инструментов, но ту синергию, которая получается в результате четкого и заинтересованного взаимодействия подразделений и конкретных людей – трудно переоценить.</p><p>Наконец, все мы сегодня оказались в непривычной и непростой ситуации: и в быту, и в общении с близкими. Но бизнес-механизмы, принятые на работе, затрагивающие взаимодействие большого числа людей; но сохранение командного духа; но эффективность совместной работы (тем более, во время стресса – экономического и личностного), – их организация значительно сложнее. Тут и так называемая «удаленка», и необходимость значительно большей самоорганизации, и внутренний ценз ответственности, и «соблазн дивана». Для того, чтобы не потерять себя в этих условиях, и, более того, научиться максимально полно использовать открывшиеся возможности, и, при этом, действительно абстрагироваться от негатива, многим людям нужна помощь. Эту функцию могут на себя взять HR-специалисты, а в некоторых крупных компаниях есть штатные психологи, работа которых направлена, в том числе, на то, чтобы помочь коллегам справиться с профессиональным «выгоранием».</p><h3>Итак, как избежать выгорания?</h3><p>Следите за своим балансом работы и личной жизни: вовремя уходите в отпуск, старайтесь не думать о рабочих задачах вне рабочего времени.<br />Постоянно развивайтесь — читайте книги, проходите курсы, осваивайте новые технологии.<br />Если вы чувствуете, что заслуживаете повышения или переросли свою должность – не стесняйтесь говорить об этом своему руководителю.<br />Обзаведитесь каким-нибудь занятием вне работы, желательно не связанным с тем, чем вы занимаетесь по работе.<br />Если чувствуете, что вам нужно делать слишком много всего, обратитесь к руководителю для перераспределения задач<br />Составьте список задач, чтобы понимать, чем конкретно вы должны заниматься.<br />При нехватке обратной связи от коллег и руководителя запросите её и выстройте процесс её постоянного потока.</p><p>Напоминаем, что вы можете <a href="https://docs.google.com/forms/d/e/1FAIpQLSdSanNvlfPRrSyQWfnoGPflSVwO4KctnjOdEKHzuxjCmFX2dA/viewform">задать свой вопрос</a> экспертам, а мы соберём на него ответы, если он окажется интересным. Вопросы, которые уже задавались, можно найти в списке выпусков <a href="https://tproger.ru/experts/">рубрики</a>. Если вы хотите присоединиться к числу экспертов и прислать ответ от вашей компании или лично от вас, то пишите на <a>experts@tproger.ru</a>, мы расскажем, как это сделать.</p>]]></content:encoded>
    </item>
    <item>
      <title>Как научиться учиться — советуют эксперты</title>
      <link>https://tproger.ru/experts/learning-to-learn</link>
      <comments>https://tproger.ru/experts/learning-to-learn?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Никита Прияцелюк]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/experts/learning-to-learn</guid>
      <description><![CDATA[<p>Программисту важно постоянно учиться, чтобы не остаться за бортом. Эксперты делятся подходами к продуктивному и эффективному получению новых знаний.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/experts/learning-to-learn">Как научиться учиться — советуют эксперты</a>»</p>]]></description>
      <category><![CDATA[Обучение программированию]]></category>
      <category><![CDATA[Советы]]></category>
      <category><![CDATA[Soft Skills]]></category>
      <category><![CDATA[Ответы экспертов]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 22 Oct 2020 06:30:48 GMT</pubDate>
      <content:encoded><![CDATA[<p>Застыв на одном месте, программист рискует остаться за бортом, поэтому ему постоянно нужно изучать что-то новое. Спросили у экспертов, как продуктивно получать новые знания.</p><p>Как научиться учиться?</p><p>Я периодически пробую разные подходы, и на данный момент могу сформулировать, что работает именно у меня и делает моё обучение эффективным и безболезненным:</p><p>1. Выбрать определённое время обучения в течение дня на регулярной основе. Сделать обучение привычкой, чтобы мозг в определённое время дня сам понимал и был готов к тому, что «сейчас мы учимся». Для меня самое эффективное время — утро, за час до работы: голова свежая, концентрация максимальная. Как-то на QA сессии с Максимом Дорофеевым я задала вопрос про то, как выделять время на обучение при высокой нагрузке, и он дал мне отличный совет — лучше выделять на постоянной основе один час в день, чем учиться те же 7 часов в выходной день.</p><p>2. Записывать все планы на обучение. Необходимо прежде всего для того, чтобы структурировать все свои планы и желания в голове и планировать время на обучение. Я пробовала разные инструменты: записывала в блокнот, в заметки на телефоне, вела таск-трекер, на данном этапе лучше всего для меня работает отдельная доска «Развитие» в trello.</p><p>3. Декомпозировать большие задачи. Часто причиной откладывания «в долгий ящик» изучения какой-то новой технологии или языка программирования является банальное непонимание того, сколько ресурсов на это потребуется, задача кажется неподъемной. Я стараюсь расписывать такие задачи на более мелкие, и даже если по началу этого сделать не получается, делаю хоть что-то. Действие лучше бездействия.</p><p>4. Практиковаться. По кривой забывания мы можем довольно быстро забыть информацию, если не возвращаемся к ней с какой-то периодичностью. Я для себя выделила идеальную формулу запоминания: теория → тесты (если есть) → практика → теория… Тесты помогают выделить основные моменты в теории, практика даёт более глубокое понимание всей полученной информации. Теория после практики может раскрыть те моменты, которые не лежали на поверхности или «не зацепили глаз» с самого начала. Доказано на собственном опыте, что один час практики даёт больше осознания предмета, чем зубрение теории, демо-проект лучше дополнительной книжки или статьи.</p><p>5. Помогать. Для меня один из самых эффективных инструментов в обучении — это пересказ изученной информации или даже оказание помощи в изучении данной темы. Круто работает ревью чьего-то кода, повышается уровень насмотренности и вариативности решений.</p><p>6. Убрать отвлекающие факторы. Во время обучения и работы мой телефон всегда в ночном режиме, это позволяет мне не отвлекаться на уведомления и не терять концентрацию. Также сильно влияет место обучения: лучше выбрать одно постоянное место, которое будет ассоциироваться с учебой и работой.</p><p>7. Не перегружать себя информацией. Многие ребята думают, что подписавшись на всевозможные паблики по профессии они точно ничего не упустят, на самом деле же переизбыток информации, оповещения и значок количества уведомлений отнимает огромное количество энергии. Отфильтруйте каналы получения информации и минимизируйте их до одного-двух.</p><p>8. Делать регулярные перерывы в процессе обучения, высыпаться и отдыхать. Банально, но почему-то многие специалисты упускают этот момент, считая себя «роботами». В процессе обучения и работы крайне важно чередовать время усидчивости с отдыхом. Если чувствуешь усталость, не можешь решить что-то уже большое количество времени или же перечитываешь пятый раз абзац книги — это верный сигнал к отдыху. Крайне важно восполнять энергию во время обучения, пить много воды, быть сытым и отдохнувшим. При постоянном недосыпе энергии становится с каждым днем всё меньше, и тут уже можно скатиться в выгорание и депрессию. Также не стоит забывать, что в процессе отдыха рождаются новые нейронные связи, что крайне важно для обучения.</p><p>9. Не заставлять себя, если не хочется. Если я понимаю, что накопилась усталость или появилось банальное нежелание что либо учиться в моменте — я не насилую себя. Насилие порождает отторжение от предмета.</p><p>Получать новые знания важно в ресурсном состоянии, чтобы ваше обучение не превратилось в бессистемное поглощение знаний.</p><p>Вот несколько простых идей, которые помогут вам в обучении:</p><p>1. Начните с вопроса «Зачем?». Чаще всего нам сложно учиться, когда мы не до конца понимаем, зачем это нужно и как оно поможет нам в будущем. На этапе планирования обучения четко пропишите каким образом эта образовательная цель приближает вас к вашим большим целям.</p><p>2. Не переборщите с мотивацией. Закон Йеркса-Додсона гласит, что наилучшие результаты достигаются при среднем уровне мотивации. Воздержитесь от негативных стимулов, а также последовательно увеличивайте интерес к поставленной цели, не кидаясь в омут с головой с первой минуты.</p><p>3. Выберите 2-3 источника информации. Изобилие каналов информации зачастую мешает сфокусироваться на главном. Выберите для себя несколько ресурсов и сфокусируйтесь на них. Важно: если вы любите смотреть видео — подберите каналы на ютубе, если получаете удовольствие от аудиоконтента — обратитесь к подкастам.</p><p>4. Сделайте обучение приятной привычкой. Прелесть привычек в том, что мы не тратим на них много энергии, выполняя эти действия на автомате. Попробуйте интегрировать изучение новинок IT-мира в уже имеющиеся ритуалы: смотрите видео за завтраком, выделяйте 30 минут перед сном новой профессиональной литературе или вместо радио во время обеда слушайте подкасты на интересующую тему.</p><p>5. Ставьте дедлайны только на ближайшее время. Дальние дедлайны не работают. Помните свои планы и хотелки, которые вы старательно записывали в блокнот под заголовком «Мои планы на 2020 год»? Подтянуть английский, выучить новый язык программирования… Как-то не сложилось? Дело в том, что в январе мы уверены: 12 месяцев — огромный срок. Декомпозируйте большие цели и ставьте себе дедлайны на 2-3 недели, систематически анализируя прогресс.</p><p>Подходов к эффективному изучению и усвоению новых знаний много. Я в плане изучения могу идти с двух разных сторон: от теории или от практики.</p><p>Когда иду от практики, то это в первую очередь целенаправленное движение. Например есть потребность решить какую то задачу — просто начинаю её решать для того, чтобы нащупать блокеры и собрать первый список вопросов. Затем уже с этим обращаюсь к теории, с конкретными вопросами. Для меня такой подход предпочтительней, потому что я больше практик, чем теоретик.</p><p>Альтернативный подход заключается в том, чтобы начать с теории. С теорией я в основном работаю в блуждающем режиме, то есть изучаю различные темы с целью «расширения кругозора». Если какая-то тема в процессе такого блуждания заинтересует меня больше, чем другие, то я вполне могу углубиться. Блуждающий режим для меня — это скорее загрузка контента в подсознание: если что-то непонятно, то я просто иду дальше. Знания, загруженные в голову таким способом, потом всплывают в соответствующих ситуациях, там, где они чем-то могут быть полезны.</p><p>Итого: научение от практики — решение задач, практический опыт — загрузка в сознание; блуждание в теории — расширение кругозора — загрузка большей части в подсознание.</p><p>В первую очередь я бы рекомендовал регулярно изучать подборки новостей по интересующим вас тематикам. Например, на Хабре публикуются удобные еженедельные дайджесты по основным направлениям – фронтенд, мобильная разработка и прочие. Также иногда стоит заходить на сайты, посвященные конкретным технологиям, там могут публиковаться интересные новости. Хорошая идея – отслеживать процесс разработки и график релизов интересующих языков, фреймворков, библиотек и стандартов. Например, людям, работающими с языками ECMAScript (такими как JavaScript или TypeScript), рекомендуется следить за работой группы TC39, ответственной за развитие технологии.</p><p>Если в ходе изучения новостей, дайджестов и обсуждений встречается упоминание новой технологии, стоит заглянуть в Google и узнать о ней поподробнее. Если данная технология вас заинтересовала, можно понадеяться на то, что на ее сайте будет сносный раздел для новичков (так, например, язык программирования Go имеет прекрасный онлайн-туториал). Если же сайт технологии скуп на разъяснения, или они достаточно сложны для начинающих, стоит обратиться к онлайн-курсам, например, на той же Coursera. В том случае, если в ходе самостоятельного освоения возникли какие-то сложности, то всегда можно задать вопрос на том же Stack Overflow.</p><p>Конечно, один из самых продуктивных подходов к реальному освоению информации – это практика. Однако для начала, как и в любом деле, стоит разобраться с интересующей вас предметной областью в теоретическом плане – желательно до ощущения фамильярности, полного понимания процессов или хотя бы до сомнительного чувства, что вы с новым знанием на «ты». Это можно сделать, прочитав книгу, документацию, инструкции и ознакомившись с опытом людей. Уточню, что сомнение в полученных знаниях – это все еще процесс получения и освоения информации.</p><p>Определив контрольные пункты предметной области, стоит запланировать практическое занятие. Затем, чтобы закрепить полученные знания и навыки, рекомендую подготовить площадку самому или воспользоваться готовой и приступить к самому интересному – экспериментам. С их помощью можно получить приличные знания и опыт, которые с высокой степенью вероятности останутся с вами надолго.</p><p>Например, для работы с новым языком программирования я бы рекомендовал наладить собственное окружение максимально удобным и легко повторяемым способом, чтобы при разработке и освоении новых библиотек, фреймворков и подходов все время можно было уделить для написания кода и его изучения. Удобное окружение – путь к наискорейшему и эффективному получению обратной связи от работы кода и комфортному процессу обучения. Если же мы говорим про какие-либо кластерные системы, базы данных или масштабирование тех или иных приложений, то для получения фундаментальных знаний следует развернуть окружение для тестирования любых возможных ситуаций, которые могут произойти в жизни, создавая их самостоятельно. Таким экспериментальным образом можно ощутимо сблизиться с технологиями, чтобы действовать предиктивно, не допуская проблем, или быть готовым принимать решения во время ЧП. Также, чтобы знания усвоились и было сложнее их потерять, стоит создавать ассоциативные связи («якоря») с проделанной практической работой и/или экспериментом. В процессе создания «якорей» может помочь обыкновенная запись собственными руками в виде комментария в коде, а также обсуждение с коллегой или рисунок на бумаге: чем больше собственных сенсоров чувств вы задействуете, тем сильнее может получиться ассоциативная связь. Может показаться смешным, но иногда полезно озвучить вопрос или гипотезу: проговорив их вслух, вы можете найти ответ.</p><p>Для освоения нет ничего лучше практики, подкреплённой фундаментальными знаниями и приобретёнными навыками. Безусловно, ничего лучше не существует. В школе и университете, помню, это были уроки, лекции и семинары/лабораторные работы. Но наилучшее закрепление происходило дома  или с друзьями на примере решения конкретных задач с помощью специализированной литературы, форумов и экспериментов. Причём, именно последние позволяли закрепиться самым важным знаниям, которые использую до сих пор. На мой взгляд, глобально ничего не изменилось. В паре к или вместо лекций и семинаров у нас теперь есть  онлайн-школы и огромное количество текстового и видео контента с обучением и разъяснениями, поисковые запросы стали выдавать более точный результат, тысячи страниц форумов с разборами различных житейских ситуаций при разработке, каналы рассылок на любой вкус и с различным способом подачи контента.</p><p>С точки зрения получения новых знаний, я сам пользуюсь следующим алгоритмом:</p><ol><li>Определение перечня источников новостей/статей и подписка на актуальные рассылки. Важно использовать те, которым доверяю или с которыми схожусь во взглядах. Крайне желательно, чтобы они имели превью перед каждым материалом. Это позволяет быстро оценить входящую информацию и понять, требуется ли более глубокое изучение или нет.</li><li>Если требуется, бегло или внимательно изучаю статью, в зависимости от содержания. Прикладные вещи — более вдумчиво (часто это перерастает в углублённое изучение других источников по теме), общеобразовательные — бегло, чтобы сэкономить время.</li><li>Обсуждаю материал с подходящим окружением (его — окружение — желательно постепенно расширять). Разработчикам я бы посоветовал сразу сделать пару демо-примеров для «прощупывания» возможностей от приобретенных знаний. Это позволяет закрепить материал.</li><li>Расширяю источники знаний за счёт изучения списка рекомендованных источников или по мере изучения просторов интернета.</li></ol><p>Я бы назвал такие подходы к продуктивному освоению новых знаний:</p><p>Быть в контексте. Чтобы быть в курсе передовых технологий, надо окружить себя соответствующим контекстом. Вряд ли идея, что в новом фреймворке та или иная задача решается более эффективно, придет сама по себе, особенно если о существовании этого фреймворка не знать в принципе. Для меня узнать о существовании нового — это первый этап освоения, далее важно проникнуться контекстом и оценить, насколько полезным может быть это знание. Подойдет любой способ: YouTube, тематические статьи. Еще мне нравятся подкасты: их можно слушать практически в любой ситуации, которая не требует полной вовлеченности и концентрации внимания — например, по дороге в офис или во время прогулки с собакой.</p><p>Правильно выбрать источник. Инфополе перенасыщено. Источников информации, мнений, инструментов — хороших, плохих — очень много. Изучить все невозможно физически, да и незачем. Я люблю ориентироваться на успешные практики. Если коллега, мнению которого в этой области я полностью доверяю, посоветует курс, скорее всего я его пройду. Если ведущий классного подкаста назовет какое-то решение хорошим, я его попробую.</p><p>Практиковаться. Новое знание само по себе не имеет смысла, если оно не превращается в навык. Прочитав книгу или три, программировать не научишься. Чтобы эффективно осваивать новые знания, нужна практика, и вот она лишней бывает редко. Хорошая учебная или практическая задача и мотивирует, и заставляет подумать, что сделано не так. А главное — процесс решения этой задачи естественным образом превращает знание в личный опыт. А это уже ценно.</p><p>Посмотреть под другим углом. Иногда, чтобы что-то починить, приходится все сломать, а чтобы решить проблему, нужно отступить. Если старые идеи уже не помогают, а новые пока не приходят, лучшее решение — отвлечься на что-то другое. В следующий подход, с одной стороны, можно будет заново оценить задачу, а с другой, не идти заведомо неверным путем. Вряд ли кто-то может с уверенностью сказать, что он полностью «познал» какой-то язык программирования (если это не Страуструп). То, что вам кажется нерешаемой проблемой, для вашего коллеги, например, может быть обыденностью, с которой он сталкивается каждый день.</p><p>Способность учиться принадлежит к так называемым «метанавыкам», в той или иной степени она есть у каждого – мы же научились ходить, говорить, пользоваться ложкой или, к примеру, смартфоном! Метанавык тем лучше развит, чем больше человек учился до этого: в этом отношении магистратура, допустим, эффективнее бакалавриата или техникума.</p><p>Хотя здесь есть исключения: Стив Джобс или Билл Гейтс создали высокотехнологичные компании, не имея IT-образования или MBA – и всё же эти исключения подтверждают главную идею: чем больше человек учится («учит себя сам»), тем более у него развит навык самообучения. Вопрос не в формальном дипломе, а в реальном опыте изучения нового.</p><p>По этой причине я не беспокоюсь за студентов хороших вузов: пока они учатся, они серьезно прокачивают свои навыки самообучения. Особенно повезло в этом смысле студентам IT-специальностей. Если они настроены серьезно, то прокачивают свои навыки самообучения и получают систематизированные знания по IT (даже если поначалу они достаточно поверхностные).<br />Когда в голове уже сложилась общая ментальная карта «Как устроен мир IT», гораздо проще углубляться в любые темы – будь то backend или mobile.</p><p>Кроме того, IT-студенты получают пусть и учебный, но всё же опыт решения разнообразных задач. А если повезло, то они оказываются знакомы и с основами выбранной специализации. А значит, приходя в IT «по-настоящему», имеют фору перед другими.</p><p>Однако, даже если в вузе или ссузе учат отлично – за редчайшим исключением – выпускникам и студентам приходится самостоятельно добирать профессиональные знания, уже за пределами учебного заведения.</p><p>Итак, как научиться учиться? Сам по себе подход к изучению нового стандартный: с одной стороны, предстоит освоить теорию, а для этого прочитать обзорные статьи, документацию, далее можно читать и книги. Всё это необходимо для формирования «ментальной карты специализации». Без неё мир полон «магии» и «чудес», непредсказуем, а главное – неуправляем. Кроме того, нужно получить опыт – через решение задач. Учебные задачи можно брать на курсах – вузовских, курсах от компаний или курсах от онлайн-площадок – сейчас их масса. Также можно решать реальные задачи – этот путь часто «болезненный», но и более интенсивный.</p><p>Однако, возможна и другая ситуация – если человек не изучал IT в вузе, но хочет стать программистом. В этом случае не стоит рассчитывать на быстрый вход в отрасль, но сформировать навык самообучения в IT «с нуля» сформировать вполне возможно.<br />Если хорошо подготовленный студент или выпускник IT-специальности может попасть на желанную работу после 1-2 месяцев стажировки, то вход в IT «с нуля» обычно занимает от полугода – гарантий при этом, конечно же, нет. Чем ближе специальность к IT и чем больше развит навык самообучения, тем быстрее начинающий разработчик достигнет своей цели. Также на успех значительно влияют такие «софтскиллы», как самодисциплина и мотивация к обучению.</p><p>Кстати, как раз при старте «с нуля» могут быть полезны платные курсы, при этом нужно обращать внимание и на стоимость, и на продолжительность: эти факторы влияют и на самодисциплину, и на мотивацию, помогают сформировать более четкую ментальную карту по выбранной специализации и получить приличный опыт решения задач. Естественно, для начинающих разработчиков есть и условно бесплатные пути, поэтому можно обойтись без платных курсов.</p><p>Рассмотрим отдельно случай, когда человек хочет стать программистом и погружается в IT «с нуля». Во-первых, надо понимать, что в основе программирования лежат простые концепции, изучаемые в школьном курсе: «алгоритм», «развилка», «цикл», «подпрограмма», «рекурсия», «переменная», «массив» и другие. Нужно разобраться с этим базовым уровнем, изучить теорию и получить опыт программирования на этом уровне.</p><p>Если базовая школьная информатика вам хорошо далась – нужно познакомиться с основами выбранного языка программирования и с основными концепциями вашей специализации. И выполнить много, очень много задач. А потом еще больше. Только это даст уверенность в своих силах и возможность двигаться дальше.</p><p>Когда основы специализации освоены, стоит попробовать свои силы на стажировке. Обычно для этого нужно записаться и сделать тестовое задание. Если не удалось с первого раза, значит, нужно копать еще глубже: читать статьи, изучать документацию, решать много-много-много задач. И конечно, снова пробоваться на стажировку. И если наконец вас пригласили – похвалите себя!</p><p>Стажировку успешно проходят только около 50% начинающих разработчиков, но чем больше времени вы посвятите этой задаче, тем выше шансы.</p><p>А что делать, если описанный путь для «неайтишников» может казаться страшным и непривлекательным? Для начала – посвятить в среднем от 1000 часов на изучение IT и написать от 5000 строк кода. На мой взгляд, другой «магии» нет – в любом случае в самообразование постоянно приходится вкладывать много времени и сил.</p><h3>Итак, как учиться продуктивно?</h3><p>Объясните себе, зачем вы вообще учитесь. Без поставленных целей будет велик соблазн бросить учёбу.Записывайте планы на обучение.Делите большие задачи на несколько маленьких и ставьте дедлайны на ближайшее время, чтобы быстрее видеть прогрессРегулярно подкрепляйте теорию практикой.Выберите несколько источников информации, из которых вы будете узнавать новое. Подписавшись на всё что можно вы получаете лишь переизбыток информации и рискуете навечно зависнуть в изучении разных туториалов.Не забывайте делать перерывы в обучении и отдыхать. Вы не робот, а потому учёба в режиме 24/7 скорее доведёт вас до могилы, чем до карьерных высот.Организуйте своё место для учёбы так, чтобы вас ничего не отвлекало.Не заставляйте себя, если не хочется, чтобы не вызвать отторжение к учёбе.</p><p>Напоминаем, что вы можете <a href="https://docs.google.com/forms/d/e/1FAIpQLSdSanNvlfPRrSyQWfnoGPflSVwO4KctnjOdEKHzuxjCmFX2dA/viewform">задать свой вопрос</a> экспертам, а мы соберём на него ответы, если он окажется интересным. Вопросы, которые уже задавались, можно найти в списке выпусков <a href="https://tproger.ru/experts/">рубрики</a>. Если вы хотите присоединиться к числу экспертов и прислать ответ от вашей компании или лично от вас, то пишите на <a>experts@tproger.ru</a>, мы расскажем, как это сделать.</p>]]></content:encoded>
    </item>
    <item>
      <title>Реактивное программирование простыми словами — объясняют эксперты</title>
      <link>https://tproger.ru/experts/reactive-programming-in-simple-words</link>
      <comments>https://tproger.ru/experts/reactive-programming-in-simple-words?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Никита Прияцелюк]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/experts/reactive-programming-in-simple-words</guid>
      <description><![CDATA[<p>Классический подход предполагает запрос, ожидание ответа и продолжение работы. Эксперты объясняют, чем от него отличается реактивная парадигма.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/experts/reactive-programming-in-simple-words">Реактивное программирование простыми словами — объясняют эксперты</a>»</p>]]></description>
      <category><![CDATA[Основные принципы программирования]]></category>
      <category><![CDATA[Реактивное программирование]]></category>
      <category><![CDATA[Ответы экспертов]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Fri, 16 Oct 2020 06:57:07 GMT</pubDate>
      <content:encoded><![CDATA[<p>В предыдущих статьях эксперты объяснили нам, что такое <a href="https://tproger.ru/experts/oop-in-simple-words/">объектно-ориентированное</a>, <a href="https://tproger.ru/experts/what-is-dynamic-programming/">динамическое</a>, <a href="https://tproger.ru/experts/imperative-and-declarative-programming/">декларативное и императивное</a> программирование. В этот раз узнали у них, что из себя представляет реактивное программирование.</p><p>Что такое реактивное программирование?</p><p>Классический подход к программированию предполагает выполнение запроса (к базе, сервисам и т.д.), ожидание ответа и продолжение работы. Во время ожидания поток простаивает. Масштабируют такие системы путём увеличения количества потоков, при этом вычисление оптимального количества потоков становится непростой задачей, так как сильно зависит от характера нагрузки, количества и качества ожиданий. И несмотря на это, избежать на 100% простоя ресурсов не удается.</p><p>В реактивном программировании обработка делится на большое количество небольших задач, выполнение каждой из которых оканчивается неким событием. На возникновение этого события реагирует соответствующий обработчик и выполняет свою задачу, опять генерирует событие и общий процесс обработки продолжается. Генерация события и реакция на него происходят асинхронно. Обработчик (их ещё называют акторами) выбирает следующее событие из очереди, обрабатывает и складывает событие в очередь другому обработчику. Если задача заключается в выполнении запроса в базе данных, то актор посылает запрос на сервер. После получения ответа будет сгенерировано событие с результатом запроса и запущен соответствующий актор.</p><p>Всё это позволяет более эффективно занять ресурсы полезной работой и управлять масштабированием. Повышается отзывчивость приложений. Кроме того, реактивное программирование помогает масштабироваться горизонтально.</p><p>Понятие реактивного программирования тесно связано с понятием модели распространения данных, которая бывает двух типов:</p><ol><li>pull-модель.</li><li>push-модель.</li></ol><p>На самом деле, эти модели вполне логичны и естественны, поэтому их проявления можно проследить даже в обычной жизни.</p><p>Допустим, Вася любит быть в курсе всех новостей по хоккею и поэтому периодически посещает тематические сайты в надежде обнаружить интересный контент.</p><p>Его коллеге — Пете — тоже интересен хоккей, но в отличие от Васи, Петя подписался на рассылку новостей и получает уведомления о важных событиях в хоккее.</p><p>С точки зрения программирования, Вася использует pull-модель: периодически просматривает источники данных, в то время как Петя — push-модель: занимается обработкой входящих сообщений.</p><p>Таким образом, реактивное программирование — это стиль написания кода, который упрощает реализацию приложений, основанных на push-модели.</p><p>На практике этот стиль применяется для обработки входящего потока данных, например:</p><ul><li>сообщения от пользователей;</li><li>уведомления об изменении расписания;</li><li>действия пользователя с интерфейсом и т.д</li></ul><p>Реактивное программирование — это подход к разработке ПО, который строится на реагировании на события и на распространении событий. При этом модель реакции на события предполагает возможность простого распространения этих или трансформированных событий далее по системе. Ярким примером реализации реактивного подхода может служить таблица Excel. В ней существует цепочка вычислений, разделённая на несколько ячеек: при изменении значения одной из ячеек в цепочке значения в зависимых ячейках пересчитываются автоматически.</p><p>В целом, идея реактивного программирования призвана упростить создание сложных систем. В сложной большой системе возникает значительное количество разнообразных событий, каждое требует определённого механизма реакции и обработки. При использовании реактивного программирования события объединяются в потоки, а компоненты системы являются обработчиками потока событий (и также в свою очередь могут являться генераторами событий). Таким образом, сколь ни была бы сложна система и сколько бы в ней ни было разнообразных событий, вся система строится по принципу генерации потоков событий и реакции на них. Подход в моделировании сложной системы позволяет обрабатывать каждое событие асинхронно и изолированно от других. Важно понимать при этом, что дизайн реактивной системы предполагает, что любая функциональность в системе реализуется с помощью событий и обработчиков. Благодаря этому достигается уменьшение связанности между компонентами системы, увеличение гибкости, упрощение масштабирования и повышение устойчивости систем.</p><p>Парадигма реактивного программирования включает отслеживание определенных событий и реагирование на них в асинхронных потоках данных. Эта идея предполагает, что существует источник событий и слушатель событий, который реагирует на события источника.</p><p>Суть реактивного программирования можно изобразить разными способами. Например, представим реку, течение которой несет несколько разноцветных объектов (мячей). Допустим, на берегу сидит человек, которому нужно выловить объекты с определенной характеристикой – только зеленые или красные. Если нам требуется запрограммировать подобную ситуацию, то реактивный подход – это то, что поможет нам оперировать потоками данных, получать данные, совершать математические вычисления и т.д. Работа с потоками требует от программиста определенного опыта и понимания, что и как комбинировать, какие операторы подходят для решения задачи.</p><p>Реактивный подход активно используется в Frontend-разработке и мобильной разработке, одним из его популяризаторов является Netflix.</p><p>Само название парадигмы наводит на мысль, что реактивное программирование подразумевает какую-либо реакцию на изменения. Так и есть: реактивное программирование удобно при создании интерфейсов и построении моделей систем, изменяющихся во времени.</p><p>Реальным применением этой парадигмы может стать веб-фреймворк, поддерживающий архитектуру MVC (Model-View-Controller), в котором при изменении модели изменяется поведение пользовательских представлений.</p><p>Предположим, есть модель Пользователь с полями Имя и Фамилия. Добавляем поле Отчество — и во всех местах, будь это форма на сайте или структура базы данных, происходят соответствующие изменения: форма при следующей генерации содержит новое поле, а для БД генерируется миграция.</p><p>В рамках парадигмы чаще всего используют функции обратного вызова (callback) и конструкции асинхронного программирования (конкретные виды зависят от языка). Также здесь задействуют события (events) или потоки (flows). Если в коде есть такие «следы», значит, с большой вероятностью здесь применяется концепция реактивного программирования</p><h3>Итак, что из себя представляет реактивное программирование?</h3><p>В реактивном программировании обработка делится на большое количество небольших задач, выполнение каждой из которых оканчивается неким событием. На событие реагирует обработчик, который выполняет свою задачу и снова генерирует событие. Генерация события и реакция на него происходят асинхронно.Идея реактивного программирования призвана упростить создание и масштабирование сложных систем.Примером реактивного подхода может служить таблица Excel. В ней существует цепочка вычислений, разделённая на несколько ячеек: при изменении значения одной из ячеек значения в зависимых ячейках пересчитываются автоматически.</p><p>Напоминаем, что вы можете <a href="https://docs.google.com/forms/d/e/1FAIpQLSdSanNvlfPRrSyQWfnoGPflSVwO4KctnjOdEKHzuxjCmFX2dA/viewform">задать свой вопрос</a> экспертам, а мы соберём на него ответы, если он окажется интересным. Вопросы, которые уже задавались, можно найти в списке выпусков <a href="https://tproger.ru/experts/">рубрики</a>. Если вы хотите присоединиться к числу экспертов и прислать ответ от вашей компании или лично от вас, то пишите на <a>experts@tproger.ru</a>, мы расскажем, как это сделать.</p>]]></content:encoded>
    </item>
    <item>
      <title>Императивное и декларативное программирование простым языком — объясняют эксперты</title>
      <link>https://tproger.ru/experts/imperative-and-declarative-programming</link>
      <comments>https://tproger.ru/experts/imperative-and-declarative-programming?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Никита Прияцелюк]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/experts/imperative-and-declarative-programming</guid>
      <description><![CDATA[<p>Императивные языки вроде Java, Python, JavaScript, C и C++ доминируют в индустрии. Эксперты объясняют суть обеих парадигм понятными словами.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/experts/imperative-and-declarative-programming">Императивное и декларативное программирование простым языком — объясняют эксперты</a>»</p>]]></description>
      <category><![CDATA[Для начинающих]]></category>
      <category><![CDATA[Основные принципы программирования]]></category>
      <category><![CDATA[Ответы экспертов]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 07 Oct 2020 06:41:07 GMT</pubDate>
      <content:encoded><![CDATA[<p>Начинающему программисту несложно запутаться в различных терминах — взять только объектно-ориентированное, динамическое, императивное и декларативное программирование. Спросили у экспертов, что из себя представляют два последних подхода.</p><p>Что такое императивное и декларативное программирование?</p><p>Императивные языки, такие, как Java, Python, JavaScript, C, C++ занимают доминирующее положение в индустрии ПО, соответственно императивное программирование — самое распространённое. Смысл его в том, что императивная программа содержит прямые указания, что должен сделать компьютер и в каком порядке должны выполняться инструкции. Этот подход легко понять программисту, а компилятору — легко породить достаточно эффективный код.</p><p>Декларативное программирование распространено не так обширно, как императивное, хотя оказывает большое влияние на мейнстрим. Смысл декларативного программирования в том, что программы пишут в виде некоторых ограничений и правил. Логические языки, такие, как Пролог, предлагают описывать ограничения в виде фактов и правил.</p><p>В функциональных языках (другой вариант декларативного программирование) описывают программу в виде функций. Отличие от функций в императивном программировании заключается в том, что функции в функциональном языке являются математическими в том смысле, что они устанавливают отношение между аргументом и результатом, и не могут изменять никаких переменных во время вычислений.</p><p>Вообще в декларативных языках обычно отсутствует изменение переменных или обычно спрятано за каким-либо специальным механизмом.</p><p>Самый популярный язык РСУБД SQL так же является декларативным. На нём описывается конечный результат, а способ его получения генерируется сервером СУБД исходя из множества факторов.</p><p>Декларативное программирование может являться более сложным в понимании, но позволяет писать более безопасный и поддерживаемый код, который легко параллелится. А компиляторы декларативных языков имеют больше возможностей при оптимизации программ.</p><p>Конечно, практически все основные языки сочетают в себе элементы и декларативного и императивного программирования. Огромное влияние оказывает функциональное программирование на JavaScript, Java, C++, C# и т.д.</p><p>Декларативное программирование — это парадигма программирования, в которой задаётся спецификация решения задачи: описывается, что представляет собой проблема и ожидаемый результат, но без описания способа достижения этого результата. Зачастую декларативные программы не используют понятия состояния и, в частности, не содержат переменных и операторов присваивания, обеспечивая ссылочную прозрачность. К подвидам декларативного программирования часто относят и функциональное программирование. Декларативные компьютерные языки часто не полны по Тьюрингу, так как теоретически не всегда возможно порождение исполняемого кода по декларативному описанию.</p><p>Императивное программирование — это парадигма программирования, в которой задаётся последовательность действий, необходимых для получения результата. В нём используются переменные, операторы присваивания и составные выражения.</p><p>Несмотря на то, что исторически первым был применен декларативный подход в программировании, первые языки программирования компьютеров (машинный, ассемблер, фортран, алгол, кобол) были императивными в силу простоты подхода.</p><p>Сейчас широко распространены как узкоспециализированные декларативные языки программирования (HTML + CSS, SVG, VRML, SQL, lex/VACC), в том числе функциональные (Haskell, Erlang, Scala), так и императивные языки (C/C++/C#, Java, Go, Rust, Python). Однако практически все современные языки программирования общего назначения высокого уровня, за исключением некоторых функциональных, относятся к императивным языкам.</p><p>Выбор той или иной парадигмы программирования — императивной или функциональной — определяется, главным образом, требованиями к программе и набором достоинств и недостатков каждой из парадигм. Так, например, независимость функций по данным в функциональных языках и отсутствие побочных эффектов чрезвычайно сокращает количество ошибок и позволяет эффективно распараллеливать код. Поэтому для создания высоконагруженных систем с высоким уровнем параллельных вычислений более оправданно выбирать один из функциональных языков.</p><p>С другой стороны, неизменность входных данных в функциональных языках программирования затрудняет создание систем, активно выполняющих ввод-вывод и модификацию уже имеющихся данных. Для реализации таких систем предпочтительнее выбирать императивные языки.</p><p>Императивное программирование — это парадигма, основанная на составлении алгоритма действий (инструкций/команд), которые изменяют состояние (информацию/данные/память) программы. Первыми языками программирования, основанными на таком подходе, были машинные коды и ассемблеры. Фактически, программа на этих языках — это код, который выполняется компьютером сразу, без предварительной компиляции. Из языков высокого уровня, требующих компиляции исходного кода программы в машинный код (или интерпретации), к императивным можно отнести C, C++, Java.</p><p>Декларативное программирование — это парадигма, при которой описывается желаемый результат, без составления детального алгоритма его получения. В пример можно привести HTML и SQL. При создании HTML мы с помощью тегов описываем, какую хотим получить страничку в браузере, а не то, как нарисовать на экране заголовок статьи, оглавление и текст. В SQL, если нам нужно посчитать количество сотрудников с фамилией «Сидоров», мы напишем SELECT count(*) FROM employee WHERE last_name = 'Сидоров';. Тут ничего не сказано про то, в каком файле или области памяти находятся данные по сотрудникам, как именно выбрать из них всех Сидоровых и нужно ли вообще это делать для подсчёта их количества.</p><p>Рассмотрим ещё один пример. Допустим, мы хотим приготовить обед.</p><p>В императивной парадигме это выглядит как-то так:</p><ul><li>купить мясо, огурцы, помидоры, соль;</li><li>порезать мясо, посолить;</li><li>поставить сковородку на плиту;</li><li>…</li></ul><p>В декларативной: хочу на обед жареное мясо с овощами (неплохо звучит, правда? :)).</p><p>Вроде бы различия очевидны. Однако, императивный язык не мешает обобщить и автоматизировать отдельные задачи. Можно реализовать некий «слой» кода, библиотеки, которые будут «уметь» выполнять отдельные этапы алгоритма: определять по рецепту, есть ли в наличии необходимые продукты, заказывать их доставку, пользоваться плитой и т.д. Получится, что программный код императивного языка программирования, использующий такие библиотеки, уже не будет по своей структуре так уж сильно отличаться от декларативного.</p><p>На практике, при написании кода и выбора подхода, разработчик отталкивается не только от возможностей и ограничений языка программирования, но и удобства использования той или иной парадигмы в данном конкретном случае.</p><h3>Что из себя представляют императивное и декларативное программирование?</h3><p>Если кратко, то императивная программа содержит прямые указания, что должен сделать компьютер и в каком порядке должны выполняться инструкции. Примерами императивных языков являются Java, Python, JavaScript, C, C++.Декларативная же программа состоит из ограничений и правил, из которых компьютер генерирует способ получения результата. Пример декларативного языка: SQL.</p><p>Напоминаем, что вы можете <a href="https://docs.google.com/forms/d/e/1FAIpQLSdSanNvlfPRrSyQWfnoGPflSVwO4KctnjOdEKHzuxjCmFX2dA/viewform">задать свой вопрос</a> экспертам, а мы соберём на него ответы, если он окажется интересным. Вопросы, которые уже задавались, можно найти в списке выпусков <a href="https://tproger.ru/experts/">рубрики</a>. Если вы хотите присоединиться к числу экспертов и прислать ответ от вашей компании или лично от вас, то пишите на <a>experts@tproger.ru</a>, мы расскажем, как это сделать.</p>]]></content:encoded>
    </item>
    <item>
      <title>Что такое динамическое программирование — объясняют эксперты</title>
      <link>https://tproger.ru/experts/what-is-dynamic-programming</link>
      <comments>https://tproger.ru/experts/what-is-dynamic-programming?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Никита Прияцелюк]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/experts/what-is-dynamic-programming</guid>
      <description><![CDATA[<p>Начинающий программист может спутать динамическое программирование с объектно-ориентированным. Эксперты простым языком объясняют суть подхода.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/experts/what-is-dynamic-programming">Что такое динамическое программирование — объясняют эксперты</a>»</p>]]></description>
      <category><![CDATA[Для начинающих]]></category>
      <category><![CDATA[Основные принципы программирования]]></category>
      <category><![CDATA[Ответы экспертов]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 23 Sep 2020 11:21:43 GMT</pubDate>
      <content:encoded><![CDATA[<p>Время от времени в разных статьях упоминается динамическое программирование, которое начинающий программист может спутать с чем-нибудь вроде объектно-ориентированного программирования. Мы попросили экспертов простым языком объяснить, что такое динамическое программирование.</p><p>Что такое динамическое программирование?</p><p>Динамическое программирование — достаточно широко используемый подход к решению задач, основанный на идее «разделяй и властвуй». Достаточно часто невозможно или крайне затруднительно создать некий общий алгоритм решения проблемы, который бы брал входные данные, что-то с ними делал и сразу выдавал ответ.</p><p>Часто способа решить задачу методом «делай раз, делай два, делай три» не существует. Но всегда можно разделить большую задачу на множество маленьких и дробить так до тех пор, пока упрощённые задачи не станут примитивно простыми. Это подход, известный как «разделяй и властвуй». Довольно часто для этого используется рекурсия — вызов функцией самой себя.</p><p>Важная особенность чтобы этот процесс не зациклился нужно чтобы на каком-то этапе задача сводилась к примитивному случаю, ответ на который известен сразу. Пример — вычисление факториала числа. Такую задачу можно решить и с помощью простого алгоритма n!=1·2·3·…·n, в этом случае можно сразу получить значение (например 4! = 1·2·3·4 = 24, а 5! = 1·2·3·4·5 = 120). Но эту же задачу можно решить и рекурсивно, ведь 5! = 5·4!, а 4! = 4·3! и так далее. Значит можно написать простую функцию расчета факториала n!, которая будет умножать число на результат вызова самой себя для более простого случая (n-1)!. И только в примитивном случае 1! функция вызывать саму себя не будет, а сразу вернёт 1, это важный момент, чтобы не возникло зацикливания.</p><p>Но «разделяй и властвуй» — это ещё не совсем динамическое программирование, так как такой подход хоть и прост, но часто приводит к лавинообразному росту необходимых вычислений, хоть сам метод может быть сколь угодно простым.</p><p>Взять, к примеру, задачу поиска кратчайшего маршрута по городу из точки А в точку Б. На практике такие задачи решаются с использованием теории графов, когда каждой улице в городе ставится в соответствие ребро графа, а каждой возможной точке пребывания — узел графа. Каждому ребру приписывается некоторая условная «стоимость», соответствующая, например времени прохождения или даже непосредственно денежная стоимости проезда по соответствующей «улице». Эта стоимость в реальности может даже меняться с течением времени, например из-за пробок. Тогда необходима функция, находящая кратчайший маршрут — такую последовательность узлов, пройдя через которые мы получим минимальную «стоимость» прохождения всех соединяющих их рёбер.</p><p>И вот для таких задач методы динамического программирования становится практически единственными рабочими вариантами решения. Методы рекурсии здесь уже не подойдут: можно, конечно, решить эту задачу и таким образом: написать функцию, возвращающую стоимость ухода из точки А по каждой из возможных «улиц», каждая из этих функций в свою очередь добавит к ней стоимость участка до следующего «перекрёстка», вызвав саму себя еще раз, и повторит это многократно, пока в результате не «дойдёт» до точки Б. По итогу, среди всех цепочек ответов можно будет выбрать ту, стоимость которой минимальна и получить ответ на задачу. Но на практике сделать такое возможно только для очень простых графов с десятками узлов, например для карты метро. А вот уже в масштабах карты улиц города подобные алгоритмы становятся нереалистичными.</p><p>Если вкратце, то динамическое программирование — это способ решить задачу, разбив её на мелкие задачи и скомбинировав их решения.</p><p>Обычно динамическое программирование применяют в задачах, связанных с оптимизацией, например, когда нужно найти кратчайший маршрут для перемещения из города A в город B. Либо это могут быть задачи, где нужно просчитать все возможные комбинации переходов или расположения элементов. Классический пример, в котором используется этот метод — последовательность чисел Фибоначчи.</p><p>F(n) = F(n-1) + F(n-2);<br />F(0)=0;<br />F(1)=F(2)=1;</p><p>Как видно, для решения задачек с последовательностями, нужно определить следующие условия: рекуррентная зависимость элементов последовательности друг от друга, начальное состояние. Они не всегда могут быть заданы в условии напрямую, как это было в задаче выше. Например, в видео «<a href="https://youtu.be/UVAfng6OCW0">Динамическое программирование: траектории кузнечика</a>» разбирают задание с количеством переходов из точки A в B.</p><p>В рассмотренных выше случаях параметром состояния было одно число, однако существуют и более сложные, многомерные классы задач. Для многомерной динамики параметрами состояния могут быть:</p><ul><li>массивы,</li><li>векторы,</li><li>отрезки внутри массивов,</li><li>деревья,</li><li>подмножества,</li><li>динамика по профилю</li><li>и т. д.</li></ul><p>Поиск оптимального состояния динамики, переходов и порядка пересчёта (прямой или обратный) и включает в себя метод динамического программирования.</p><p>Узнать подробности о применениях этого метода и способах его оптимизации можно почти во всех в книжках по алгоритмам, например, в книге «Алгоритмы. Построение и анализ».</p><p>В теории вычислительных систем под термином «динамическое программирование» понимается способ решения сложных задач путём разбиения их на более простые подзадачи. Динамическое программирование применимо не ко всем задачам, а лишь к тем, которые обладают «оптимальной структурой». Оптимальная структура означает, что задача может быть разбита на несколько аналогичных задач меньшего размера, при этом для решения конечной задачи могут быть использованы результаты решения меньших задач. Примеры задач с оптимальной структурой — вычисление факториала числа, построение ряда чисел Фибоначчи, вычисление расстояния Левенштейна (красивое название, скрывающееся внутри всем известной задачи diff, вычисляющей разницу между двумя текстовыми файлами). Программист, не знакомый с теорией вычислительных систем, может подумать, здесь кроется какая-то сложная математика, но на самом деле речь идёт о всем хорошо знакомом подходе — рекурсии. Все знают, как вычислить факториал числа: нужно умножить это число на факториал числа, меньшего на единицу: F(n) = n*F(n-1) (для краткости опущена проверка n &gt;= 1) — просто и изящно.</p><p>Так вот, динамическое программирование — это рекурсия с сохранением результатов вычислений. Представим, что нам постоянно нужно вычислять факториал разных чисел. Каждый раз, когда нам нужно вычислить факториал, например, числа 5, нам необходимо произвести 4 умножения — 5*4*3*2*1. А что, если сохранить промежуточные результаты? Допустим, мы когда-то раньше вычислили 4! = 24. Значит, нам нужно проделать только одно умножение — 5*24. А в следующий раз, когда нас спросят 5!, мы вообще можем вернуть результат сразу же. Понятно, что при таком подходе растёт скорость вычислений, но и возрастает потребление памяти. Что важнее — скорость или память — вечный вопрос. Принимать решение нужно исходя из конкретных условий.</p><p>Динамическое программирование – это метод, который позволяет эффективно решать многие задачи, прежде всего, задачи комбинаторной оптимизации.</p><p>Суть метода в следующем: имеющуюся задачу рекурсивно разбиваем на более маленькие подзадачи, их — на ещё меньшие и так далее. Но решаем задачи в обратном порядке: сначала маленькие (запоминаем их решение), потом переходим к задачам побольше (строим их решение на основе сохранённых решений маленьких задач) и так далее, пока не решим исходную большую задачу.</p><p>Преимущества метода:</p><ul><li>за счёт запоминания решения промежуточных подзадач мы каждую такую подзадачу решаем только один раз, т.е. экономим время;</li><li>избавляемся от рекурсии (заменяем её на вложенные циклы).</li></ul><p>Недостаток: обычно требуется много памяти для хранения промежуточных результатов.</p><p>Вычислительная сложность многих задач не зависит от входных параметров, например, получение элемента по индексу в массиве не зависит от длины массива и всегда выполняется за константное время. В то же время есть задачи, для которых время выполнения линейно зависит от значения параметров, например, получение элемента по индексу в связанном списке ― чем больше элементов, тем больше времени потребуется на поиск нужного элемента. Естественно, существуют и задачи, для которых использование полного перебора требует слишком много времени, например, поиск кратчайшего маршрута между двумя городами в случае полного перебора потребует построение n! вариантов, что при больших n неэффективно.</p><p>Некоторые подобные задачи можно решить путем разбиения исходной задачи на подзадачи меньшего размера и сложности, решив которые и объединив результаты, можно получить решение исходной задачи. Такой подход называется динамическим программированием и был предложен Ричардом Беллманом в 1940-х годах.</p><p>Динамическое программирование придерживается двух подходов к решению задач:</p><ul><li>Нисходящее динамическое программирование, когда исходная задача разбивается на подзадачи. После решения подзадач результаты объединяются для получения решения исходной задачи.</li><li>Восходящее динамическое программирование, когда сначала происходит решение подзадач, а затем объединение их результатов для решения общей задачи.</li></ul><p>Одной из самых известных задач динамического программирования является задача вычисления чисел Фибоначчи, и она эффективно решается методом восходящего динамического программирования. При использовании этого подхода для нахождения N-го элемента в последовательности происходит последовательное нахождение первого, второго и последующих элементов как суммы двух предыдущих. Данный подход имеет сложность O(N), в то время как использование классического рекурсивного подхода имеет приблизительную сложность O(2^N), что существенно больше.</p><p>С помощью чисел Фибоначчи описываются многие явления, однако, давайте посмотрим на более практический пример ― задачу коммивояжера или, на современный лад, курьера ― курьер должен посетить N адресов, побывав на каждом из адресов ровно по одному разу и завершить свой маршрут в исходной точке. Задача заключается в нахождении маршрута минимальной длинны.</p><p>Данную задачу можно решить методом полного перебора ― сгенерировать все возможные маршруты (всего их N!) для N адресов, а затем выбрать маршрут минимальной длины. Сложность данного алгоритма O(N! * N) и время вычисления очень быстро растет при росте количества адресов ― если для трех адресов нужно рассмотреть шесть вариантов, то для 10 уже около четырех миллионов!</p><p>Использование подходов динамического программирования может не дать наилучшего решения, но, тем не менее, оно будет достаточно хорошим и за приемлемое время. Суть подхода к решению данной задачи заключается в поиске ближайшего адреса на каждом шаге ― из исходной точки, затем следующего ближайшего пункта назначения из первого адреса и так далее. Полученное решение не будет идеальным, но потребует гораздо меньше времени ― O(N^2 * 2^N), что для тех же 10 адресов 1124 вычислений.</p><p>Таким образом, мы рассмотрели основную идею динамического программирования ― разбиение сложной задачи на коллекцию более простых, которые суммарно можно решить за гораздо меньшее время.</p><p>Чаще всего под динамическим программированием понимают запоминание результатов решения частных задач для того, чтобы затем переиспользовать их для решения более общих<br />задач.</p><p>Так, если у нас есть задача, которую можно поделить на набор похожих подзадач с более простым решением, ее нужно делить столько раз, сколько это возможно. Когда подзадачи перекрываются, это ускоряет решение.</p><p>Яркий пример того, как работает динамического программирование — задача нахождения N-го члена рекуррентной последовательности. В такой последовательности каждый следующий член зависит от одного или нескольких предыдущих. При этом, полностью раскрывая последовательность, мы «снижаем индекс», пока не дойдем до тривиального случая, либо до случая, на который уже есть сохраненный ответ — от него мы возвращаемся обратно и производим подсчет, сохраняя вычисленный результат для дальнейшего переиспользования. Если необходимо подсчитать большое количество членов последовательности, мы получим качественный скачок по производительности.</p><p>Данный метод применяют, чтобы ускорить и упростить решение задачи.</p><h3>Что такое динамическое программирование?</h3><p>Если кратко, то динамическое программирование — это способ решения сложных задач путём их разбиения на более мелкие составляющие и комбинирования их решений. Классический пример, в котором используется этот метод — последовательность чисел Фибоначчи, где каждое последующее число вычисляется из двух предыдущих.Динамическое программирование применимо не ко всем задачам, а только к тем, которые позволяют себя разбить на несколько задач поменьше и использовать их решения.</p><p>Напоминаем, что вы можете <a href="https://docs.google.com/forms/d/e/1FAIpQLSdSanNvlfPRrSyQWfnoGPflSVwO4KctnjOdEKHzuxjCmFX2dA/viewform">задать свой вопрос</a> экспертам, а мы соберём на него ответы, если он окажется интересным. Вопросы, которые уже задавались, можно найти в списке выпусков <a href="https://tproger.ru/experts/">рубрики</a>. Если вы хотите присоединиться к числу экспертов и прислать ответ от вашей компании или лично от вас, то пишите на <a>experts@tproger.ru</a>, мы расскажем, как это сделать.</p>]]></content:encoded>
    </item>
    <item>
      <title>Объектно-ориентированное программирование простым языком — объясняют эксперты</title>
      <link>https://tproger.ru/experts/oop-in-simple-words</link>
      <comments>https://tproger.ru/experts/oop-in-simple-words?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Никита Прияцелюк]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/experts/oop-in-simple-words</guid>
      <description><![CDATA[<p>Эксперты объясняют суть ООП через метафору реального мира: что такое объект, какие свойства его определяют и как из них складывается класс.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/experts/oop-in-simple-words">Объектно-ориентированное программирование простым языком — объясняют эксперты</a>»</p>]]></description>
      <category><![CDATA[Для начинающих]]></category>
      <category><![CDATA[Объектно-ориентированное программирование]]></category>
      <category><![CDATA[Ответы экспертов]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 09 Sep 2020 08:06:56 GMT</pubDate>
      <content:encoded><![CDATA[<p>В интернете можно найти много описаний ООП, однако начинающий программист рискует их не понять. Мы попросили экспертов объяснить суть этой методологии простыми словами.</p><p>Что такое объектно-ориентированное программирование?</p><p>Самый простой способ объяснить и понять ООП — воспользоваться метафорой. Метафорой объекта в ООП является объект реального мира, например, человек. Объекты надо отличать между собой и у них есть что-то, что их определяет. Например, для человека это может быть имя, когда мы говорим про нашего знакомого Васю, и все понимают о ком речь. Люди неким образом похожи друг на друга. Подмножество людей, обладающих одинаковым набором свойств (имя, фамилия, возраст и т.д.) и общим поведением, будет называться класс. Возьмем для примера сотрудников нашей компании. Для каждого из нас определен департамент (я, например, в департаменте разработки ПО числюсь, ДРПО), должность, уровень зарплаты и т.д. Эти свойства обычно определяют в момент, когда в компанию приходит новый сотрудник. У человека можно запросить информацию по его навыкам или попросить помочь коллеге — это общее поведение для всех сотрудников.</p><p>Зарплату сотрудника знает он сам, его руководитель и бухгалтер, остальные — нет. Такое сокрытие данных называется инкапсуляция. Какие свойства и поведение будет доступно другим объектам обычно определяется на уровне класса. Руководитель отдела также является сотрудником, но он обладает рядом дополнительных свойств, например, у него есть подчиненные. Таким образом класс «руководитель», расширяет класс «сотрудник» или, другими словами, происходит наследование. При этом между классами устанавливается отношение «является» — то есть любой руководитель является сотрудником, но не наоборот — не каждый сотрудник является руководителем. Если у класса больше одного наследника, то образуется иерархия. Классы, которые являются родственниками в иерархии не связаны отношением «является», например, бухгалтер является сотрудником, но бухгалтер не является руководителем.</p><p>При помощи этих правил иерархию можно проверить на корректность. Если взять ведомость со списком всех сотрудников, в нее очевидным образом попадут и руководители, и бухгалтеры, но в общем списке они не будут отличаться от других сотрудников. Если мы захотим уточнить список подчиненных у каждого руководителя, то нам понадобится подготовить отдельную ведомость со свойствами, специфичными для класса «руководитель». Такое свойство объектов называется полиморфизмом, где состав свойств и поведение будет определяться классом, через который мы смотрим на объект: мы можем обращаться к объекту, как и к любому из предков его класса, но это не верно для потомков или других родственников.</p><p>Так мы рассмотрели, как связаны объекты и классы, и такие понятия, как: инкапсуляция, наследование и полиморфизм. Все это — базовые понятия ООП.</p><p>Объектно-ориентированное программирование – это подход, при котором вся программа рассматривается как набор взаимодействующих друг с другом объектов. При этом нам важно знать их характеристики.</p><p>У каждого объекта в системе есть свойства и поведение, как и у любого реального объекта. Например, рассмотрим объект «машина». У него есть свойства (цвет, вес, стоимость) и поведение (машина может ехать, сигналить, потреблять топливо).</p><p>Такой подход помогает строить сложные системы более просто и естественно благодаря тому, что вся предметная область разбивается на объекты и каждый из них слабо связан с другими объектами. Слабая связанность возникает вследствие соблюдения трех принципов: инкапсуляции, наследования и полиморфизма.</p><ol><li>Инкапсуляция – сокрытие поведения объекта внутри него. Объекту «водитель» не нужно знать, что происходит в объекте «машина», чтобы она ехала. Это ключевой принцип ООП.</li><li>Наследование. Есть объекты «человек» и «водитель». У них есть явно что-то общее. Наследование позволяет выделить это общее в один объект (в данном случае более общим будет человек), а водителя — определить как человека, но с дополнительными свойствами и/или поведением. Например, у водителя есть водительские права, а у человека их может не быть.</li><li>Полиморфизм – это переопределение поведения. Можно снова рассмотреть «человека» и «водителя», но теперь добавить «пешехода». Человек умеет как-то передвигаться, но как именно, зависит от того, водитель он или пешеход. То есть у пешехода и водителя схожее поведение, но реализованное по-разному: один перемещается ногами, другой – на машине.</li></ol><p>ООП позволяет упростить сложные объекты, составляя их из более маленьких и простых, поэтому над программой могут работать сотни разработчиков, каждый из которых занят своим блоком. Большинство современных языков программирования — объектно-ориентированные, и, однажды поняв суть, вы сможете освоить сразу несколько языков.</p><p>Методология объектно-ориентированного программирования (ООП) подразумевает представление всей программы или ее частей объектами. У каждого объекта есть тип — в ООП он называется классом. Классы можно объявлять или наследовать и создавать из них экземпляры. Собственно, объект — это и есть экземпляр класса.</p><p>Обычно объект объединяет в себе данные и методы для работы с ними. Представим, что у нас есть тип «Позвоночное существо», у которого есть свойство «Класс». У каждого из Позвоночных существ это свойство равно одному из пяти значений: Рыба, Земноводное, Птица, Пресмыкающееся, Млекопитающее. Добавим метод получить_класс — он будет возвращать это значение. Далее объявим тип «Человек», который наследует типу «Позвоночное существо». Создадим несколько экземпляров: Иван Иванов, Марина Иванова, Антон Антонов. Добавим присущие только Человеку свойства: Имя и Фамилию. У каждого из них будет метод получить_имя/получить_фамилию, а также перешедший от Позвоночного существа метод получить_класс.</p><p>Так можно продолжать сколь угодно долго: повторно описывать методы родительских классов нам не нужно, и любой экземпляр класса будет обладать заявленными свойствами.</p><p>Основные задачи ООП — структурировать код, повысить его читабельность и ускорить понимание логики программы. Косвенно выполняются и другие задачи: например, повышается безопасность кода и сокращается его дублирование.</p><p>Дело в том, что человеку гораздо удобнее работать с реальными объектами, чем отдельно с набором данных и функциями. Представляя данные в программе как свойства объекта, а функции по обработке данных — как возможные методы объекта, мы приближаем процесс программирования к процессу описания метода решения задачи. Это достигается за счет добавления знакомой человеку структуры абстракций: ведь даже язык, на котором мы говорим, следует принципам ООП. У каждой буквы есть произношение и написание, каждое слово включает буквы и имеет свое произношение и написание, то же верно и для предложений, и для более крупных конструкций. Все в этом мире — объект!</p><p>Главное, о чем не стоит забывать: ООП — это не единственная парадигма. У нее есть свои плюсы и минусы, для каких-то задач она подходит, для каких-то — нет. Например, ООП не даст особых преимуществ, если вы пишете «однострочники» и простые скрипты. Однако в больших проектах неразделенный на отдельные сущности код быстро превратится в «лапшу» и перестанет читаться, и ООП здесь сильно упростит работу.</p><p>Наиболее классическое определение, к которому прибегают при необходимости объяснить что такое ООП, это — «способ моделирования реального мира».‎ Можно предположить, что ООП делает код более простым и наглядным, однако такая формулировка слишком размыта и уклончива, она не открывает самой сути ООП.</p><p>ООП стоит на трёх китах:</p><ul><li>Инкапсуляция — способ спрятать сложную логику внутри класса, предоставив программисту лаконичный и понятный интерфейс для взаимодействия с сущностью.</li><li>Наследование — способ легко и просто расширить существующий класс, дополнив его функциональностью.</li><li>Полиморфизм — принцип «один интерфейс — множество реализаций». Например, метод print может вывести текст на экран, распечатать его на бумаге или вовсе записать в файл.</li></ul><p>Если резюмировать: ООП даёт контроль над зависимостями в коде. Это способ сделать так, чтобы высокоуровневый код не зависел от низкоуровневой реализации. ООП позволяет вести разработку раздельно, поскольку взаимодействие между сущностями определено интерфейсами.</p><p>Суть ООП заключается в том, чтобы представить программу в виде объектов, которые каким-то образом взаимодействуют друг с другом.</p><p>Все, что угодно, можно представить в виде объекта: человека, воздушный шарик, сообщение в мессенджере. У объекта могут быть свойства, например, цвет – красный, размер – большой. Также у объекта могут быть методы для совершения операций. Например, если объект телевизор, вызываем метод «включить», и телевизор включается.</p><p>Объект — это экземпляр какого-то класса. Класс — это шаблон, в котором описаны все свойства будущего объекта и его методы. При этом если класс воздушного шарика определяет свойство цвет, то сам класс никакого значения цвета не имеет. Но экземпляры этого класса, которых, к слову, можно создавать сколько угодно, уже будут раскрашены в любые цвета.</p><p>Классы могут выстраиваться в хитрые витиеватые структуры. Чем структура хитрее, тем программа гибче, легче поддается изменениям и внедрениям нового функционала, но не обязательно. Такие слова как наследование, полиморфизм, инкапсуляция позволяют создавать структуры объектов еще витиеватее, при этом избавляют код от дублирования и делают его интуитивно понятным, но не всегда.</p><p>Понимание только лишь принципа работы объектов не сделает человека ООП-гуру. Суть мастерства ООП в умении конструировать многоуровневые структуры из классов, при этом оставляя код читаемым, надежным и гибким. Чтобы это постичь, потребуется пройти долгий и изнурительный путь, но в конечном итоге ООП станет лучше.</p><p>Часто статьи про ООП начинаются с кучи терминов, теории и сложных объяснений подходов и парадигм. В своем курсе программирования на Java для начинающих в Воронежском государственном университете я сначала объясняю на практике роль объектов, их связь и операции с ними, используя обычные слова, которые мы используем в повседневной жизни. Например, инкапсуляцию удобно объяснять с помощь магазина, где есть витрина, на которой все видно и красиво расставлено и есть склад, куда обычного покупателя не пускают.</p><p>Когда студенты начинают понимать и могут строить объектные модели, можно вводить первые термины, такие как: инкапсуляция, наследование и полиморфизм. Понимая работу ООП на практике, даже на совсем примитивном уровне, эти слова уже не кажутся такими страшными и непонятными. Дальше я ввожу больше теории и обязательно добавляю практические вещи, например, паттерны проектирования.</p><p>Проще говоря, преподавать ООП стоит от практики к теории. Очень много в этом процессе дают правильные примеры. В первое время они должны отражать окружающий нас мир и только потом трансформироваться в абстракции и переходить к языку программирования.</p><p>Напоминаем, что вы можете <a href="https://docs.google.com/forms/d/e/1FAIpQLSdSanNvlfPRrSyQWfnoGPflSVwO4KctnjOdEKHzuxjCmFX2dA/viewform">задать свой вопрос</a> экспертам, а мы соберём на него ответы, если он окажется интересным. Вопросы, которые уже задавались, можно найти в списке выпусков <a href="https://tproger.ru/experts/">рубрики</a>. Если вы хотите присоединиться к числу экспертов и прислать ответ от вашей компании или лично от вас, то пишите на <a>experts@tproger.ru</a>, мы расскажем, как это сделать.</p>]]></content:encoded>
    </item>
    <item>
      <title>Разработка ТЗ: как составить качественное техническое задание — отвечают эксперты</title>
      <link>https://tproger.ru/experts/writing-good-technical-task</link>
      <comments>https://tproger.ru/experts/writing-good-technical-task?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Никита Прияцелюк]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/experts/writing-good-technical-task</guid>
      <description><![CDATA[<p>Эксперты о технических заданиях: какие ошибки допускают при составлении, каких подводных камней ждать и как сделать ТЗ понятным всем сторонам.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/experts/writing-good-technical-task">Разработка ТЗ: как составить качественное техническое задание — отвечают эксперты</a>»</p>]]></description>
      <category><![CDATA[Методологии разработки]]></category>
      <category><![CDATA[Советы]]></category>
      <category><![CDATA[Разработка]]></category>
      <category><![CDATA[Ответы экспертов]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 27 Aug 2020 14:02:41 GMT</pubDate>
      <content:encoded><![CDATA[<p>В разработке качественного ТЗ заинтересованы и заказчик, и исполнитель. Корректное техническое задание поможет избавить друг друга от лишней головной боли и точно определить, что и как должно быть сделано в проекте. Узнаём у экспертов, какие ошибки допускают при составлении техзадания и как сделать так, чтобы оно было понятно всем сторонам.</p><p>Как составить правильное ТЗ?</p><p>Мое направление в департаменте разработки ПО занимается проектами автоматизации процессов документооборота. Мы разрабатываем и внедряем ECM, СЭД (вендорские решения и систему КСЭД 3.0, собственную разработку, которая включена в реестр российского ПО), электронные архивы, помогаем интегрировать эти системы с ERP, сервисами ЭДО, МЭДО, ССТУ и пр. И входим в пятерку ведущих российских игроков на рынке систем документооборота.</p><p>Каждый месяц мы отсматриваем примерно три-четыре десятка ТЗ от разных организаций и сами их пишем, например, для проектов внутренней автомаизации компании или оказывая консалтинг по составлению технического задания в рамках проектов обследования бизнес-процессов заказчиков. При этом мы готовим проектные решения, схемы бизнес-процессов as is / to be, а также экспертные рекомендации по их оптимизации. И здесь важно иметь ввиду возможность последующей реализации таких рекомендаций. Некоторые заказчики или другие игроки рынка ИТ об этом периодически забывают. И, бывает, открываешь техническое задание и не знаешь, как это все сделать исходя из описанного в ТЗ.</p><p>В некоторых ТЗ — сотни страниц текста, и почти ничего по сути. Например, часто пункты в ТЗ просто противоречат друг другу. Например, в одном из разделов техзадания на разработку системы документооборотом был пункт, что система должна отвечать требованиям законодательства российского делопроизводства. А в другом разделе было написано, что эта же система должна отвечать требованиям текущего процесса делопроизводства в компании. Все бы ничего, только компания эта была международная, и процессы делопроизводства у нас сильно отличаются, а внутренние локальные регламенты с учетом российской специфики отсутствуют. И это только самая мелочь.</p><p>Иногда в руки попадают ТЗ на 2-3 страницы, и это может быть болью для потенциального исполнителя этого проекта, которому, например, нужно быстро принять решение о подаче заявки на тендер. Плюс при обсуждении такого ТЗ с заказчиком появляются крайне неудобные фразы типа: «Коллеги, мы же все описали в ТЗ, что вам непонятно?». При этом заказчик, который будет потом принимать работы по такому ТЗ, тоже будет в недоумении.</p><p>Поэтому этот документ должен быть понятен всем участникам процесса разработки. Правильное ТЗ на разработку автоматизированной системы – это практически-полезный документ, содержание которого понятно и ИТ-специалисту, и функциональному заказчику со стороны бизнеса, и владельцу этого бизнеса/топ-менеджеру, и, конечно, исполнителю проекта.</p><p>Нередко, уже взглянув на первые 3-4 страницы технического задания, можно определить, кто готовил — айтишник, будущий пользователь или бизнес-аналитик. И это плохо, потому что первые — нередко слишком углубляются в технические детали реализации проекта, вторые — концентрируются на деталях работы в системе, которой еще пока нет и не понятно, как она будет выглядеть по результатам опытной эксплуатации, а третьи — на том, как это повлияет на эффективность бизнеса. А еще сразу заметно, когда техническое задание написано наотмашь или когда весь результат проекта не столь важен.</p><p>Качественные технические задания получается только в результате командной работы, которая может быть выполнена как силами внутренних экспертов заказчика, так и вместе в внешними ИТ-командами. Внешние команды наиболее целесообразно подключать при реинжиниринге и оптимизации бизнес-процессов, когда требуются опытные специалисты узкого профиля. Также востребованы такие услуги, когда компания планирует построить звездолет невиданных размеров из невиданных материалов. Например, в нашей компании с этой задачей помогают системные и бизнес-аналитики, архитекторы, отраслевые и другие эксперты, которые имеют за плечами успешный опыт реализации подобных проектов.</p><p>Техническое задание (ТЗ) — это инструкция к применению для исполнителя и контракт для заказчика в одном лице. Перед началом работ обязательно погрузитесь в предметную область заказчика и, если есть возможность, проведите с ним интервью.</p><p>Во время разговора фиксируйте слова, которые чаще всего произносит заказчик, они помогут в дальнейшем при формулировке требований. Не бойтесь задавать вопросы, задача интервью — выяснить истинную проблему бизнеса и обозначить конкретные цели создания продукта.</p><p>Если вы располагаете информацией об исполнителе, то стоит на этапе анализа обсудить с ним возможные варианты реализации, выслушать его экспертное мнение.</p><p>Немаловажно выстроить регулярные коммуникации с заинтересованными лицами. Показывайте свои промежуточные успехи, обсуждайте возникающие сложности и предполагаемые риски. Систематическая обратная связь поможет обеим сторонам убедиться в том, что выбрано правильное направление и на выходе будет получен ожидаемый результат.</p><p>По итогам каждой встречи составляйте протокол принятых решений. Таким образом у вас на руках всегда будут аргументы для ответов на спорные вопросы.</p><p>При составлении ТЗ излагайте свои мысли от общего к частному, от проблемы к решению, от бизнес-требований к системным.</p><p>Не нужно начинать с акцента на технические детали, даже если вы считаете, что крайне важно обратить на них внимание. На старте читатель еще не в курсе проблематики и не сможет по достоинству оценить выбранное решение.</p><p>Каждое требование должно быть сформулировано четко. Избегайте вводных слов, метафор, лирических отступлений, личных размышлений по теме. Приводите наглядные примеры и иллюстрации.</p><p>Не забывайте про оформление: структурированный текст — 50% успеха.</p><p>Техническое задание должно конкретно описывать конечное ожидание заказчика и при этом не быть перегруженным. Из правильно составленного ТЗ исполнителю обычно ясны ценность продукта (для чего это нужно? что это даст заказчику?), а также для какой аудитории планируется реализация. Не менее важно определить сроки и, если это какая-то крупная задача, декомпозировать ее на этапы, тем самым сформировав предварительный план действий, оценить состав работ и риски.</p><p>Внутри команды разработки допускается менее формальное ТЗ — это дает программистам возможность реализовать свой творческий потенциал. Разработчику может быть доступен выбор собственных методов исполнения задачи, поиск необходимой технической информации и альтернативных вариантов.</p><p>Типичные ошибки и подводные камни при составлении ТЗ:</p><ul><li>Не указана ЦА. Когда необходимо рассказать о пользователях продукта или какой-то отдельной его функциональности, заказчик часто углубляется в описание рабочих процессов, но никакой информации о ЦА или о том, какие ее проблемы необходимо решить, так и не обозначает.</li><li>Нет конкретной цели. Из полученного ТЗ не всегда могут быть понятны приоритеты задач и назначение функций.</li><li>Не определены ответственные с каждой из сторон. Очень важно, чтобы заказчик и исполнитель одинаково прозрачно понимали конечное ожидание от продукта или его функциональности. Для этого необходимо иметь возможность обратиться друг к другу с уточняющими вопросами. Чтобы этот процесс был структурирован, с каждой из сторон должны быть определены ответственные сотрудники.</li></ul><p>Думаю, самая большая ошибка — это огромное подробное техническое задание.</p><p>Чем больше проект, тем дольше пишется ТЗ и тем чаще не учитываются взаимосвязи между блоками системы или не прописывается логика реализации.</p><p>Возьмем для примера интернет-магазин. В техзадании может быть прописано, что после оформления заказа пользователю придет подтверждение, но не сказано, по какому каналу — через смс, по почте или в виде пуш-уведомления. Или в ТЗ может быть указано, что на карточках выводится блок похожих товаров, но не описано, по какому признаку определяется, что они похожи.</p><p>И обычная история: к тому моменту, когда ТЗ написали, оно уже устарело. Многое меняется по ходу проекта, и в итоге ТЗ подписывается как есть, а исполнитель и заказчик разбираются с деталями в процессе.</p><p>Если же пытаться расписать все подробно, придется потратить огромное количество времени, но учесть все не получится.<br />Есть часть работ, которые обязательно подробно закрепить в ТЗ. Это все сложные и дорогие моменты, например, протоколы обмена данными, интеграции и тому подобное.</p><p>В целом лучше работать с небольшими итерациями: прописали работы, сделали, протестировали, сдали, выкатили на прод или взяли следующий пул работ. Эта схема лучше тем, что у заказчика быстрее появляется работающая версия продукта, а времени на согласование уходит меньше.</p><p>В ТЗ бизнес-логика пишется простыми словами, чтобы было понятно любому человеку, и согласовывается с менеджером на стороне заказчика. А техническая реализация пишется техническим языком, к ней прикладываются форматы обмена, и все это согласовывается с техническим специалистом на стороне заказчика. Так же как ТЗ пишется несколькими людьми ответственными за свою часть, так оно и согласовывается с несколькими людьми.</p><p>Многие думают, что ТЗ — это пережиток прошлого и атрибут излишней бюрократии в современном IT-мире с agile-подходом ко всему. Но по моему опыту, ТЗ по-прежнему неплохо работает как инструмент для повышения прозрачности на проекте и, кроме того, является неким страховым полисом для участников проекта. А страхует оно от неоправданных ожиданий Заказчика и неправильно трактуемых требований Исполнителем.</p><p>Правильное ТЗ должно быть прежде всего таким:</p><ul><li>Максимально подробным в отношении важных функций проекта.</li><li>Однозначно трактуемым.</li></ul><p>Нужно понимать, что все, что не описано в ТЗ, Исполнитель может сделать по-своему. Поэтому важно все критичные требования к проекту зафиксировать.</p><p>ТЗ можно менять в ходе проекта, это вполне нормальная практика. Прорабатывайте и фиксируйте все изменения независимо от того, влияют они на стоимость проекта или нет.</p><p>Не нужно слепо гнаться за стандартами оформления. Помните, основная задача ТЗ – зафиксировать содержание проекта и убедиться, что все участники проекта одинаково его понимают.</p><p>Вот основные пункты, которые точно должно содержать любое ТЗ:</p><ul><li>Цели и задачи, которые должны быть решены в проекте.</li><li>Сроки.</li><li>Рамки проекта (что должно быть сделано, а что не входит в проект).</li><li>Подробное описание состава проекта и требований к нему.</li><li>Требования к результату.</li><li>Порядок сдачи/приемки проекта.</li></ul><p>Ну и последнее, но немаловажное. Цель должна оправдывать средства, поэтому если проект небольшой (условно, сделать работу по нему будет быстрее, чем написать ТЗ), то скорее всего для такого проекта ТЗ будет избыточным. В таких кейсах можно использовать более лаконичные способы формулировки содержания проекта, например, Бриф или Устав.</p><p>Техническим заданием в целом называют подробное описание задачи по исполнению работы или услуги. Это определенный текстовый документ, имеющий свою структуру, где излагается, что конкретно хочет заказчик от исполнителя. Техзадание может быть приложением к договору подряда, услуг, а может быть самостоятельным документом, которым руководствуется исполнитель, если договорные отношения стороны не оформляют письменно.</p><p>Основная задача ТЗ – донести до разработчика идею заказчика. При этом важно, чтобы:</p><ul><li>при выполнении работ не оставалось сомнений, что же именно хочет получить заказчик;</li><li>возникающие в ходе работы вопросы сводились к минимуму (в идеале, чтобы вопросов и не возникало, а все было понятно из задания);</li><li>исполнитель четко понимал, какой результат работы удовлетворит заказчика.</li></ul><p>Грамотно составленное техническое задание важно и нужно обеим сторонам. Для заказчика – это гарантия правильно переданной идеи, поставленных дедлайнов и того, что все нюансы им учтены. Для исполнителя — четкое понимание цели и результата, а также промежуточных шагов, если они важны в процессе работы. Для обеих сторон правильное ТЗ сводит к минимуму процесс переговоров, общения, выяснения непонятных моментов, что в итоге экономит время (исполнитель не тратит его на уточнения, а сразу приступает к работе), нервы (чем грамотнее составлено задание, тем больше шансов, что ожидания заказчика оправдаются) и способствует комфортному, результативному взаимодействию обеих сторон.</p><p>Потратить время и силы на составление качественного ТЗ стоит. Для начала заказчику важно понять и структурировать для себя, что в результате он хочет получить. Это первый шаг к успеху в передачи информации другому. Для структурирования можно воспользоваться вопросом «какую проблему я хочу решить?». Это поможет сформулировать результат. Затем неплохо представить, если бы вы выполняли эту задачу сами, с какими трудностями столкнулись бы в процессе? Тогда снова задаем вопрос «как эти проблемы можно решить?» и формулируем примерные ответы. Это будет раздел алгоритмов выполнения задачи. Таким образом, оптимально, чтобы техническое задание было разбито на разделы. Например, такие: введение и цели разработки (работы), этапы выполнения, требования, которым должен отвечать результат работы, порядок приемки (тестирования, контроля). Для более сложных технических разработок, конечно, ТЗ по разделам будет объемнее.</p><p>Несколько советов для заказчика:</p><ul><li>Помните, если речь идет о творческой работе, ваши представления о чем-либо всегда отличаются от представлений другого человека. Поэтому формулируйте все фразы четко, без эмоций, с единственно возможной трактовкой.</li><li>Если есть примеры работ, которые вам нравятся, передайте их исполнителю, так будет больше шансов на понимание. Визуально для творческих людей воспринять проще, чем текстом.</li><li>Даже по идеально составленному ТЗ могут возникнуть вопросы. Не игнорируйте исполнителя. Некоторые гениальные и продающие идеи рождаются даже не в процессе механической работы, а в ходе обсуждения. Не лишайте себя шанса получить от исполнителя даже больше, чем вы описали в ТЗ.</li><li>Для некоторых работ (IT-разработки, исследовательские изыскания) необходима документация. Без ее изучения не получится нужный результат. Не забудьте предоставить ее исполнителю или будьте готовы по его просьбе выдать нужные документы. Не всегда можно обойтись одним техническим заданием.</li></ul><p>Умение писать задания – навык, который тренируется, как и многие другие. Однако вложенные в отработку этого умение время и силы сполна окупаются.</p><p>Прежде всего надо определиться с отношением к техническому заданию как таковому. Либо это «священная корова», документ, в рамках которого действует исполнитель и сверяется результат его работы, либо это общее видение проекта, задающее его рамки.</p><p>В первом случае ТЗ — больше юридический документ, который должен быть подписан, прикреплен к договору, и при любых спорах именно он будет иметь приоритетное значение. Причем любые изменения в ТЗ должны быть также зафиксированы документально с подписью и печатью — иначе вы ни о чем не договаривались и не важно, сколько времени потратили на работу.</p><p>Этот формальный подход вынуждает разработчика быть очень внимательным к ТЗ при чтении и оценке проекта, а заказчика — подключать технического специалиста, консультанта или аналитика для написания этого документа. Важно то, что человек от бизнеса, сисадмин, менеджер или интернет-маркетолог не напишет ТЗ на разработку сайта в таком формализованном виде, потому что оно должно содержать технические детали реализации.</p><p>Речь не идет о конкретных архитектурных решениях — как именно мы будем хранить данные. В ТЗ должны быть отражены вопросы такого плана: удаление или архивирование сущностей (пользователей, данных), логирование, статистика, администрирование контента и фильтры, сортировки по этому контенту в административном разделе. Использование коробочных систем, например 1С-Битрикс, много таких вопросов снимает. Но при кастомной разработке ничто не может «подразумеваться по умолчанию». Для разработчика не существует того, что не описано в ТЗ и договоре. Хорошо, если при вышеупомянутой оценке разработчик обратил внимание на отсутствие ряда функциональностей и в смету включил. Но на этапе тендера такие правильные детали могут сделать коммерческое предложение неконкурентным, а представитель заказчика, проводящий тендер, не всегда готов улавливать такие тонкости – у него иные критерии на этапе выбора подрядчика: цена, опыт в схожих проектах и тематике. А внимательность и техническая компетенция при оценке проекта будут далеко не первым критерием при оценке.</p><p>Получается палка о двух концах. Либо мы профессионалы и еще на этапе оценки помогаем заказчику с ТЗ, либо мы выбираем другой подход – с рамками и рисками.</p><p>В этом случае нам ТЗ важно для определения ожиданий со стороны бизнеса. Мы доносим до заказчика, что его ТЗ не техническое, а функциональное. Важно то, что оно определяет и что нужно получить на выходе, а не как это должно быть сделано. Как проект будет сделан, определится и на этапе проектирования и дизайна (которого в этот момент нет), и на этапе архитектурного проектирования и консультирования в начале разработки. А сейчас, на старте проекта, мы оцениваем функциональность в привязке к выбранной технологической платформе и в зависимости от сложности проекта закладываем вот такой люфт бюджета на риски. Этот задел позволит нам гибко реагировать на пожелания заказчика и отвязаться от ТЗ как от той самой «священной коровы».</p><p>Есть и третий вариант: когда ТЗ пишет исполнитель уже после подписания договора, в рамках обозначенной работы за фиксированную сумму, а после написания уже делает смету на проект. С этим ТЗ заказчик может уйти и в другую компанию. Но на практике крайне редко на такое соглашается заказчик – риск смены подрядчика никому не нравится и создается ощущение, что написание ТЗ слишком отложит старт проекта, на который уже есть четкие требования по срокам, обусловленные бизнесом либо финансовой отчетностью за выделенный на проект бюджет.</p><p>Примеры ошибок в ТЗ из нашей практики:</p><ol><li>Не учтено логирование при большом количестве контент-менеджеров: невозможно найти, кто внес то или иное изменение. Здесь же обратный случай: не продуманы группы пользователей и их права, со стороны клиента все ходят в админку под одним логином администратора (и люди, отвечающие за добавление новостей, и seo-специалисты, и бухгалтеры).</li><li>Не продумано удаление и архивирование элементов и разделов: если на элементы завязана какая-то статистика или заказы и это где-то демонстрируется, надо продумать, оставляем ли мы архив и как мы решаем, что показывается. Это важно и для поискового индекса.</li><li>Не описан механизм нетиповой интеграции с 1С (endpoint, принципы, пр.) – согласование и выстраивание этой интеграции потребует плотных коммуникаций разработчиков и 1с-специалистов, времени и плотного контроля заказчика.</li><li>Нет выгрузки товарного каталога и описания хранимых данных в 1С по товарам – все они в итоге отдают одно свойство «характеристики», а в ТЗ предусмотрена фильтрация.</li><li>Не описана созависимость фильтров.</li><li>Упущены сортировки как таковые.</li><li>Административный раздел не описан полностью.</li><li>В административном разделе не описаны фильтры по заказам по дате, номеру, телефону, вообще какие-либо фильтры, которые будут необходимы администратору.</li><li>Управление мета-тегами забывают всегда: про то, откуда у страницы берется title – нигде не зафиксировано. Здесь же можно отметить весь пул SEO чек-листа (ЧПУ, 404, хлебные крошки, robots, коды счетчиков, редиректы и т.п.).</li><li>Не прописаны обязательные по законодательству ссылки в футере (например, СОУТ или «Политика конфиденциальности»).</li><li>Не описаны почтовые уведомления, которые вообще должны быть (о заказе, регистрации, отправленной форме и т.д.).</li><li>Не описано управление промо-баннерами. Описано все, но про сквозные картинки в дизайне и про слайдер – забыли.</li><li>Не продумана и, соответственно, не описана работа с заказами, оплатой и доставкой. Какие будут возможности оплатить заказ? Будет ли работа с юридическими лицами, можно ли им дать возможность сразу выставлять счет или работаем только через менеджера? Какие службы доставки используются, какие данные по заказу и товару нужны для расчета стоимости и сроков доставки? Какие статусы заказов, на каких этапах происходит оповещение пользователя о смене статуса и по каким каналам?</li><li>Клиент при написании ТЗ не продумал структуру контента, не определил разделы и подразделы. Необходимость вложенного меню с подуровнями может выясниться уже после завершения программирования при внесении контента.</li></ol><p>Пишите и читайте ТЗ внимательно. Помните: любые неоплачиваемые доработки проекта вне ТЗ и договора съедают вашу маржинальность.</p><h3>Разбалансированность ТЗ (превалирование «как » над «что»)</h3><p>Часто бывает, что большую часть ТЗ занимают требования, как должен работать требуемый функционал ПО (процессы работы). А требования к самим результатам работы ПО даны в малом и часто недостаточном количестве. Обычно это связанно с тем, что ТЗ написано специалистами, которые уверены, что если очень детально описать процессы, то этот «путь» неминуемо приведет исполнителя к разработке требуемого ПО. Это ошибка. В реальности, исполнитель потратит дополнительное время на уточнение требований к целевому функционалу, а часть требований к процессам/методам/способам будут оспорены и в итоге признаны опциональными и вторичными.</p><p>В первую очередь, в ТЗ должны быть требования к результату работы («что»).</p><h3>В ТЗ нет нефункциональных требований или они неполные</h3><p>Многие ТЗ содержат требования только к функционалу ПО. Его разработчики забывают, что у работы любого ПО есть и нефункциональная сторона — производительность, надежность, безопасность, и т.п. Также в нефункциональных требованиях должен быть прописан пункт по документированию проекта, то есть описан состав пакета сопровождающих документов (руководства для пользователей и администраторов, инструкции и т.п.).</p><p>Полноценные нефункциональные требования должны быть неотъемлемой частью ТЗ.</p><h3>Противоречивые требования</h3><p>Бывает, что заказчик, часто сам того не осознавая, не знает точно, что хочет получить в результате. Из-за этого в ТЗ появляются требования в многословных общих расплывчатых формулировках. Более того, потом такие требования начинают ссылаться друг на друга, тем самым все окончательно запутывая. В итоге заказчик с исполнителем потратят значительное время на уточнение всех неконкретных и неточных формулировок.</p><p>ТЗ должно содержать конкретные и точные требования. Многословности без конкретики следует избегать.</p><p>Перед началом работ по проекту следует выделить отдельное время на проработку ТЗ: количество часов аналитика и руководителя проекта, которое планируется потратить на работу с заказчиком и сбор требований. Лучше выяснить максимальное количество нюансов перед составлением ТЗ и, тем более, стартом проекта, чем что-то менять по ходу его реализации.</p><p>Начать работу над ТЗ можно со знакомства с командой заказчика, чтобы понять, кто за что будет отвечать. Затем рекомендую запланировать с ней интервью, чтобы собрать необходимую информацию: цели проекта, план работ, что хотим получить в итоге, требования к функциональной части будущего решения. Важный момент – фиксация ответов и отправка summary обсуждения собеседнику с вопросом: можете ли вы подтвердить или скорректировать оговоренные в беседе пункты? Только после финального подтверждения от заказчика рекомендую запускать собранную информацию в работу.</p><p>Формат ТЗ тоже лучше обсудить заранее. Очень важно, чтобы содержимое этого документа было понятно. Лучше не усложнять его специально, иначе придется потратить дополнительное время на разбор ТЗ. Например, оформленные по ГОСТу документы сложнее для восприятия, чем спецификации, написанные простым техническим языком.</p><h3>Как разработать хорошее ТЗ?</h3><p>Вот что советуют эксперты:Тщательно обговорите проект с заказчиком, чтобы понять, что именно он хочет, и уточнить какие-то детали.Укажите в ТЗ сроки, цели и задачи, которые должны быть решены в проекте, их приоритет.Избегайте противоречивых требований.Требования должны быть чёткими и трактоваться однозначно.ТЗ должно быть понятно всем участникам процесса, а не только пользователям или разработчикам.Показывайте свои промежуточные успехи и корректируйте ТЗ при необходимости.</p><p>Напоминаем, что вы можете <a href="https://docs.google.com/forms/d/e/1FAIpQLSdSanNvlfPRrSyQWfnoGPflSVwO4KctnjOdEKHzuxjCmFX2dA/viewform">задать свой вопрос</a> экспертам, а мы соберём на него ответы, если он окажется интересным. Вопросы, которые уже задавались, можно найти в списке выпусков <a href="https://tproger.ru/experts/">рубрики</a>. Если вы хотите присоединиться к числу экспертов и прислать ответ от вашей компании или лично от вас, то пишите на <a>experts@tproger.ru</a>, мы расскажем, как это сделать</p>]]></content:encoded>
    </item>
    <item>
      <title>Какой самый сложный алгоритм вы использовали в своей работе — рассказывают эксперты</title>
      <link>https://tproger.ru/experts/the-most-complex-algorithm</link>
      <comments>https://tproger.ru/experts/the-most-complex-algorithm?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Никита Прияцелюк]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/experts/the-most-complex-algorithm</guid>
      <description><![CDATA[<p>Эксперты вспоминают нетривиальные алгоритмы из практики — например, удаление лишних зависимостей в многомерном массиве при автоматизации.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/experts/the-most-complex-algorithm">Какой самый сложный алгоритм вы использовали в своей работе — рассказывают эксперты</a>»</p>]]></description>
      <category><![CDATA[Алгоритмы и структуры данных]]></category>
      <category><![CDATA[Ответы экспертов]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 18 Aug 2020 10:41:05 GMT</pubDate>
      <content:encoded><![CDATA[<p>Наверняка каждому программисту помимо привычных задач приходилось столкнуться с настолько сложным алгоритмом, что он надолго отпечатался в памяти. Спросили у экспертов о таких алгоритмах в их работе.</p><p>Какой самый сложный алгоритм вы использовали в своей работе?</p><p>Возможно, не самый сложный, но, определенно, один из самых запоминающихся и нетривиальных алгоритмов был связан с задачей по удалению лишних зависимостей в многомерном массиве в рамках внедрения инструмента автоматизации разработки.</p><p>На одном проекте по разработке процессов ETL был реализован специальный фреймворк, обеспечивающий автоматизацию процесса разработки, по сути, Data Continuous Integration.</p><p>Этот фреймворк, помимо всего прочего, позволял автоматизировать генерацию последовательностей вызовов в рамках комплексных процессов ETL, где было важно сохранить зависимость между отдельными шагами процессов.</p><p>В результате фреймворк формировал многомерный массив, в котором, условно, каждый элемент – это номер некоторой задачи. Каждая задача имеет определенный вес, по сути являющийся производной величиной от порядкового номера задачи в очереди на выполнение. Каждая задача может содержать массив связанных с ней подзадач, от которых она зависит. Задачи могли выполняться параллельно и иметь общие зависимости. На выходе мы должны получить многомерный массив, в котором удалены «лишние» промежуточные зависимости. Элементы и связи между ними выводились в виде схемы.</p><p>Честно говоря, массив был огромен, а в сети зависимостей можно было запутаться, но у нас был план. Для построения алгоритма был выбран принцип транзитивности. Что это означает? Простыми словами: если Задача A зависит от Задачи B, а Задача B зависит от Задачи C, то и Задача A зависит от Задачи C. Или, если представить в виде соотношений, то мы имели на входе следующее:</p><p>A → B → C<br />A → D → C<br />B → D</p><p>Соответственно, на выходе мы должны были получить следующее:</p><p>A → B → D → C</p><p>Где символ → можно воспринимать как «влечет»</p><p>Сложно, но реализуемо. Из подручных средств были PHP, используемый в консольном режиме, на котором было реализовано ядро фреймворка, море энтузиазма и куча идей реализации, начиная от рекурсии и заканчивая array_intersect_key. В результате выбор был остановлен на рекурсии, как наименее трудозатратной с точки зрения реализации. Основная идея – отсортировать задачи по весу, номеру, а дальше рекурсивно брать элементы зависимостей и пробегая поочередно по оставшимся элементам основного массива, брать их зависимости и сравнивать номера с искомым значением.</p><p>Другой возможный вариант решения заключался в построении и отпимизации графов, но под рукой был только «голый» PHP и жесткий дедлайн. Но кроме нетривиальной задачи и неоценимого опыта, главное, что я вынесла — всегда можно найти хорошее, работающее решение, несмотря на ограничения в выборе инструментов и по времени.</p><p>На заре карьеры мне поручили разработать алгоритм автоматического составления графика работы машинистов метрополитена.</p><p>Суть задачи – составить график работы поездных бригад с учетом обязательного перерыва на отдых. Если смена длилась больше 4 часов, то машинистам полагался 30-минутный обед в интервале от 2,5 часов до 4 часов с момента выхода на линию. Если же смена превышала 7 часов, то машинистов ожидал дополнительный 15-минутный отдых в интервале от 6 до 7 часов работы.</p><p>Во все предыдущие попытки разработать соответствующий алгоритм получалось распределить только половину рабочего времени. Оставшиеся «хвосты» нужно было обрабатывать вручную, поскольку алгоритм «давал» лишние бригады либо делал «неправильную» смену, по которой невозможно было работать.</p><p>Казалось бы, задача была простой: через 30 минут с начала обеда машиниста нужно было вернуть на линию. Однако вскрылась особенность работы метро: машиниста можно было вернуть только в тот же поезд, с которого он начал смену. И вот тут появилась проблема.</p><p>Из-за графика движения поездов продолжительность обеденного перерыва «плавала» от 25 до 33 минут в зависимости от времени и дня недели (час пик, будни, выходной), а также от отдельных линий метро. Помимо этого, обедать машинисты могли только на определенных станциях линии. При этом количество одновременно обедающих бригад также было ограничено, так как, пока основная бригада была на перерыве, составом управляла так называемая подменная бригада. А их было немного.</p><p>Технически все реализовывалось с помощью T-SQL в рамках хранимых процедур и функций в MS SQL Server. Нужно было взять данные расписания поездов из соответствующей таблицы, посчитать количество маршрутов, и, исходя из длины маршрута и смен, произвести расчет числа необходимых бригад.</p><p>Первая итерация алгоритма насчитывала 300 строк кода, с множеством вложенных подзапросов для определения «границ» выборки. По результатам работы первой итерации выяснилось, что по такому расписанию работать невозможно, поскольку в бригадах – люди, а не роботы.</p><p>Дальнейшая оптимизация привела к увеличению количества строк кода до 900. Появилась тройная вложенность запросов, вложенные циклы, двойные курсоры, временные таблицы и самописные SQL-функции.</p><p>В результате получилось оптимизировать автоматическое составление графика работы на 80%. Оставшиеся 20% составляли «хвосты» смен, которые не позволяли создать полноценную смену для бригады, и их надо было распределять вручную.</p><p>Ближе к концу данной работы мне дополнительно поручили задачу автоматического составления графика работ маневровых бригад (это те бригады, которые садятся на конечной или предпоследней станции метро, заводят состав в тупик и выгоняют его обратно). Проблема этих бригад, помимо обеденного перерыва, была еще в продолжительности их работы: всего 2-3 минуты. Из-за этого появлялись накладки в считанные секунды, которые при неправильной настройке выдавали лишнюю 3-5-минутную смену в утренний или вечерний час пик.</p><p>Итогом работы стал «монструозный» SQL-скрипт, который был разбит на основную процедуру из 1200 строк кода и в котором многократно вызывались три дополнительные самописные функции по 50-150 строк кода, а также скрипт маневровых бригад на 700 строк.</p><p>После окончания разработки выяснилось, что данный скрипт не вписывается в текущие процессы работы депо. В итоге наработки по данному скрипту легли в основу другого ПО, которое позволяло составлять смены в автоматизированном режиме, а не в автоматическом. В дальнейшем основной алгоритм был переделан в алгоритм автоматизированного составления смен для помощников машиниста, который стал моим дипломным проектом.</p><p>ПО для автоматизированного составления графика работы позволило сократить количество часов, требуемых на создание нового графика, с 20-30 до 5-6, поскольку ранее данную работу делали вручную с помощью карандаша и ластика на листах формата А1. ПО было полностью внедрено в трех депо и начало внедряться еще в трех. В 2011 году произошла смена директора метрополитена, и проект закрыли.</p><p>На мой взгляд, довольно непростыми являются алгоритмы на графы: например, обходы дерева или нахождение оптимального пути. Начинающему разработчику я бы посоветовал как можно реже писать сложные алгоритмы, потому что они зачастую не нужны. Понять, какой алгоритм нужен в каждом конкретном случае, поможет хорошее знание языка программирования, на котором вы пишите. Иначе можно столкнуться с тем, что алгоритм, который кажется очень хорошим, работает в разы медленнее самого простого.</p><p>Например, у нас есть сервис, который отправляет уведомления о подходящих грузах согласно фильтрам, которые установил пользователь. Изначально там использовался сложный алгоритм с изменением типов (время, дробные числа и т.д.) для более быстрой операции сравнения, построением дерева и еще несколькими приемами. Оказалось, что на сопутствующие расходы тратилось много ресурсов и больше половины времени, отведенного на подбор списка фильтров, подходящих к грузу. Мы заменили сложный алгоритм обычным перебором, и в результате сервис стал работать в разы быстрее.</p><p>В рамках работы в компании самые сложные задачи, которые приходилось мне решать, и часто не в одиночку, были связаны с логистикой. Один из них запомнился мне больше всего.</p><p>Это был проект для крупной компании-экспедитора, который осуществляет перевозку грузов различными видами транспорта между РФ и 150 странами мира. Главная задача экспедиционной компании − составить маршрут доставки, который удовлетворит клиента по времени и цене. Для этого используют мультимодальную перевозку. В процессе применяют два или более типов транспорта: автомобильный, железнодорожный, морской или авиационный. Обычно коммуникация идет по телефону или почте.</p><p>Нам было необходимо перевести эту работу в онлайн – придумать и реализовать поиск кратчайшего пути из точки А в точку Б для проекта грузовых перевозок. Алгоритмов для поиска кратчайшего пути много, но в нашем случае они практически не помогли. Пользователю надо было предоставить возможность искать за считанные минуты лучшие тарифы с наименьшим временем для перевозки его груза.</p><p>Все это усложнялось большим количеством международных компаний-перевозчиков, разнообразием тарифов у каждого из них и дополнительных наценок по каждому из направлений. Поиск был параметризован, что еще больше усложнило проблему. Поиск кратчайшего пути, где каждая точка имеет некий вес, это первое, что пришло нам в голову. Однако представьте, что в каждой точке есть еще набор динамических условий, чтобы их проверить необходимо выгрузить чуть ли не всю информацию из БД.</p><p>Мне пришла идея − для каждого тарифа можно выставлять оценку по нескольким критериям. Эти оценки пересчитывались при изменениях тарифов или каких-то глобальных условий, например, изменение НДС или наценок. Такой подход к оценке избавил от дополнительных просчетов во время каждого запроса. У любого тарифа было с десяток различных оценок, по которым можно было, например, сортировать или высчитывать итоговый вес. В конечном итоге нам пришлось еще очень долго работать над этой задачей по ряду других более приземленных причин. Тарифы от разных перевозчиков сводились к примитивным описаниям и сильно отличались друг от друга по структуре, их было просто невозможно формализовать. Для того, чтобы доставить товар из А в Б, надо еще заехать в С на другом конце света, т.к. там налоги меньше и лучше условия. В общем, это была очень нетривиальная задача для всей команды. Мы серьезно погрузились в бизнес-тематику заказчика, но и результат был отличный – мы создали платформу для первого в России цифрового экспедитора Agorafreight.com.</p><p>А вам приходилось реализовывать что-нибудь настолько сложное, что запомнилось вам надолго? Делитесь в комментариях.</p><p>Напоминаем, что вы можете <a href="https://docs.google.com/forms/d/e/1FAIpQLSdSanNvlfPRrSyQWfnoGPflSVwO4KctnjOdEKHzuxjCmFX2dA/viewform">задать свой вопрос</a> экспертам, а мы соберём на него ответы, если он окажется интересным. Вопросы, которые уже задавались, можно найти в списке выпусков <a href="https://tproger.ru/experts/">рубрики</a>. Если вы хотите присоединиться к числу экспертов и прислать ответ от вашей компании или лично от вас, то пишите на <a>experts@tproger.ru</a>, мы расскажем, как это сделать.</p>]]></content:encoded>
    </item>
    <item>
      <title>Как выделить время на самообучение, работая полный день — советуют эксперты</title>
      <link>https://tproger.ru/experts/self-education-with-fulltime-job</link>
      <comments>https://tproger.ru/experts/self-education-with-fulltime-job?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Никита Прияцелюк]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/experts/self-education-with-fulltime-job</guid>
      <description><![CDATA[<p>Советы экспертов о том, как программисту находить время на учёбу при полной занятости и не отставать от современных технологий и новых разработок.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/experts/self-education-with-fulltime-job">Как выделить время на самообучение, работая полный день — советуют эксперты</a>»</p>]]></description>
      <category><![CDATA[Советы]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[Обучение программированию]]></category>
      <category><![CDATA[Ответы экспертов]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 28 Jul 2020 12:36:45 GMT</pubDate>
      <content:encoded><![CDATA[<p>Программист всегда должен быть в курсе современных технологий и постоянно самообучаться. Но как и когда это делать, если после рабочего дня уже нет сил на учёбу? Спросили у экспертов, как выделить время на самообучение.</p><p>Технологии развиваются так быстро, что пока читается эта статья, может появиться несколько новых разработок. А это означает, что каждый программист должен постоянно повышать свою квалификацию. Вот несколько советов, как выкроить время на апскиллинг.</p><p>Пропишите предполагаемый результат обучения. Подумайте, какие результаты принесет обучение. Действительно ли оно важно в настоящей момент, или его можно отложить? Для чего нужны новые скиллы прямо сейчас? Какое прикладное значение они могут иметь?</p><p>Подойдите к обучению, как к проекту. Зафиксируйте цели, декомпозируйте  на небольшие задачи, отслеживайте прогресс. Если человек не понимает, зачем ему то или иное долговременное действие, он вряд ли доведет его до конца — все будет мешать. А если и доведет, то может не получить всей потенциальной пользы.</p><p>Начните жить по расписанию. Фрилансеры часто не планируют свой день и считают это свободой. На самом деле, если нет жёстких границ между работой и «остальной» жизнью, это быстро приведет к выгоранию. Ни о каком самообучении в такой ситуации и речи быть не может.</p><p>Нужно использовать планировщик и четко выделить график для рабочих задач. В оставшемся времени наверняка найдётся час-другой для изучения нового материала и отработки практических заданий. Может быть, стоит пожертвовать парой перекуров.</p><p>Отключите уведомления. Не обязательно отвечать на входящие сообщения сразу. Установите время для проверки e-mail, Telegram, Facebook и других каналов связи — например, дважды в день. Когда человек находится в режиме предельной концентрации, уведомления могут отвлечь его по совершенно необязательным поводам, и чтобы вернуться в фокус, потребуется не меньше получаса. Все это можно считать зря потраченным временем, которое можно было бы сэкономить для учебы.</p><p>Превратите учебу в игру. Поддерживать стимул помогает геймификация. Многие исследования, например, от <a href="https://anadea.info/blog/how-gamification-in-the-workplace-impacts-employee-productivity">Anadea</a>, говорят о том, что игровая мотивация удваивает уровень вовлеченности в учебу. Есть целый ряд приложений вроде SuperBetter, которые позволяют ставить цели и получать «ачивки» за их  достижение. А <a href="https://play.google.com/store/apps/details?id=com.wlxd.pomochallenge&amp;hl=en_US">Challenge Timer</a> использует «метод помидора»: большие задачи разбиваются на более мелкие, и выполнение каждой из них нельзя прервать или поставить на паузу — иначе не перейти на следующий уровень и не получить бонус. С помощью таких нехитрых лайфхаков можно снизить отвлекающие факторы до минимума.</p><p>Полноценно отдыхайте. Многие любят писать код по ночам, утверждая, что это лучшее время для творчества. Возможно, прозвучит банально, но сбой естественного режима плохо сказывается на продуктивности. Просто попробуйте пожить в нормальном биологическом ритме. Возможно, вы будете справляться с основным объемом задач гораздо быстрее, чем раньше, и время на учебу появится «само собой».  Перед сном лучше устраивать час экранной тишины — это правило работает не только для детей, но и для взрослых. Даже тех, кто считает гаджет продолжением руки.</p><p>Обучение для программиста крайне важно. Оно должно происходить на постоянной основе и коррелироваться со специализацией. Полученные знания должны постоянно применяться в повседневной жизни. В ином случае это пустая трата времени.Из-за COVID-19 наша жизнь немного изменилась, и многие IT компании отправили сотрудников на удаленную работу. В этом, конечно, есть свои плюсы и минусы. К минусам можно отнести нестабильный график и накопление усталости: проводя время на работе, ты, сам того не желая, параллельно выполняешь домашние функции. Время на дополнительную учебу катастрофически не хватает. Но при большом желании можно обнаружить ряд возможностей для организации самообучения. Для этого необходимо:</p><ul><li>Выровнять график и завершать работу ровно через 8-9 часов после ее начала. Можно даже гордо хлопнуть крышкой ноутбука. В течение дня нужно выделить ровно 1 час на самообучение. Выбирайте именно ту часть дня, которая является для вас самой продуктивной: утро, день, вечер, ночь.</li><li>Выровнять график и завершать работу ровно через 8-9 часов после ее начала. Можно даже гордо хлопнуть крышкой ноутбука. В течение дня нужно выделить ровно 1 час на самообучение. Выбирайте именно ту часть дня, которая является для вас самой продуктивной: утро, день, вечер, ночь.</li></ul><ul><li>Составить подробный план обучения: какие курсы, книги вы должны прочитать, сколько страниц или разделов вы должны изучать каждый день, какой итоговый результат вы должны получить. Как пример, поставить себе цель не просто прочитать какой-либо материал, а написать программу на новом языке, которая обладает определенным функционалом.</li><li>Составить подробный план обучения: какие курсы, книги вы должны прочитать, сколько страниц или разделов вы должны изучать каждый день, какой итоговый результат вы должны получить. Как пример, поставить себе цель не просто прочитать какой-либо материал, а написать программу на новом языке, которая обладает определенным функционалом.</li></ul><ul><li>Заинтересовать работодателя в вашем обучении и склонить его к оплате дополнительных курсов, либо, на худой конец, к выделению части рабочего времени на самообучение. Хороший работодатель всегда заинтересован в подготовленных и обученных кадрах. Именно поэтому важно, чтобы новая тема была тесно связана с вашими прямыми рабочими обязанностями.</li></ul><p>Главное здесь – грамотный тайм-менеджмент: если вы не будете задерживаться на работе, то не будете уставать, а, соответственно, у вас будут силы и желание на саморазвитие. Эти советы помогли мне, в частности, изучить bash scripting для MAC Packaging несмотря на очень загруженный текущий график.</p><p>Обучение и развитие – неотъемлемая составляющая современного мыслящего человека, и не только разработчика. Идеально, когда обучение происходит регулярно: через тренинги, книги, лекции и статьи в Интернете.</p><p>Я рекомендую выделять 10-15 минут в день на собственное развитие, но делать это ежедневно. Не стоит разделять рабочую деятельность и обучение: книгу можно почитать в метро, лекцию послушать во время обеденного перерыва или кофе-брейка. Таким образом вы не отнимете времени у близких и хобби, переключитесь, отдохнете, а еще и полезную информацию получите.</p><p>Когда у меня сломалась машина, я сначала очень расстроилась, так как очень отвыкла от общественного транспорта. А потом, когда я за месяц прочитала шесть книг, а будучи за рулем успевала прочитать в лучшем случае одну в месяц, – поняла, что передвижение метро может быть плюсом. Тем более, там еще и wi-fi есть. Сейчас в течение года я изучаю французский с помощью приложения без преподавателя. Периодически там всплывают мотивирующие фразы, одна из которых мне очень нравится: «Занимаясь 15 минут в день можно выучить язык. А какую пользу принесут 15 минут в соц.сетях?».</p><p>Самое главное в любом развитии – это ответить себе на вопрос «зачем?». Когда человек четко осознает цель, точку, к которой он хочет прийти, он гораздо охотнее выполняет действия, релевантные пути к своей мечте.Еще рекомендую при обучении помнить о принципе 70-20-10: 10% навыка состоит из информации, 20% из обратной связи и корректировки, а 70% – это опыт. Так что не забывайте применять прочитанное и услышанное на практике – а на это уже не нужно дополнительное время, все можно делать в рабочем режиме.</p><p>Ну и напоследок – важно, что называется, не загоняться. Ну, пропустили книжку сегодня, потому что аврал на работе – не страшно. Отдыхать тоже нужно – и от любимой работы, и от интересной учебы, даже от книг. Главное, чтобы чаще были все-таки занятия, а не дни релаксации.</p><p>Недостаточно читать книги без непосредственного применения прочитанного — неиспользуемые знания быстро утрачиваются. Важно интегрировать самообразование в работу и свою ежедневную рутину. Это можно сделать следующим образом:</p><ul><li>Иногда задача требует больших компетенций и опыта, чем есть у сотрудника, и с первого взгляда не совсем понятно, как именно ее лучше решить. Если ее можно оставить на следующий день, то вечер рекомендую посвятить более обширному изучению вопроса, чем просто поиск ответа на StackOverflow. Встречая незнакомые понятия и кейсы, проявляйте любопытство и не просто находите готовый ответ, а узнавайте чуть больше. Цепочка такого «ситуативного» изучения незнакомых явлений может оказаться достаточно длинной.</li><li>Иногда задача требует больших компетенций и опыта, чем есть у сотрудника, и с первого взгляда не совсем понятно, как именно ее лучше решить. Если ее можно оставить на следующий день, то вечер рекомендую посвятить более обширному изучению вопроса, чем просто поиск ответа на StackOverflow. Встречая незнакомые понятия и кейсы, проявляйте любопытство и не просто находите готовый ответ, а узнавайте чуть больше. Цепочка такого «ситуативного» изучения незнакомых явлений может оказаться достаточно длинной.</li></ul><ul><li>Пытайтесь решать не слишком срочные задачи на языке программирования, отличном от вашего основного, или с использованием нового для вас фреймворка. К примеру, напишите скрипт или микросервис для внутреннего использования. Пробуйте выбирать инструмент под задачу, а не решать все задачи одним способом — это удобно и позволяет не только получить новые знания, но и отточить их на практике.</li><li>Пытайтесь решать не слишком срочные задачи на языке программирования, отличном от вашего основного, или с использованием нового для вас фреймворка. К примеру, напишите скрипт или микросервис для внутреннего использования. Пробуйте выбирать инструмент под задачу, а не решать все задачи одним способом — это удобно и позволяет не только получить новые знания, но и отточить их на практике.</li></ul><ul><li>Заручитесь поддержкой коллег и сделайте самообразование командной практикой. Можно вместе написать проект, не связанный с работой. Или ввести полчаса самообразования, когда все читают разную профессиональную литературу, а потом обмениваются знаниями. Тестируйте разные форматы — возможно, в вашем коллективе будут эффективны семинары, на которых каждый человек из команды по очереди делится с другими тем, что сам недавно узнал.</li><li>Заручитесь поддержкой коллег и сделайте самообразование командной практикой. Можно вместе написать проект, не связанный с работой. Или ввести полчаса самообразования, когда все читают разную профессиональную литературу, а потом обмениваются знаниями. Тестируйте разные форматы — возможно, в вашем коллективе будут эффективны семинары, на которых каждый человек из команды по очереди делится с другими тем, что сам недавно узнал.</li></ul><ul><li>Во время поездок в общественном транспорте старайтесь читать профессиональную литературу или смотреть лекции. В личном авто можно включить подкаст для разработчиков, их сейчас довольно много. Люди проводят в дороге до четырех часов в день, и порой это лучшее, если не единственное, время для самообразования.</li><li>Во время поездок в общественном транспорте старайтесь читать профессиональную литературу или смотреть лекции. В личном авто можно включить подкаст для разработчиков, их сейчас довольно много. Люди проводят в дороге до четырех часов в день, и порой это лучшее, если не единственное, время для самообразования.</li></ul><ul><li>Попробуйте найти друзей по интересам, написать с ними небольшой развлекательный проект или поехать на хакатон. Так вы сможете прокачать навыки разработки за короткое время.</li><li>Попробуйте найти друзей по интересам, написать с ними небольшой развлекательный проект или поехать на хакатон. Так вы сможете прокачать навыки разработки за короткое время.</li></ul><ul><li>Можно коммитить код в opensource-проект, принося пользу комьюнити. Да, этот вариант требует значительных вложений времени и сил, но он окупается практическими знаниями и возможностью дописать весомую строку в резюме.</li><li>Можно коммитить код в opensource-проект, принося пользу комьюнити. Да, этот вариант требует значительных вложений времени и сил, но он окупается практическими знаниями и возможностью дописать весомую строку в резюме.</li></ul><ul><li>Запишитесь на продвинутый курс по интересной вам теме или посетите конференцию — работодатель нередко готов компенсировать такого рода затраты, даже если открыто об этом не заявляет. Наличие преподавателя, проверяющего домашние задания, а также конкретных сроков их выполнения, простимулирует уделять этому курсу время. Если нет возможности сделать это оффлайн, найдите курс на Coursera, Stepik или другой платформе — только обязательно с обратной связью, чтобы усвоение материала проверялось.</li></ul><p>Я вижу три возможных сценария обучения для тех, кто очень занят:</p><ol><li>В перерывах между работой. Это так называемый метод помидора: 5 мин учишься/25 отдыхаешь или 10 мин учишься/50 отдыхаешь. Так эффективнее обучаться, так как человек отвлекается от контекста и его мозг отдыхает какое-то время. Технологии помогают ускорить и усилить в том числе процесс обучения. Сейчас, чтобы прокачать навыки, достаточно 3-7-минутных занятий в смартфоне или планшете. По факту это обучение «на ходу». Человек получает доступ к заданиям, где бы он не находился: в дороге на работу, дома или на работе.</li><li>Можно попробовать использовать выходные для образования. Поставьте себе цель и используйте свободные дни. Главное, чтобы постоянная нагрузка на мозг не привела к выгоранию.</li><li>Посмотреть на свою работу под другим углом. Задавать себе постоянно вопрос: чему бы я мог научиться, выполняя эту задачу? Как я могу решить ее эффективнее, используя новые подходы? Это сложный способ, но самый эффективный, ведь он позволяет не искать дополнительные слоты, а начать действовать по-другому, тем самым освобождая свое время.</li></ol><p>С помощью онлайн-обучения и микролернинга можно выбрать тот контент, который тебе действительно нужен, закрыть именно свою потребность и сэкономить время, ведь уже не надо тратить его на общий продолжительный курс.</p><p>Как бы мы ни жаловались на нехватку времени на самообразование из-за работы, сухие цифры нас не поддержат: если вычесть из 720 часов месяца 240 на сон и от силы 200 на работу с учётом обеда – всё равно остаётся 280 часов личного времени. Поэтому вопрос скорее нужно ставить: а что же такого вы делаете больше, чем даже работаете?</p><p>Предположим, что вы всё же чем-то заняты, не отлёживаетесь на кровати, а значит ключ в приоритетах. Вместо музыки в метро или машине есть кучи новостных и технологических дайджестов с ежедневным контентом. Полезно послушать поддерживающие лекции по иностранному языку, чтобы не забывать школьные уроки. Очередной пересмотр «Хауса» в выходные всё же вряд ли подскажет тему для кандидатской диссертации. Любите отвлекаться на социальные сети для разгрузки внимания? Это не так уж и плохо, но оставьте в подписках только обучающие каналы на темы, в которых хотите разобраться.</p><p>Другой важный момент: знания без практики быстро улетучиваются. И выхода два: либо вы таки идёте на курсы, где от вас требуют выполнять задачи по полученным знаниям, либо вы периодически меняете проекты на своей работе, чтобы охватить как можно больше новых областей, либо даже саму работу. Для роста нужен стресс, преграды незнания, которые придется постоянно преодолевать. Не читайте и не учитесь просто так, сначала найдите себе проблему, поставьте цель, лучше даже с определенными сроками, и решайте её с помощью знаний, которые требуется выучить для решения этой задачи. Осознание ограниченных рамок – лучший мотиватор, который позволит найти время в любой ситуации и отложить не такие уж и важные, как потом окажется, дела.</p><p>В зависимости от компании, может быть несколько способов найти время на самообучение.</p><ul><li>Если самообучение так или иначе связано с профессиональной деятельностью, то время, потраченное на самообучение, может быть частью рабочего времени. Работодатель должен понимать, что инвестиции в знания сотрудника — это инвестиции в качество программных продуктов и решений, с которыми он связан. Следовательно, если самообучение так или иначе помогает в работе, то следует побеседовать об этом с работодателем для выделения определённого количества рабочих часов на семинары, курсы, изучение технической литературы и т.п.</li><li>Если самообучение так или иначе связано с профессиональной деятельностью, то время, потраченное на самообучение, может быть частью рабочего времени. Работодатель должен понимать, что инвестиции в знания сотрудника — это инвестиции в качество программных продуктов и решений, с которыми он связан. Следовательно, если самообучение так или иначе помогает в работе, то следует побеседовать об этом с работодателем для выделения определённого количества рабочих часов на семинары, курсы, изучение технической литературы и т.п.</li></ul><ul><li>Если самообучение не связано с профессиональной деятельностью (например, вы программист на Java, а хотите выучить Erlang), один из самых рабочих способов — это сделать хобби-проект, связанный с интересующими технологиями. Хобби-проект обязательно должен быть интересен и должен завлекать, чтобы сам процесс обучения был прозрачным и встраивался в процесс. Обучаться просто так бывает достаточно тяжело — читать книгу, не видя никаких способов применить полученные знания. Обучаться и сразу «играться» с полученными знаниями может сработать с гораздо большей эффективностью.</li><li>Если самообучение не связано с профессиональной деятельностью (например, вы программист на Java, а хотите выучить Erlang), один из самых рабочих способов — это сделать хобби-проект, связанный с интересующими технологиями. Хобби-проект обязательно должен быть интересен и должен завлекать, чтобы сам процесс обучения был прозрачным и встраивался в процесс. Обучаться просто так бывает достаточно тяжело — читать книгу, не видя никаких способов применить полученные знания. Обучаться и сразу «играться» с полученными знаниями может сработать с гораздо большей эффективностью.</li></ul><ul><li>Согласовать с руководством полноценный оплачиваемый отпуск, во время которого полностью погрузиться в технологии, которые интересуют. Такой подход можно даже совместить с путешествием и работать в режиме «для себя» весь отпуск. Правда, в таком случае, лучше не говорить никому про цели отпуска, потому что вдруг за месяц получится сделать хобби-проект, который сможет изменить вашу жизнь? Дерзайте.</li></ul><p>Я советую задуматься, почему после рабочего дня не остается сил на учебу. Если такое происходит постоянно, то возможны два варианта: вы или не так работаете и поэтому выматываетесь, или не тому учитесь — вам скучно и браться за учебу не хочется.</p><p>Возможно, на работе попадаются сплошь рутинные или неинтересные задачи, которые решаются под копирку. Это сильно демотивирует. В таких случаях мне помогает совет от «программистов-прагматиков» Эндрю Ханта и Дэвида Томаса: делать одно и то же каждый раз по-разному — пробовать новые инструменты и подходы в уже знакомых задачах. Конечно, не всегда имеется такая возможность. Например, есть жесткие сроки по задачам или политика в выборе техстека не позволяет вносить в него какие-либо изменения. Но если получится поэкспериментировать, убьете двух зайцев сразу: и мотивация вырастет, и сможете научиться новому в ходе работы.</p><p>Учиться просто «потому, что надо» в течение долгого времени нереально: мотивация уходит в затяжное пике. У меня лучше всего получалось учиться на конкретных задачах, в которых я лично был заинтересован: они решали мои текущие проблемы, которые сильно досаждали, или их решение лежало в незнакомой для меня увлекательной области, а иногда — джекпот — работали оба фактора сразу.</p><p>Тогда появлялись азарт и целеустремленность, поскольку обучение было сфокусировано на достижении конкретной цели — решении задачи. При этом у меня обычно не возникало вопроса, где взять время. Был другой вопрос: как не потратить на учебу вообще все не занятое основной работой время, оставляя немного на нормальный сон, семью и спорт. Чаще всего страдал, к сожалению, сон.</p><p>Приведу недавний пример из личного опыта. В проекте начался довольно изматывающий период поддержки текущих доработок. В какой-то момент, когда монотонная работа надоела, появилась идея сделать нативное мобильное приложение для нашего проекта. Я никогда не пробовал iOS-разработку, хотя давно хотел, а тут появился отличный повод. В следующие четыре месяца я по ночам, увы, за счет сна, осваивал Swift и Xcode и пилил прототип, на работе в паузах смотрел видео с WWDC, в транспорте запоем читал книги по Swift и статьи по разработке для iOS. Такой параллельный рабочему учебный трек очень взбодрил и помог пережить период унылой рутины в проекте.</p><p>Необходимость постоянного обучения и повышения своей квалификации я осознал еще в 2004 году, когда попробовал сменить сферу деятельности и найти достойную оплачиваемую работу. Тогда я купил актуальный для меня курс и торжественно его пропустил. Далее была череда собеседований и отказов. Какой вывод я сделал? Если я хочу быть конкурентным, я должен сформировать привычку учиться и получать знания постоянно. Скорость выхода новых технологий, фреймворков и методологий увеличивается и несравнима с тем, что было даже 10 лет тому назад. Требования к специалистам во всех сферах увеличиваются. Я также заметил, что требуются знания в смежных областях – все зависит от тех целей, которые вы перед собой ставите.Согласно научной статье про ретеншн в онлайн-курсах, от 40 до 80% пользователей бросают учебу, не закончив курс. Какие советы я могу дать, чтобы саморазвитие и самообразование были эффективными, а получение новых знаний и навыков вошло в привычку?Первый совет. Сформируйте цель на обучение. Один из распространенных способов формулирования целей – это SMART. Не стоит расстраиваться, если это не получится сделать с первого раза. Цель должна быть: конкретная (Specific), измеримая (Mesuarable), достижимая (Achievable), релевантная (Relevant), ограниченная во времени (Time bound), а ещё контролируемая. Например: цель &lt;устроиться на позицию тимлида и получать достойную зарплату&gt;. Вот пример, как бы она могла звучать.</p><ul><li>Чего конкретно я хочу достичь? – Хочу устроиться на позицию тимлида.</li></ul><ul><li>Как измерить достижение цели? – Моя новая зарплата выше предыдущей на 30%.</li></ul><ul><li>Что можно сделать для ее достижения? – Пройти курс «Название курса», прочитать «Перечень книг» и найти новую работу.</li></ul><ul><li>Когда я достигну цели? – Через два года.</li></ul><ul><li>Как я буду контролировать, что я на правильном пути? – Буду раз в три месяца обновлять резюме, дописывать в него мои новые навыки и знания, откликаться на вакансии.</li></ul><p>На основе многочисленных исследований было доказано, что люди не начинают по-настоящему учиться до тех пор, пока у них нет цели, а значит, и ценности обучения.</p><p>Второй совет. Необходимо учиться регулярно, разбивая обучение на еженедельные цели. Будет отлично, если вы поставите время обучения в календарь.</p><p>Третий совет. Помните, что трудностей не избежать, но их можно предупредить и смягчить. Только вы понимаете, что может вас заставить отложить обучение. Поэтому, если пропускаете, то закладывайте больше времени на следующий день, неделю – чтобы вернуться в ритм.</p><p>Четвертый совет. Человек по природе ленив, и наш мозг не любит тратить ресурсы для образования новых нейронных связей, так как любой эксперимент, с точки зрения мозга, – это опасность. Будет возникать сопротивление. Отслеживайте это состояние и «напоминайте» мозгу, что самообразование – это не опасность, а новая возможность. Только вы знаете себя настолько, чтобы найти нужные рычаги и ресурсы для самообразования.</p><p>Пятый совет. Радуйтесь маленьким успехам, которые приближают вас к цели. Многие онлайн-платформы разбивают курсы на сессии от 5 до 30 минут.</p><p>Шестой совет. Создавайте себе комфортное пространство для обучения. Если учитесь в группе, не стесняйтесь делиться впечатлениями и задавать вопросы.</p><p>Седьмой совет. На первый взгляд может показаться, что у вас совсем нет времени на самообразование. Воссоздайте ваш день. Уверен, вы найдете отрезки времени, которое сможете использовать для обучения. Например, каждое утро я добираюсь до работы в течение 40 минут на метро: первую половину этого времени я читаю, а вторую – просматриваю онлайн-курсы. Разобрав свой график, вы найдете время – будьте немного критичнее по отношению к себе. Пройдите курс «Научитесь учиться» или прочитайте книгу на данную тему. Мне понравилась книга «Как привести дела в порядок» Дэвида Аллена. Вы убедитесь, что вариантов более, чем достаточно.</p><p>Восьмой совет. Будет отлично, если учеба связана с вашей работой и направлением или погранична. Практика позволит применить и закрепить полученные знания, а иначе они довольно быстро выветрятся.</p><p>И, наконец, главный совет: начните!</p><p>На мой взгляд, лучше всего учиться и знакомиться с современными методиками в течение рабочего дня, а вечернее время отвести на отдых. Чтобы была возможность и силы самообучаться в течение дня, нужно уметь переключаться, тогда будут силы на изучение чего-то нового. Я, например, регулярно делаю перерывы на погулять, почитать, попить чаю, размяться, посмотреть YouTube (люблю ролики про столярное дело), открыть Coursera или Udemy и пройти один или два урока по намеченной заранее программе. Иначе, если погрязнуть в рутине, производительность резко снижается из-за недостатка внимания.</p><p>Конечно, выполняя день за днем разные задачи, мы вырабатываем некие методики в работе, чтобы каждый раз не изобретать велосипед. С другой стороны, когда возникает рутина, у нас уже нет сил и энергии на поиск новых подходов и дополнительное обучение. Поэтому я бы рекомендовал пересматривать используемые подходы к работе с некоей периодичностью. Для этого лучше всего подойдут подкасты и сайты разнообразных комьюнити по разработке или аналитике данных, подборки новостных агрегаторов по ключевым темам тоже будут полезны (я использую Flipboard).</p><p>В сфере программирования не всегда определено, что программист на своем рабочем месте должен делать что-то помимо своих непосредственных обязанностей. Хотя очевидно, что часть рабочего времени программист должен тратить на самообучение, так как сфера программирования — одна из самых интеллектуально насыщенных. Тем более, что во многих других профессиях (например, в медицине) выделяют специальные дни для прохождения курсов, которые оплачиваются как рабочий день.</p><p>Тем не менее, во многих ИТ-компаниях такая практика уже принята: компании периодически предоставляют своим сотрудникам список курсов, из которых они могут выбрать нужные. При этом, если курсы оффлайновые, компания оплачивает не только стоимость курсов, но и не уменьшает зарплату специалиста на те дни, когда он проходит курсы. Если же курсы проходят онлайн, то здесь еще проще: работник просто выделяет пару часов в день на прохождение таких курсов.</p><p>Предоставляя специалисту возможность прохождения курсов во время рабочего дня, компания добивается как минимум двух целей: уменьшает отток персонала (так как специалист видит, что компания занимается его развитием и готова в него вкладываться) и уменьшает накопления технологического долга, когда компания не успевает за новыми технологиями из-за того, что ее специалисты не развиваются.</p><p>Как правило, у компании также есть свои внутрикорпоративные курсы — например, курсы по ИТ-безопасности, прохождение которых обязательно для всех сотрудников. Можно подать идею обучающему отделу добавить в список таких курсов также курсы по ИТ-технологиям, чтобы сотрудники могли проходить такие курсы по своему выбору.</p><p>Еще одна возможность для самообучения: вы можете попросить руководство отправить вас на тот проект, который вам интересен в плане приобретения новых знаний. Тем самым можно изучать технологию непосредственно в рабочее время, причем сразу же применяя полученные знания на практике. Компания также заинтересована в этом, так как не всегда есть готовые профессионалы по определенным технологиям, и проще вырастить своего специалиста, чем искать кого-то на рынке труда. Таким образом, например, программист Python вполне может постепенно перейти в сферу машинного обучения, причем, не в ущерб своему свободному времени.</p><p>Не лгите себе! У вас семья, дети, работа в две смены, когда вы только и грезите о подушке, идя домой? Если так, то сил действительно может не хватать. В остальных случаях есть только лень, жалость к себе и оправдания.Если вы хотите развиваться в IT или какой-либо другой сфере, вам обязательно понадобится регулярность и упорство. Что может мотивировать на систематическую работу?</p><ul><li>Команда более высокого уровня, где вы будете чувствовать себя слабым звеном ­— сразу захочется подтянуться до уровня более опытных участников. Социальные факторы имеют огромное значение для мотивации, поэтому если команды нет, её можно заменить соревнованием с друзьями, участием в опенсорс-проектах, ведением блога или написанием ответов на stackoverflow.</li></ul><ul><li>Неплохим бустом являются легендарные «интересные задачи», которые не дадут погрязнуть в рутине и разожгут азарт. Только вот их, скорее всего, придется придумывать себе самому, а эффект от них временный.</li><li>Команда более высокого уровня, где вы будете чувствовать себя слабым звеном ­— сразу захочется подтянуться до уровня более опытных участников. Социальные факторы имеют огромное значение для мотивации, поэтому если команды нет, её можно заменить соревнованием с друзьями, участием в опенсорс-проектах, ведением блога или написанием ответов на stackoverflow.</li></ul><p>На кратковременную мотивацию полагаться не стоит: даже если какое-то время вас «прёт», это пройдет. Поэтому для того, чтобы были силы на самообучение, придется работать над собой:</p><ul><li>вырабатывать привычку и распорядок дня;</li></ul><ul><li>тренировать ответственность перед самим собой;</li></ul><ul><li>давать себе минимум поблажек;</li></ul><ul><li>правильно расставлять приоритеты.</li></ul><p>Для планомерного, плавного развития и поддержания себя в хорошей рабочей форме этого достаточно. А вот если вы хотите достичь выдающихся результатов, мастерства, продвигать индустрию, воплощать идеи, уже понадобятся более серьезные жертвы и компромиссы. Время с семьей и друзьями, компьютерные игры и просмотр сериалов — чем-то придется поступиться. Посмотрите интервью Илона Маска, Марка Цукерберга и других видных деятелей ИТ-индустрии, которые работают по 16 часов в день и ещё успевают заниматься саморазвитием. Главное, хорошо подумайте — надо ли оно вам или вы удовлетворитесь малым.В начале своей карьеры, работая с 9:00 до 20:00, я уделял саморазвитию в ИТ не менее трёх часов в день. Сейчас, когда у меня уже сформировался внушительный багаж знаний, собственно ИТ я занимаюсь меньше, уделяя больше времени смежным областям – алгоритмам (математическая база) и тимлидингу.</p><p>Мир меняется. И профессии стремительно устаревают. Поэтому, чтобы оставаться востребованным на рынке труда, нужно постоянно чему-то учиться. Однако найти время на самообразование непросто. Особенно если работаешь по 8 часов в день, а дома ждут дела, дети. Тут выспаться бы успеть.Но выход есть. Вот несколько рекомендаций, которые без ущерба для жизни и текущих задач позволят знать больше остальных и быть впереди конкурентов:</p><p>Разберитесь в своих подписках. Если вам на почту поступает масса информации и вы даже не помните, почему её получаете, потратьте время на анализ подписок. Возможно, среди них есть нужные, а вы не читаете их. Смело удаляйте всё, что не несёт пользы. Это могут бесчисленные рецепты, лайфхаки или уроки по бисероплетению, до которых вы уже лет 5 мечтаете добраться. Объективно оцените свои силы. И избавляйтесь от лишнего.</p><p>А вот полезную информацию оставьте. Это могут быть новости или бесплатные обучающие уроки в вашей сфере деятельности, статьи уважаемого вами эксперта. В результате у вас должно остаться столько подписок, что на них нужно будет тратить лишь 10-15 минут в день. Такой объем вы запросто сможете осилить во время небольшого перерыва или по пути на работу.</p><p>Читайте и слушайте, пока добираетесь до офиса. Откажитесь от бездумного листания ленты в пользу получения необходимой информации. Конечно, расслабляться полезно, но не забывайте, что мозг хитрит и ленится. Поэтому контролируйте, сколько времени проводите в соцсетях. А выкроить время для обучения можно по дороге на работу. Читайте полезную литературу. Это можно делать даже с экрана смартфона. А если сами ведёте машину, привыкайте к аудиокнигам.</p><p>Правило 25 минут. Как уже сказано ранее, мозг ленив. И человек склонен отвлекаться на пустое. Поэтому важно контролировать себя. Возьмите за правило заводить таймер на 25 минут и делать за это время только то, что планировали. Совет универсален и подойдёт для любых дел. В том числе и для самообразования.</p><p>Это базовые вещи. Начните с них — и поймёте, что стали меньше отвлекаться и больше знать. И помните: на то, что действительно важно, вы всегда найдёте время. Нужно лишь захотеть.</p><p>Само слово «самообучение» включает в себя понятия самостоятельности и ответственности – за свое развитие и будущее. Обычно, когда человек увлечен своим делом, проблемы не возникает, так как самообразование – не тяжелая обязанность, а интересное занятие. Даже после работы переключение на что-то новое может быть увлекательнее, чем любой художественный фильм или книга.</p><p>Если обратиться ко множественным исследованиям основных мотивирующих факторов для ИТ-специалистов, содержание работы и возможность развития стоят на первом месте, наряду с оплатой труда. Компания, которая думает о будущем и понимает, что оно тесно связано с уровнем квалификации и вовлеченностью сотрудников, должна создавать условия для их обучения и самообучения.Поэтому мой совет скорее для компаний:</p><ul><li>составляя план обучения на год (или какой-то другой период), включайте в него не только те направления, которые сейчас необходимы компании, а учитывайте пожелания и стремления вашей команды;</li><li>планируя загрузку, включите слоты времени, которые сотрудник может потратить на изучение нового материала;</li><li>ставя задачи, подумайте о том, что постоянно загруженный на 120% сотрудник далеко не всегда захочет тратить свободное время на самообучение, поэтому в попытке получить максимальный результат здесь и сейчас вы можете упустить из виду перспективу.</li></ul><p>В нормальной ситуации быть продуктивным на 100% в течение рабочего дня нельзя. Однако выкроить ценное время для самообразования вполне реально — достаточно использовать физиологические особенности нашего мозга, который тратит достаточно много времени на переключение между задачами. Это время можно тратить, например, на чтение документации.</p><p>С освоением фундаментальных навыков (скажем, для выполнения лабораторных работ по настройке оборудования или по новому языку программирования) всё сложнее — времени потребуется значительно больше. Здесь надо либо выкраивать это время из личного расписания в выходные или вечером в будние дни, либо идти разговаривать с руководителем. Контекст беседы должен быть такой: «Я хочу освоить новый навык, пришел к тебе для обсуждения этого вопроса. Идеально, чтобы у меня было время на его освоение в рамках рабочего дня. А то, как я это время потратил, ты как руководитель сможешь оценить на квартальной аттестации». Упомянув про проверку полученных знаний, вы в глазах большинства руководителей будете выглядеть как мотивированный сотрудник и точно не как работник, который просит индульгенции на безделье в течение рабочего дня.</p><p>Еще психологический момент. Следует настроиться на то, что период, в течение которого вы будете осваивать новые навыки, потребует от вас навыков тайм-менеджмента и будет напоминать череду спринтов в scrum или agile. Поэтому в рамках одного спринта не берите на себя слишком много — осваивайте новую предметную область по кусочкам.</p><p>Потребности в развитии у всех разные: они зависят от уровня разработчика, его команды и просто внутреннего мира человека. Чем ниже уровень компетенций разработчика, тем больше знаний он получает, просто выполняя повседневные задачи. Его развитие происходит, когда он сталкивается с новыми проблемами в процессе написания кода и учится их решать. Главное на этом этапе – не ограничивать себя тем, что уже хорошо умеешь, а постоянно работать с чем-то «на вырост».</p><p>Опытному специалисту большая часть вещей, с которыми он сталкивается в работе, хорошо известна, ему интересно узнавать новое за пределами повседневных задач. За такими знаниями ходят на конференции и ищут их в профессиональных сообществах, публикациях и других источниках.</p><p>На мой взгляд, лучший вариант – когда развитие встраивается в рабочие задачи. Например, мы в компании хотим, чтобы люди развивались, и выделяем для этого время. Инструментом служит ИПР – индивидуальный план развития. В зависимости от уровня разработчика организовываются периодические встречи в течении года с техническим лидером его направления и скрам-мастером, они вместе анализируют и синхронизируют его матрицу компетенций и сопоставляют с рабочими целями. Так, опираясь на текущие умения человека и его будущие задачи, они выявляют, на каких навыках нужно сосредоточиться и каким образом их развивать. Есть компетенции, которые требуют личного взаимодействия с ментором или наставником, есть то, что можно почерпнуть из литературы, либо пройти тренинг или курс. Благодаря такому подходу процесс развития становится прозрачен, а новые знания привязаны к работе – их можно сразу применить в деле и закрепить, они не забудутся через месяц.</p><p>Важный фактор для развития – это общение. Если речь идет о крупной компании, то полезно как минимум знать, что делают коллеги в других командах. Чтобы общаться было удобнее, мы развиваем внутренние профессиональные сообщества – у них есть свои регулярные встречи, митапы, они могут сами организовать для себя обучение или вместе выехать на отраслевое мероприятие. Это помогает расширить профессиональный кругозор.</p><p>Лучшего всего обучаться не после рабочего дня, а во время него. Плюс работы программиста в том, что всегда можно узнавать что-то новое. Например, у нас в компании есть разные проекты, на которых используются разные технологии. Общаться с коллегами, понимать, что они делают — отличный способ научиться чему-то новому.</p><p>Программирование — не работа на заводском станке, где нужно выпускать одни и те же детали — всегда есть свежие задачи, более интересные и сложные. Отказываясь от них, нельзя развиваться, и, как следствие, становиться более востребованным специалистом.</p><p>Я думаю, что если у человека не остается сил на самообучение, то либо нужно сменить работу, либо профессию. Для всех хороших разработчиков, которых я знаю, программирование это хобби, которым они наслаждаются. И в таком случае не стоит вопрос об отсутствии сил после рабочего дня.</p><p>Итак, как выделить время на самообучения, работая полный день?</p><ol><li>Важно составить план обучения: чего именно вы хотите достичь, какие книги вы должны прочитать, сколько тем должны изучать каждый день и т. д.</li><li>Если самообучение связано с профессиональной деятельностью, то можно попросить руководство выделить часть рабочего времени под эту активность.</li><li>Также можно попросить руководство назначить вас на проект, который интересен вам в плане приобретения новых знаний.</li><li>Ставьте себе таймер на определённое время и делайте только то, что планировали в течение этого времени.</li><li>Разберитесь в своих подписках — отпишитесь от рассылок, которые не дают ничего полезного и только отнимают ваше время.</li><li>Читайте и слушайте по пути на работу.</li><li>Придумайте себе проект, над которым вам будет интересно работать и для которого вам нужно будет изучить интересующую технологию.</li><li>Отключите уведомления, которые не требуют сиюминутного внимания; выделите отдельное время для проверки почты, соцсетей и т. д., чтобы лишний раз не отвлекаться.</li><li>Откажитесь от чего-то (видеоигры, проведение времени с друзьями и т. д.), чтобы освободить больше времени для самообучения.</li></ol><p>Напоминаем, что вы можете задать свой вопрос экспертам, а мы соберём на него ответы, если он окажется интересным. Вопросы, которые уже задавались, можно найти в списке выпусков рубрики. Если вы хотите присоединиться к числу экспертов и прислать ответ от вашей компании или лично от вас, то пишите на experts@tproger.ru, мы расскажем, как это сделать.</p>]]></content:encoded>
    </item>
    <item>
      <title>Полезные плагины для IDE — подборки от экспертов</title>
      <link>https://tproger.ru/experts/plugins-for-ide</link>
      <comments>https://tproger.ru/experts/plugins-for-ide?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Никита Прияцелюк]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/experts/plugins-for-ide</guid>
      <description><![CDATA[<p>Даже со всеми их возможностями зачастую в IDE разработчикам чего-то не хватает. Спросили у экспертов, какие полезные плагины они используют.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/experts/plugins-for-ide">Полезные плагины для IDE — подборки от экспертов</a>»</p>]]></description>
      <category><![CDATA[IDE]]></category>
      <category><![CDATA[Советы]]></category>
      <category><![CDATA[Разработка]]></category>
      <category><![CDATA[Ответы экспертов]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 16 Jul 2020 14:56:59 GMT</pubDate>
      <content:encoded><![CDATA[<p>Современные IDE ушли далеко от обычного блокнота и предоставляют столько возможностей, что про все невозможно знать. Тем не менее, даже с таким букетом фич разработчикам порой не хватает какой-то функциональности, поэтому приходится использовать разные плагины. Спросили у экспертов, какие плагины и расширения они используют в своих IDE</p><p>Какие полезные плагины есть для IDE?</p><p>В данной подборке я не буду рассматривать плагины и расширения для работы с какими-либо конкретными фрейворками и библиотеками, например, Spring, а постараюсь рассказать о тех, которые помогают работать независимо от используемых технологий.</p><p>Так как я часто провожу презентации и курсы, на первом месте по полезности для меня идут два плагина: Presentation Assistant и Key Promoter X.</p><p>Presentation Assistant помогает делать демонстрацию процесса разработки более прозрачной. Каждый раз, когда спикер нажимает горячие клавиши или делает какие-то манипуляции в IDE, на экране появляется маленькая подсказка, содержащая короткое название действия и соответствующее ему сочетание клавиш для Windows и Mac.</p><p>Key Promoter X работает в этом же русле, но с обратной стороны. Он полезен для тех, кто только начинает работать с Intellij IDEA или планирует ускорить свою работу в ней. Каждый раз, когда действие выполняется с помощью мыши или трекпада, плагин показывает горячие клавиши для этого действия и считает количество «неоптимальной работы» для каждого действия отдельно. В отличие от Presentation Assistant, он полезен не только во время демонстраций, но и в обычной работе.</p><p>Вторая группа — плагины для работы со строками и помогающие в момент написания кода.</p><p>Один из моих любимых — String Manipulation. Он добавляет большое количество дополнительных действий при работе со строками, такие как: энкодинг/декодинг, изменение кейса написанного текста (например, с CamelCase на SCREAMING_SNAKE_CASE), сортировки, фильтрацию и многие другие.</p><p>Dummy Text Generator — плагин, который генерирует строки на всякий вкус и цвет. Он очень помогает в разработке, когда нужно работать с тестовыми строками. Обычно приходиться добавлять в код всякую белиберду, случайно стуча по клавиатуре. Плагин же формирует хоть и случайный, но больше похожий на правду, текст.</p><p>Rainbow Brackets раскрашивает все скобки в коде в различные цвета радуги так, чтобы открывающая и соответствующая ей закрывающая скобки были одного цвета, это делает чтение и написание кода намного удобнее.</p><p>И, наконец, третья группа плагинов — помогающие в работе в целом.</p><p>Grep Console — мощный инструмент для обработки текста, который выводится в консоль. Его можно раскрашивать в зависимости от установленных правил или вообще скрывать лишнюю информацию. Больше никаких портянок однообразного текста, только визуализированный и полезный лог.</p><p>Еще один простой, но очень полезный плагин SideNotes позволяет добавлять в IDE окно для ввода заметок. Это бывает полезно не только во время написания кода, но и на митингах или при код-ревью.</p><p>Для любителей контролировать свое рабочее время и приверженцев практики Pomodoro я рекомендую плагин Pomodoro-tm. C его помощью можно разделять время на работу и отдых, настраивать интервалы под себя и даже блокировать среду разработки на время отдыха.</p><p>В качестве бонуса расскажу о плагине Power Mode II. Установите его и процесс написания кода получит +87 к эпичности и +46 к зрелищности. Не буду раскрывать, что именно он делает, чтобы не портить впечатление – просто попробуйте сами.</p><p>Мы пользуемся разными IDE, самой популярной в мире Java-разработки на текущий момент является IntelliJ IDEA. Большую часть возможностей мы получаем из коробки, но плагины, конечно, тоже нужны. Ниже ТОП из тех, которые в повседневной работе Java разработчика используем мы, что называется must have:</p><p><a href="https://plugins.jetbrains.com/plugin/1065-checkstyle-idea">CheckStyle-IDEA</a> – удобно иметь единые правила оформления кода для всей команды и в любой момент времени можно проверить, правильно ли расставлены комментарии, нет ли проблем с названием классов и методов, не закрался ли куда-то tab для отступа в начале строки и т.п. Особенно этот полезно для новичков. И даже, когда все эти правила знаешь наизусть, приятно знать, что кто-то следит за тобой и сразу поправит. Код, который оформлен единым образом приятно ревьюить и проще поддерживать.</p><p><a href="https://plugins.jetbrains.com/plugin/7391-asciidoc">AsciiDoc</a> — уже достаточно давно документацию мы тоже пишем, как код, мы выбрали для этого <a href="https://asciidoctor.org/docs/what-is-asciidoc/">AsciiDoc</a> и, конечно, нам нужен плагин, чтобы все делать, не выходя из любимой IDE. Тут есть и возможность набрать текст и сразу увидеть, как это будет выглядеть после рендеринга. В последнее время проведена работа над тем, чтобы плагин нормально работал с JCEF, как и вся IDEA. Теперь он будет и более отзывчивым и памяти меньше будет потреблять.</p><p><a href="https://plugins.jetbrains.com/plugin/2162-string-manipulation">String Manipulation</a> — со строками работать надо постоянно, и этот плагин многое позволяет сделать в пару кликов, например: сгенерировать последовательность от 1 до 20, декодировать или проставить эскейп-символы для JSON.</p><p>Xtend Support Plugin — ссылки нет, потому что мы его сделали для себя, разместили в собственном репозитории и используем для поддержки DSL для описания доменной модели в IDEA. Возможно, когда-то дозреем, чтобы поделиться со всеми, но я это к тому, что лучший плагин – тот который эффективно решает ваши собственные задачи и разработать такой не так уж и сложно (сложнее поддерживать совместимость с новыми версиями IDEA), благо и туториалы и доклады на тему в доступности.</p><p>Если дочитали до сюда — вот вам еще один симпатичный <a href="https://plugins.jetbrains.com/plugin/8575-nyan-progress-bar">плагин</a>, который поможет скрасить время ожидания и нарисует симпатичный Progress Bar.</p><p>Сейчас существует огромное количество различных IDE, главное назначение которых — сделать работу разработчика как можно более простой и удобной. Наша frontend команда использует VSCode, поскольку он кроссплатформенный и с открытым кодом (open source), что обеспечивает гибкий подход к разработке собственных программных продуктов, например, системы класса process mining Proceset. Редактор не только поддерживает много языков программирования (среди которых наши основные — Java, C++ и JavaScript), но и обеспечивает удобство работы с системами контроля версий. И, конечно, одно из главных преимуществ — большая база плагинов. С их помощью можно решить практически любые возникающие задачи, будь то стилизация или отладка кода.</p><p>Среди них наиболее интересные:</p><p><a href="https://marketplace.visualstudio.com/items?itemName=pflannery.vscode-versionlens">Version Lens</a>. Один из самых полезных плагинов, который позволяет контролировать версии установленных зависимостей и оперативно узнавать о выходе новых для их обновления.</p><p><a href="https://marketplace.visualstudio.com/items?itemName=wmaurer.change-case">Change-case</a>. При помощи этого плагина можно быстро изменить регистр текущего выделения или слова. Доступны все популярные «кейсы»: camel, constant, kebab, snake и др.</p><p>Bracket Pair Colorizer. Подсвечивает парные скобки, что здорово помогает при большой вложенности условий.</p><p><a href="https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode">Prettier — Code formatter</a>. Крутой, очень крутой плагин. Его особенность в содержании кодовой базы в едином стиле. Форматирование кода осуществляется в автоматическом режиме без споров по поводу стиля.</p><p><a href="https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint">ESLint</a>. Плагин для установки правил написания кода для проекта. В подавляющем большинстве случаев над разработкой продукта работает целая команда, где у каждого свое написание кода, свои «почерк» и стиль. Часто в результате код получается сложным, что не есть хорошо. Использование связки ESLint+Prettier позволяет добиться написания кода в единой стилистике. Отдельно отмечу, что ESLint подойдет и для проектов на TypeScript, становясь отличной альтернативой использованию TSLint, разработка которого прекращена.</p><p>Плагины – удобное решение, помогающее гибко подстраивать работу IDE под свои нужды. Если в редакторе отсутствует поддержка какого-либо фреймворка или языка, то это можно исправить установкой необходимых сниппетов и плагинов для поддержки синтаксиса. Если не нравится, как автоматически форматируется твой код и ты уже исчерпал возможности настроек своей IDE, то можно задействовать десятки различных плагинов, реализующих альтернативу встроенному форматированию.</p><p>Когда я работал на Visual Studio Code, мне часто требовались плагины для работы с мало распространенными форматами/фреймворками, не имеющими поддержки по умолчанию. Но с переходом на WebStorm я об этом забыл, так как его базовой функциональности вполне достаточно.</p><p>Вот несколько плагинов, которыми я сам пользуюсь и могу порекомендовать другим разработчикам:</p><ol><li><a href="https://plugins.jetbrains.com/plugin/10650-json-parser">Json Parser</a> — плагин, который упрощает работу с большим объемом JSON внутри IDE;</li><li><a href="https://plugins.jetbrains.com/plugin/1800-database-navigator">Database Navigator</a> — плагин, позволяющий работать с различными базами данных — Oracle, MySQL, SQLite, PostgreSQL, а также в экспериментальном режиме с любыми JDBC-совместимыми БД. Плагин дает возможность просматривать, редактировать и частично администрировать базы данных, не выходя из IDE.</li><li><a href="https://plugins.jetbrains.com/plugin/7638-codota">Codota</a> — плагин, который сортирует вывод методов и переменных при подсказках в автозаполнении кода на основе популярности их использования. Также может показать примеры использования кода;</li><li><a href="https://plugins.jetbrains.com/plugin/11058-extra-icons">Extra Icons</a> — плагин, обеспечивающий расширенный набор иконок для различных видов файлов. Например, если стандартные иконки не отображают, является ли этот файл Angular-компонентом/пайпом/сервисом, то с подключением плагина все становится понятнее.</li></ol><p>Сам я работаю на IntelliJ IDEA с Java. На самом деле на данный момент любая IDE или редактор требует порядка 10-20 плагинов для удобной работы. Не буду объяснять, почему нужен, например, плагин для Git. Постараюсь также не трогать специфичные для узкого круга специалистов IdeaVim или нужный только Java-разработчику Lombok Plugin. А вот следующие плагины будут полезны любому разработчику.</p><p>String Manipulation. Самый настоящий must-have для программиста. Изначально я на него наткнулся, когда искал инструмент для автоматической смены регистра слов (так называемый case-switch), например из camelCase в kebab-case и обратно. Плагин выполнил поставленную задачу идеально, предоставив около 14 разных форматов написания слов, что очень помогло при рутинной работе в стилизации кода. Но кроме этой уже довольно полезной фичи, плагин может также выполнять сортировку строк, их фильтрацию, чистку дублей, а также ряд операций с числами, например, инкремент или автоматическое создание последовательностей (что очень удобно при составлении нумерованных списков). Также он почти без ошибок работает с мультикурсором, что позволяет в течении пары минут обрабатывать сотни строк кода или любого другого текста.</p><p>У каждого разработчика должен быть такой инструмент в копилке. Для себя заметил, что теперь могу сконцентрироваться на решении задач, а не на том, как написана вот эта переменная. Ну а для тех, кто работает не с IDEA, могу сказать, что аналоги этого плагина есть и для других IDE, например за пару минут поиска я нашёл AnyEdit плагин для Eclipse.</p><p>Markdown. Конечно, каждый разработчик хотя раз писал README.md в своём GitHub-репозитории. Да, редактор там очень удобный, но мне всегда нравилось делать абсолютно все, что связано с разработкой, в IDE.</p><p>Данный плагин дает возможность в реальном времени видеть изменения в редактируемом Markdown документе. Кроме того, при написании блоков кода начинают работать все функции IDE, как если бы код писался в отдельном файле (даже можно запустить!). Если к этому добавить прелести предыдущего плагина, получается отличный редактор для программной документации или просто удобный редактор текста.</p><p>И да, есть языковые пакеты с проверкой орфографии и грамматики, это превратит IDE в полноценного конкурента MS Word.</p><p>У нас в компании основным инструментом разработки служит программа Visual Studio от Microsoft, в которой удобно писать код под .NET/.NET Core. Несмотря на то, что у нее в последнее время «из коробки» достаточно много полезных функций даже в бесплатной редакции Community, некоторые из нас используют те или иные плагины для удобства разработки, рефакторинга, контроля качества и так далее.</p><p>ReSharper от JetBrains – добавляет массу возможностей в IDE. Например, зачастую избежать ошибок помогает контроль naming convention, причем он может подстраиваться под принятые в проекте соглашения автоматически. Исправление опечаток в ключевых словах: если даже написать какое-либо из них транслитом, например, зкшмфеу вместо private, оно будет заменено на английский. Также он показывает опечатки как в английских, так и русских словах. Кроме того, плагин экономит время тем, что может быстро обернуть целый кусок кода в фигурные скобки, try, foreach и тому подобное, достаточно выделить код, начать вводить название нужного оператора и нажать Enter. При рефакторинге с помощью этого инструмента удобно менять сигнатуру метода: можно изменить не только параметры, но и возвращаемый тип.</p><p>CodeMaid – предназначен для «наведения красоты» в коде: очистка от лишних пробелов, форматирование и мое любимое – подсчет цикломатической сложности методов. Именно этой функцией пользуюсь чаще всего, чтобы стараться поддерживать код читабельным и понятным.</p><p>WakaTime – нужен для контроля времени работы: пока пишу код, он шлет в одноименный сервис информацию о том, как долго я работаю, с каким проектом, в каком файле и даже в какой ветке. Благодаря этому можно увидеть, сколько часов в день уходит непосредственно на код, что поможет посчитать реальный объем трудозатрат на ту или иную задачу.</p><p>Productivity Power Tools – плагин, который используют некоторые коллеги. Его особенности – предупреждение о смешивании «табов» и «пробелов»; «подсветка» выделенной переменной во всем файле с добавлением маркеров на scrollbar, чтобы ориентироваться, где еще в коде она используется; отображение наличия ошибок в файлах прямо в Solution Explorer; «раскраска» открытых вкладок в зависимости от проекта и еще множество полезных функций.</p><p>Со временем многие из нас отказываются от тех или иных расширений IDE, поскольку каждое из них добавляет нагрузку на среду разработки, из-за чего появляются задержки в обработке проектов, особенно больших, и, как следствие, теряется их цель – увеличение продуктивности разработчика. Кроме того, по мере обновления IDE часто появляются новые функции, которыми можно пользоваться и без плагинов. Об этих двух факторах следует помнить, прежде чем расширять свою среду разработки, и не «накидывать» в нее все подряд.</p><p>Tproger рекомендует: плагин Amplicode для IntelliJ IDEA, GigaIDE и OpenIDE</p><p>Хотите получить возможности IntelliJ IDEA Ultimate без ограничений? Установите Amplicode в IntelliJ IDEA Community, GigaIDE или OpenIDE, и вы получите полный набор инструментов для комфортной разработки на Spring.</p><p><a href="https://amplicode.ru">Amplicode</a> превратит бесплатную версию IntelliJ IDEA Community в полноценную Ultimate, которая сейчас недоступна для покупки и использования в России. Вам не придётся отказываться от<a href="https://amplicode.ru/ide-dlya-razrabotki-na-spring-boot/"> привычного комфорта работы с Spring</a>: вы получите подсветку и навигацию по Spring-бинам, интеллектуальные подсказки и автодополнения для кода, удобную работу с файлами Spring Properties (.properties/.yaml), автокомплит методов Spring Data, генерацию миграционных скриптов Liquibase и Flyway, а также удобный запуск SQL-запросов напрямую из IDE.</p><p>А если вы уже пользуетесь IntelliJ IDEA Ultimate, то Amplicode даст вам ещё больше возможностей поверх тех, которые вам уже доступны. С помощью плагина вы сможете генерировать CRUD REST-контроллеры и методы для них, создавать тесты для Spring-сервисов, преобразовывать derived методы Spring Data JPA в @Query и автоматически синхронизировать DTO с доменными объектами.</p><p>Ну и напоследок: Amplicode может быть полезен не только разработчикам, но и DevOps-инженерам и QA-специалистам благодаря встроенной<a href="https://amplicode.ru/ide-dlya-kontejnerizaczii-i-orkestraczii/"> поддержке Docker, Kubernetes и Terraform</a>. Создавайте Docker Compose сервисы визуально, легко контейнеризируйте Spring Boot приложения и генерируйте Helm Charts с различными базами данных (PostgreSQL, KeyCloak, MariaDB, MongoDB, MySQL). Кроме того, встроенный HTTP-клиент на Kotlin Scripts поддерживает все типы HTTP-запросов, сценарии с переменными окружения, assertions и работу с SSL, что также может помочь во время ручного тестирования как разработчикам, так и QA-специалистам.</p><p>Есть какие-то полезные плагины, которыми вы пользуетесь, но не были упомянуты в статье? Делитесь ими в комментариях!</p><p>Напоминаем, что вы можете <a href="https://docs.google.com/forms/d/e/1FAIpQLSdSanNvlfPRrSyQWfnoGPflSVwO4KctnjOdEKHzuxjCmFX2dA/viewform">задать свой вопрос</a> экспертам, а мы соберём на него ответы, если он окажется интересным. Вопросы, которые уже задавались, можно найти в списке выпусков <a href="https://tproger.ru/experts/">рубрики</a>. Если вы хотите присоединиться к числу экспертов и прислать ответ от вашей компании или лично от вас, то пишите на <a>experts@tproger.ru</a>, мы расскажем, как это сделать.</p>]]></content:encoded>
    </item>
    <item>
      <title>Как работодатели относятся к соискателям, прошедшим только онлайн-обучение — отвечают эксперты</title>
      <link>https://tproger.ru/experts/online-courses-only</link>
      <comments>https://tproger.ru/experts/online-courses-only?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Никита Прияцелюк]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/experts/online-courses-only</guid>
      <description><![CDATA[<p>Мнения экспертов о соискателях, которые прошли только онлайн-обучение: ценят ли компании такое образование и что перевешивает при найме.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/experts/online-courses-only">Как работодатели относятся к соискателям, прошедшим только онлайн-обучение — отвечают эксперты</a>»</p>]]></description>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[HR]]></category>
      <category><![CDATA[Ответы экспертов]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 01 Jul 2020 08:42:37 GMT</pubDate>
      <content:encoded><![CDATA[<p>У онлайн-обучения есть множество преимуществ перед традиционным образованием: не нужно никуда ехать, можно подбирать под себя расписание и т. д. Но что если человек прошёл только онлайн-курсы и хочет устроиться на работу? Спросили у экспертов, что они думают об онлайн-образовании и о соискателях, которые ограничиваются только им.</p><p>Как работодатели относятся к соискателям, прошедшим только онлайн-обучение?</p><p>Конечно, в первую очередь большинство компаний ищет сотрудников с большим практическим опытом работы. Но в ситуации дефицита кадров ряд компаний решают нанимать сотрудников с небольшим опытом и обучают их внутри. Обычно это крупные компании, у которых есть ресурсы на обучение сотрудников, либо совсем небольшие организации, которые в случае найма специалистов с минимальным опытом оптимизируют ФОТ. В IT и digital сферах довольно часто на младшие позиции нанимают соискателей с только теоретическими знаниями. Но при этом им необходимо продемонстрировать определенный уровень подготовки.</p><p>Для работодателя наличие у кандидата завершенных онлайн-курсов может свидетельствовать о его высоком уровне мотивации (особенно если он меняет направление деятельности) и самообучаемости. Конечно, всё сильно зависит от качества самих онлайн-курсов: есть те, которые содержат минимальную информацию, а есть те, которые грамотно и структурно дают необходимые знания. Курсы, на которых предполагается проведение тестирования и получения сертификата, гарантируют большую заинтересованность и погруженность обучающихся, а, значит, и более качественный уровень подготовки на выходе.</p><p>Можно посоветовать соискателям, которые обладают только теоретическими знаниями, быть готовым к длительному процесса поиска работы и не бояться пробовать. Но не стоит врать в резюме и на собеседованиях, так как онлайн-обучение всё-таки не заменит грамотный полноценный год работы.</p><p>В сфере IT формат обучения не играет большой роли. При собеседовании работодатели редко обращают внимание на то, где обучался соискатель – в вузе или онлайн-университете. Важнее опыт и портфолио. Компании не станут отдавать предпочтение кандидату только потому, что он получил классическое образование в университете. Лучше окончить онлайн-курсы, но подтвердить свои навыки на практике – например, показать примеры работ или референсы от бывших работодателей.</p><p>Если стоит выбор между двумя кандидатами, которые обучались онлайн, то решающую роль играет качество курсов. Больше всего ценятся иностранные образовательные ресурсы. Во-первых, на западе рынок онлайн-курсов больше развит, поэтому требования к ним выше. Во-вторых, занятия обычно проходят на английском, поэтому прокачивается навык владения иностранным языком. В digital-индустрии это особенно важно.</p><p>Другой не менее важный момент – это специфика курсов. Если работодатель ищет продакт-менеджера или digital-маркетолога, на собеседовании он вряд ли оценит специалиста с сертификатами по общему менеджменту или основам маркетинга. В такой ситуации многое будет зависеть от портфолио.</p><p>Желательно обосновать, почему вы проходили те или иные курсы. Может показаться, что работодателя обязательно впечатлят разносторонние интересы соискателя. Человек приходит на собеседование с сертификатами по SMM, введению в LTV и контент-маркетингу. Или одновременно изучает несколько языков программирования, верстает сайты и экспериментирует с машинным обучением.</p><p>Такая комбинация навыков скорее настораживает, чем впечатляет. Возможно, соискатель ищет себя и пока не нашел подходящую специализацию? Если вы пришли на интервью с пачкой сертификатов, лучше обосновать, почему вы проходили конкретные курсы. Например, изначально вы изучали SMM, а потом решили заняться контент-маркетингом, чтобы более эффективно работать с текстом. А после захотели выяснить, как с помощью полученных знаний увеличить пожизненную ценность клиента. В образовательной траектории обязательно должна прослеживаться логика</p><p>В последние год-два количество кандидатов с пометкой об онлайн обучении резко возросло. Раньше такую тенденцию мы наблюдали преимущественно в Москве и Санкт-Петербурге, а сейчас формат онлайн привлекает и региональных соискателей. Ведь плюсы для соискателей очевидные: удобное время обучения, разнообразие курсов, экономия времени на дорогу, оптимальная стоимость курсов, доступность материалов в онлайн формате, возможность выбора преподавателей из профессионального сообщества.</p><p>Онлайн обучение становится хайповым направлением. Кроме аккредитованных и сертифицированных тренинг-центров с высоким уровнем подготовки материалов (баланс качества и стоимости, а также теории и практики), мы отмечаем, что обучение в формате онлайн проводят и инженеры, которые делятся своим опытом и дают реальные кейсы, делают их разбор.</p><p>На интервью по ИТ-вакансии наличие обучения является плюсом, но не главным критерием к отбору. Кандидаты, прошедшие такое обучение, рассказывают, как имея теоретический материал, они закрепляли его на практике. Порой знания студентов без онлайн обучения и с онлайн обучением отличаются структурированностью ответов, уверенностью в презентации. Иногда, наоборот, пройдя вебинар у тренера-самоучки знания могут быть искаженными или неверно истолкованными, так как раздаточного материала не было. Однако, такие инженеры чаще говорят о современных тенденциях, технологиях, их также выделяет многообразие прошедших курсов и неоправданно завышенные ожидания. Они предполагают, что их стоимость вырастет на рынке труда только за счет онлайн обучения. Увы, мы их переубеждаем.</p><p>Для HR интересны опытные сотрудники, которые выбирают онлайн обучение осознаннее, примеряя ее к текущим задачам, своему профессиональному росту или закреплению опыта. Они целенаправленно совершенствуют себя, оттачивают свое мастерство. Опытные сотрудники не только проходят онлайн обучение за счет компании, но и сами готовы инвестировать в себя.</p><p>Резюмируя, отмечу, что новичкам стоит быть аккуратнее при выборе провайдера по обучению, отдавая предпочтение крупной организации с системным подходом, лучше в офлайн формате. Онлайн образование, в свою очередь, отлично подойдет уже состоявшимся профессионалам, стремящимся нарастить свой функционал и базу знаний.</p><p>Уверена, данная тема возникла в связи с тем, что период самоизоляции автоматически перевел в онлайн практически все, включая любое обучение. И вопреки традиционным представлениям о том, что подобное обучение менее качественно, я сделала для себя много приятных открытий. Существуют образовательные платформы с высококлассным контентом по очень разным направлениям, и при этом онлайн-форма больше подходит для вдумчивого изучения и освоения темы – можно сколько угодно пересушивать материал, учиться в удобное время, когда тебя ничто не отвлекает и выше мотивация.</p><p>Делить соискателей и сотрудников по этому принципу мне бы не хотелось. В нашей компании, как и в отрасли в целом, 99% процентов имеют базовое высшее образование (пока это преимущественно очные формы, но кто знает, надолго ли?). А онлайн-обучение часто является дополнительным расширением возможностей, освоением нового функционала, повышением текущего уровня. Поэтому мне пока сложно представить, что у человека за плечами есть только онлайн-курс по отдельной теме и все. Однако если такие курсы являются дополнением к серьезной начальной базе, то это прекрасный показатель, мы будем рады таким кандидатам и благодарны сотрудникам, стремящимся к знаниям.</p><p>Для ответа на данный вопрос, наверное, изначально имеет смысл обсудить текущий уровень потенциального соискателя. Если мы говорим, что соискатель прошедший парочку онлайн-курсов претендует на статус «middle» или «junior+», то в таком случае я оцениваю уровень онлайн-образования, как образование низкого качества. Если же мы говорим о том, что человек прошедший курс претендует на уровень «junior-», то в таком случае большинство соискателей показывают неплохие навыки, т.к уровень требований довольно низкий. Но, если мы говорим, о сравнении трех типов соискателей(онлайн-образование, самоучки, фундаментальное образование), начинающих свою карьеру, то я бы отдал предпочтение фундаментальному образованию, т.к, большинство молодых людей, его получивших и, главное, выбравших дальнейший профиль по специальности имеют и внутреннюю дисциплину и необходимый фундамент для дальнейшего движения.</p><p>На второе место, я бы поставил самоучек. Причина в том, что такие ребята, как правило очень дисциплинированы, потому что смогли и получили знания самостоятельно. Они уже могут их применять, несмотря на то, что их инструментарий ограничен. Возможность применения знаний на простых задачах, как правило означает для бизнеса окупаемость. На третье место я бы поставил онлайн-образование, при этом кандидатов разделил бы на два типа:</p><ul><li>те, кто получает новую специальность имея образование;</li><li>те, для кого это первое или единственное образование.</li></ul><p>Первая группа кандидатов обычно крайне дисциплинированы и пришли в IT, по ряду социальных причин. Такие люди, даже в возрасте вполне хорошо обучаемы, а главное надежны. Вторая группа кандидатов самая для нас нелюбимая. Как правильно, это молодые ребята, которые не поняли кем они хотят быть и что хотят делать. Они подверглись «хайпу» и решили, что в IT (говоря о своей отрасли) все проще простого и вполне легко получить ЗП выше рынка. Это не так. На нашем рынке ценны только те, кто надежен и квалифицирован, т.к. здесь не бывает случайностей.</p><p>Именно поэтому, мы внутри своей компании всегда производим внутреннее обучение. Как правило, оно длится 3-4 месяца и соискатель прикрепляется к ответственному руководителю, выполняя его указания, повышает свою квалификацию.</p><p>Данная методика помогает прокачать выпускников с любым образованием, но если говорить о том, кто быстрее схватывает знания, то порядок именно такой, как я указал выше.</p><p>Естественно, отступления от трендов есть среди соискателей с любым образованием. Иногда бывают плохие выпускники хороших университетов и хорошие выпускники из плохих.</p><p>Мы всегда формируем требования для кандидатов, исходя из задач конкретных позиций. Так, для практикантской программы онлайн-обучения более чем достаточно, ведь у каждого практиканта есть опытный ментор с богатым практическим опытом. Он/она всегда готовы указать, какие именно моменты следует исправить, позволяя практиканту приобрести собственный опыт без риска для проекта.</p><p>Что касается позиций, где работа сразу требует самостоятельной работы и принятия решений, мы все же прежде всего смотрим на опыт в продакшене, а не на пройденные онлайн-курсы и теоретическую подготовку кандидата. Здесь стоимость ошибки гораздо выше для компании и с финансовой, и с репутационной точки зрения. Именно поэтому на собеседованиях мы стараемся убедиться, что у кандидата уже есть опыт успешного выполнения задач, схожих с теми, которые существуют в обсуждаемом проекте.</p><p>Говоря о качестве онлайн-обучения в целом — на мой взгляд, почти все, что нужно знать по любого рода теории в том или ином виде представлено в интернете. Но изучение материала совсем не гарантирует, что отдельно взятый кандидат сможет с легкостью перенести теоретические знания на практику. Это справедливо для любой сферы, не только IT. Поэтому в большинстве наших вакансий все же требуется практический опыт применения изученного в реальных проектах.</p><p>Многие компании, которые занимаются разработкой и исследованиями в области искусственного интеллекта, robotics и др., не всегда готовы рассматривать кандидатов, прошедших только онлайн-курсы. Есть мнение, что таким соискателям не хватает математического бэкграунда и общих знаний. В результате они проигрывают в процессе отбора кандидатам с профильным высшим образованием.</p><p>Тем не менее, работающие сотрудники, которые прошли только профильные онлайн-курсы, по-разному проявляют себя в работе — за плечами у каждого свой определенный багаж опыта, практики, знаний. Многие из них демонстрируют свое умение самообучаться, следить за тенденциями и стремление совершенствоваться — что является несомненным плюсом во время работы. Также они хорошо проявляют себя на junior ролях, стремясь развить как можно больше навыков, получить опыт в реальных условиях, что часто важно в стартапах или небольших компаниях, разрабатывающих софт.</p><p>Но встречаются и такие случаи, когда кандидаты после онлайн-курсов и небольшого практического опыта (например, фриланс) оказываются недостаточно подготовленными к работе. На практике оказывается, что многим явно недостает самостоятельности и необходимых навыков, и компаниям приходится тратить много времени на дополнительное обучение и развитие такого сотрудника вместо того, чтобы тратить ресурсы на разработку своего продукта. В частности, при найме ряд компаний часто делают на этом акцент и стараются избегать таких соискателей. Чтобы убедить потенциального работодателя в своих навыках, начинающим специалистам рекомендуется как можно чаще пополнять свое портфолио и не пренебрегать проектами на фрилансе и тестовыми заданиями.</p><p>Но нужно понимать, что каждый сотрудник и кандидат уникален и обобщить эффект от онлайн образования по-прежнему довольно непросто. Профессионализм работника во многом зависит и от его софт скиллов — проактивности, нацеленности на результат и самосовершенствования, от практики — реализации фриланс проектов, контрибуции в open source проекты, и того, насколько глубоко тот или иной курс позволил человеку узнать наиболее востребованные на работе технологии.</p><p>К тому же, карьерное развитие зависит от целей конкретного человека. Получить новую профессию, только пройдя онлайн-курс, едва ли возможно. Ни один сертификат не убедит работодателя — поскольку всё оценивается в совокупности. При этом повышение квалификации по своей профессии, освоение новых технологий или методов с помощью онлайн обучения расценивается очень позитивно — это говорит о том, что человек не стоит на месте, следит за трендами и стремится стать лучше.</p><p>Когда в резюме встречается отметка о прохождении онлайн-курса, я делаю вывод, что человек по крайней мере довёл обучение до логического завершения. Это плюс кандидату, как и наличие высшего образования. Отметками о прохождении некоторых известных курсов, например, от udemy или coursera, можно выигрышно дополнить резюме. Однако в целом у меня скептическое отношение к онлайн-курсам.</p><p>Качественные курсы – это почти всегда бизнес-проект, и организатор на этом зарабатывает. Чтобы оправдать высокую стоимость, программа может включать много информации, которая ещё долго не понадобится соискателю на работе. В результате человек тратит много времени на изучение вещей, которые он забудет к тому моменту, когда они могли бы ему пригодиться, да ещё и платит за это деньги.</p><p>Соискатель, прошедший только онлайн обучение и не имеющий в своем арсенале хотя бы малейшего портфолио, похож на человека, прочитавшего учебник по программированию, но не написавшего ни одной программы. Я думаю, что курсы наподобие HTML Academy часто создают у соискателей иллюзию касательно их уровня знаний по технологиям. В реальности соискателю на младшие позиции совсем не требуется знать многие аспекты технологий, которым учат на курсах. Гораздо более ценным является наличие большого количества самостоятельно написанных программ.</p><p>Часто бывает, что полученные по результату обучения дипломы создают у новичка опасное ощущение чего-то фундаментального. Важно понимать, что прохождение онлайн-курсов – это самый легкий путь, который только можно избрать. В целом хороший онлайн-курс равен хорошей книге, не более. Но прочитавший книгу человек как правило не решает, что пройдена важная веха, и он уже готовый специалист. А вот курсы и «корочки» формируют у соискателей ненужные иллюзии.</p><p>Для любого новичка важнейший навык – это научиться учиться, то есть уметь находить информацию, систематизировать ее, усваивать, ошибаться. В онлайн-курсах этого нет.</p><p>Встретить сегодня специалиста только с онлайн-образованием сложно — не пришло еще это время. Можно предположить и спрогнозировать его потенциальные преимущества, с некоторыми отступлениями. Например, многим из нас знакома заочная форма обучения, в России она активно развивалась и до сих пор популярна. Основной ее плюс — в том, что «заочники» или «вечерники», по идее, имеют возможность совмещать обучение и работу, то есть «идут по профессии». В итоге к окончанию вуза практикующий специалист получает академическую базу.</p><p>Что мы наблюдаем сейчас: интерес к онлайн-обучению огромный, но вот мотивации его завершить — мало. Статистика самого популярного онлайн-сервиса Coursera <a href="https://rb.ru/opinion/ne-zakonchili-onlajn-kursy/">говорит</a> об уровне удержания студента в 4%, а исследование университета Вашингтона, проведенное в 2016 году, показало, что лишь 49% слушателей массовых образовательных онлайн-курсов из Филиппин, Колумбии и ЮАР получили промежуточные сертификаты о пройденных модулях в курсе. Полностью проходят обучающие программы всего 30% респондентов. Эти цифры говорят о том, что мало начать учиться, важно завершить обучение. И наличие промежуточного сертификата может натолкнуть работодателя на мысль, что человек не доводит дело до конца.</p><p>Помимо самого диплома, будь то онлайн- или офлайн-платформа, важно иметь опыт и примеры работ, особенно если мы говорим о сфере ИТ. Абстрактные знания без практического применения забываются и спустя месяц становятся неактуальными. В этом смысле ИТ — та отрасль, где учиться надо постоянно и системно. И чем больше выполненных проектов, тем лучше. Поэтому можно и нужно прикладывать сертификаты об обучении онлайн, однако и кейсы выполненных проектов в таком случае должны быть обязательными.</p><p>Простота и доступность онлайн-обучения создают эйфорию «легкого образования». Но потом интерес угасает, курс бросают. А некоторые еще и приглашают «друзей», которые «помогают» пройти итоговую аттестацию для вожделенного сертификата. Отследить это на этапе резюме сложно, но первое собеседование с руководителем или даже тестовое задание скорее всего покажут обман. Поэтому в онлайн-обучении есть как и преимущества, так и недостатки. Среди плюсов — это удобно, не нужно тратить время на дорогу, можно выбрать обучение в ведущих вузах мира. Еще можно обучаться в комфортном вам темпе, совмещать с работой. Как правило, онлайн-образование менее затратно по стоимости. Среди минусов — потребуются высокая самоорганизация и умение выдерживать марафонские дистанции в обучении, не всем по душе такой способ коммуникации и обучения, учитывайте свой характер. А еще нужно много времени уделять самостоятельной практике, и если платформа не дает такой возможности, то обучение с большой долей вероятности не будет эффективным.</p><p>Эффект от прохождения онлайн-курсов зависит от пласта задач, которые специалистам предстоит решать в будущем. Если говорить о разработчиках сложных интеграционных проектов, то им не обойтись без фундаментального технического образования государственного вуза. Именно там IT-специалистов учат работать с большим массивом информации и находить необходимые данные.</p><p>В этом случае онлайн-курсы несут практически нейтральный эффект и могут только выступать в качестве дополнительного образования – они не заменят навыков, которые специалист получает в вузе. Недостаток задач в онлайн-курсах состоит в том, что они носят теоретический характер и далеки от разработки реальных проектов, где зачастую решение проблемы не описано ни в одном учебнике, и специалисту приходится его придумывать самостоятельно.</p><p>Однако в IT-индустрии, помимо сложной интеграции, есть много другой разработки, где требования к образованию снижены. В проектах, менее требовательных к большому анализу и нахождению нетривиальных решений, онлайн-курсы могут помочь в развитии. Хорошим примером может послужить должность html-верстальщика, где знаний школьной геометрии достаточно для решения поставленных задач. Качественная верстка во многом будет зависеть от опыта и дополнительных курсов.</p><p>Онлайн-курсы — это прекрасно, многие получают доступ к профессии благодаря той же «Нетологии» и «Курсере». Но одно сертификата курса недостаточно — нужен код, какой-то написанный проект, пожелания к будущему месту работы, какие-то мысли по собственному развитию: что за технологии хочется «пощупать», какие задачи хочется решить. Все это показывает заинтересованность, ответственность и намерения человека работать. И если два последних пункта еще можно опустить, то код — must-have. Если примеров нет (что странно), то единственный вариант — выполнить тестовое задание.</p><p>К сожалению, многие соискатели после курсов начинают мыслить шаблонно. Нам каждую неделю прилетает 5-10 резюме из одной школы разработки. Они абсолютно идентичны — отличаются только имена и контактные данные. Даже сопроводительные письма написаны одинаково. Таких кандидатов мы даже не смотрим.</p><p>При этом нельзя сказать, что человеку, который только учился на курсах будет невозможно найти работу, скорее ему трудно будет найти любую позицию кроме junior-разработчика. Все же опыт в IT важнее корочки.</p><p>Я сам по образованию программист, но не считаю этот путь в IT единственно возможным. Фундаментальное профильное образование хорошо своей «школой» — наличием не только практической базы, но и теоретической, возможностью получать фидбэк. Самое важное, на мой взгляд, чтобы за любым дипломом или сертификатом, стояли реальные компетенции.</p><p>Мы при оценке специалистов всегда смотрим на тестовое задание: как оно выполнено, при помощи какого стека технологий, насколько чистый код, какие вопросы задавал соискатель при выполнении, сколько времени затрачено на выполнение. И если у кандидата были указаны только онлайн-курсы — это его шанс продемонстрировать, что он много сил и времени вложил в самостоятельное изучение предмета и оно дало свои плоды. Обязательно смотрим и спрашиваем о собственных проектах — как, где, когда и при помощи чего были реализованы. Если за спиной соискателя внушительный бэкграунд — до обсуждения образования дело может и не дойти.</p><p>Открывая вакансию и приглашая кандидатов, мы точно знаем, какими компетенциями должен обладать человек. Не знаниями, а именно компетенциями. У нас есть показательная история, когда частью команды стал опытный спортсмен — призер Юношеских олимпийских игр по легкой атлетике и победитель первых Европейских игр. Профильного образования не было, он является студентом факультета физического воспитания. В активе только онлайн-курсы по Java и освоение материала по книгам. Несмотря на отсутствие корочек, — мы его приняли, сейчас он полноценный разработчик с перспективами.</p><p>В целом можно сказать, что онлайн-курсы, обязательно релевантные, авторитетные и вполне серьезные, могут стать определенным преимуществом. Дать первоначальные понимания технологии, систематизировать знания, прокачать скиллы. Но любая теоретическая база знаний должна быть подкреплена практикой, что позволит максимально быстро войти и в новую команду, и в проект. В такой ситуации здорово прокачаются как hard skills, так и soft, получение которых исключительно онлайн, бывает крайне затруднительно.</p><p>В эпоху тотальной цифровизации и в свете последних событий можно с уверенностью говорить о том, что онлайн-образование практически ничем не отличается от оффлайн. Единственное, что важно — это мотивация и предрасположенность к обучению каждого студента. Если сам учащийся заинтересован в обучении и освоении навыков — у него появляется искренний интерес и мотивация, поэтому обучение приводит к хорошим результатам. Также, очень важна личная предрасположенность к обучению. Например, кто-то хорошо воспринимает информацию только при личном общении, в подходящей обстановке и т.д., а некоторым, наоборот, крайне некомфортно куда-то выезжать, собираться в группы, поэтому они предпочитают онлайн. К тому же, многие, кто выбирает онлайн-обучение ценят возможность самостоятельного планирования режима дня, совмещение нескольких форматов (видео, аудио, текст и т.п.).</p><p>Как руководитель hr-отдела я могу с уверенностью сказать, что работодатели нормально относятся к онлайн-образованию. Главное — какие знания получает студент и как он будет применять их в своей дальнейшей работе, а каналы получения данной информации не играют существенной роли.</p><p>Отсутствие качественного профильного образования – не тенденция времени. Скорее, это отголоски прошлого, когда неразвитость многих сфер и отсутствие рабочих мест подталкивали специалистов браться за любую работу. При этом они могли быть финансово более успешными.</p><p>Так постепенно высшее образование обесценилось, и мы пожинаем плоды – поток выпускников онлайн-курсов, мечтающих об успешной карьере в ИТ.</p><p>Я ничего не имею против онлайн-обучения с поправкой, что вы учитесь по вузовской программе. Даже они успевают устаревать за 5 лет, пока студенты осваивают азы. Но высшее образование дает главное – глубину, системность мышления и понимание структуры. Можно актуализировать знания и помочь новичку втянуться в процесс, но азам профессии учить его бессмысленно.</p><p>Поэтому в ИТ-сфере вузовское образование всегда будет в приоритете. У бывших студентов, особенно если они еще в период обучения попадут на практику в правильную компанию, есть все шансы стать высокооплачиваемыми специалистами. А вот выпускники курсов с большой вероятностью отсеются. Нет глубины, нет практики.</p><p>Нам интересны кандидаты, склонные к постоянному обучению. Если из резюме видно, что человек постоянно учится, да еще и сам выбирает темы обучения, то это однозначный плюс. Тем не менее, сертификация после прохождения онлайн-курсов не всегда вызывает доверие, так что мы проверяем фактические навыки на этапе интервью.</p><p>Для отбора на стажировку или буткэмп достаточно обладать базовыми навыками программирования, поэтому многие кандидаты действительно приходят к нам после окончания онлайн-курсов. Качество подготовки таких ребят всегда разное и зависит, скорее, не от бренда онлайн-образования, а от способностей и упорства студента. Кроме того, нам очень важны личностные качества, потому что именно они определяют, насколько человек впишется в нашу команду, будет ли он способен обучаться и быстро расти. Мы ценим проактивность, стремление к саморазвитию, поиску новых решений, готовность сотрудничать и брать на себя ответственность. Если с этим всё в порядке, и человек хочет учиться, то знания легко можно подтянуть. В том числе и при помощи онлайн обучения.</p><p>Мы считаем, что за онлайн-обучением будущее. При этом нужно учитывать, что онлайн – среда для зрелых личностей с устоявшейся мотивацией. Для молодых людей важен не только контент, но и окружение, общение, потому что они, в том числе, помогают сформировать жизненные ориентиры и мотивы.</p><p>Количество доступных онлайн курсов растет очень быстро. Этот рынок хаотичен — нет единого стандарта образования. У площадок и курсов очень разные возможности, рекомендации и специализации. Наличие у кандидата профильного онлайн-образования — это плюс, показатель того, что он стремится к саморазвитию и самообучению. Это отличный способ развить знания с помощью актуального контента. Сертификат об обучении не всегда дает ответы на вопросы, чему человек научился.</p><p>Важна мера: если у соискателя в профиле будет 20 онлайн-курсов в совершенно разных областях — это может насторожить рекрутера: а знает ли кандидат, в какой области он хочет развиваться?</p><p>При решении о найме кандидата без опыта работы мы смотрим на его уровень мышления и способность решать поставленные задачи.</p><p>Есть специфические моменты в работе с соискателями, которые прошли курсы. Часто, выпускники курсов приходят к работодателю с завышенными ожиданиями, потому что на курсе им сказали, что они будут зарабатывать определенную сумму денег или без труда смогут устроиться, практически, в любую компанию. Еще такие ожидания возникают из-за того, что человек вложил деньги в обучение и ждет моментальной отдачи. Но сотрудников ценят за решения, которые они могут предложить здесь и сейчас, а не за количество сертификатов или ачивок с онлайн-курсов.</p><p>Чего не хватает соискателям после прохождения онлайн-курсов? Реального опыта, хороших проектов в портфолио и понимания, что одни курсы не делают тебя профессионалом.</p><p>При этом, многие ребята идут на курсы, чтобы систематизировать знания, которые получали самостоятельно и лучше разобраться в новой предметной области. А для многих — это просто отправная точка в профессии. Часть наших сотрудников начинала именно с онлайн-курсов.</p><p>Что касается самих курсов, есть несколько проблем, связанных с получением знаний онлайн.</p><ol><li>Качество обучения. Курсы курсам рознь. Периодически, мы сталкиваемся с примерами некачественных продуктов. Качество курсов очень разное, иногда достаточно низкое.</li><li>Неспособность людей учиться самостоятельно. Не каждый может заставить себя не просто прослушать курс, но и потом провести большую самостоятельную работу по практической части, прочитать дополнительные материалы, книги. Программы большинства онлайн курсов составлены таким образом, что на самообучение выделяется в несколько раз больше времени, чем на лекции или работу с наставником.</li><li>Отсутствие практики. Без закрепления знаний на практике сложно прийти в компанию и начать решать реальные боевые задачи.</li></ol><p>Вывод: выбирайте для себя наиболее комфортные условия обучения, но не забывайте практиковаться, например, на стажировках. Также можно подбирать задачи максимально приближенные к боевым. Например, изучите функционал любимого приложения, попробуйте реализовать какую-то часть, разобраться, как это можно сделать.</p><p>При выборе курсов внимательно изучайте программу, обращайте внимание на преподавателей, задачи, которые там будут решаться, обязательно уточняйте, каким образом ведется работа с наставником и есть ли она.</p><p>Онлайн-обучение бывает разным. Сравнивать онлайн-образование или курсы серьезных вузов с хорошей экспертизой (напрямую или на Coursera) с онлайн-курсами «Machine learning с «нуля» за 4 занятия» или «EMBA за 2 месяца» – нельзя.</p><p>По опыту хорошая база – это сочетание фундаментального образования с краткосрочными профильными курсами (в том числе онлайн). То, что человек дополнительно что-то изучает, говорит, что он тянется к знаниям, освоению новых предметных областей. Мы стараемся брать именно таких. Исключительно прошедших онлайн-обучение у нас нет. Возможно – пока, потому что новые реалии говорят о том, что доля обучающихся онлайн в ближайшие годы может вырасти.</p><p>На практике соискатели, прошедшие только онлайн обучение, мне встречались, но, чаще всего, выбор такой формы обучения был связан с невозможностью пройти обучение в вузе привычных форматах (очное/заочное). Есть приверженцы мнения, что высшее образование вообще не нужно. В медиа, киберспорте и креативной сфере, где я работала раньше, очень многое зависит от таланта, наличия «креативной жилки». Также встречала совершенно гениальных сейлзов и переговорщиков без высшего образования. Что касается технических, инженерных специальностей, то здесь без фундаментальной базы обойтись сложнее. А в научно-исследовательской сфере (R&amp;D), где потенциальные соискатели для нас это — люди науки – практически невозможно».</p><p>Я работаю с командами в направлении дизайна, в том числе продуктового. И один из самых востребованных способов изучения этой специальности — обучающие онлайн-курсы, доступные любому желающему независимо от возраста и опыта.</p><p>За долгий период работы я общался с разными кандидатами с сертификатами курсов: без высшего образования, с образованием и огромным опытом, но в совершенно другой области. И всех объединяло желание развиваться в сфере продуктового дизайна. Так вот, успешность собеседований с такими кандидатами напрямую зависела от желания погружаться в эту сферу и от опыта в проектах (неудивительно, правда?)</p><p>Как правило, на курсах дают базовые знания и много теории, а практические задания представляют собой обобщенные кейсы, которые не всегда учитывают особенности реальной продуктовой разработки. Поэтому в случаях, когда кандидат отправляет резюме с портфолио итоговых работ онлайн-курса, скорее всего, мы будем вынуждены ответить отказом. Причина простая: такой человек еще не сталкивался со сложностями, возникающими при работе с реальным продуктом, а на курсах не обучают решать настоящие проблемы.</p><p>Я не могу вспомнить кейсы, когда мы приняли кого-то в компанию только на базе прохождения подобного обучения, но в одной из команд коллега сменил должность после завершения онлайн-курсов. Это был запланированный планомерный процесс, и сам сотрудник понимал нюансы работы компании и стадии разработки. Мы приняли решение, что такой бэкграунд в сочетании с запланированным обучением, которое сразу применяется на практике, даст положительный результат. Процесс продолжался в течение полугода. В результате переход в команду продуктового дизайна прошел успешно!</p><p>В целом, у меня позитивное отношение к онлайн-образованию, потому что это удобно, доступно и актуально. Программы подобных курсов могут меняться достаточно гибко в зависимости от потребностей сферы, что помогает учащимся получать новейшие знания и быть на волне.</p><p>Последние события в мире наглядно показали, что для того, чтобы быть всегда востребованным специалистом, мы должны подстраиваться под любые обстоятельства, в том числе проявлять гибкость и умение приспосабливаться к изменениям. Пандемия достаточно повлияла на процесс обучения: школьников и студентов — абсолютно всех перевели на дистанционное обучение, а у остальных — появилось чуть больше времени, которое многие с радостью потратили на освоение новых профессий и повышение квалификации с помощью разнообразных онлайн курсов.</p><p>Онлайн курсы — это отличная возможность получить дополнительное образование находясь в любой точке земли, где, естественно, доступен интернет. Цель обучения у «студентов» абсолютно разная — получить новую профессию, дополнить свои знания новым материалом или вспомнить уже изученное ранее. И оценивать эффективность онлайн обучения стоит именно с этой позиции — какие задачи и цели были у «студента».</p><p>Если говорить о получении новой профессии, то онлайн курсы — это минимальное вложение, введение в предметную область и изучение основ будущей профессии.</p><p>После онлайн курсов уровень соискателя — джун (младший разработчик). Соискатели, прошедшие только онлайн обучение, как правило, не имеют опыта работы в команде на «живом» проекте, им не хватает опыта коммерческой разработки, а это значит, что им понадобиться больше время на то, чтобы влиться в проект. Правда, если «студент» ответственно подошел к процессу обучения, у него сильная теоретическая база.</p><p>Как известно, ИТ-команды работают по разным методологиям. И многие джуны не знакомы с такими подходами или имеют только общее представление о них, но профессиональный ментор и команда hr смогут быстро адаптировать новых сотрудников и успешно ввести в работу команды. Стоит отметить, что на фоне обычных джунов — джуны с курсами более привлекательные для любого работодателя.</p><p>Поэтому, при приеме на работу таких специалистов, необходимо быть готовым к тому, что придется вкладываться в дальнейшее развитие этого сотрудника. И тут все зависит от стратегии компании: или она готова вкладываться и растить людей на будущее (которые будут разделять ценности компании и нести их в массы) или компания рассматривает только состоявшихся специалистов.</p><p>При этом для работодателя не менее важно, на какой площадке соискатель прошел курсы – онлайн курсов огромное множество, а в период самоизоляции их количество выросло в 3 раза. И все они отличаются по составу преподавателей, практической составляющей, темам, включенным в курс и тд. Очень важна и длительность курсов – 2х дневная конференция конечно же много навыков не даст, курсы должны длиться несколько месяцев.</p><p>А вообще онлайн обучением сейчас уже никого не удивишь. Это действительно удобный формат, который очень экономит время обучающимся.</p><p>В нашей компании мы также не редко прибегаем к курсам повышения квалификации, причем обучение может запросить любой сотрудник компании в рамках программы бенефитов.</p><p>Руководство нашей компании, да и многие сотрудники верят в то, что необходимо делиться своими знаниями и накопленным опытом, своими кейсами и подробностями их разработки. Ведь это будущее IT индустрии. Поэтому, некоторые наши сотрудники преподают на площадках онлайн образования, проводят лекции и мастер-классы, выступают приглашенными спикерами и экспертами, а также преподают в школах. Помимо этого, наша компания уже несколько лет сотрудничает с известными онлайн-школами GeekBrains и OTUS. Ежегодно мы принимает участие в Дне карьеры и других профильных ивентах. На собеседования приходит очень много юных разработчиков и по результат интервью мы отметили у них хороший уровень подготовки. Некоторые из них успешно работают в нашей компании до сих пор.</p><p>Конечно, наличие классического очного технического высшего образования является большим плюсом, но ИТ-отрасль и разработка софта сфера относительно новая, требующая в эпоху повсеместных digital-проектов все больше и больше кадров. Согласно статистике, ежегодно очные ВУЗы оканчивают 60 тыс. выпускников по различным ИТ-специальностям, а отрасли необходимо, чтобы каждый год набиралось еще дополнительно 40 тыс. абитуриентов для восполнения дефицита. Природа не терпит вакуума. Сейчас на рынке труда появляется все больше ИТ-специалистов, которые пришли в разработку из совершенно других областей. Для них ИТ стали вторым осознанным витком карьеры. И часто путь в новую профессию лежит через курсы, в том числе онлайн. У нас в компании есть достаточно примеров, когда человек с изначально гуманитарным образованием успешно трудится в сфере разработки после прохождения удаленного обучения. Надо понимать, что прием на работу идет по результатам собеседования с техническим руководителем и прохождения детального практического тестирования, на котором проверяются реальные знания и навыки. Это прекрасно позволяет проверить необходимые компетенции. Например, у нас работают бывшие юрист, менеджер по продажам и даже врач, которые успешно строят новую карьеру в разработке.</p><p>Стать классическим профессиональным разработчиком ПО, просто пройдя курсы переподготовки, не получится. Я считаю, что невозможно создать хорошего инженера за 3 месяца или даже за год. Однако это не говорит о том, что путь в IT-индустрию для людей без технического образования закрыт. Сейчас в IT появились новые специальности, которых не существовало еще 10 лет назад, а также возросла потребность в нетехнических специалистах. К примеру, раньше специальности UX-дизайнер не было вообще, а бизнес-аналитики в таких количествах не требовались.</p><p>Таким образом, вряд ли будет разумно стремиться именно в разработку, не имея технического образования или сопутствующей базы. Скорее имеет смысл найти близкое вам направление и переквалифицироваться. К примеру, экономист может достаточно просто стать бизнес-аналитиком, статистик — специалистом по Data Science, менеджер любого направления — тестировщиком, графический дизайнер — UX/UI-дизайнером, специалист из любой сферы, хорошо разбирающийся в своей отрасли и бизнес-процессах своей компании, потенциально может стать руководителем проекта и так далее. Для этих целей как раз подойдут относительно кратковременные курсы.</p><p>Онлайн обучение – это современный тренд, от которого никуда не деться. Системы коммуникации позволяют делать обучение полным со всеми привычными форматами – лекциями, семинарами, практическими работами, коллективной работай. Традиционно технологичные компании первыми подстраиваются под новые форматы. Главное, чтобы человек реально был готов учиться и понимал, что он хочет добиться в жизни и профессии.</p><p>Я расскажу вам как человек, нанявших за свою практику более 30 журналистов. Знаете, лет 5 назад, я бы вам однозначно сказал — доверять только тем, кто окончил университет очно, 5 лет, чтоб как положено было. Заочники, и уж тем более те кто окончил университет дистанционно — лентяи, от которых эффективного решения твоих задач не жди.</p><p>Но сейчас я думаю совсем иначе. Разумеется, всегда бывают исключения. Но вот что я заметил. Люди, которые закончили онлайн обучения — чётче знают то, чего они хотят. В то время как люди, просидевшие 5 лет за партой высших учебных заведений вообще не представляют, зачем они учились, для чего они это делали и как им начать работать. Они пошли учиться потому что их родители где-то слышали, что таким специалистам платят много, или вон, сосед получил диплом программиста и сейчас уже дом достраивает, или соседка сказала и т.д.</p><p>Для людей, окончивших онлайн курсы, характерно чёткое понимание, что они хотят делать. Они хотят развиваться именно в этой сфере. И у них просто вагон мотивации. Такие сотрудники быстро адаптируются к новым условиям и очень скоро начинают показывать хорошие результаты. Простой пример. Человек, окончивший курсы видеомонтажа вряд ли придёт в компании и скажет, что хочет устроиться на позицию фотографа. Равно как и окончивший курсы флориста чётко понимает — на какую вакансию ему откликаться и куда пойти работать. Таким людям требуется пару месяцев практики и вот вам сотрудник высокого уровня.</p><p>Что касается меня. То я с радостью отдам предпочтение человеку, который раньше работал, скажем, в банке, окончил курсы журналистики и сейчас у него есть огромное желание начать работать — писать статьи и брать интервью. Накопленный багаж знаний позволит ему писать отличный материал в своей области знаний. Разумеется, знание русского языка никто не отменял.</p><p>Что сказать про сами онлайн курсы. Они бывают хорошие, бывают не очень. Не это важно. Важно стремление человека саморазвиваться. К сожалению, студенты вузов очень часто забывают этот факт, что они приходят в вуз для саморазвития, а не для того, чтобы преподаватели продолжали вдалбливать знания, как это делалось в школе. Раньше вузы ценились своими накопленными знаниями в своих сферах, библиотеками. Теперь же всё это есть в интернете. Было бы желание.</p><p>В целом, нам неважно, прошел человек только онлайн-образование или имеет и профессиональное. Лично мне при прочих равных больше импонирует соискатель с законченными курсами онлайн-образования. 90% таких соискателей приходят с горящими глазами, и они заинтересованы в том, чтобы применять знания на практике. И не стоит забывать, что онлайн-курсы стоят недешево, это тоже стимул.</p><p>Но при этом эффективность онлайна, так же, как и любого образовательного процесса, зависит от курса, от подхода преподавателей и от того, насколько ответственно человек сам подходил к процессу: активно ли общался с наставниками, старался ли глубже погрузиться в программу.</p><p>Но в целом, нам в компании при приеме на работу нам не так важно, где соискатель получал образование, важнее знания, которые он вынес. У нас есть система тестов, состоящая из трех этапов:</p><ol><li>Первичное собеседование с тимлидами.</li><li>Тестовое задание (техническое задание, проверка, насколько хорошо человек разбирается в специфике будущей работы).</li><li>Итоговое собеседование для оценки soft skills. Это помогает понять, подходит ли нам человек.</li></ol><p>Если мы берем соискателя в команду, то будем вкладываться в его развитие и дальше. Все равно различия, если они есть, сгладятся за первые месяцы работы. Так что глобальных различий между соискателями с разным образованием нет.</p><p>На что сегодня работодатель обращает внимание при оценке соискателя?</p><p>Базовое образование по-прежнему играет важную роль. А вот главный индикатор эффективности обучения на онлайн-курсах — это не сертификат, а реальные практические задачи, которые может решить человек после их окончания. В целом, работодатели положительно воспринимают случаи, когда базовые знания программирования, дата-аналитики, Data Science человек получает на онлайн-курсах. И с дипломом экономиста вполне можно стать программистом.</p><p>Дефицит специалистов в сфере ИИ провоцирует регулярный спрос со стороны технологических компаний. Рынок уже практикующих экспертов не успевает закрыть эти потребности, поэтому представители компаний рассматривают перспективных выпускников как для стажировок так и для постоянной работы.</p><p>Чтобы подготовить наших выпускников к реалиям трудоустройства мы регулярно изучаем запросы рынка и ожидания работодателей. Регулярная практика центра — встречи с представителями крупных компаний, к которым будущий выпускник будет иметь шанс трудоустроиться. Еще на этапе обучения студенты разрабатывают проекты, созданные на основе реальных кейсов компаний-работодателей. Это служит и вдохновением для ученика и показателем соответствия для потенциального работодателя.</p><p>Онлайн обучение — это тренд нашего времени, оно активно развивается, т.к имеет множество преимуществ, основные из которых это доступность, экономия времени, практикоориентированность и т.д. Прохождение онлайн-обучения для расширения имеющихся знаний или переквалификации (освоения новой профессии) в IT-компаниях оценивается положительно, так как это показывает заинтересованность обучающегося в профессиональном развитии.</p><p>При этом наш опыт показывает, что есть и недостатки онлайн-образования.Наша компания на протяжении нескольких лет на регулярной основе запускает школу веб-разработки — двухмесячный офлайн курс профессионального развития для начинающих разработчиков. Оставляя фидбек, бОльшая часть выпускников отмечают ценность офлайн занятий: такая форма даёт возможность «живого» взаимодействия в команде, погружения в реальный рабочий процесс, позволяет оперативно получить развёрнутую обратную связь от ментора. Сейчас мы трансформируем формат нашего обучения и переводим часть занятий в онлайн. При этом обязательно сохраним часть занятий в офлайне.</p><p>Вывод: онлайн образование помогает приобрести узконаправленные знания, но при этом чувствуется недостаток практической составляющей обучения, нет полного погружения. Соискатели и уже работающие сотрудники чувствуют себя более уверенно на собеседованиях и в рабочих ситуациях, когда они побывали в «боевой среде», а не просто владеют теоретическими знаниями.</p><p>Главное преимущество тех, кто недавно закончил онлайн-обучение, — они владеют самыми свежими и актуальными знаниями, которые только что получили. Но, если у человека при этом совсем нет практического опыта, этих знаний не всегда достаточно — их нужно «приземлять» на практике. Поэтому мы всегда горячо приветствуем, когда соискатель, помимо сертификата о прохождении обучения, может поделиться с нами разработанными и реализованными проектами либо, по крайней мере, результатами прошлой стажировки. Всё это увеличивает шанс на зачисление в штат.</p><p>В Ozon мы также активно развиваем онлайн-курсы — у нас стартует школа Go, есть программа обучения в области анализа данных Ozon Masters. Они ориентированы на практические занятия и позволяют студентам получить реальный кейс в портфолио.</p><p>В целом, мы считаем, что онлайн-курсы — отличный способ достаточно оперативно приобрести новые знания. Более того, это оптимальное решение для людей из регионов, где не всегда можно выбирать из привлекательных программ. Возможно, онлайн-формат больше страдает от вовлеченности, чем офлайн — но тут все зависит от студента.</p><p>Мы высоко оцениваем знания, которые дают онлайн-курсы и рады выпускникам самых различных программ. В некоторых направлениях IT, как, например, в Data Science, нужна более фундаментальная образовательная база, но мы в любом случае ставим ключевыми критериями как теоретические знания, так и ранее полученные практические навыки.</p><p>Наша компания занимается тестированием ПО, а этому в вузах уделяют не так много внимания. Поэтому вопрос развития кадрового потенциала для нас всегда актуален. Большая часть всего обучения по тестированию инициируется ИТ-компаниями на базе собственных учебных центров. Мы своими силами обучаем соискателей для их дальнейшего трудоустройства и развития. В компании есть отдельные курсы по основам ручного, автоматизированного и нагрузочного тестирования.</p><p>Кроме того, последние несколько лет активно развивается направление онлайн-курсов на различных платформах, выпускников которых мы также рассматриваем в качестве кандидатов. Их преимущество заключается в том, что они уже понимают основы тестирования и, приходя в компанию, быстрее ориентируются и вливаются в рабочий процесс. Например, после программы «Инженер по тестированию» в Яндекс.Практикуме кандидаты уже приходят с практическим опытом решения реальных кейсов.</p><p>Конечно, когда у студента есть технологическая база, полученная на ИТ-факультете в вузе, он лучше понимает фундаментальные основы программирования. Это безусловно помогает глубже разобраться в работе инструментов тестирования, особенно, если речь идет об автоматизированном и нагрузочном тестировании. Но есть много примеров, когда вне зависимости от полученной в университете специальности кандидат после обучения на онлайн-курсе быстро развивается в компании. Тут важно отметить, что такие сотрудники выделяются, в том числе, и своими личными качествами, которые помогают им успешно переквалифицироваться. Это постоянное стремление к новым знаниям, быстрая обучаемость и умение быстро адаптироваться к новой среде.</p><p>Я бы не стал строго отделять соискателей, прошедших только онлайн-обучение. Многое зависит от качества курсов. Среди важных критериев эффективности: глубина и форма подачи материала, качественная обратная связь от наставников и код-ревьюеров, удобные тренажеры для закрепления практических навыков.</p><p>В целом, переход в онлайн — это глобальная и закономерная тенденция. Специфика работы в IT и широкий набор инструментов, который постоянно дополняется и совершенствуется, уже сейчас позволяют решать большинство задач дистанционно.</p><p>Среди плюсов онлайн-образования — возможность закончить не один, а несколько курсов. Так, кандидаты, разбирающиеся в смежных специализациях, выделяются большей эрудированностью и лучше проявляют себя на собеседованиях. Прохождение аналогичных курсов от разных авторов помогает учесть несколько альтернативных точек зрения и сформировать собственную позицию. Ещё одно преимущество — возможность выбрать узкую специализацию и уровень сложности. Концентрация на наиболее важных аспектах и последовательное погружение в тему дают большую глубину понимания предметной области.</p><p>С другой стороны, у выпускников интернет-курсов мало опыта эффективной коммуникации, а умение работать в команде складывается как раз из непосредственной практики взаимоотношений с коллегами. Очное обучение также не полностью решает этот вопрос, но всё же личное общение больше способствует социализации студентов. Помимо этого, даже непрофильное высшее дает культурный базис — и это чувствуется на собеседованиях. Поэтому отрицать важность традиционного образования точно не стоит. На мой взгляд, наиболее эффективное решение — внедрять комбинированную форму обучения, где онлайн-лекции совмещаются с очными практикумами и командными сессиями.</p><p>Мы общаемся с HR-специалистами и тимлидами команд по поводу трудоустройства наших студентов и выпускников. Для многих HR-специалистов сам факт прохождения онлайн-курса ― это не точка принятия решения, скорее, бонус, который подкрепляет первое впечатление. Нанимающие менеджеры внимательнее относятся к онлайн-курсам в резюме, но это не первое, на что они обращают внимание.</p><p>Здесь важную роль играет длительность обучения. Если работодатель видит, что курс длился 10 месяцев, для него это равносильно полноценному обучению. Второе, на что обращают внимание, ― это завершенные, пусть даже учебные, проекты. Поэтому так важно не просто добавить название курса в резюме, а рассказать, какие проекты удалось сделать, что это были за проекты, чему студент научился, добавить комментарии наставника, если они помогут составить впечатление о проделанной работе.</p><p>Работодатели, которые нанимают студентов онлайн-курсов, отмечают, что они уже умеют работать онлайн, могут быть эффективными удаленными сотрудниками. За время обучения они становятся более дисциплинированными и самоорганизованными. Сейчас, когда большинство людей работают удаленно, это большой плюс.</p><p>Мы регулярно общаемся с работодателями, чтобы понимать, какие навыки сейчас требуются от начинающих специалистов. Прежде чем запускать программу обучения, проводим <a href="https://yandex.ru/company/researches/2019/it-jobs">исследование рынка</a>, чтобы выяснить, какие профессии востребованы, какие именно навыки и инструменты нужны работодателям, готовы ли они брать на работу специалистов без опыта и т.д..</p><h3>Как работодатели относятся к соискателям, прошедшим только онлайн-обучение?</h3><p>К онлайн-обучению как таковому компании в принципе относятся положительно. Но есть несколько нюансов:</p><ul><li>Что за обучение? «Полноценный» курс на 12 месяцев или изучение C++ за неделю по часу в день — разница большая.</li><li>Прошел ли человек курс полностью? Если нет, то может сложиться впечатление, что человек не доводит дела до конца или ему это неинтересно.</li><li>Есть ли практический опыт? Курс может давать только теорию, и если вы её никак не закрепляете, то с высокой долей вероятности вы всё забудете. Кроме того, работодатели не против увидеть доказательство того, что вы действительно чему-то научились.</li><li>Насколько релевантны курсы? Вы можете прийти на должность условного фронтенд-разработчика и показать сертификаты о прохождении курсов по фронтенду, data science, экономике и т. д. Это тоже может насторожить работодателя, ведь это может говорить о том, что вы ещё не определились с тем, чем хотите заниматься.</li></ul><p>Пройденные курсы будут плюсом при трудоустройстве. Тем не менее, если вы проходили только онлайн обучение (и не работали в этой сфере ранее), то, скорее всего, претендовать на позицию выше джуна не получится.</p><p>В любом случае, вряд ли вас кто-то (не) возьмёт на работу, исключительно глядя на пройденные курсы и наличие/отсутствие фундаментального образования и опыта работы — для этого и есть собеседования, на которых можно проверить ваши soft и hard skills.</p><p>Напоминаем, что вы можете <a href="https://docs.google.com/forms/d/e/1FAIpQLSdSanNvlfPRrSyQWfnoGPflSVwO4KctnjOdEKHzuxjCmFX2dA/viewform">задать свой вопрос</a> экспертам, а мы соберём на него ответы, если он окажется интересным. Вопросы, которые уже задавались, можно найти в списке выпусков <a href="https://tproger.ru/expert ids/">рубрики</a>. Если вы хотите присоединиться к числу экспертов и прислать ответ от вашей компании или лично от вас, то пишите на <a>expert ids@tproger.ru</a>, мы расскажем, как это сделать.</p>]]></content:encoded>
    </item>
    <item>
      <title>Что использует эффективный руководитель проекта в IT — рассказывают эксперты</title>
      <link>https://tproger.ru/experts/tools-for-project-manager</link>
      <comments>https://tproger.ru/experts/tools-for-project-manager?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Никита Прияцелюк]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/experts/tools-for-project-manager</guid>
      <description><![CDATA[<p>Эксперты называют инструменты и практики, которые помогают руководителю проекта сократить бесполезную работу и повысить эффективность работы.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/experts/tools-for-project-manager">Что использует эффективный руководитель проекта в IT — рассказывают эксперты</a>»</p>]]></description>
      <category><![CDATA[Инструменты]]></category>
      <category><![CDATA[Советы]]></category>
      <category><![CDATA[Управление проектами]]></category>
      <category><![CDATA[Ответы экспертов]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Fri, 26 Jun 2020 10:46:12 GMT</pubDate>
      <content:encoded><![CDATA[<p>Для эффективной работы руководителю проекта могут пригодиться различные инструменты, которые позволят не тратить время на бесполезную работу. О том, что может пригодиться руководителю, мы решили спросить у экспертов.</p><p>Что использует эффективный руководитель проекта в IT?”</p><p>Все методологии управления проектами говорят о том, какие действия нужно предпринимать, чтобы этот процесс был эффективным. PMP, Prince2 или другие раскладывают перед РП весь комплекс накопленных другими руководителями сведений и инструментов, однако не все из них будут одинаково полезны. Именно в выборе тех практик, которые принесут наибольшую пользу, кроется вариативность проектной деятельности. Если вы молодой РП, который только думает о том, в какую сторону развиваться, я бы посоветовал обратить внимание на Prince2: его компоненты больше походят на конкретные инструменты и руководства к действию, которые можно брать и применять прямо сейчас.</p><p>В нашей компании, даже ведя проекты по стандартным методологиям, мы все чаще применяем инструменты из мира Agile. Это Kanban-доски для управления задачами, ежедневные митапы с командой для планирования работ на день, промежуточные демо для заказчиков. Для организации командного взаимодействия мы используем Microsoft Teams вместе с Trello.</p><p>Самому руководителю проектов тоже нужно поддерживать собственную эффективность и подавать пример своей команде. Эффективно управлять задачами помогут таск-менеджеры. Я, например, использую Things на всех своих устройствах. Вместе с популярной методологией Get Things Done (GTD) это позволяет не терять из виду ничего важного и быстро подстраиваться под изменяющиеся приоритеты.</p><p>Многие популярные сегодня практики управления проектами ориентированы на гибкость. Но прежде чем внедрять любую из них в своей команде, руководителю проекта стоит изучить Agile-манифест – основу основ всех «гибких» подходов. А в нем говорится не только о сотрудничестве с заказчиками и преимуществе итогового продукта перед документацией, но и о том, что работать по такому подходу сможет только мотивированная команда профессионалов, готовых к изменениям. Крутые проекты реализуют люди, поэтому умение собрать нужную команду – это один из ключевых навыков для любого руководителя независимо от того, какой подход к управлению он предпочитает. Я бы порекомендовал использовать не только свой опыт в работе с людьми, но и выстроить эффективную работу с HR-партнером, который поможет найти специалистов с нужными навыками и качествами.</p><p>Впрочем, с «идеальной» командой может работать, пожалуй, каждый. На практике же дело обстоит так: все люди разные, и у каждого есть свой темп работы, свои особенности характера. Поэтому второй важный для РП навык – умение выстроить в команде продуктивную работу и найти подход к каждому, кто в нее входит. Сюда относятся: мотивация сотрудников, расстановка приоритетов, распределение ресурсов и задач, контроль их выполнения – причем так, чтобы у команды не было ощущения давления. Мы, например, используем Jira для работы с задачами и диаграмму Ганта: этот инструмент помогает найти возможные точки пересечения между несколькими проектами и в результате соблюсти между ними баланс, грамотно распределив время специалистов.</p><p>Отдельно скажу об умении «взрастить» в сотрудниках гибкость и готовность к изменениям. Неважно, работаете вы по Agile-подходу или нет – многие ИТ-проекты на старте не имеют конечной точки. То есть задачи могут меняться и дополняться, сроки сдвигаться – это работа в условиях неопределенности, что пугает некоторых специалистов. Поэтому задача РП – создавать в команде нужный психологический настрой. Проводите ежедневные «летучки», сообщайте все новости от клиента – чем больше апдейтов получает команда, тем больше у нее понимания, куда все движется, и уверенности в отличном результате.</p><p>Стоит разделить инструменты на те, что используются для самоорганизации руководителя проекта и те, что помогают управлять работой команды. Для собственной самоорганизации рекомендую посмотреть Todoist (платную версию) и Notion.</p><p>Для управления командой советую использовать JIRA с дашбордами или Redmine. Обязательно нужно вести базу знаний: для этого подойдет Confluence. Также рекомендую посмотреть на прекрасный сервис notion.so, это очень удобный инструмент, особенно для небольших проектов. Не забываем и про MS Project.</p><p>Для распределенной работы нужны дополнительные инструменты. MS Teams, Zoom отлично справятся с видеосвязью. Платный Slack, MS Teams или бесплатный Telegram подойдут для быстрого общения. Для хранения документов рекомендую MS Sharepoint или SVN, если вы ограничены в финансах.</p><p>Главный совет: найдите сильную команду, выберите вместе с ней правильный подход к работе, а дальше не мешайте ей работать ? Выбирайте процессы, исходя из особенностей проекта. Где-то, как ни странно, Waterfall работает намного лучше Scrum.</p><p>В нашей компании специалисты проектного офиса управляют инфраструктурными ИТ-проектами для крупных международных компаний. Размеры проектов могут варьироваться от небольшого расширения сетевой инфраструктуры до полной миграции дата-центров и обновления программного обеспечения для нескольких десятков тысяч рабочих мест. Также у нас есть проекты, где часть поставок может быть связана с разработкой либо доработкой программного обеспечения заказчика.</p><p>Так как в значительной части проектов требования жестко зафиксированы, мы используем методологию управления проектами, основанную на Prince 2. Это классическая «водопадная» методология. В проектах разработки, либо гибридных проектах, где для достижения требуемых результатов нужно двигаться итеративно, мы используем «гибкие» методологии: чаще всего SCRUM, также применяем элементы DSDM и SAFe.</p><p>Инструменты могут варьироваться в зависимости от проектов и заказчика. Исторически так сложилось, что мы активно используем стек продуктов от Microsoft – MS Project, Power BI, Teams Foundation Server, Teams, Sharepoint. Не так давно запустили пилотный проект по созданию единой базы знаний на базе Atlassian Confluence, в части проектов разработки используется Atlassian Jira.</p><p>При выборе инструментов важно, чтобы команда могла оперативно обмениваться информацией в единой среде и тратить минимум времени на перенос данных между источниками и инструментами. Там, где это возможно, мы стараемся обеспечить максимальную интеграцию продуктов и сред. Например, в серии проектов с одним из заказчиков мы выполнили автоматизацию переноса информации между разными информационными системами с применением RPA.</p><p>Эффективное управление проектом складывается из ясного понимания требований заказчика, корректной оценки трудоемкости и качественных коммуникаций с командой проекта. Соответственно, ключевые задачи будут связаны с согласованием сроков и бюджета проекта, обеспечением команды проекта требуемыми специалистами и предоставлением необходимой им информации. Ключевые навыки руководителя проектов у нас — это способность на старте определить ключевые коммуникации и обеспечить заинтересованные стороны требуемой информацией в заданные сроки.</p><p>С годами у каждого руководителя проектов вырабатывается свой список любимых и необходимых инструментов, с которыми он переходит из проекта в проект и считает именно их самыми эффективными. Ниже представлен мой набор основных подходов и инструментов, который не претендует на полноту, но, я надеюсь, поможет вам в ваших проектах.<br />Хочу обратить ваше внимание, что при использовании того или иного инструмента, необходимо четко понимать его смысл, а также задачи, которые вы хотите решить с его помощью. Так как непонимание в конечном итоге может нанести вред проекту.</p><h3>Набор инструментов и подходов «MUST HAVE»</h3><p>По моему мнению, любой проект по разработке программного обеспечения длительностью более месяца должен иметь:</p><p>Репозиторий кода (при любой длительности проекта) — тут все элементарно, если вы утратите разработанные материалы (спецификации, код, инструкции, дизайн и т.д.), то проект придется начинать сначала. Также отсутствие репозитория неимоверно усложнит работу команде разработчиков. Следовательно он должен быть на всех проектах, а его отсутствие — это неоправданный риск.</p><p>Багтрекинговая система — или как она по-русски называется «Система отслеживания ошибок». Система выступает своего рода кровеносной системой проекта, она позволяет ставить задачи, отслеживать их выполнение и ход проекта в целом, собирать различную статистику, управлять приоритетами и множество других вещей.</p><p>Wiki — хранение всей часто используемой информации по проекту (инструкции, список команды, отпуска членов команды, адреса стендов, реквизиты тестовых учёток и много чего ещё). Все хранится в одном месте, структурировано и не требует много времени на поиск.</p><p>Continuous Integration (CI) — практика разработки программного обеспечения, которая заключается в слиянии рабочих копий в общую основную ветвь разработки несколько раз в день и выполнении частых автоматизированных сборок проекта для скорейшего выявления потенциальных дефектов и решения интеграционных проблем.</p><p>Некоторые команды не спешат внедрять CI, ссылаясь на отсутствие времени, но, на самом деле, они съедают в разы больше времени не используя этот инструмент.</p><p>Статус митинги — в разных компаниях их часто называют по разному, но суть от этого не меняется. Такие митинги проводят с определенной периодичностью, желательно каждый день в первой половине дня и в определенное время, на них каждый член команды коротко рассказывает чем занимался, что планирует делать и есть ли у него какие проблемы. Эти митинги можно проводить как очно, так и удаленно посредством современных сервисов групповых звонков. Основная суть — оперативно получать информацию о ходе проекта и также оперативно вносить коррективы, а также повышение уровня информированности членов команды о ходе проекта (повышает их мотивацию). Эти митинги не должны занимать много времени, максимум 15 минут, на митингах не обсуждаются детали и проблемы, а только фиксируется их наличие, чтобы вы после могли собраться только с теми людьми, кто необходим и не тратили время остальных. Если команда большая, то дробите митинги: менеджер проводит статусы с руководителями направлений, а они со своими людьми.</p><p>Достаточно часто я наблюдаю, как руководители проектов:</p><ul><li>проводят статусы долго — это очень выматывает даже тех, кто не участвует в обсуждении и их производительность в этот день падает, не говоря уже о том, что пока они на статусе, они не делают свою работу;</li><li>часто отменяют\переносят\опаздывают с началом — это все убивает смысл этих собраний. Такие ситуации должны быть исключением.</li></ul><h3>Набор инструментов и подходов «Personal»</h3><p>Также хочу перечислить несколько подходов, которые облегчают жизнь руководителя IT проекта и которыми мы в компании пользуемся по необходимости:</p><ul><li>Если планируете fix-price проект, то не ленитесь и планируйте его сразу в MS Project. Только этот продукт позволяет всесторонне оценить сроки, стоимость, какие ресурсы на какой стадии вводить и множество других аспектов. О полноценном аналоге этого продукта я не слышал.</li><li>Онлайн калькуляторы дат. Такие сервисы позволяют оперативно высчитывать рабочие дни относительно производственного календаря, что часто экономит много времени (сколько осталось рабочих дней до определенной дата, сколько рабочих дней между двумя конкретными датами и т.п.).</li><li>Облачные сервисы заметок. Совершенно точно найдётся информация, которую вы не сможете хранить на Wiki проекта, в этом случае эти сервисы придут вам на помощь и обеспечат её доступность даже вне офиса.</li><li>Фиксация статусов. На статусах с командой или заказчиком постоянно возникают задачи, которые нужно выполнить или проконтролировать. Весь статус не имеет смысла протоколировать, а вот записать кто, что вам обещал и к какому числу — необходимо. Из-за обилия постоянно поступающей информации, если её не записывать, в голове достаточно легко возникает мешанина. Для каждого типа статуса можно вести свою табличку, где в первом столбце фиксируется дата статуса, во втором вопросы, которые вы хотите поднять на совещании, а в третьем до чего договорились, в нём же фиксируются и задачи. Опять же лучше вести эту табличку в облачном сервисе заметок.</li><li>Удаленный доступ к рабочему компьютеру. Руководитель проекта является одним из критических членов проектной команды, если он заболеет или уволится, это может привнести много проблем на проекте. От второго сложно защититься, а от первого надо защищаться в первую очередь самому менеджеру. Если он заболеет, он должен быть уверен, что сможет хотя бы в ограниченном объеме обеспечить управление проектом удаленно из дома и для этого лучше озаботиться заранее и настроить удаленный доступ к рабочему компьютеру.</li><li>Команда поможет. Много раз наблюдал ситуации, когда на проекте возникает проблема и менеджер бежит к руководству или начинает поиск внешнего эксперта для её решения, но при этом не удосуживается донести до команды все детали и спросить их есть ли у них идеи по этому поводу. Команда это уже погруженные в контекст и детали люди. Вынося проблему на общее обсуждение с командой, вы часто получаете вариант элегантного решения от профессионалов своего дела. Не упускайте этот шанс.</li></ul><p>Постарался поделиться теми инструментами и практиками, которыми пользуюсь сам , снижая проектные риски и облегчая свою деятельность и команды.</p><p>Если вы хотите разобраться в этом вопросе глубоко, то вам повезло, руководители проектов прошлого озаботились и создали институт управления проектами (PMI — Project Management Institute), который в свою очередь разработал свод знаний по управлению проектами (PMBOK — Project Management Body Of Knowledge). На данный момент уже доступно его шестое издание 2017 года. Этот свод знаний универсальный и подходит не только IT проектам.</p><p>Любой проект состоит из большого количества задач. Для того чтобы их структурировать и сохранить смысл, перед началом проекта важно составить Mind map. Это незаменимый инструмент для генерации идей и выделения общего и частного. Mind map помогает подготовиться к переговорам, определить желаемые и альтернативные результаты встреч. Он бывает в формате карты решений, проекта или карты пресейла. Сервисы и программы можно найти на сайте <a href="https://www.mindjet.com/">Mindjet</a>.</p><p>Во время работы над проектом, чтобы ничего не забыть, целесообразно использовать программы-напоминания: приложение ToDoIst, голосовые заметки с возможностью установки задач на день/неделю с датой напоминания.</p><p>На втором этапе, после формулирования плана, необходимо оценить возможные риски с помощью матрицы рисков или матрицы вероятности и воздействия при планировании каждого релиза, который состоит из двух осей − вероятности и степени риска. В основном риски оцениваются по срокам, бюджету, качеству релиза. Очень важно обсуждать с заказчиком все потенциальные проблемы − как только появляется новый риск, он вносится в таблицу, определяется их принятие/непринятие участниками проекта.</p><p>Еще один способ − анализ дерева решений, который позволяет рассмотреть несколько вариантов развития ситуации и помогает выбрать наиболее подходящий. Существует много онлайн-сервисов для составления подобных графиков, например, привычный MS Visio. Также можно воспользоваться универсальным методом для периодического общего анализа факторов – SWOT-анализом или классической иерархической структурой рисков, распределенных на категории, общие для каждого проекта (Risk Breakdown Structure).</p><p>На следующем этапе важно уметь управлять сроками и ресурсами проекта. Большинство руководителей используют диаграмму Ганта, MS Project и GanttProject. Диаграмма Ганта незаменима для визуализации временного хода проекта, планирования сроков проекта для всей проектной команды, визуализации загрузки команды – каждый член команды видит свои задачи.</p><p>Для упрощения работы команды полезно использовать Trello – бесплатную программу по управлению бэклогом и планированию релизов. На единой доске можно добавлять задачи, отслеживать сроки их выполнения, назначать ответственных. Trello отлично подходит для проектов Agile, но не совсем адаптирован под «водопадную» модель разработки. Также отличным дополнением к Trello может служить Jira как инструмент для более глубокой детализации задач. В ней можно отслеживать историчность изменений, а также строить графики и следить за ходом выполнения задач.</p><p>Для ускорения и упрощения процессов согласований/утверждений заключений и подходов используется матрица согласующих, в которой указаны задачи клиента и подрядчика.</p><p>В нашей компании я управляю маркетингом и очень часто каждый проект запускается командой от 3 до 10 человек. Мои любимые сервисы для управления проектами, чтобы ни в чем не запутаться:</p><ul><li>Notion — для моего собственного списка задач, написания ТЗ, подготовки смет — в ноушене есть возможность сортировать все по папкам с любым уровнем вложенности. Это значит, что у меня есть одна папка проекта и в ней буквально все: таблицы со сметами, список задач, ТЗ для разных специалистов. При желании можно даже делать списки, как в трелло</li><li>Trello — для ведения работы над статьями на Хабр и остальным контентом. Очень важно понимать, на каком этапе каждая статья, кто над ней работает, где подключается редактор или верстальщик, кто конкретно работает над статьей сейчас</li><li>Google docs — для работы с людьми, которые не переваривают Notion. Часть команды предпочитает работать там, я стараюсь, чтобы всем было удобно</li><li>Таймер Pomidorko, для эффективности. Когда я не могу сосредоточиться на задаче, то включаю таймер, который отсчитывает ровно 25 минут. В эти 25 минут надо заниматься только одной задачей, не отвлекаясь вообще ни на что — пусть там хоть пожар начнется, отвлекаться нельзя. Очень помогает сдвинуть работу с мертвой точки,</li><li>Slack — наш корпоративный мессенджер</li><li>Miro — сервис для рисования диаграмм, иллюстраций, планов, чего угодно. Это очень крутой и мощный инструмент, которым пользуются во всем мире, а делает его команда русских ребят из Перми. Недавно мне пришлось рисовать схему комнаты и расположение в ней элементов для квеста, который мы готовим для клиентов — в Miro это заняло буквально 20 минут</li><li>Canvas — чтобы делать обложки видео для YouTube, сторизы в Instagram, баннеры. Иногда в Canvas можно нарисовать стильный баннер самому, просто перетягивая элементы и не тратить время на написание ТЗ для дизайнера, круги правок и ожидание, когда все нарисует в Фотошопе.</li></ul><p>В первую очередь, стоит отметить Task-менеджер Jira. С его помощью производятся все постановки задач в большинстве отделов. Это очень удобный сервис, в нем видно постановщика задач и их срок. Jira зарекомендовал себя довольно эффективно.</p><p>Помимо него используется сервис Miro, который работает на этапе проектирования продукта. Им пользуются product-менеджеры. После создания описания продукта в Miro задачи перетекают в сервис Figma, с его помощью проектируются интерфейсы. После того, как интерфейсы спроектированы, сотрудники переходят в вышеупомянутый сервис Jira, где устанавливаются сроки, исполнители и этапы задачи.</p><p>Затем задача проекта передается в Confluence. Это узкоспециализированный софт для программистов — там абстрактные задачи переходят в конкретные задания, написанные на языке программистов. После этого задача фактически считается выполненной.</p><p>Помимо этого, в продуктовых отделах, в отделах технической поддержки, в отделах продаж используются различные Task-менеджеры, например, Trello. В отделе продаж используется CRM-система Amo или Bitrix, или любые другие.</p><p>В любом случае нужно понимать, что без автоматизации большинства процессов IT-компании работать тяжело.</p><p>Есть две группы подходов к управлению разработкой: проектный и гибкий. Например, scrum, по которому мы работаем. Scrum наиболее эффективен в условиях неопределенности и на уделенке. С ним не нужно изобретать велосипед, достаточно лишь адаптировать под свои задачи.</p><p>Для этой методологии требуется минимальное количество инструментов:</p><ul><li>командные чаты с возможностью видео-звонков: у нас Slack/Telegram, для звонков чаще Zoom;</li><li>task tracker — у нас jira;</li><li>пространство для совместной работы — miro, notion/confluence, Google Docs.</li></ul><p>Что касается постановки целей, то нам подошла методология Objectives and Key Results, согласно которой цели формулируются максимально ярко и таким образом сильнее мотивируют, а ключевые результаты этих целей прописываются в виде конкретных метрик.</p><p>Если проектная команда хорошо понимает свою цель (OKR) и регулярно себя корректирует на пути к ней (Scrum), то все должно получиться!</p><p>Если говорить об основных инструментах, управление любым проектом начинается с таск-трекера. Мы используем Azure, весь учет времени разработчиков, дизайнеров, верстальщиков и тестировщиков происходит именно там. На самом деле, инструмент как таковой не важен – они все умеют примерно одно и то же. Самое главное – настроить доску спринта и распределение задач по статусам так, чтобы сразу было понятно, на каком этапе разработки находится та или иная фича.</p><p>Каждая команда сама для себя определяет необходимое количество и качество используемых инструментов в зависимости от задач и специфики проекта. Например, мы пользуемся Trello для регулирования занятости тестовых стендов (у нас их 6). Это наглядно и удобно: сразу видно, какие задачи в тот или иной момент находятся в стадии тестирования (это для менеджера), какие стенды свободны, и куда можно выложиться (это уже для разработчика).</p><p>На самом деле, нет никакой универсальной чудо-технологии или инструмента, которые помогли бы всем и всегда. Самое важное – грамотный people-менеджмент: ежедневные стендапы с коллективным разбором проблем каждого члена команды, one-to-one c каждым разработчиком в части обсуждений конкретных задач и путей их решения. Индивидуальная психотерапия для каждого и групповые сессии в случае конфликта внутри команды – тоже одна из ключевых задач эффективного руководителя.</p><p>Как утверждают HR-специалисты, есть люди – процессники, а есть – результатники. Конечно это не означает, что одни более эффективны, а другие менее. Но от того, что держит в фокусе руководитель команды разработчиков, зависит IT-команды. И, конечно, существуют инструменты, которые позволяют влиять на эффективность процесса разработки.</p><p>Сразу подчеркну: универсального решения в этом вопросе не существует, и готовые инструменты могут вам не подойти (а, например, потребуется разработка собственных, и для крупной компании эта мера может быть оправданной).</p><p>Я советую обратить внимание на два продукта: Jira и Confluence. Это многофункциональные сервисы, которые существенно упрощают командную работу, позволяют отслеживать ошибки ,проводить тестирование и т.д.</p><p>Возможно, они вам подойдут, но даже если нет, они дадут вам много полезного и вы сможете проще понять, какой инструмент вам нужен. Но самый главный инструмент – это ваше сердце.</p><ol><li>Для удобного планирования, начиная с верхнего уровня, и постепенного погружения в детали подойдут любые тулы (в том числе платные) для рисования CJM, HLD, Mindmaps.</li><li>Детальные задачи, распределенные по зонам ответственности, удобно централизованно отслеживать через трекеры (JIRA) или Kanban-доски (Trello).</li><li>Сейчас одна из сложностей в том, что каждый предпочитает свой мессенджер. Но в рамках проекта лучше использовать что-то одно. Например, единый коммуникационный сервис Teams.</li><li>Старый добрый Excel, как бы смешно это не звучало, часто приходит на помощь, когда нужно оперативно что-то спланировать, посчитать, задокументировать и т.п.</li><li>Любые процессы, планы, решения целесообразно доводить до команды. Мы за полную прозрачность. Удобно использовать Power Point для наглядности.</li></ol><p>Главное, помните, что какие бы продвинутые системы и приложения не использовались, сами по себе они не помогут выполнить работу в срок.</p><p>Эффективность проектного менеджмента напрямую зависит от грамотной мобилизации проекта, планирования, контроля и взаимодействия с командой. Уделите большое внимание качественному старту, это заложит фундамент для будущей эффективности и управляемости. Качественное планирование, внимательный контроль статуса, управление людьми – основные инструменты менеджера проекта, приводящие его к эффективности. Важен также единый механизм взаимодействия внутри команды, между группами команд и внешними командами. Когда процессы едины, ими проще управлять. Кроме того, важна мотивация, в основу которой необходимо закладывать улучшение внутреннего микроклимата, умение идти навстречу, тим-билдинги и т.п.</p><p>В современном мире аутсорса эффективность работы — один из ключевых показателей как для бизнеса, так и для конкретного проекта. Эффективность, в общем смысле, — это отношение полученных дивидендов к затраченным усилиям. Один из ключевых атрибутов результативности команды и проекта — это эффективность его проектного менеджера или РМ’a. Мы в компании используем некоторые из общеизвестных практик, а также активно продвигаем «блюда» собственного приготовления. Поэтому сегодня я хочу рассказать о некоторых методах и инструментах, которые помогут повысить эффективность или же просто быть полезными для РМ’a любого уровня</p><p>Сразу оговорюсь, скорее всего я не открою Америку большинству из вас, но возможно смогу рассказать о чем-то, чего вы не знали</p><h2>Методы</h2><p>Мы не будем говорить о методологиях ведения проектов, так как эта тема достаточно освещена в специальных изданиях, а поговорим о методах повышения эффективности конкретного человека и первый пункт у нас, это конечно:</p><h3>Pomodoro</h3><p>Pomodoro — это широко известная техника управления рабочим временем и повсеместно используемая разработчиками абсолютно разного уровня. Но кто сказал, что это не может использовать РМ? Суть техники заключается в делении рабочего времени на промежутки, традиционно 30 минут, где 30 минут — беспрерывной работы и обязательные 5 минут — для отдыха\переключения контекста\ отрыва от реальности\крика души. Для чего это нужно? Есть исследования психологов, которые говорят о ментальном утомлении и сужении взгляда в моментах, когда мы сосредотачиваемся на определенной точке. Если мы долго работаем над одной задачей, то наш взгляд «замыливается» и мы перестаем понимать всю картину, и, как следствие, наша эффективность снижается.</p><p>Бесспорно, каждый человек индивидуален и кому-то 25 минут мало или наоборот много. Здесь нужен метод проб и ошибок. Но если вы чувствуете, что фокус теряется, приходите на работу и не знаете за какую задачу хвататься и куда бежать — попробуйте использовать эту технику и подогнать под себя. Как минимум ваш взгляд станет «сфокусированным»и получится собрать мозаику.</p><h3>Ремайндеры</h3><p>Очень простая вещь. Настолько простая вещь, что о ней все постоянно забывают. Очень важное качество РМ’a держать много информации и дел в голове, но еще важнее — держать это все на «бумаге». Каждый начинающий (и не очень) РМ должен взять эту технику на вооружение. Она заключается в распределении дел, даже очень мелких, по временной прямой (напр. календарю) оставляя при этом ремайндеры, которые будут неустанно напоминать об этом. Например: договорились с клиентом поставить задачу на установку метрики ровно через месяц. Ударили по рукам и все. Через два месяца никто не вспомнит о том, что что-то было нужно, если это не будет явно аффектить. Конечно в таких ситуациях нужен ремайндер. Любая встреча, постановка задачи, ресерч конкурентов, да даже чтение статей на VC — должны иметь свое отражение на временной прямой. Только так хороший РМ может контролировать свое время и время своих коллег, а также эффективно, а главное — своевременно выполнять задачи, что в свою очередь, напрямую, влияет на результаты всей команды.</p><h3>Обратная связь</h3><p>Совсем немного про обратную связь. Обратная связь — это особая коммуникация, которая либо меняет устоявшиеся условия, либо закрепляет. Очень важно не забывать транслировать договоренности или закреплять их. Только таким методом, все участники процесса будут видеть его максимально прозрачно, а также в любой момент времени ожидания и реальность — будут совпадать</p><h2>Инструменты</h2><p>Здесь небольшой перечень инструментов, которые помогут использовать вышеописанные методы увеличения\сохранения эффективности:</p><ul><li><a href="https://tomato-timer.com/">Tomato Timer</a> — очень простой в использовании сервис с десктопными нотификациями и даже адаптивной веб-версией.</li><li><a href="https://pomodoro-tracker.com/">Pomodoro Tracker</a> — также простой трекер с возможностью просмотра статистики и десктопной версией.</li><li><a href="https://calendar.google.com/">Google Calendar</a> — идеальное приспособление для того, чтобы распланировать не только свою работу, работу коллег, но и даже личную жизнь. Имеет мобильные и десктопные версии. Имеет очень гибкую настройку всего, что можно настроить, а также встроенный инструмент для видео\голосовых звонков Google Meet, которые доступны просто по ссылке.</li><li>Slack — так как мы используем Slack в виде корпоративного мессенджера, то никак не обходимся без его встроенного ремайндера, который будет напоминать о делах и других вещах когда нужно и даже напомнит о них кому-то еще. Также имеет интеграцию с Google Calendar, что делает их очень полезной связкой</li></ul><p>Это всего лишь малая часть из того, что можно и нужно использовать, но даже пары этих инструментов\методов достаточно, чтобы улучшить свою эффективность в частности и эффективность всей команды в целом.</p><p>На самом деле магии и волшебной пыли, по крайней мере для меня, в управлении проектами нет. Есть проверенные методы и инструменты, использование которых помогает экономить не только собственное время, но и ресурсы команды. Метод Getting things done (о нем наверняка хоть раз слышал каждый, поэтому пересказывать не буду) плюс софт, которым пользуются в большинстве IT-команд — Jira для задач разработки и планирования спринтов, Confluence для документации, диаграммы Ганта для визуализации этапов проекта, а также всевозможные таск-трекеры. Поскольку я руковожу сразу несколькими большими командами в IT-лаборатории компании, а это больше 50 проектов одновременно, причем новые сервисы мы запускаем каждый месяц, сроки и задачи по основным направлениям я записываю в заметки Notes на Macbook и iPhone (здесь здорово помогает синхронизация) — звучит просто, но помогает не забыть о главном в потоке задач.</p><h3>Какие инструменты использует эффективный руководитель проекта в IT?</h3><ul><li>для отслеживания задач и планирования — таск-трекеры вроде Jira или Kanban-доски вроде Trello, а также календари;</li><li>для ведения документации и совместной работы — Confluence, Notion и прочие Wiki-движки;</li><li>Для визуализаций, если нужно нарисовать какие-нибудь диаграммы, планы, баннеры и т. д. — Miro, Canvas и Microsoft Visio;</li><li>для управления временем — pomodoro-таймеры, ремайндеры, календари.</li></ul><p>Напоминаем, что вы можете <a href="https://docs.google.com/forms/d/e/1FAIpQLSdSanNvlfPRrSyQWfnoGPflSVwO4KctnjOdEKHzuxjCmFX2dA/viewform">задать свой вопрос</a> экспертам, а мы соберём на него ответы, если он окажется интересным. Вопросы, которые уже задавались, можно найти в списке выпусков <a href="https://tproger.ru/experts/">рубрики</a>. Если вы хотите присоединиться к числу экспертов и прислать ответ от вашей компании или лично от вас, то пишите на <a>experts@tproger.ru</a>, мы расскажем, как это сделать.</p>]]></content:encoded>
    </item>
    <item>
      <title>Как программисту стать управленцем — отвечают эксперты</title>
      <link>https://tproger.ru/experts/from-programmer-to-manager</link>
      <comments>https://tproger.ru/experts/from-programmer-to-manager?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Никита Прияцелюк]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/experts/from-programmer-to-manager</guid>
      <description><![CDATA[<p>Эксперты объясняют, какие навыки развивать программисту для перехода в руководители, чем эта работа отличается от разработки и стоит ли она того.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/experts/from-programmer-to-manager">Как программисту стать управленцем — отвечают эксперты</a>»</p>]]></description>
      <category><![CDATA[Советы]]></category>
      <category><![CDATA[Карьера]]></category>
      <category><![CDATA[Управление проектами]]></category>
      <category><![CDATA[Ответы экспертов]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 11 Jun 2020 15:48:11 GMT</pubDate>
      <content:encoded><![CDATA[<p>Порой у программистов возникает желание вырасти в управленцы. Однако это совсем не то же самое, что выучить новый фреймворк — зачастую здесь нужны навыки, отличные от привычных, да и род занятий разительно отличается. Спрашиваем у экспертов, что нужно делать и какие навыки развивать, чтобы стать руководителем.</p><p>Как программисту стать управленцем?</p><p>Многие специалисты, накопив опыта и прокачав навыки, задаются целью перехода на следующий, более высокий профессиональный уровень. Рассматриваются как горизонтальные, так и вертикальные перемещения в иерархии организации. Программисты в этих устремлениях не исключение. И перед этим шагом в будущее им приходится поискать ответы на такие вопросы, как «Смогу ли я стать управленцем? Что мне для этого необходимо?». Могу сказать, что в 99% случаев на первый вопрос можно ответить утвердительно, а вот с тем, что для этого нужно, разберемся детально.</p><p>Чаще всего на позицию руководителя претендуют те, кто уже хорошо овладел hard skills, кому важно расти дальше. На этом этапе самая популярная зона развития – soft skills. В сфере ИТ – это частый запрос, он в тоже время – один из самых сложных, потому что специалисты этой сферы могут годами сидеть у себя дома/в отдельном кабинете и феерически писать код, но при этом совсем не общаться с коллегами, обмениваясь лишь в свободное время парой фраз в чатах компьютерных игр с геймерами или, что реже, с такими же посетителями Stand Up шоу, как и они. Переход в управленцы требует моментально овладеть навыками выстраивания коммуникации внутри команды, постановки задач, контроля их исполнения и другими. На этом этапе спасает развитие soft skills, поддержка службы HR, приобретение управленческих навыков.</p><p>Важно перед «обучением» честно ответить себе на следующие вопросы:</p><ul><li>Готов ли я к этому как психологически, так и физически?</li><li>Хочу ли я заниматься развитием команды, развитием себя как руководителя?</li></ul><p>Если ответы «Да» или «Не знаю, но точно хочется попробовать!», тогда смело можно идти вперед. Можно начать с исследования самого себя: выписать все свои сильные качества как профессиональные, так и личностные, достоинства, достижения. Трезво посмотреть на список и подумать над тем, захотелось ли бы самому работать под началом такого руководителя. Это поможет понять, каких компетенций не хватает, что стоит подтянуть.</p><p>Ниже приведу список тех навыков, без которых если не невозможно, то очень трудно стать компетентным руководителем:</p><ol><li>Начните с себя. Научитесь отслеживать свои эмоции, экологично их проживать, контролировать. Важно развивать умение брать ответственность (в первую очередь за себя), а потом уже за команду и бизнес. Прокачивайте лидерские качества, учитесь вести за собой людей.</li><li>Общайтесь. Развивайте коммуникативные навыки. Важно понимать, что на позиции руководителя вам неизбежно придется общаться с людьми, а иногда и с теми, с кем некомфортно. Учитесь выстраивать свои личные границы, строить конструктивные диалоги и уметь выходить из конфликтных ситуаций.</li><li>Мотивируйте. Эту составляющие многие руководители упускают, что приводит к демотивации сотрудников, не желанию достигать результатов и снижению лояльности к компании. Необходимо развивать умение вдохновлять свою команду.</li><li>Развивайте. Если еще не начали, то отправляйтесь на курсы по выстраиванию отношений с подчиненными, старайтесь увидеть перспективу развития каждого участника команды. Нужно не только вовремя отслеживать, когда и куда развивать каждого сотрудника, но и как. Чтение специализированной литературы тоже не повредит.</li><li>Проявляйте гибкость. В наших реалиях это навык, который необходимо развивать. Умение быстро с минимальными потерями и эффективно перестроиться под изменения окружающей действительности, поменять план действий и показать положительный результат – дорогого стоят. Не менее важно создать условия для этого всей команде.</li><li>Делегируйте. Это высший пилотаж управленца. Нужно делегировать так, чтобы сотрудники реализовывали свой потенциал, выполняли задачи и давали результат, руководитель же в это время должен сосредоточиться на стратегических задачах.</li><li>Выбирайте с умом. Важным навыком является умение не только проводить собеседование и искать сотрудников, но и понимать кто нужен в команду, с какими компетенциями и под какие задачи.</li></ol><p>Развитие – это всегда драйв, это увлекает, захватывает и при этом всегда приносит свои плоды. Не нужно бояться перемен и сидеть на одном месте из-за страха неудач. Важно быть с собой честным, развивать себя и грамотно использовать материалы/литературу, которые сейчас есть в свободном доступе. Вот список того, с чего можно смело начинать.</p><ul><li>«Я слышу вас насквозь Эффективная техника переговоров!», Марк Гоулстон;</li><li>«Управление по результатам», Питер Друкер;</li><li>«Никогда не ешьте в одиночку и другие правила нетворкинга», Кейт Феррацци и Тал Рэз;</li><li>«Коучинг agile-команд. Руководство для scrum-мастеров, agile-коучей и руководителей проектов в переходный период», Лисса Адкинс;</li><li>«Эмоциональный интеллект в работе», Дэниел Гоулман;</li><li>«Пять пороков команды. Притчи о лидерстве», Патрик Ленсиони;</li><li>«Мотивация», Макс Эггерт;</li><li>«Привычка работать вместе. Как двигаться в одном направлении, понимать людей и создавать настоящую команду», Твайла Тарп;</li><li>«Не работайте с м*даками. И что делать, если они вокруг вас», Роберт Саттон.</li></ul><p>Удачи и новых побед!</p><p>Переход из роли программиста на роль управленца – нормальная практика в IT. По статистике большинство топ-менеджеров – это бывшие айтишники. Разработчики часто создают стартапы, а потом их возглавляют. Цукерберг, Гейтс, Пейдж, Брин, Дорси – все прошли этот путь.</p><p>Я тоже программист по образованию и преподаю кодинг для детей. Но по найму я работал недолго и уже в 2012 основал свою компанию по разработке мобильных приложений.</p><p>В целом, технарю проще «переучиться» на гуманитария, чем наоборот. Знание математики прокачивает логическое мышление – это помогает более эффективно обосновывать свою точку зрения, что важно в любой менеджерской работе. Достаточно несколько лет проработать в IT, чтобы разбираться в процессах разработки продукта – от MVP до бета-версии. Начинаешь мыслить продуктовыми этапами, четко ставить цели. Если разработчик вырастает до тим-лида, то он учится управлять командой, распределять задачи и отслеживать прогресс. С позиции тим-лида уже легко перейти на роль технического директора. Еще один путь – попробовать себя в роли помощника менеджера проекта, а потом уже и руководителя.</p><p>Преимущество экс-программиста в том, что он лучше понимает процессы разработки и знает, что происходит «под капотом». В моем случае опыт разработчика помогает мне быстрее оценивать жизнеспособность идеи, возможность ее технической реализации и перспективы на рынке. Поэтому нам в компании порой хватает 2-3 дней, чтобы создать MVP и проверить гипотезу.</p><p>Конечно, какие-то технические навыки нужно будет приобретать на практике. Придется разбираться в юридических и бюрократических вопросах: составлять отчеты, техдокументацию, постоянно мониторить разные метрики, что довольно утомительно. Можно пройти специальные курсы, но по-настоящему разобраться получится только в «полевых» условиях.</p><p>Важнее, на мой взгляд, развивать soft skills. Проактивность, умение коммуницировать с людьми, слушать и слышать, решать конфликтные ситуации, дисциплинировать не только себя, но и других – над этим придется работать. Обычно разработчик не привык дергать других, напоминать о задачах и мотивировать, он редко контактирует с пользователями и клиентами напрямую. Но на позиции менеджера этому придется учиться.</p><p>Полезно развивать предпринимательское мышление. Почитайте «Легко не будет» Бена Хоровица, «От нуля до единицы» Питера Тиля, «Бизнес с нуля» Эрика Риса. Стоит обратить внимание на книги, написанные основателями и главами IT-компаний. Например, «Обновить страницу» Сатьи Наделлы из Microsoft или «Доставляя счастье» Тони Шея, создателя Zappos.</p><p>В целом, трижды подумайте, зачем вам этот переход из программиста в управленца – порой разработчики получают даже больше менеджеров. Если вы мечтаете создать продукт, которого еще нет на рынке, то тогда да – нужно действовать. Но легко не будет и в какой-то момент захочется вернуться обратно. В такие моменты вспоминайте о первоначальной цели</p><p>Для начала нужно решить для себя — есть ли желание развиваться, как управленец. Хоть в должности тимлида и пригодится набор знаний и умений, обретенных за годы работы программистом, руководитель — это совершенно другая профессия, и учиться ей придется с нуля. Отличаются и принципы, и подходы. Стать руководителем сейчас не сложно, но я бы перед этим задал другой вопрос — как после этого справиться с задачей и не ударить в грязь лицом?</p><p>Руководство — это ответственность, в первую очередь личная ответственность за результат: теперь важнее сроки, а не стремление к совершенству. Общая картина, а не технические детали.</p><p>Мы в компании уже несколько лет активно занимаемся разработкой различного софта для нашего сервиса — от пакетных фильтров низкого уровня до веб-интерфейсов. Все это время я со стороны высшего руководства работаю с несколькими отделами разработки и наблюдаю разное поведение разных руководителей, в том числе и тех, которые выросли в нашей компании из обычных разработчиков.</p><p>Как правило, многие новоявленные руководители кидаются кто в одну крайность, кто в другую (существуют и те, кто чередует эти крайности). Одни, получив повышение, пытаются, как ни в чем не бывало, продолжить «дружбу» со своими коллегами и остаться для всех «хорошими». И вместо того, чтобы руководить процессами и направлять своих подчиненных, они так и остаются программистами за тем лишь исключением, что теперь отвечают ещё и за чужие ошибки. Другие начинают активно применять парадигму «я начальник — ты дурак», пытаясь «давить авторитетом», и в результате испытывают сильное давление не только «сверху», но ещё и «снизу». Конечно, в обоих случаях эффективность работы страдает.</p><p>В первую очередь нужно определить свои сильные стороны и отталкиваться от них. Вы амбициозны и вам легко удается убеждать людей? Отлично! Вы сторонник правильной организации и любите порядок? Супер! Правда в том, что многие качества, которые приписывают хорошим лидерам и управленцам, часто противоречат друг другу и больше всего развивать надо те, которые у Вас уже выражены — это и есть Ваша личная формула успеха. Ну а дальше уже есть множество онлайн-курсов и бизнес-литературы, которая, в сочетании с практикой, поможет выработать собственные принципы и стиль эффективного руководства. Главное — начать погружение.</p><p>Начать можно, например, с этого (не обязательно читать, можно найти аудиоверсии):</p><ul><li>«Эффективный руководитель» П. Друкера. Эффективность — это главная компетенция руководителя. Но чтобы стать эффективным руководителем, недостаточно ума и трудолюбия: нужно выполнять определенные — причем довольно простые – правила. Книга поможет ответить на вопросы: Каким должен быть «правильный» руководитель? Чем именно он должен заниматься и как? На чем сконцентрировать свои усилия?</li><li>«45 татуировок менеджера» М. Батырева. Увлекательная и легкая для чтения книга, которая в формате жизненных историй, в основном о щекотливых ситуациях, рассказывает о формировании личности руководителя.</li><li>«Идеальный руководитель. Почему нельзя им стать и что из этого следует» И. Адизеса. Книга поможет понять, что требовать, а чего не требовать от себя и других людей, правильно оценить собственные компетенции и сильные стороны, понять, какой стиль руководства подходит Вам, и как взаимодействовать с другими руководителями.</li><li>Очень крутой бесплатный <a href="https://openedu.ru/course/misis/EMQ/">курс по эмоциональному интеллекту</a> от МИСиС. Как использовать свои и чужие эмоции на благо (даже негативные), как менять свое/чужое состояние, что делать со стрессом и выгоранием.</li></ul><p>Рано или поздно практически у любого специалиста в области ИТ возникает понимание, что гораздо большего можно добиться, действуя не в одиночку, а командой. Причиной тому может быть либо идея, требующая для своей реализации дополнительных сил и ресурсов, либо желание выполнять больше проектов, чем это сможет сделать один человек – вариантов может быть много, но главное не это. Главное – это то, что ты наконец понимаешь: тебе нужна команда, и ты должен возглавить её.</p><p>Первое (и, наверное, главное), что надо понять, примеряя на себя должность управленца  – это то, что взаимодействовать с людьми потребуется гораздо чаще. По сути своей, управление командой и есть постоянное и непрерывное взаимодействие с людьми. Все управленческие методики основаны на этом. Среди программистов немало интровертов, поэтому особо обращаю на это внимание: не любишь общения с людьми – не иди в управленцы, сбережёшь свои и чужие здоровье и нервы.</p><p>Второй момент – это научиться делегировать задачи. Ведь ты собрал команду как раз для того, чтобы сделать больше в единицу времени. Как же это будет возможно, если ключевые задачи по-прежнему будут замыкаться на тебе, а в сутках всего 24 часа? Делегировать непросто, согласен, но надо пробовать, научиться доверять людям, выделить в своей команде сильных игроков, которые точно не подведут, и работать над тем, чтобы их уровня достигли остальные.</p><p>Третий момент: быть управленцем – это быть ответственным. Принять и осознать, что теперь только ты несёшь ответственность за результаты работы команды. Каждый участник проекта вносит свой вклад в конечный результат, но в сумме это не более 50%, а остальные 50% – это твой личный вклад как управленца. Попытка переложить ответственность (особенно за неудачи) на кого-то ещё из команды автоматически приведёт к её разрушению. Может, не сразу, но в ближайшей перспективе – обязательно.</p><p>Ну и напоследок ещё пара рекомендаций. Погружаясь в управленческие задачи, не «отрывайся от земли».  Иначе говоря, не забывай поддерживать в тонусе свои профессиональные знания. Это способствует укреплению твоего авторитета в команде: идеальный вариант – это когда во главе команды стоит лучший специалист. Что касается обучения – оно будет необходимо всегда: на подготовительной фазе карьеры, на её старте и, естественно, в процессе. Начинать рекомендую с развития коммуникативных и презентационных навыков. Даже если у тебя с этим всё в порядке, систематизация знаний никогда не бывает лишней. Для развития и оттачивания своих управленческих навыков, а также понимания нюансов, с которыми неизбежно придётся столкнуться при создании команды, рекомендую познакомиться с работами Ицхака Адизеса (например, «Идеальный руководитель. Почему им нельзя стать и что из этого следует», «Стили менеджмента — эффективные и неэффективные»), Рэя Иммельмана (бизнес-роман «Boss: бесподобный или бесполезный») и Рэя Далио («Принципы. Жизнь и работа»).</p><p>Здравствуй, дорогой дневничок! У нас в компании каждый разработчик может попробовать себя в роли управленца, например, стать руководителем группы разработчиков или стать техменом или менеджером проекта. Так было и со мной примерно через год после старта в позиции «разработчик». Через год после устройства на работу я решил себя попробовать в роли руководителя группы из 3 разработчиков. Это был мой первый опыт управления, надо было управлять командой разработки, планировать, расставлять приоритеты. Если бы не понравилось, то спокойно ушел обратно в разработчики. Потом я попал в ряд проектов, которые надо было подхватить и помогать в управлении. Сейчас руковожу направлением «Цифровые процессы», мы занимаемся разработкой ПО, интеграцией, техподдержкой прикладных систем для крупнейших компаний бизнеса и некоммерческого сектора. Мы также помогаем внешним командам выстраивать конвейер разработки и ИТ-процессы, много экспериментируем с технологиями, развиваем свои продукты, вкладываемся в MVP. В моей команде почти 400 человек.</p><p>Мой путь — это и удача, и осознанные решения. Анализируя сейчас, понимаю, что на этом пути помогло мне вырасти в управленца и над чем еще стоит поработать.</p><ul><li>Не боялся выходить из зоны комфорта. Каждый такой выход для меня – шаг к новому этапу в моем развитии — в профессии и просто по жизни. Всегда будет тяжело – надо будет искать решение для новых проблем. Но это интересно и не дает «закисать».</li><li>Учился на практике у талантов. Один из моих первых больших проектов был связан с интеграцией для ряда крупных заказчиков, где в какой-то момент мне пришлось взять на себя часть работы менеджера проекта и начать активно взаимодействовать с заказчиками. В этом проекте мне повезло с наставником, который тогда рулил всем процессом. Первый практический опыт, который я получил в проектах Славы Шаховского, был бесценен. И дальше к моим услугам был весь опыт менеджеров и топов нашей компании – за что им огромная благодарность.</li><li>Начал с практики. Хорошая теоретическая база – полезная штука, а практика – необходимая. Я начал с практики, а потом быстро структурировал свои знания, читая умные книжки и полезные ресурсы, посещая конференции, обмениваясь опытом в сообществе. Все мое обучение на самом деле нацелено на две вещи – посмотреть «а что там у других» и получить интересные истории, которыми могу поделиться с командой.</li><li>Научился притворяться экстравертом и научился общаться с людьми. Как и многие разработчики, я интроверт. Сейчас я много общаюсь с людьми и даже получаю от этого удовольствие. Правда, на выходных мне надо примерно полдня провести в одиночестве. Так я отдыхаю и перезагружаюсь. Сначала было сложно, потом втянулся, в том числе, когда научился лаконично формулировать свои мысли, смотреть на проблемы людей с разных сторон, помогать, узнавать больше о людях, поддерживать связь и не всегда быть занудой ;).</li><li>Помогал команде развиваться и учиться. Всегда стараюсь коллегам и книжку полезную подкинуть и порекомендовать, что сделать для развития навыков, например, какое пройти обучение. И, конечно, не отказываю, если человек из команды решил попробовать себя в роли управленца. У нас в компании всегда есть возможность вернуться обратно и стать крутым экспертом в технологии.</li></ul><p>Из программера в управленцы — это не самая простая задача. Я — программист, и когда создал компанию думал как разраб, а не как предприниматель. Меня заботили чистый код и техническая составляющая продуктов. Казалось, если программа хорошо работает, то её и так будут покупать, о ней будут говорить и делиться друг с другом. Эта ошибка мне стоила дорого: пришлось закрывать текущий проект и начинать все сначала.</p><p>Первый шаг к тому, чтобы стать руководителем — принять, что придется отказаться от привычных функций, расширить кругозор и постоянно держать руку на пульсе. Теперь задачи — не только чистый рабочий код, но и люди вокруг, в числе которых ваша команда, заказчики и руководство. Есть четыре классические управленческие функции: организация, мотивация, планирование и контроль. И для их успешного выполнения, помимо профессиональных компетенций, необходимо:</p><ul><li>быть ответственным;</li><li>смотреть на задачи не только с технической точки зрения, но и экономической;</li><li>делегировать полномочия;</li><li>уметь находить взаимопонимание;</li><li>не бояться принимать важные решения даже в неблагоприятных условиях</li></ul><p>Руководителем, как и программистом, невозможно стать, прочитав пару умных книг. Это работа: над собой, своими привычками, установками. Все приходит с опытом, навык руководить — тоже. Кратко о том, чего не стоит делать:</p><ul><li>Не берите на себя задачи исполнителей. Если вы программировали всю жизнь, вам всегда будет казаться, что тут вы бы сделали лучше/быстрее/чище. Помните, что идти к успеху вам необходимо со своей командой, а не самостоятельно. Управленец — управляет. Потоками идей, процессами, настроениями, задачами. Поэтому соберитесь и направляйте.</li><li>Не перегибайте с контролем. Хороший управленец должен знать, как работает его отдел/команда, пусть и детально, но усложнять реализацию задачи бесконечными отчетами, практически ежечасным контролем степени выполнения — лишнее. Такой подход не только вредит эффективности труда исполнителя и руководителя, но и полностью лишает первого мотивации.</li><li>Не бойтесь критиковать. Часто начинающие управленцы, чтобы добиться хорошего отношения коллектива, предпочитают умалчивать о каких-то проблемах. Это неправильно. Во-первых, скрытие проблем не означает их решение, во-вторых, вы не даете сотруднику развиваться. Зная о своей ошибке, в следующий раз он будет стараться сделать все иначе. Золотое правило: «Хвалите при всех, ругайте наедине» применимо именно в этом случае. Критики должно быть ровно столько, чтобы стать лучше.</li><li>Думать, что получится обойтись без ошибок. Мы все люди, и вместо того, чтобы убиваться — нужно пытаться преобразовывать ошибку в опыт. Даже отрицательный результат — тоже результат, и его нужно учитывать при дальнейших действиях.</li></ul><p>Я — приверженец того, что лучше всего узнавать любые вещи на практике. Но начинающему управленцу, на мой взгляд, могут пригодиться достаточно классическая литература:</p><ul><li>Эндрю Гроув — «Высокоэффективный менеджмент»;</li><li>Эндрю Гроув — «Выживают только параноики»;</li><li>Питер Друкер — «Эффективный руководитель»;</li></ul><p>Прежде всего необходимо ответить себе на 3 вопроса:</p><ol><li>Зачем я хочу становиться управленцем и чего хочу добиться от этого перехода?</li><li>Готов ли я к большому количеству коммуникаций с людьми и к смене парадигмы от выполнения задач к их постановке и контролю?</li><li>Готов ли я к тому, чтобы быть главным ответственным лицом на проекте и отвечать за все результаты работ?</li></ol><p>Если ответы устраивают, то дерзай. Причем лучше раньше, в идеале до 30 лет, потому что чем дольше ты просидишь в линейной позиции специалиста, тем сложнее будет выбиться в управленцы — меньше времени, больше задач, выше конкуренция. Это не значит, что после 40 лет дорога в менеджеры закрыта, но будет в разы сложнее.</p><p>Как вырасти? Оптимально, начинать брать на себя проекты внутри компании. Эти проекты могут и должны быть вначале небольшими, чтобы снизить риски провала. В среднем, по статистике 1 из 5 проектов неудачный. Поэтому, чтобы снизить риски, лучше начинать вести эти проекты на текущем месте работы, так как ты уже знаешь всю внутреннюю кухню компании, процессы и людей — уровень стресса в таком случае будет сравнимо меньше. Если такой возможности нет, то лучше идти на управление проектами в ту компанию, где понимаешь стек технологий, продукты компании и бизнес-модель. Условно, из е-коммерса идти в е-коммерс, а не в гейм-дев.</p><p>Стиль управления стоит выбирать в соответствии с компанией и своими принципами — не бывает одного успешного или правильного стиля управления. Смотри на успешных людей, читай кейсы, экспериментируй. Однако помни, что как управленец, ты всегда ответственен за результат и команду. В начале управленческого пути важно:</p><ul><li>Не сбиться и не начать делать работу за кого-то из команды (выжигать из себя специалиста, который «знает лучше»);</li><li>Учиться делегировать, но всегда контролировать процесс;</li><li>Научиться общаться, понимать, слушать и доносить свою позицию до всех стейкхолдеров проекта, у которых могут быть совершенно разные цели.</li></ul><p>Почитать для начала рекомендую PMBOK. Это база, в которой дается вся основная теория проектного управления. Также читай про различные стили управления, кейсы успеха различных компаний (VC, Habr в помощь) и книги о том, как собственники выстраивали свои бизнесы, например, Рэя Далио, Ричард Брэнсона, Владимира Моженкова.</p><p>И не слушай bullshit про то, что нельзя говорить «я не знаю» и другую подобную чушь — главное сейчас не знание всего на свете, а умение быстро учиться, адаптироваться и развиваться, чего и желаю каждому.</p><p>Прежде всего нужно спросить себя «зачем?». Я никогда не получал от работы управленца такого удовольствия, как от программирования. Занимаясь разработкой, каждый день я имел повод для гордости за то, что сделал: решил проблему, реализовал алгоритм, оптимизировал код. Руководитель же может гордится только плодами коллективных усилий, когда все молодцы, и только в неудачах часто приходится винить себя лично. Чем выше уровень руководителя в профессиональной компании, тем хуже качество его решений. Когда информации достаточно и нет противоречий, решения принимаются на месте. В IT управленцы точно не умнее специалистов. Роль руководителя — брать на себя риск, и это значит, что управленческие неудачи статистически неизбежны. Профессионалу принять это непросто.</p><p>Причина, по которой я стал руководителем, простая — я был посредственным программистом, а в менеджменте конкуренция оказалась ниже. Главное было не бояться работать с теми, кто лучше тебя знает, что делать. Менеджмент требует профессиональных навыков, но они проще, чем инженерные, и освоить их можно быстрее. Гораздо важнее иметь и использовать личностные качества, которые, увы, не связаны ни с профессионализмом, ни с успехом в инжиниринге.</p><p>Из профессиональных навыков самые важные — знание финансового планирования и анализа и работа с людьми, этому хорошо учат. Маркетинг, продажи, управление аккаунтами в b2b тоже очень важны, но в этой области теория развита не слишком, тут доминирует практический опыт. В любом случае, учиться лучше, набрав немного опыта.</p><p>Перейдем к психологии. Руководитель обязан быть уверенным в себе. При этом уверенность не должна быть основана на чем-то, иначе ее может подорвать крушение основ. Уверенным в себе нужно быть, чтобы помогать с этим коллегам, а не по иным причинам. Здесь самое трудное — сохранить открытость к новой информации, это жизненно важно. Уверенность отличается от упрямства готовностью мгновенно сменить точку зрения, получив новые факты. Нужно любить и понимать людей, уметь развивать одних и использовать других в их естественной форме. Нужно учиться рассматривать ситуацию в разных контекстах— чем шире контекст, тем выше руководитель. Важно понимать, почему вещи работают тем или иным образом, и когда надо что-то менять.</p><p>Наконец, необходимо научиться правильному отношению к власти. Я постоянно повторяю себе, что люди свободны и ограничивают свою свободу только в рамках добровольно принятых обязательств. Материальные проявления обязательств — это договоренности. Потому работа руководителя — в основном вести переговоры и договариваться. И здесь репутация руководителя держится на последовательном выполнении взятых на себя обязательств. Об этом нужно отчитываться. Готовность отчитываться и получать удовольствие от этого — очень полезное качество управленца. На бюрократическом языке оно называется «подотчетность» или «аккаунтабилити».</p><p>Как человек, который несколько раз проходил путь от программиста до управленца и обратно, могу сказать следующее:</p><p>В первую очередь, нужно желание брать ответственность не только за себя, но и за других людей. Расширение полномочий всегда идет в комплекте с дополнительной ответственностью, причем далеко не всегда в равной пропорции.</p><p>Дальше необходимо осознать, что к управленцу предъявляется совершенно иной набор требований, чем к специалисту. При этом глубокая экспертиза специалиста зачастую больше вредит, чем помогает в руководящей деятельности. Возникает естественное желание делать всё самому, потому что никто вокруг на первый взгляд не способен справиться с задачей так же хорошо. Не стоит и говорить, что так действовать категорически нельзя в силу множества причин.</p><p>Я бы рекомендовал постараться принять участие в одном, а лучше нескольких кризисных или стартующих проектах, именно там наиболее динамичная среда, которая с одной стороны дает большой простор для развития, а с другой очень рельефно показывает типичные управленческие проблемы, их последствия и способы решения.</p><p>Также начинающему руководителю важно определиться со своим лидерским стилем, научиться лучше понимать себя и окружающих. Для этого есть масса методик от DISС до MBTI. Полезно с ними ознакомиться, чтобы получить пищу для размышлений, только не стоит их применять сразу на практике.</p><p>Что касается базовых управленческих навыков от тайм-менеджмента до делегирования, то я рекомендую получать их в бизнес-школе, а не изучать по книжкам: так будет значительно эффективнее, при этом позволит Вам существенно расширить сеть профессиональных контактов и даст возможность в будущем обращаться к преподавателям за практическими советами.</p><p>В первую очередь нужно понимать, что в каждом человеке заложены или не заложены определенные качества, в том числе управленческие и лидерские, поэтому у вас либо есть предрасположенность к управленческой деятельности, либо её нет.<br />Большинство программистов суровые интроверты, которые предпочитают спокойствие и минимум общения, а что уж говорить про работу управленцем, где надо постоянно контактировать с персоналом. Поэтому до руководящих должностей зачастую дорастают те программисты, у которых есть софт скиллы, или хотя бы какие-то зачатки в области управления персоналом, которые непременно необходимо долго и упорно развивать.</p><p>Как прокачивать и развивать? Опять же, вам нужно проанализировать мягкие качества, например, такие как эмпатия. Если вы любите и хотите общаться с людьми, вам будет намного проще выстраивать процессы в команде. По своему опыту знаю, что есть много талантливых программистов, которые не готовы стать управленцами, как раз из-за отсутствия желания постоянных контактов с коллегами. К тому же, надо понимать, что позиция руководителя требует определенных жертв: вы однозначно будете меньше программировать, потому что административные функции займут более 50% вашего времени. Не каждый программист готов распрощаться с любимым делом, но есть тимлиды, которые оставляют за собой право программировать.</p><p>Если вы все-таки решили развиваться в данном направлении, вам обязательно стоит развивать тайм-менеджмент, лидерские качества, работать над развитием личного бренда и позиционирования в компании, научиться делегировать — это база, за которой скрывается еще много скиллов. Также одними из основополагающих блоков успешного управленца является кросс-функциональное взаимодействие и умение «продавать» свои идеи. Как правило, в компаниях есть кадровый резерв, в котором существует подробная программа, учитывающая все нюансы. Она позволяет вырастить руководителей из программистов или линейных менеджеров. Однако даже после успешного прохождения программы кадрового резерва и назначения на должность, руководителю требуется от полугода до года для того, чтобы полностью принять на себя все функции и начать полноценно руководить отделом или направлением.</p><p>Начать погружение в сферу управления можно с бесплатных роликов на YouTube: посмотрите о том, как делегировать, как выстраивать бизнес-процессы. Также можно проходить курсы, участвовать в митапах. Есть очень хорошие курсы в стиле MBA или мини-MBA, которые дают основу понимания экономики управления предприятиями и другими составляющими. Также рекомендую ознакомиться с литературой про продажи, эффективность и управление персоналом — это основные блоки, которые будут полезны любому управленцу.</p><p>Корпоративная культура и атмосфера в компании могут способствовать развитию разработчика до управленца, product или project-менеджера. Если вы хотите вырастить из программистов менеджеров, подключайте их к формированию планов по развитию продукта, задействуйте в брейнштормах, обсуждайте с ними, как лучше построить интерфейс, как измерить успех выпущенных изменений и вовлекайте в эти процессы. Полезным будет привлекать программистов к задачам по отслеживанию и построению метрик, разработки методологии AB-тестов, визуализации сырых данных — прежде всего, чтобы понять, насколько успешно разработанное ими решение и как чувствует себя конкретная функциональность «в бою». Это приучает разработчиков отслеживать значимые показатели тех областей продукта, за которые они отвечают, мотивирует совершенствовать продукт.</p><p>Самое главное – такая активность позволяет программистам участвовать в принятии продуктовых решений, создает чувство ответственности за продукт и азарт к тому, какой результат получит конечный потребитель. Именно интерес к продукту как к чему-то «своему» и дает желание его развивать. Так и появляются продуктовые менеджеры из программистов. Так произошло и со мной. Я ощущал потребность больше влиять на продукт, видел узкие места, где можно было сделать лучше, делился идеями с коллегами – они в ответ делились опытом, прививали интерес, азарт и желание не только накидывать идеи в backlog, но и брать продуктовые задачи и делать их.</p><p>Несмотря на то, что по сравнению с продуктовыми менеджерами программисты обладают меньшей экспертизой непосредственно в вопросах стратегии и развития продукта, они могут внести ценные инсайты и предложить инновационные способы реализации решений (известно, что разработчики любят «щупать» все новенькое и интересное, что появляется на рынке, обладают технологической насмотренностью).</p><p>Также, на мой взгляд, помимо интереса к новому направлению разработчику, который хочет вырасти в менеджера, необходимо развивать и другие навыки: умение декомпозировать задачи и планировать нагрузку, понимать, какие цели приоритетны для бизнеса, какой эффект окажут те или иные решения на продукт. Руководитель должен понимать, способна ли текущая команда справиться с текущей нагрузкой: достаточно ли компетенций и ресурсов сейчас, а если нет, то за счет чего их наращивать. Кроме этого, менеджеру-управленцу необходимо уметь выстраивать отношения в команде и сплачивать коллектив для достижения целей, уделять время развитию сотрудников и не забывать прокачиваться самому – изучать конкурентное окружение, следить за технологическими трендами, общаться с коллегами в профессиональных комьюнити.</p><p>Я пришел в компанию на должность тестировщика и уже через два года стал руководителем на проекте одного из крупнейших клиентов.</p><p>Не могу сказать, что у меня была осознанная карьерная стратегия, и я четко понимал, что нужно для того, чтобы дорасти до топ-менеджера. Но оглядываясь назад, могу вывести несколько закономерностей.</p><h3>Говорить «да» новому и брать на себя ответственность</h3><p>Свою первую управленческую должность я получил в 2009 году – в тот момент мне досталась команда новичков, и нам предстояло быстро обучить специалистов заказчика по всему СНГ работе с BI-системой для операционной отчетности. Меня отправили в Узбекистан проводить недельный тренинг – у меня не было ни опыта выступлений, ни глубоких знаний по теме. Я зубрил материал лекций по ночам, репетировал, а с утра вел обучение. Теоретически я мог отказаться, и нашелся бы кто-то опытнее меня – но я решил, что мне нужен этот вызов.</p><p>Было сложно, я ошибался, но в итоге все прошло гладко, а я получил ценный опыт и уважение старших коллег за то, что не побоялся взять ответственность на себя.</p><p>Вывод: если вы боитесь куда-то идти, то именно туда вам и нужно. Чем больше вы говорите «да», тем больше в вашей жизни появляется маячков, которые могут привлечь по-настоящему крупную рыбу.</p><h3>Смотреть шире и не бояться перемен</h3><p>Любой вызов – это больше про то, как мы видим ситуацию, а не то, какой она является на самом деле. Я убежден, что не бывает сложных задач – бывает недостаток мотивации и много страха. Если вы хотите стать руководителем, нужно уметь принимать решения и справляться с их последствиями. Как вам можно доверить целый проект, если на своем ограниченном участке работы вы видите только путь из точки А в точку Б?</p><h3>Работать на стороне интегратора</h3><p>Работа на стороне интегратора – самый быстрый способ вырасти. Почему? Бизнес интегратора строится на одном простом принципе: либо ты растешь, либо вылетаешь. Это то место, где тебе всегда дадут задачу с «авансом», на полголовы выше твоих возможностей. Специфика проектов не дает расслабиться – все время нужно быть быстрым, гибким и работать «на нерве». За свою карьеру я успел побыть тестировщиком, администратором, тимлидом, руководителем проектов и руководителем практики на самых разных внедрениях: от BSS до BI, работал с телекомом, банками, ритейлом, почти со всеми странами СНГ. Такое разнообразие круто прокачивает скиллы и дает понимание, в какой отрасли хочется развиваться.</p><p>Есть хорошая новость. Если вы на самом деле хотите это осуществить, то вам сразу придется «примерить шкуру» менеджера. Для начала необходимо разобраться с целью, действительно ли смена амплуа является вашей целью, а не желание, например, больше зарабатывать (с этим могут помочь различные техники root cause analysis). Потом придется ее сформулировать, лучше сразу в терминах SMART (S – конкретная (specific), M – измеримая (measurable), A – достижимая (attainable), R – актуальная (relevant), T – соотносимая с конкретным сроком (time-bounded)). Декомпозировать и превратить в план действий. Дальше останется только его реализовать.</p><p>Конечно, эта трансформация может быть долгой, особенно если вы решили не просто связать себя с этой профессией, а добиться успеха (ведь плох тот солдат, который не мечтает стать генералом). Так или иначе, вам придется много учиться. Не потому, что у вас, возможно, нет соответствующего фундамента, а потому что менеджмент тоже достаточно динамичная область знаний. Здесь не могу не привести одну из любимых цитат: «Если вам кажется, что образование стоит очень дорого, то подумайте во сколько обойдется его отсутствие». Это не значит, что вам обязательно надо идти получать специальное высшее образование или MBA, но систематизировать свои знания в области менеджмента будет необходимо. Если говорить о книгах, то я бы отдал дань уважения гуру менеджмента и начал с более фундаментальных книг Друкера, Деминга, а затем переходил к более мотивирующим: Адизес, Трейси, Шармер. Также рекомендую сразу выбрать для себя наиболее интересную периодику, которая будет поддерживать вас в тонусе и снабжать новыми идеями для развития. Здесь мой фаворит – Harvard Business Review.</p><p>Любая менеджерская позиция подразумевает большую вовлеченность в бизнес и ориентированность на бизнес-результат. Поэтому сразу подумайте над устранением пробелов в области экономики, маркетинга, финансов. Например, в области маркетинга можете начать с классики – работ Филипа Котлера, а дальше познакомиться и с более популярными сейчас идеями, основанными на работах по нейроэкономике (Барден), и углубиться в более интересные для себя области (может это будет digital).</p><p>Если для инженерных специальностей характерно преобладание hard skills, и их глубина определяет в основном вашу экспертность, то в менеджменте ключевые компетенции будут относиться к soft skills. Поэтому вам не обойтись без дополнительных познаний в области психологии, эмоционального интеллекта, дизайн-мышления, лидерства и т. п. Вам предстоит научиться слушать и слышать, понимать и принимать. «Хорошего руководителя можно узнать по шрамам на языке. Больше слушайте, меньше говорите».</p><p>Пожалуй, главным вызовом для любого представителя инженерной профессии станет необходимость расстаться с своей экспертизой. Ведь, как только вы выберете путь менеджера, вам придется пересмотреть свои приоритеты, и ваши знания начнут девальвироваться. Психологически это достаточно тяжело воспринимать – то, в чем вы себя уверенно чувствуете, перестанет быть критерием оценки вашей деятельности. Вам будет очень тяжело заставить себя расстаться с наработанными годами привычками и отказаться от попытки сделать самому. Но поначалу это предоставит вам определенное преимущество: вы сможете опираться на свой опыт при оценке ресурсов и оценке достигнутых результатов, пока не научитесь делать это по-новому. Еще одно принципиальное новшество, которого не удастся избежать, – это работа в условиях неопределенности. В менеджменте чем выше вы поднимаетесь вверх, тем выше неопределенность. У вас часто не будет четкого ответа и однозначного рецепта, но тогда вам и начнут помогать ваши знания и со временем опыт.</p><p>Готовы ли вы встать на этот путь, решать вам. Но если приложить усилия и проявить настойчивость, то именно эти знания помогут вам стать предпринимателем, но это уже совершенно другая история…</p><p>Чтобы программисту начать двигаться в сторону управленца – я советую сначала проанализировать управленческие подходы на текущем месте и начинать развиваться в этом направлении. Так у вас будет площадка для практического применения и отработки новых изученных навыков. Вот с чего именно можно начать анализ:</p><ol><li>Какие стандарты, методологии и инструменты используются (PMBoK, Agile, Kanban, Scrum, смешанные и т.д.).</li><li>Какое управление применяется:Проектное: работа и команды делятся на проекты.Процессное: работа выполняется как процесс без проектов. В ИТ, как правило, это характерно для технической поддержки и сопровождения.Продуктовое: работа выполняется в рамках одного или нескольких конкретных продуктов.</li></ol><p>Если работа проектная – развитие начните с изучения используемой в компании методологии (см. пункт 1). Если никакой четкой методологии нет – начните либо с изучения классического подхода к управлению проектами: PMBoK, либо с подхода Disciplined Agile, который сочетает в себе большинство текущих методологий и позволяет выбирать подходящие инструменты управления, исходя из текущей ситуации в организации.</p><p>Если работа процессная – для организации управления такой работой очень поможет изучение ITIL и DevOps.</p><p>А если же управление продуктовое – пройдите курс на Product Manager’а или Product Owner’а. Здесь уже будут полезны навыки анализа аудитории продукта, его конкурентов, когортный анализ, расчет возврата от инвестиций в продукт (ROI) и других техник продуктового менеджмента.</p><p>Пройдите курс по необходимым в первую очередь навыкам, например, на таких ресурсах как Coursera или Udemy и начинайте постепенно брать на себя новые управленческие задачи в своей компании и применять полученные навыки.</p><p>Для начала решить, что вы действительно любите людей и общение с ними больше чем программирование. Как вы сейчас чувствуете себя на личном код-ревью или при парном программирование? День за днем отвечаете на вопросы джунов или скорее отправляете их читать мануалы? Смотреть в сторону новой карьеры имеет смысл только если в таких ситуациях вам уже комфортно, а непредсказуемое поведение живых людей интересует, радует и мотивируют вас больше, чем красивая архитектура приложения и стройный порядок выполнения программы.</p><p>Второй шаг — осознать, что менеджмент это новая сфера знаний, в которой придется начать с нуля и многому учиться, при этом «язык управления», из-за плохо алгоритмизируемой природы людей намного хуже чем любой язык программирования. Здесь у вас не будет официальной документации, безусловно работающих методов и лога ошибок.</p><p>Третий шаг — «заглянуть под капот». Прочитайте «Оргуправлеческое мышление» Г. П. Щедровицкого (курс лекций о менеджменте для советских строителей атомных станций) и «Сначала скажите “Нет”» Дж. Кэмпа. Эти две книги позволят вам составить представление о том, чем управленцы на самом деле занимаются (строят сложные системы отношений между людьми для управления их деятельностью и проводят множество сложных переговоров изо дня в день) и решить, хотите ли вы заниматься этим за меньшие деньги (квалифицированные программисты получают меньше начинающих менеджеров) и с большей ответственностью на плечах.</p><p>Кто такой программист? Это плотник и художник одновременно. От плотника он взял инструменты, а от художника — стремление к прекрасному. Он творит свои программы, взращивает их от самой первой строчки кода и «болеет» за них, как за своих детей.</p><p>Управление — больше искусство, а не ремесло. И, как в любом искусстве, здесь нужно иметь определенные личностные качества и быть не без определенного дарования. Как писал Владимир Тарасов в своем трактате «Технология жизни. Книга для героев»: «человек прокладывает путь в новое, неизведанное сперва мыслью, потом словом и, наконец, делом». Чтобы стать управленцем, нужно прежде всего иметь желание двигаться в этом направлении. Но путь этот может быть тернистым.</p><p>Прежде всего «страждущему» необходимо научиться:</p><ul><li>Говорить с людьми, даже, если не хочется, но надо.</li><li>Не бояться спросить коллег: «Когда? Сообщи срок, когда! Если мы не сделаем, меня четвертуют!».</li><li>Быть сфокусированным на достижении результата.</li><li>Уметь отстаивать свою позицию и не проломиться под грузом новых требований и «хотелок» клиента.</li><li>Управлять своим собственным временем и уметь расставлять приоритеты.</li><li>Побороть желание «сделать все самому». Это очень и очень сложно.</li></ul><p>Я прошел путь программиста-аналитика-руководителя проекта-куратора проектной деятельности компании. По себе могу сказать, что опыт программиста очень помогает принимать правильные решения на проекте. Помогает чутье и знания в технической сфере. Нужно не бояться учиться, не бояться нового и тогда все получится.</p><p>Можете начать с чтения книги Ричарда Брэнсона «К черту все! Берись и делай!». Если у вас есть цель в жизни и управленческая деятельность приближает вас к вашей цели, то берите и делайте!</p><p>Помимо повышения квалификации, программисту нужно развивать soft skills:</p><ul><li>Коммуникация. Если человек не любит общаться с другими людьми и, в целом, не понимает важности коммуникаций, то стать эффективным руководителем будет трудно. Необходимо уметь разговаривать с людьми, четко ставить им задачи.</li><li>Стрессоустойчивость. Она особенно важна при работе на новом проекте, в котором отлажены еще не все процессы. В таких проектах не всегда все идет по плану – нужно уметь подстраиваться под ситуацию и принимать решение буквально в течение нескольких часов.</li><li>Умение видеть суть. В работе руководителя 80% времени уходит на текучку – совещания, письма, разговоры один на один и т.п. Времени заниматься стратегическими задачами очень мало. Поэтому нужно уметь четко отделять важные вещи от менее важных и правильно расставлять приоритеты.</li><li>Ответственность. Как только вы становитесь руководителем, появляется ответственность не только за себя и свою работу, но и за подчиненных. Ответственность руководителя не заканчивается постановкой задачи.</li><li>Умение слушать. Часто начальнику приходится работать психотерапевтом: выслушать и подбодрить сотрудника, видеть его направления для развития, учитывать его интересы. Все люди разные, и когда на проекте их много, собрать настоящую команду без умения слушать каждого будет трудно.</li><li>Видение будущего. В отличие от сотрудников, которые решают задачи в рамках своих компетенций, у руководителя должно быть понимание развития проекта и команды в долгосрочной перспективе. Как проект будет выглядеть через год или два, что нужно для его развития и т.п. Этот навык важен в технологических компаниях, при работе над ИТ-проектами. Руководителю отдела, суть работы которого уже формализована и неизменна, будет проще – ему главное выстроить процесс. В нашей сфере все меняется куда быстрее.</li></ul><p>Программирование — творческая работа, требующая концентрации, и занимаются ею увлеченные люди. И они не всегда хотят общаться. И когда такой разработчик становится руководителем, ему придется менять свои привычки. Пока специалист еще не встал перед этой проблемой, его руководитель может помочь ему улучшить навыки коммуникации – давать слово на демо-презентациях внутри команды, отправлять с презентациями на конференции. Но есть случаи, когда все это человеку совсем не нужно. В будущем такой специалист все равно может стать руководителем, особенно если «жизнь заставит», но вряд ли он будет получать большое удовольствие от этого.</p><p>Вообще вертикальный рост из специалиста в менеджеры – это не единственный вариант развития. Горизонтальный рост в рамках выбранной специальности – отличная альтернатива, которая многим подойдет даже лучше. Проблема в том, что не все вообще понимают, что можно развиваться и так.  Если в реальности есть выбор между вертикальным и горизонтальным ростом, то нужно задаться вопросом «зачем мне это надо?» Руководить людьми – это не самая легкая работа и далеко не всем она подходит.</p><p>Меня можно считать примером такого разработчика. Расскажу, какие я сделал выводы при переходе к роли руководителя проектов, и далее – руководителя проектного офиса.</p><p>Для меня руководитель – это тот, кто готов брать ответственность не только за свои результаты, но и за результаты своей команды. И, я надеюсь, что те, кто такой готовностью не обладают, не задают себе вопрос, как стать управленцем.</p><p>Любая задача или проблема команды – это персональная боль ее руководителя. Соответственно, тот, кто хочет им стать, должен начать брать ответственность за задачи или проблемы на свой счет. Если вы можете принять эти вызовы как свои, то вы найдете силы и инструменты, чтобы их одолеть. Опыт решения подобных проблем – тот самый опыт, который нужен тому, кто хочет приблизиться к роли руководителя.</p><p>Начать, конечно, стоит с решения своих сложностей. И вместо того, чтобы просить кого-то решить их за вас (чаще всего своего руководителя), либо решать их самому, либо приносить варианты решений тому, кто пока несет ответственность за ваши результаты. Постепенно расширять круг вопросов, которые можно решать самому, и вскоре этот круг увеличится и выйдет за пределы ваших задач, в него попадут задачи и других участников команды.</p><p>Требования неполные и мы можем не попасть в ожидания стейкхолдеров – ваша проблема; начали реализацию, которая устареет еще до того, как мы ее закончим – ваша проблема; члены команды поссорились и их продуктивность падает – ваша проблема; видите как сделать продукт лучше, но никто не предпринимает никаких действий – ваша проблема, и так далее.</p><p>На этом пути нужно учиться находить более эффективные приемы для ответа на вызовы и решения проблем. Курсы, книги и общение с более опытными коллегами. Узнать как можно больше о подходах и инструментах, а потом в любой момент, когда они понадобятся, воспользоваться на практике.</p><p>Если вы работаете разработчиком в команде, у которой нет «проблем» (вызовов к решению проблем), то вам нужно бежать оттуда: в такой среде и лучшим разработчиком стать не получится, не то что руководителем.</p><p>Но если вы работаете в «обычной» команде, которая каждый день сталкивается с новыми вызовами, то источник проблем, равно как и источник возможностей брать на себя за них ответственность, неиссякаем. А значит, нужна только готовность брать эти возможности – и все получится!</p><h3>Как программисту стать управленцем?</h3><p>Для начала определитесь, действительно ли вы хотите этого? Готовы ли вы к тому, что программирование из вашей профессиональной жизни может уйти по большей части или даже полностью? Хотите ли вы постоянно общаться с другими людьми? Если нет, то, возможно, не стоит мучать себя и других, к тому же кроме становления менеджером есть другие пути развития, да и они не всегда получают больше разработчиков (если вы исходили из этих соображений, когда думали стать управленцем).</p><p>Если же уверены, что хотите попробовать стать менеджером, то… пробуйте. Начните брать на себя проекты внутри компании и постепенно вживаться в роль управленца. Чтобы в случае провала было не так обидно, пусть вначале они будут небольшими. Если такой возможности нет, то лучше идти на управление проектами в ту компанию, где понимаешь стек технологий, продукты компании и бизнес-модель.</p><p>Само собой, по щелчку пальца управленцем вы не станете — нужно развивать соответствующие навыки. Что пригодится менеджеру:</p><ul><li>Умение брать ответственность. За себя, за команду и за бизнес. Прокачивайте лидерские качества, учитесь вести за собой людей.</li><li>Коммуникативность. На позиции руководителя вам придётся много общаться, причём иногда и с теми, с кем не хотелось бы. Учитесь избегать конфликтных ситуаций и выходить из них. Также не менее важно умение слушать и мотивировать. Часто начальнику приходится работать психотерапевтом: выслушать и подбодрить сотрудника, видеть его направления для развития, учитывать его интересы.</li><li>Делегирование. Когда ты опытный программист, велик соблазн взять всё в свои руки и сделать «точно как надо». Не надо так, ведь у вас в подчинении уже есть специалисты для этого. Нужно делегировать так, чтобы сотрудники реализовывали свой потенциал, выполняли задачи и давали результат, руководитель же в это время должен сосредоточиться на стратегических задачах.</li><li>Умение видеть суть. Большая часть времени руководителя может уходить на всякие совещания, собеседования, разговоры с сотрудниками и т. д. Времени заниматься стратегическими задачами остаётся мало, поэтому нужно уметь четко отделять важные вещи от менее важных и правильно расставлять приоритеты.</li><li>Стрессоустойчивость. Даже в отлаженных проектах всё может пойти не по плану – нужно уметь подстраиваться под ситуацию и принимать решение буквально в течение нескольких часов.</li><li>Видение будущего. В отличие от сотрудников, которые решают задачи в рамках своих компетенций, у руководителя должно быть понимание развития проекта и команды в долгосрочной перспективе.</li><li>Гибкость. Умение быстро с минимальными потерями и эффективно перестроиться под изменения окружающей действительности, поменять план действий и показать положительный результат дорогого стоит. Не менее важно создать условия для этого всей команде.</li><li>Также полезным навыком является умение не только проводить собеседование и искать сотрудников, но и понимать кто нужен в команду, с какими компетенциями и под какие задачи.</li></ul><p>Прочтение нескольких книг не сделает из вас специалиста, но и лишними они не будут. Что рекомендуют эксперты:</p><ul><li>Бен Хоровиц, «Легко не будет»;</li><li>Георгий Щедровицкий, «Оргуправлеческое мышление»;</li><li>Джим Кэмп, «Сначала скажите “Нет”»;</li><li>Дэниел Гоулман, «Эмоциональный интеллект в работе»;</li><li>Кейт Феррацци и Тал Рэз, «Никогда не ешьте в одиночку и другие правила нетворкинга»;</li><li>Лисса Адкинс, «Коучинг agile-команд. Руководство для scrum-мастеров, agile-коучей и руководителей проектов в переходный период»;</li><li>Макс Эггерт, «Мотивация»;</li><li>Максим Батырев, «45 татуировок менеджера»;</li><li>Марк Гоулстон, «Я слышу вас насквозь. Эффективная техника переговоров!»;</li><li>Патрик Ленсиони, «Пять пороков команды. Притчи о лидерстве»;</li><li>Питер Друкер, «Управление по результатам»;</li><li>Питер Друкер, «Эффективный руководитель»;</li><li>Питер Тиль, «От нуля до единицы»;</li><li>Роберт Саттон, «Не работайте с м*даками. И что делать, если они вокруг вас»;</li><li>Твайла Тарп, «Привычка работать вместе. Как двигаться в одном направлении, понимать людей и создавать настоящую команду»;</li><li>Эндрю Гроув, «Выживают только параноики»;</li><li>Эндрю Гроув, «Высокоэффективный менеджмент»;</li><li>Эрик Рис, «Бизнес с нуля».</li></ul><p>Напоминаем, что вы можете <a href="https://docs.google.com/forms/d/e/1FAIpQLSdSanNvlfPRrSyQWfnoGPflSVwO4KctnjOdEKHzuxjCmFX2dA/viewform">задать свой вопрос</a> экспертам, а мы соберём на него ответы, если он окажется интересным. Вопросы, которые уже задавались, можно найти в списке выпусков <a href="https://tproger.ru/experts/">рубрики</a>. Если вы хотите присоединиться к числу экспертов и прислать ответ от вашей компании или лично от вас, то пишите на <a>experts@tproger.ru</a>, мы расскажем, как это сделать.</p>]]></content:encoded>
    </item>
    <item>
      <title>Как изменится IT-отрасль вследствие пандемии — рассуждают эксперты</title>
      <link>https://tproger.ru/experts/it-after-covid</link>
      <comments>https://tproger.ru/experts/it-after-covid?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Никита Прияцелюк]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/experts/it-after-covid</guid>
      <description><![CDATA[<p>Эксперты оценивают влияние пандемии на IT: какие направления станут востребованнее, как изменится рынок труда и вытеснит ли своя разработка аутсорс.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/experts/it-after-covid">Как изменится IT-отрасль вследствие пандемии — рассуждают эксперты</a>»</p>]]></description>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[Карьера]]></category>
      <category><![CDATA[Ответы экспертов]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 27 May 2020 08:42:38 GMT</pubDate>
      <content:encoded><![CDATA[<p>Как пандемия повлияет на IT? Какие IT направления станут более востребованными, а какие окажутся в упадке? Как изменится рынок труда айтишников? Вытеснит ли собственная разработка аутсорс? Мнения по этим вопросам мы решили узнать у экспертов.</p><p>Как изменится IT-отрасль вследствие пандемии?</p><p>ИТ-бизнес, как и другие индустрии, чутко реагирует на экономическую и политическую ситуацию. Есть мнение, что на фоне других сфер наша менее уязвима. С одной стороны уже долгие годы существуют решения, которые позволяют оперативно перевести работу «на удаленку», поэтому сложностей с поддержкой заказчиков и реализацией проектов обычно не возникает. Но ИТ-продукты, решения и сервисы не создаются просто так, они предназначены для заказчиков, многие из которых оказались в сложном положении. Все программное обеспечение, оборудование, дата-центры, языки программирования – это инструменты поддержки и развития бизнеса. Поэтому технологические компании напрямую зависят от того, какой будет спрос на их решения на рынке. Уже сейчас можно сказать, что часть проектов может быть отложена на более поздние сроки или на следующий год, а также пересмотрены бюджеты для их реализации.</p><p>Но также есть компании дела, которых пойдут в гору – это касается сервисов для видеоконференций, разработчиков мессенджеров и облачных хранилищ данных и компаний, которые делают системы для защиты информации. Также вырастет доля у телемедицины и компаний, занимающихся искусственным интеллектом, например, производителей систем на основе компьютерного зрения. Они помогут оптимизировать работу камер видеонаблюдения и систем диагностики заболеваний, что очень актуально в сложившейся ситуации.</p><p>Что касается рынка труда, то здесь все тоже зависит от отрасли, ведь сфера ИТ понятие широкое. Но в целом не думаю, что спрос на ИТ-специалистов в эпоху кризиса станет существенно ниже. Опять же, если говорить про разработку технологий ИИ, то спрос на дата-инженеров, аналитиков данных, data scientists и специалистов, занимающихся информационной безопасностью, будет по прежнему высок.</p><p>Сейчас большинство компаний латает «дыры», пытается использовать удаленные сервисы, учится организовывать удаленные бизнес-процессы и т.д., но интересны не столько изменения, происходящие в данный момент, сколько то, к чему это приведет. На мой взгляд, в ближайшее время можно ожидать новый бум IT, прежде всего облачных технологий. Если кратко – наметятся две тенденции, которые начнут менять рынок как IT-специалистов, так и IT-услуг.</p><p>С точки зрения концепции работы с конечным пользователем будут превалировать направления BYOD (Bring Your Own Device) и NOHO (No Office/ Home Office). Как следствие, наиболее востребованы будут децентрализованные решения, в большей мере такие как SaaS и PaaS и в меньшей – IaaS, что, в свою очередь, переместит зону консалтинга от IT-интеграторов к облачным провайдерам услуг.</p><p>Что же касается IT-специалистов, а из них основная масса приходится на локальные команды инженеров и администраторов, то, на мой взгляд, по мере миграции бизнеса к облачным провайдерам функционал системных администраторов начнет постепенно сокращаться. При этом будет расти потребность в специалистах по информационной безопасности, отвечающих, в числе прочего, за защищенность данных в условиях удаленной работы.</p><h3>Как пандемия повлияет на IT?</h3><p>Повышение мобильности офисных инструментов, дистанционный доступ, безопасная работа за пределами контролируемой зоны организации – все эти тренды развития ИТ-отрасли зарождались задолго до наступления пандемии. Однако стремительный переход компаний на «удаленку» подтолкнул и значительно ускорил это развитие.</p><h3>Какие IT направления станут более востребованными, а какие окажутся в упадке?</h3><p>Сейчас происходит своеобразный естественный отбор востребованности направлений ИТ. Популярными становятся не просто удобные или экономичные технологии, значение приобретают технологии, без которых организация не сможет выживать в наступивших условиях:</p><ul><li>коммуникации сотрудников для непосредственного решения производственных задач;</li><li>безопасная обработка информации в недоверенной среде;</li><li>контроль доступа к документам, информационным системам и сервисам компании.</li></ul><h3>Как изменится рынок труда айтишников?</h3><p>Рынок труда ИТ-отрасли – самый мобильный из всех существующих. Разработка, техническая поддержка, дистанционное предоставление online сервисов и многое другое уже давно не требует присутствия большой массы сотрудников в офисах. Можно сказать, что ИТ-отрасль оказалась наиболее подготовленной к новым условиям. Можно лишь говорить об увеличении доли сотрудников, которые будут посещать офис непостоянно. В итоге в офисах будет обитать менеджмент, ведущие специалисты и сотрудники отделов продаж.</p><h3>Вытеснит ли собственная разработка аутсорс?</h3><p>До полного вытеснения еще очень и очень далеко. Пандемия не очень сильно влияет на этот процесс. Собственная команда может прекрасно работать из дома при надлежащем управлении и контроле за процессами и задачами. При этом очевидные плюсы собственной разработки всегда будут конкурировать с соблазном использовать аутсорс.</p><h3>Как пандемия повлияет на IT?</h3><p>Сомнений нет, что происходящее в мире повлияет на отрасль. Девальвация рубля, ухудшение макроэкономической среды, снижение деловой активности — все это отразится на отрасли со знаком минус. При этом надо понимать, что ИТ-рынок неоднороден, поэтому пандемия в некоторых сегментах предоставит хорошие возможности для роста.</p><h3>Какие IT направления станут более востребованными, а какие окажутся в упадке?</h3><p>В выигрыше окажутся производители решений и сервисов для совместной работы, информационная безопасность, разработка во всех своих проявлениях (многим придется адаптировать бизнес-модели к новым реалиям).</p><p>В целом в рамках оптимизации бюджетов компании будут отказываться от избыточной функциональности в пользу более экономически оправданных вариантов, сдвигать сроки реализации запланированных проектов. Соответственно, замедлятся инвестиции в ИТ-инфраструктуру (если посмотреть на аналитику, то по итогам апреля уже есть «просадка» в поставках).</p><h3>Как изменится рынок труда айтишников?</h3><p>Причин для радикальных перемен я не вижу. Это может прозвучать парадоксально, но сейчас не самое плохое время для рынка труда ИТ. Косвенным бенчмарком могут служить акции высокотехнологичных компаний, многие из них достигли своих максимальных значений, несмотря на пандемию. Оглянитесь по сторонам — происходящее делает нас еще более зависимыми от технологий. Похоже, мы можем жить, отказавшись от торговых центров, ресторанов, кинотеатров, сложнее представить себе отказ от интернета и сервисов, которые мы сейчас так активно потребляем…</p><h3>Вытеснит ли собственная разработка аутсорс?</h3><p>Точно нет. Далеко не все компании способны выстроить собственную инфраструктуру разработки и сделать ее конкурентной по отношению к внешним игрокам. Крупные компании — да, но даже им нужна эластичность в ресурсах. Также недостатком любой in-house системы всегда будет ее большая изолированность по отношению к внешнему миру по сравнению с аутсорсинговыми компаниями и, как следствие, меньшая восприимчивость к новым идеям и экспериментам. Исключение составляют только компании, для которых разработка — это core business. Для остальных вопрос о затратах на это направление всегда будет актуальным и бизнес будет предпринимать попытки их оптимизировать. То есть компаниям проще забрать с рынка труда уже состоявшихся специалистов — носителей новых практик и необходимых технологий, которые можно быстро конвертировать в бизнес-результат. Это менее затратный и более предсказуемый для бизнеса вариант, чем содержание собственного R&amp;D и готовность списывать неудачные инвестиции.</p><p>Аутсорсинговые компании могут выступать носителями узкоспециализированной экспертизы, успешно адаптировать новые технологии под потребности своих клиентов или выступать в качестве временного подспорья в реализации проектов, и здесь с ними будет сложно конкурировать в силу их большей гибкости и специализации.</p><h3>Как пандемия повлияет на IT?</h3><p>Применяемые меры по предотвращению распространения вируса безусловно влияют на все направления бизнеса, в том числе и ИТ. Но, на наш взгляд, на сегодняшний день сфера ИТ страдает меньше, так как не требует от персонала постоянного присутствия в офисе и задач, напрямую зависимые от местоположения. В нашей компании многие сотрудники и до самоизоляции работали удаленно, и каждый мог в любой день остаться работать дома. Переход на удаленный формат произошел для нас «безболезненно». Мы считаем, что в зону риска попали те ИТ-специалисты, которые работают в компаниях, связанных с производством, логистикой, туристической сферой и те, кто зависят от своих клиентов. А также замечаем, что все известные ИТ-конференции переходят в онлайн или совсем отменяются, что тоже сказывается на сфере ИТ в целом.</p><p>Наша компания готова к тому, что в ближайшие полгода-год нас, скорее всего, ждет уменьшение количества заказов, тк IT все-таки является поддерживающей структурой (фактически, сферой обслуживания), да и рост экономики замедлился или прекратился. Все эти факторы, конечно же отразятся на нашей индустрии.</p><p>Надеемся только на то, что основные отрасли, с которыми работает наша компания (ритейл, государственный и финансовый сектора, здравоохранение), не терпят глобальных убытков и, по большей части, продолжают функционировать в штатном режиме.</p><h3>Какие IT направления станут более востребованными, а какие окажутся в упадке?</h3><p>Все ИТ направления будут востребованы в разной мере, и, конечно же, сильно зависеть от заказчиков и индустрии.</p><p>Как показали последние 2 месяца самоизоляции максимальный скачок получили: онлайн-торговля, онлайн-обучение, онлайн-игры (продажа многих игр увеличилась в 3-4 раза, а ведь над их разработкой также трудятся IT специалисты), онлайн доставка еды, онлайн-кинотеатры, онлайн заказы разного уровня, система государственных услуг, приложения предоставляющие финансовые услуги, услуги такси, доставки продуктов и другие ритейлы. Все это сервисы доставок и компании, оказывающие онлайн услуги, в них востребованы различные IT специалисты, от техподдержки и комьюнити менеджеров, до архитекторов и разработчиков уровня Senior.</p><p>Останутся востребованы различные месседжеры, системы видеосвязи, решения по облачному хранению, защите данных, удаленный доступ. По нашему мнению, спрос на все системы будет только возрастать и говорить об упадке какой-либо системы еще пока рано, а выполнять все эти задачи предстоит IT специалистам.</p><p>Если смотреть по нашей компании, то за последнее время самые частые запросы – разработка личных кабинетов, порталов, кросс-платформенных приложений, CRM, проектного и банковского ПО.</p><h3>Как изменится рынок труда айтишников?</h3><p>В течение последних лет рынок труда IT постоянно растет и развивается, появляются новые профессии и, как следствие образуется «кадровый дефицит». Пандемия перечеркнула эту тенденцию.</p><p>Возможно, на фоне самоизоляции будут появляться новые профессии, связанные с поддержкой предприятий, которые решили перейти на удаленный формат работы. Скорее всего будут небольшие сокращения, которые чуть-чуть опустят зарплатные планки.</p><p>И, конечно же, останутся востребованными специалисты, которые сами пишут код, разрабатывают архитектуру, те, кто смогут поддержать существующий код и работать самостоятельно. Следовательно, больше всего пострадает менеджерский состав, а также небольшие компании и компании, работающие с самыми пострадавшими от пандемии отраслями, например, туризм.</p><p>В нынешней ситуации, мы не остановили поиск кандидатов, количество запросов уменьшилось всего на 3 %, а трафик на карьерный сайт компании увеличился на 18 %.</p><h3>Вытеснит ли собственная разработка аутсорс?</h3><p>Аутсорс стал неотъемлемой частью в ИТ-бизнесе, особенно для компаний, которые не располагают собственной профессиональной командой разработчиков. Передача проекта на аутсорс – это экономия денег и времени, снижение рисков и возможность избежать ошибок, а также комплексное техническое обслуживание.</p><p>Профессиональные аутсорсные IT компании предоставляют не только полную поддержку и высокопрофессиональных специалистов, создавших десятки проектов, но и предлагают финансовые гарантии, подбирают IT решения и IT инфраструктуры под каждого заказчика. Правда, очень важно серьезно подходить к выбору подрядчика.</p><p>На наш взгляд, слишком много бенефитов предоставляет аутсорсная разработка клиентам, да и достаточно трудно быстро собрать свою, компетентную команду, мало кто из заказчиков готов взять на себя риски и существенно увеличить время разработки. Поэтому, IT аутсорс никуда не денется.</p><h3>Как пандемия повлияет на IT?</h3><p>Пандемия привела к кризису, который будет длиться еще долго во многих отраслях. При этом состояние дел в IT во многом зависит от других сфер: многие уже столкнулись с последствиями пандемии и сократили непрофильные затраты, в том числе и на IT. Поэтому нашу отрасль последствия ждут позже остальных, и даже если сейчас компании отмечают рост прибыли, следует заранее готовиться к негативному сценарию, диверсифицировать бизнес и оптимизировать затраты.</p><h3>Какие IT направления станут более востребованными, а какие окажутся в упадке?</h3><p>С другой стороны, кризис повысил спрос на ряд IT-продуктов, которые ранее не были настолько массово востребованными, что стало плюсом для профильных компаний-разработчиков. К таким направлениям относятся различные digital-сервисы, которые помогают автоматизировать бизнес-процессы и переводить работу компаний в онлайн: корпоративные порталы для удаленной работы и интеграций с CRM и 1C, личные кабинеты пользователей на сайтах, сервисы онлайн-оплаты и доставки и т.д. Кто-то внедрил их в самом начале кризиса, чтобы продолжать работать удаленно во время карантина, кто-то озаботился этим только сейчас. Однако уже очевидно, что дальше без оцифровки процессов сохранить бизнес и конкурировать на рынке будет крайне сложно.</p><p>В упадке окажется бизнес, у которого ключевые клиенты и сервисы связаны с наиболее пострадавшими отраслями.</p><h3>Как изменится рынок труда айтишников?</h3><p>В целом рынок труда в IT пострадает несильно. Некоторые компании сейчас приостановили поиск новых сотрудников, а те, на которых кризис повлиял в меньшей степени, даже продолжают найм. Массовых увольнений в этой сфере ждать не стоит, поскольку хороших программистов найти сложно и работодатели будут стараться сохранить ценные кадры. Увольнения, как и раньше, в основном будут грозить только неэффективным работникам. Тем не менее, кризис охладит перегретый ранее рынок труда в IT и скорректирует уровень зарплат.</p><h3>Вытеснит ли собственная разработка аутсорс?</h3><p>Многие компании, которые ранее развивали цифровые направления у себя внутри, могут задуматься об уменьшении постоянных расходов и вернуться к переменным, периодически заказывая IT-услуги по мере необходимости.</p><h3>Как пандемия повлияет на IT?</h3><p>На данный момент для точных прогнозов прошло мало времени. Что-либо станет понятно по прошествии как минимум квартала. Но одно ясно: мир, и ИТ в частности, не вернется к докризисному состоянию. Пандемия значительно ускорила процессы цифровой трансформации компаний. Заказчики и партнеры оперативно ищут решения, которые позволят им работать и оставаться конкурентными в сложившейся обстановке. По нашим данным, более 50 % компаний готовы инвестировать в свое развитие в этом направлении. Естественно, что кто-то «погибнет» в этой гонке, но те, кто выдержат, станут сильнее и гибче.</p><h3>Какие IT-направления станут более востребованными, а какие окажутся в упадке?</h3><p>Опираясь на вышесказанное, тренд будет в сторону автоматизации максимального числа ИТ и бизнес-процессов. Что приведет к минимизации роли человека и сокращению штата обслуживающего персонала. В том числе, это произойдет по причине внедрения систем автоматического мониторинга IT-инфраструктуры. Уже сейчас мы видим, что многие вопросы ИТ вполне успешно решают удаленно.</p><p>Совершенно точно будет востребовано направление DevOps, которое будет развиваться и в компаниях-заказчиках, и в организациях, предоставляющих IT-услуги. Последние, в свою очередь, будут активно предлагать аутсорсинг по данному направлению.</p><h3>Как изменится рынок труда айтишников?</h3><p>Компании будут нанимать новых IT-сотрудников. В частности, облачных архитекторов, разработчиков, финансовых IT-аналитиков, специалистов по обработке и анализу данных. Но сократятся расходы на заработную плату. В том числе будет активно вестись оптимизация текущего штата сотрудников в сторону уменьшения IT-персонала начального уровня и сотрудников, чью работу можно автоматизировать без потери качества.</p><h3>Вытеснит ли собственная разработка аутсорс?</h3><p>На этот вопрос сложно ответить, потому что для компаний из разных секторов бизнеса будут справедливы разные подходы. Крупным организациям удобнее и быстрее решать задачи с помощью собственного штата сотрудников. Небольшим компаниям, наоборот, лучше прибегнуть к аутсорсингу проектов. Возможно, станет востребовано направление аутстаффинга, т.е. «заимствование» отдельных специалистов в специализированных компаниях.</p><p>На самом деле, никто особо не знает, что будет после пандемии. IT отрасль очень большая. Мы, как представители диджитал, можем сделать предположения только об этой части.</p><p>Думаю, что компании обратят больше внимания на сферу электронной коммерции. Это будет касаться сайтов, форм складского учета, сервисов доставки и т.п. Все это будет развиваться впоследствии особенно активно.</p><p>Бодрее будет чувствовать себя сфера корпоративных порталов, которые позволяют организовать людей удаленно. Сейчас многие компании поняли, что некоторые специалисты могут эффективно работать вне офиса, и стремятся настроить этот формат. Это в том числе позволяет значительно сократить производственные расходы них.</p><p>Думаю, что может последовать также распространение сдельных форм оплаты труда, которые позволят оптимизировать затраты на ФОТ.</p><p>Предпосылок для вытеснения аутсорса я не вижу. Скорее наоборот. Если сохранится тенденция, когда часть сотрудников может остаться работать на удаленке, то аутсорсинг может вырасти. Так как это, по сути, та же команда на удаленке по сдельной форме оплаты.</p><p>Впоследствии пандемии IT-отрасль однозначно будет претерпевать определенные изменения. В первую очередь изменится формат работы и подход к найму сотрудников. Это связано с тем, что компании, которые ранее принципиально не рассматривали удаленку, были только за оффлайн, сейчас поменяли свое отношение к удаленной работе. Такой компанией являемся и мы в том числе.</p><p>Популярными я вижу сферы по обеспечению комфортного рабочего процесса: видеосвязь, подключение удаленного рабочего места. Среди профессий могу выделить системных администраторов и инженеров по информационной безопасности. Скорее всего разработка систем по контролю компьютера сотрудниками и управлению корпоративными данными, которые он использует в условиях удаленной работы, станет одной из самых популярных.</p><p>Что касается изменений на рынке труда, то тут очевидно, что те ребята, которые вообще не рассматривали удаленную работу по различным причинам, сейчас, попробовав, оценили все плюсы работы из дома: экономия времени, денег и т.д. Но я вижу, что всё равно большое количество специалистов хотят выходить в офис.</p><p>Вытеснит ли собственная разработка аутсорс — сомневаюсь, ведь собственная разработка точно также способна уйти на удаленку. Я думаю, что сфера аутсорса расширится, особенно, если решения для информационной безопасности смогут контролировать процессы полностью, тогда бизнес не будет бояться утечек. Ведь большинство компаний не работают с удаленщиками, потому что есть ряд причин, например, конфиденциальность заказчика, либо высококонкурентная среда, в которой сложно отследить, где сотрудник использует ту или иную информацию. Тут также есть некоторые технические причины, например, если монолитная архитектура проекта, то ее достаточно сложно отдать на удаленку, потому что там всё взаимосвязано. При микросервисной архитектуре уже можно по кусочкам отдавать что-то на удаленку либо на аутсорс. Поэтому, повторюсь, от технических характеристик самого проект тоже очень много зависит, если у вас какая-то старая тяжелая монолитная система тут, конечно, очень сложно работать в удаленном формате, хотя некоторые компании работают.</p><p>В текущих условиях мы можем отметить, что крайне популярна стала разработка систем онлайн-заказов и онлайн-оплаты. Например, доставка еды или доставка товаров для домашнего ухода. Те компании, которые ранее не работали на развоз, до сих пор активно внедряют системы онлайн-оплаты и т.д.</p><p>Мы можем увидеть, что даже гос.учреждения пытаются полностью перевести в онлайн некоторые проекты, такие как, получение справок, различных документов и прием заявлений. Я вижу, что государственные онлайн-сервисы крайне популярны и скорее всего они продолжат и дальше набирать обороты.</p><p>В упадке скорее всего окажутся те сферы, которые сейчас сильно пострадали: ивент, общепит и т.д., а значит пострадает и разработка десктопных приложений, которыми человек пользуется, приходя в само заведение или на мероприятие. Это, например, системы для обслуживания касс или приема средств в кафе, системы пропускных пунктов и т.д. Также скорее всего из-за резкого снижения различных ивентов, сильно понизился спрос на системы по регистрации, покупке билетов, аккредитации участников на конференциях, матчах и на другие различные продукты для обслуживания крупных и средних мероприятий.</p><h3>Как пандемия повлияет на IT?</h3><p>На мой взгляд, в экономике уже есть тенденция ускорения перетока бизнеса в интернет/онлайн. Это создает для IT чуть лучшие условия, чем для экономики в целом. При этом пандемия негативно влияет на ряд секторов экономики, причем, судя по всему, негативное влияние рецессии пока перевешивает первый позитивный для IT тренд. И в целом работы в IT стало чуть меньше.</p><h3>Какие IT-направления станут более востребованными, а какие окажутся в упадке?</h3><p>Коротко: все, что связано с изменениями под карантины и реструктуризацию экономики: онлайн-ритейл, онлайн-обучение, некоторые области healthcare, legal, некоторые области финансов — будут востребованы чуть больше, чем раньше. Все, что связано с путешествиями, с большими скоплениями публики — театры, торговые центры, стадионный спорт, офисная аренда — немного пострадает.</p><p>Последствия негативно повлияют на страховые компании и некоторые кредитные организации.</p><h3>Как изменится рынок труда айтишников?</h3><p>Из-за перетока кадров в областях, страдающих от рецессии, может стать больше специалистов на рынке труда.</p><h3>Вытеснит ли собственная разработка аутсорс?</h3><p>Нанять себе специалиста на рынке труда, возможно, будет попроще, но экспертиза эффективной работы с распределенными командами может помочь аутсорсерам сохранить долю рынка и даже, возможно, ее расширить.</p><p>Если говорить в целом — сейчас выигрывают компании, ориентированные на частных лиц. В режиме карантина люди больше потребляют интернет-услуги и услуги провайдеров, растет спрос на ПО для персональной безопасности, т.е. файерволы, total security, антивирусы и т.д. Также в выигрыше сейчас те, кто делает средства удаленного доступа (remote desktop, VDI). Не останутся в накладе и представители облачных услуг, которые предоставляют удаленный доступ к рабочим местам. У нас, например, в связи с пандемией возрос спрос на облачный офис — появилось порядка десятка запросов от крупных компаний и государственных органов на инсталляцию наших продуктов в самое ближайшее время. Это тысячи новых рабочих мест в облаке.</p><p>Затормозились все, кому нужен физический доступ к рабочим местам (например, к АСУ ТП). Если оборудованию необходима настройка, а ее по каким-то причинам невозможно осуществить удаленно, то скорее всего проект будет приостановлен или отложен. Это и различные SAP- и ERP-системы, а также те, где так или иначе требуется доступ на рабочие места и в которых наладить удаленную работу не представляется возможным.</p><p>Безусловно, вероятность повторного возникновения биологических угроз приведет к тому, что предприятия сосредоточатся на цифровизации и удаленной работе сотрудников. Я полагаю, что сейчас будет всплеск VR-технологий, потому что благодаря им появляется возможность дать доступ к дистанционному оборудованию. Например, эта технология позволяет наладчику работать удаленным манипулятором, не находясь физически на объекте. В играх VR позволит зарабатывать, сидя дома. До текущего времени к технологии относились больше как к игрушке, и практика применения была не очень широкой, а сейчас возникает реальная бизнес-потребность.</p><p>Основная проблема текущего кризиса — неизвестно, сколько он продлится и когда восстановится рынок для всех продуктов. Просела экономика в целом, а ИТ — это ведь обслуживающий сектор реальной экономики. Кроме того, сейчас сильно проседают производители «железа» — фабрики не работают, процессоры не выпускаются. Для общего состояния экономики крайне важно, как себя сейчас чувствуют граждане, малый и средний бизнес. Многие ожидают практически дефолтного состояния. Поэтому цифровизация — это, с одной стороны, выход, с другой — автоматизация труда и падение доходов мелких и средних предприятий. Индустрия выиграет везде, где можно обеспечить удаленное присутствие. Все технологии, которые позволят человеку не быть где-либо физически и получать необходимый контент. Например, онлайн-образование — но оно для начала должно претерпеть некоторые изменения, ведь есть навыки, которые «в компьютере» не разовьешь. Упомянутый ранее VR, к примеру, позволит развивать моторику, отрабатывать некоторые операции. Ритейл трансформируется в онлайн. Вырастут магазины, которые готовы организовывать виртуальную примерку и прочие услуги, продиктованные временем, включая быструю доставку.</p><p>Думаю, стоит ожидать достаточно сильное потрясение в аутсорсинге. Нас в принципе ждет тотальная востребованность удаленной работы, и у программистов должна появиться возможность 100% перехода на такой вид работ. Основная проблема эффективной аутсорс-работы заключается в необходимости постоянного общения с клиентами, и удаленно его не всегда получается выстроить.</p><p>Сейчас мы отмечаем повышенный спрос на облачный офис, почту и продукты, которые дают компаниям возможность поставить у себя внутри дата-центра сервера и обеспечить доступ всем сотрудникам. Считаю, что текущая ситуация простимулирует цифровизацию образования в целом, и важные перемены начнутся, скорее всего, уже со следующего учебного года.</p><p>Мы, как компания разработки VR и AR продуктов, сполна ощутили все плюсы и минусы IT.</p><p>С одной стороны в нашем случае все классические проекты от заказчиков встали на паузу, так как для них это были расходы на развитие, но появились и серьёзные перспективы. Совершенно точно видно, что взгляды заказчиков устремились в удалёнку. Я уверен, что в большинстве случаев это крактовременно и не вызовет спрос прямо сейчас, но важнее всего именно то, что на это обратили внимание и попробовали, а значит тренд начат начат.</p><p>Удалённое обучение и внедрение и доработка методов удалённого управления будут флагманами этого движения.</p><p>Прямо сейчас мы, как и все, оптимизируем расходы, а это значит, что мы стали меньше отдавать на аутсорс, а то, что отдаём — формулируем максимально жёстко и чётко и менеджерим.</p><p>Думаю длительными итогами пандемии для IT рынка будут:</p><ol><li>Более лояльное отношение к удалённой работе.</li><li>Повсеместное просачивание принципов SCRUM во взаимотношениях исполнитель-заказчик.</li><li>Касамо аутсорса моё мнение — в моменте он уменьшится, но в перспективе его станет наоборот больше. Заказчик поймёт как правильно формулировать свои потребности и задачи и ощутит выгоду от их аутсорса. Конечно если речь идёт не о ключевых составляющих продукта заказчика.</li></ol><p>Наша ставка точно на VR и AR. Уже сейчас видно как ключевые плюсы технологии находят отражение в запросах рынка.</p><h3>Как пандемия повлияет на IT?</h3><p>Пандемия, которая вывела из строя многие отрасли, для IT, с одной стороны, выступает катализатором. Сейчас бизнесы переводятся в онлайн, что ускоряет процесс цифровизации, и ее преимущества сейчас увидели даже те компании, которые раньше предпочитали работать старыми методами. Скорее всего, после снятия карантина интенсивность цифрового взаимодействия если и спадет, то не слишком сильно, поскольку стало очевидно, что оно часто удобнее и выгоднее. С другой стороны, экономика в серьезном кризисе, что скажется и на IT – сократятся расходы на внедрение новых решений, крупные IT-проекта, так что, с другой стороны, тормозящий фактор тоже есть. Но первая тенденция гораздо заметнее, а ее влияние гораздо сильнее, тогда как экономический спад – явление временное.</p><h3>Какие IT направления станут более востребованными, а какие окажутся в упадке?</h3><p>Несомненно, решения для видеосвязи, удаленного доступа будут более востребованы, уже сейчас зафиксирован рост спроса на услуги голосовой связи на 15 %, на столько же увеличился спрос на мобильный интернет, а рост спроса на фиксированный доступ в России увеличился на 30 %. Но стоит понимать, что при удаленном режиме работы, к которому сейчас прибегли все, кто мог это сделать, информация становится более уязвимой. Она уже не находится внутри контура предприятия, а значит, к ней проще получить несанкционированный доступ, тем более если сотрудники используют личные устройства. Поэтому я бы ожидал роста спроса и на решения, обеспечивающие безопасность.</p><p>Кроме того, очень актуальны решения для ритейла, который сейчас принципиально меняет свою структуру: покупатель уже не ходит в магазин, а пользуется доставкой. Кроме того, другим стало и потребление: переход на онлайн-заказы снижает объемы спонтанных покупок, при этом если раньше покупали чаще, но меньше, то сейчас увеличивается объем покупки, но снижается частота. Это создает вызов и для ритейла, и для поставщиков: нужно по-новому планировать структуру поставок, маркетинговые акции, логистику, организацию и так далее. Скорее всего, изменения в потребительском поведении сохранятся и после отмены карантинных мер, хотя, конечно, частичное обратное перераспределение произойдет. Что касается упадка, то пострадают компании, которые разрабатывали решения для отраслей, практически остановивших свою деятельность: авиакомпаний, туристической сферы и т.п., но важно понимать, что это временная приостановка, так что правильнее все же говорить не об упадке, а о временном спаде. Кроме того, негативно скажется пандемия и на производителях «железа» – с одной стороны, из-за временного простоя предприятий, в первую очередь в Китае, с другой – из-за того, что заказчики тоже находятся в кризисе и вряд ли будут готовы идти в ближайшее время на обновление или усиление своих технических мощностей. Но здесь также спад будет временным, хотя сейчас сложно сказать, как долго этот период продлится.</p><h3>Как изменится рынок труда айтишников? Вытеснит ли собственная разработка аутсорс?</h3><p>Перемены, конечно, будут, но не думаю, что структура рынка поменяется слишком уж сильно. Уже есть данные о том, что рост в сегменте ИТ-консалтинга и сервисов замедлился, но как такового спада мы пока не видим, а согласно прогнозам, в ближайший год сокращение будет около 1 %. Дело в том, что многие IT-специалисты и до пандемии были не так сильно привязаны к конкретному офису или предприятию, удаленная работа в этой сфере – в порядке вещей, просто если раньше это была одна из возможных опций, то сейчас, в период карантина, она превратилась в основной формат взаимодействия. Что касается перераспределения между собственной разработкой и аутсорсом – то здесь тоже нет особых причин для принципиального перераспределения. Есть задачи, которые проще и выгоднее решать на аутсорсе, особенно если речь идет о разовом срочном проекте, и, кстати, сейчас, когда все экстренно переходят в онлайн-формат, их стало больше. Но есть и задачи, для которых предпочтительнее собственный пул разработчиков, поэтому думаю, что оба формата останутся востребованными.</p><p>Влияние пандемии носит разнонаправленный характер. Вот несколько примеров:</p><ul><li>Сегмент оборудования. Производство «железа» сосредоточено на заводах в Китае. Да, Китай подает обнадеживающие сигналы о возобновлении ИТ-производства, но говорить о том, что цепочки поставок восстановлены, а заводы по изготовлению оборудования вышли на докризисную производительность, пока рано. Это может стать поводом для крупных производителей ИТ-оборудования наладить сборку либо в странах, где были основаны компании, либо в соседних государствах.</li><li>Сегмент сервисов. Пандемия преподала организациям разных отраслей хороший урок. Компании создают в облаках «параллельную» инфраструктуру, а также привлекают профессиональные сервисы, направленные на обеспечение непрерывности бизнеса — кибербезопасность, устойчивость к кибератакам и сбоям, быстрое восстановление в случае каких-либо проблем, а также оперативная организация работы распределенных команд.</li><li>Сегмент ПО. Да, разработки программных решений меньше подвержена влиянию пандемии, потому софт довольно давно делается распределенными командами. Но закрытие границ и отмена крупных мероприятий оставили софтверные компании без основных каналов коммуникации с возможными и существующими клиентами. То есть, пока никаких партнерских конференций, семинаров, отраслевых саммитов и других мероприятий, которые помогают продажам. Полноценное восстанвление станет возможным, когда границы снова откроют.</li></ul><p>В мире после пандемии снизится градус приватности. Во-первых, из-за распространения режима труда home office работодатель захочет знать немного больше о том, чем мы занимаемся во время, которое он нам оплачивает. Поэтому все больше компаний захотят понимать, как работники распределяют время с девяти до шести. Они будут делать это с помощью специальных средств мониторинга деятельности персонала за рабочими ПК. Во-вторых, очевиден интерес правительств к контролю за гражданами, особенно сразу же после возобновления международного авиасообщения. Это будет неприятно понимать, но правительства слишком напуганы коронавирусным опытом и предпочтут ужесточить контроль, чтобы не допустить других эпидемий.</p><p>С началом пандемии многие компании перевели своих IT-специалистов на удаленку, так как для осуществления обязанностей большинства из них не требуется постоянного присутствия в офисе. Исключение составляют сотрудники, обслуживающие рабочие компьютеры, сети и серверы, но и их присутствие необходимо лишь в отдельных случаях.</p><p>Для такого перехода были все возможности и до пандемии, но большинство компаний откладывало этот момент. К тому же была важна имиджевая составляющая — считалось непрестижным, если большая часть сотрудников работает на удаленке. В этом плане пандемия сыграет важную роль — удаленка станет привычной, и не будет восприниматься как фактор, понижающий престиж компании. Скорее наоборот — это будет свидетельствовать о гибкости и прогрессивности компании, умении быстро перестроиться при непредвиденных обстоятельствах.</p><p>Большая часть компаний, скорее всего, не будет возвращать ИТ-сотрудников в офисы после окончания пандемии без наличия весомых причин. То есть сотруднику нужно будет обосновать необходимость своего присутствия в офисе. Понятно, что для подавляющего большинства программистов такого обоснования не найдется, и они продолжат работать из дома. То же самое можно сказать и про специалистов Data Science, аналитиков больших данных и специалистов по искусственному интеллекту. Что касается системных администраторов, то, скорее всего, посещение офиса будет эпизодическим — например, один день в неделю дежурство в офисе, а остальные дни — на удаленке.</p><p>Вследствие удаленного характера работы у опытных ИТ-сотрудников из провинции расширятся возможности трудоустройства, они смогут претендовать на вакансии в столице или в других крупных городах. При этом у начинающих специалистов могут возникнуть трудности с поиском первого места работы. Из-за того, что руководители и старшие ИТ-сотрудники не будут постоянно присутствовать в офисе, могут возникнуть сложности с онбордингом новых сотрудников, и особенно это касается Junior-специалистов.</p><p>В целом ИТ-рынок после пандемии будет играть более серьезную роль, так как в случае серьезного кризиса больше всех пострадают компании, не успевающие за технологиями. Повысится роль больших данных, облачных технологий, искусственного интеллекта. Но не только технологии важны, также многое зависит от того, насколько хорошо компании научились выстраивать рабочие процессы в новых условиях, поэтому будут развиваться Agile/Scrum, появятся новые требования к софт-скилам сотрудников.</p><p>Наиболее востребованные — видеосвязь (видим тот же zoom), удаленный доступ, очевидно. Компании IAAS, в частности аренда виртуальных серверов. Защитники только в части тех продуктов, которые защищают удаленные подключения.</p><p>Сейчас мы точно знаем, что те, кто занимался IT безопасностью, ее аудитом, настройкой, испытывают недостаток заказов, офисы закрыты, все проекты застыли.</p><p>Спрос есть только на антивирусы и какие-то локальные программы для защиты.</p><p>IAAS скорее всего сильно не поменяется, так как приток новых клиентов не компенсирует отток тех, кто вынужден закрыть или приостановить проекты.</p><p>Есть предположение, что на волне будут разработчики мобильных приложений (для тех же ресторанов для доставки) и разработчики в целом. Другое дело, что от роста количества заказов на разработку их возможности реализовать все сразу не вырастут, то есть можно сказать, что голодать они точно не будут, но и сильно больше денег они зарабатывать сразу не смогут, для этого надо расширить штат, а с учетом того, что потенциальные клиенты имеют проблемы с доходами, много платить они не смогут.</p><p>Пандемия сильно отразится на развитии ИТ-отрасли. Кризис еще больше обострит требования бизнеса к ИТ: экономить, ускорить применение новых технологий, создавать цифровые продукты для решения собственных задач, улучшать имеющиеся цифровые продукты. Облака станут главным ресурсом для исполнения новых требований бизнеса. Однако, рост потребления в целом еще не говорит о трансформации бизнеса. Трансформация начинается, когда компания планирует и измеряет ИТ-инициативы бизнес-показателями: экономия затрат, увеличение выручки и т.д.</p><p>Многие компании уже сейчас применяют облака при решении бизнес-задач, что позволяет им справляются с вызовами. Благодаря использованию облаков крупнейший сервис по эвакуации авто в России CarTaxi добился масштабирования архитектуры системы для обеспечения бесперебойной работы в часы пиковой нагрузки, а компания Axelbot смогла значительно улучшить возможности оперативного развертывания – автоматизировала запуск игровых серверов при растущей нагрузке. Компания Декатлон Россия запустила облачный онлайн-спортзал, где каждый день проводятся тысячи индивидуальных и групповых тренировок. Помимо базовых IaaS ресурсов, в будущем будет расти спрос на Managed Services (Kubernetes, Data Bases) как инструмент экономии, и ML/AI как инструмент автоматизации. После завершения острой фазы кризиса вызовы к ИТ никуда не уйдут, а станут новой нормой. Успех на рынке будет во многом зависеть от уровня знаний и готовности бизнес-лидеров выходить за рамки старых подходов.</p><p>Что касается рынка труда, то он изменит требование бизнеса повышать эффективность вложений в ИТ. За счет применения managed services будут сокращаться временные затраты специалистов на обслуживание технологий. И тем, кто не занимался другими направлениями и не развивал другие скиллы и знания, будет сложнее найти работу на рынке.</p><h3>Как изменится IT отрасль вследствие пандемии?</h3><p>По мнению экспертов, пандемия значительно ускорила процессы цифровой трансформации компаний. Заказчики и партнёры оперативно ищут решения, которые позволят им работать и оставаться конкурентными в сложившейся обстановке.</p><p>Соответственно, значение приобретают технологии, без которых организация не сможет выживать в наступивших условиях:</p><ul><li>коммуникации сотрудников для непосредственного решения производственных задач;</li><li>безопасная обработка информации в недоверенной среде;</li><li>контроль доступа к документам, информационным системам и сервисам компании.</li></ul><p>В целом, разные онлайн-сервисы, такие как онлайн-ритейл, онлайн-обучение, онлайн заказы разного уровня, система государственных услуг, приложения предоставляющие финансовые услуги, будут востребованы чуть больше, чем раньше.</p><p>Что касается рынка труда, то компании будут нанимать новых сотрудников. В частности, облачных архитекторов, разработчиков, финансовых IT-аналитиков, специалистов по обработке и анализу данных. Но сократятся расходы на заработную плату. В том числе будет активно вестись оптимизация текущего штата сотрудников в сторону уменьшения IT-персонала начального уровня и сотрудников, чью работу можно автоматизировать без потери качества.</p><p>Напоминаем, что вы можете <a href="https://docs.google.com/forms/d/e/1FAIpQLSdSanNvlfPRrSyQWfnoGPflSVwO4KctnjOdEKHzuxjCmFX2dA/viewform">задать свой вопрос</a> экспертам, а мы соберём на него ответы, если он окажется интересным. Вопросы, которые уже задавались, можно найти в списке выпусков <a href="https://tproger.ru/experts/">рубрики</a>. Если вы хотите присоединиться к числу экспертов и прислать ответ от вашей компании или лично от вас, то пишите на <a>experts@tproger.ru</a>, мы расскажем, как это сделать.</p>]]></content:encoded>
    </item>
    <item>
      <title>Как программисту выбрать хобби — отвечают эксперты</title>
      <link>https://tproger.ru/experts/choosing-a-hobby</link>
      <comments>https://tproger.ru/experts/choosing-a-hobby?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Никита Прияцелюк]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/experts/choosing-a-hobby</guid>
      <description><![CDATA[<p>Эксперты рассказывают, какие увлечения выбирают программисты: от спортивного программирования до спорта ради компенсации сидячей работы.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/experts/choosing-a-hobby">Как программисту выбрать хобби — отвечают эксперты</a>»</p>]]></description>
      <category><![CDATA[Хобби]]></category>
      <category><![CDATA[Советы]]></category>
      <category><![CDATA[Ответы экспертов]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 14 May 2020 04:39:44 GMT</pubDate>
      <content:encoded><![CDATA[<p>Программисты тоже люди, поэтому далеко не все хотят кодить в режиме 24/7, а занимаются чем-то ещё, чтобы отвлечься от работы (хоть и не всегда). Решили спросить у экспертов, какие хобби чаще всего выбирают программисты.</p><p>Как программисту выбрать хобби?</p><p>У программистов бывают очень разные хобби, и ребята из нашей компании тому подтверждение. Кто-то увлекается спортивным программированием, применяя потом полученные навыки оптимизации программ и разработки алгоритмов для решения рабочих задач. Так как программисты много времени проводят в сидячем положении, многие стремятся поддерживать физическую форму: играют в волейбол, страйкбол, пейнтбол. У нас есть собственные профессиональные команды по баскетболу и футболу, которые состоят преимущественно из сотрудников компании.</p><p>Некоторые ребята предпочитают увлечения, связанные с развитием мелкой моторики. В команде есть спидкуберы, знатоки разных трюков с картами, а также любители локпикинга – в одном из кабинетов даже можно найти несколько тренировочных замков и инструменты для их вскрытия. Такие хобби позволяют занять руки, пока голова концентрируется на обдумывании сложных задач. Также в нашей команде много музыкантов – каждый третий играет на чём-либо или поет. В офисе есть комната для репетиций, которую даже иногда используют для звукозаписи. Это пространство, где нет макетов, дедлайнов и шаблонов: некоторые ребята уходят туда в течение рабочего дня на небольшие перерывы, чтобы «переключить» голову, зарядиться эмоционально, а затем вернуться к работе отдохнувшим. Кроме того, есть мнение, что увлечение музыкой коррелирует с развитием мышления, когнитивных и творческих способностей – а это те качества, без которых развиваться в ИТ-индустрии сложнее.</p><p>Есть среди нас те, кто сочетает в себе любовь к математике и фантастике и играет в настольный Warhammer 40000 и DnD. Вообще настольные игры – распространённое хобби среди программистов, но Warhammer 40K многие побаиваются. Коллеги рассказывают, что понять правила игры сложнее, чем изучить новый язык. По сути, Warhammer 40000 похож на прокачанные шахматы: большое количество режимов игры развивает логику, тактические и коммуникативные навыки. Но это не всё, суть настолки в миниатюрах. Покупая их, вы получаете обычный пластик, его нужно собрать и покрасить – и здесь игрок чувствует себя настоящим художником. Ребята рассказывают, что красить миниатюры кисточкой ужасно долго, поэтому они освоили аэрографию.</p><p>И пара слов о путешествиях. Один из главных плюсов нашей профессии – возможность работать удалённо. Многие программисты пользуются этим, ведь путешествия позволяют поймать «свежую волну» и познакомиться с новой культурой. Один из сотрудников нашей компании увлекается тревел-блогингом. Он изучает историю места, куда отправляется, самостоятельно снимает и монтирует видеоролики, которые публикует на собственном ютуб-канале.</p><p>Моё главное увлечение вне работы – музыка. Творческое хобби помогает вырваться из рутины и переключиться на отдых. Для прослушивания любимой музыки я со временем сформировал простенький аудио-тракт, который позволяет полностью погрузиться в произведение и прочувствовать все нюансы композиции, задуманные автором. Также мне нравится играть на цифровом пианино. Благодаря наличию полноценной механической клавиатуры его не отличить от настоящего. В то же время на таком пианино можно играть в наушниках, не мешая соседям.</p><p>Также мне кажется, что для программиста, который проводит за компьютером много временем, классным хобби станут активные виды спорта. Например, мой коллега любит кататься на сноуборде в горах: он рассказывает, что это отличный способ забыть о рабочих проблемах и переключить внимание на впечатляющую природу горных регионов.</p><p>Для программиста, возможно, лучше выбирать такое хобби, которое максимально далеко от программирования, потому что чрезмерная зацикленность на одной и той же деятельности, как бы первоначально она ни нравилась, может привести к эффекту выгорания. Так что лучше разделять работу и хобби.</p><p>Впрочем, многие так и поступают — на работе программируют, а свободное время проводят, делая что-то совершенно не связанное с IT. Например, путешествуют (если это отпуск), занимаются спортом (от простых пробежек до подготовки к Ironman), читают книги, смотрят фильмы и сериалы, слушают музыку. Вообще, у программистов хобби абсолютно такие же, как и у людей других профессий.</p><p>Бывают также ситуации, когда у человека профессия не связана с IT, но он увлекается программированием, и для него это обычное хобби. Такой вариант вполне нормален и даже часто встречается. Другое дело, если это приводит к тому, что человек достигает определённого уровня и решает начать заниматься программированием профессионально. Тогда вчерашнее хобби превращается в работу, и соответственно, это занятие из категории видов отдыха плавно перемещается в способ зарабатывания денег со всеми сопутствующими плюсами и минусами. Возникают производственные отношения, которых не было на стадии программирования как хобби. На такой случай желательно иметь ещё одно хобби, на которое можно переключаться в свободное время.</p><p>Если тяжело определиться с тем, к чему лежит душа, можно из всех видов возможных увлечений выбрать наименее затратное и в то же время сложное — чтение. При этом можно устроить себе своего рода челлендж: прочитать <a href="https://www.livelib.ru/selection/8250-sto-luchshih-knig-v-istorii-po-versii-nobelevskih-laureatov">список из 100 книг, рекомендуемых Нобелевскими лауреатами</a> либо, как вариант — начать читать список книг Нобелевских лауреатов по литературе. Есть еще аналогичный <a href="https://lifehacker.ru/spisok-brodskogo/">список от Бродского</a>. Челлендж непростой, но польза от него точно будет.</p><p>Хорошо помогает переключиться с программирования изучение иностранных языков. Особенно, если это языки, далёкие от английского (так как он часто используется в IT-документации, да и ключевые слова в языках программирования почти всегда английские). Например, сейчас есть много приложений, с помощью которых можно изучать восточные языки: китайский, японский, корейский.</p><p>Программисты, впрочем, как и не-программисты, — люди очень разные. Они имеют разные темпераменты, разные интересы, у них разное окружение, они окончили различные образовательные учреждения. Сейчас, учитывая мощный тренд «войтивайти», среди программистов много не только «технарей», но и гуманитариев.</p><p>И, конечно же, одинаковых увлечений у них быть не может. При этом, я бы выделил две большие группы интересов: технологические и нетехнологические.</p><p>Хобби из первой группы, чаще всего, формируется у тех специалистов, для которых программирование — не просто работа, а призвание. Что может входить в эту группу интересов?</p><ul><li>программирование на других (не используемых в основной работе) языках;</li><li>решение интересных задач, головоломок и квестов, требующих глубоких знаний программирования;</li><li>помощь другим разработчикам в развитии;</li><li>разработка open source библиотек, утилит и программ;</li><li>разработка компьютерных игр;</li><li>радиотехника;</li><li>электроника;</li><li>робототехника;</li><li>3D моделирование деталей, механизмов или игровых персонажей;</li><li>программирование и обучение нейросетей;</li><li>«интеллектуализация» домов, дач, бань, животноводческих и растениеводческих комплексов, автомобилей.</li></ul><p>Хобби из второй группы, напротив, чаще всего формируется у тех, для кого программирование — это работа и способ зарабатывания денег на жизнь. Нельзя сделать вывод, что эти люди плохие программисты. Зачастую — отличные. Но, в свободное от работы время они стараются «переключаться» на совершенно другие виды деятельности.</p><p>Что это может быть?</p><ul><li>физическая культура;</li><li>сочинение музыки;</li><li>сочинение поэтических произведений;</li><li>написание книг;</li><li>рисование;</li><li>резьба по дереву или камню;</li><li>моделирование;</li><li>столярное дело;</li><li>рыбалка;</li><li>охота;</li><li>сбор ягод и грибов;</li><li>игра в шахматы, шашки, нарды, карты, настольные игры;</li><li>самостоятельный ремонт и кастомизация автомобилей;</li><li>джиппинг;</li><li>поиск кладов;</li><li>огородничество;</li><li>разведение животных или помощь бездомным животным;</li><li>уборка мусора и экологические рейды;</li><li>туристические походы.</li></ul><p>Трудно однозначно порекомендовать, интересы из какой группы стоит предпочесть. Это дело личного выбора. Но нельзя не обратить внимания на то, что работа программистом имеет ряд факторов, негативно влияющих на здоровье человека. Это: гиподинамия, высокая нагрузка на левое полушарие мозга, высокая нагрузка на зрительный аппарат при постоянной фокусировке на близких предметах. Поэтому очень полезно иметь в наборе своих увлечений такие, которые снижают риски возникновения последствий этих негативных факторов.</p><p>Чем компенсировать гиподинамию? Движением! Бег, плавание, пешие и велосипедные прогулки и т. п.</p><p>Чем компенсировать нагрузку на левое полушарие? Нагрузкой на правое! Созерцание красивых природных ландшафтов, походы на выставки, музеи и в галереи, рисование, прослушивание музыки и т. п.</p><p>Чем компенсировать нагрузку на зрительный аппарат с перекосом в сторону фокусировки на близких предметах? Отдыхом и изменением типа нагрузки! Нужно хорошо высыпаться, не «залипать» в экраны смартфонов и планшетов в свободное от работы время, дать глазам возможность чаще фокусироваться на дальних предметах — гулять в горах, в полях, по обочинам трасс, — в общем чаще бывать на открытых пространствах.</p><p>Какие увлечения я выбрал лично для себя? Комбинированные. Изучение новых технологий и языков программирования, прогулки с детьми, выезд на природу всей семьёй по офф-роад маршрутам, прогулки по далёким от населённых пунктов участкам местности.</p><p>Как выбирает хобби любой другой человек, не имеющий никакого отношения к разработке? По велению души, по наитию, по интересам, по желанию отвлечься и изучить что-то новое для себя. Точно так же выбирают хобби и программисты. Главное, чтобы было интересно и самому нравилось.</p><p>Одно из самых популярных направлений — это спорт. Полезно не только с моральной точки зрения — разгрузить голову, но и с физической. IT — это про сидячий образ жизни, лишний раз встать за чаем/кофе — уже неплохо, что говорить про прогулки, бег и любую другую активность. Мы проводили в компании опрос про увлечения, и спорт вошёл в список самых упоминаемых: коллеги ходят в тренажёрный зал, на велопрогулки, занимаются каякингом, плаванием, бегом, футболом, волейболом, баскетболом, страйкболом. Я в теме спорта давно: отвлечься на пару часов от повседневности и «освободить голову» мне помогают пробежки и лыжи, зимой стараюсь выбираться в лес каждые выходные. Круглогодично — плавание, тренажёрный зал. Отлично снимает напряжение и настраивает на рабочий лад.</p><p>Отмечу, что еще одно из распространенных увлечений — путешествия. Это — неисчерпаемый источник сил и вдохновения. Новые люди, новые впечатления способны сломить любой барьер внутри человека и вдохновить на свершения. Проблемы перестают восприниматься с негативом, становятся ступеньками, через которые можно выйти на другой уровень. В прошлом году наши ребята посетили Швейцарию, Германию, Францию, Финляндию, Таиланд, Вьетнам, Грецию, Кипр. Кто-то предпочитает путешествовать дикарём по России: сплавляться по рекам Карелии, ездить по Ленинградской области или к друзьям в Татарстан. Немало тех, кто старается выбираться каждые выходные: один наш frontend разработчик активно колесит по Мордовии, развлекая коллег фотографиями и путевыми заметками каждую неделю. Сейчас скучает по этому занятию и строит планы, куда поедет после окончания самоизоляции.</p><p>Чтение (и не только профильной литературы), видеоигры, автомобили, рыбалка, игра на гитаре — сложно сказать, чем разработчики не могут или не хотят увлекаться.</p><p>Да, многие выделили относительно близкие к профессии занятия: разбор «железа», чтение тематических блогов, информационную безопасность, но если это интересно человеку, то почему нет?</p><p>Хобби должно быть у любого человека. Если у вас нет хобби, стоит о нём задуматься. Когда человек говорит, что его работа – это его хобби, он всё равно немного лукавит. «Найди себе дело по душе, и тебе не придётся работать ни дня в своей жизни», — сказал Конфуций. Многие апеллируют к этой фразе, но забывают о том, что часто, когда человек начинает получать за интересную и любимую работу деньги, у него появляются также и обязательства, сроки, сопутствующие рутинные задачи. Для психологической разгрузки важно иметь возможность переключаться на другое, не менее любимое, и скорее всего неоплачиваемое, дело.</p><p>Как же определиться, к чему лежит душа? «Чужая душа – потемки», — отвечу я ещё одной цитатой. Кто же за вас ответит, к чему лежит ваша душа? А если серьёзно – задайте себе вопрос: чем мне нравится заниматься, что меня наполняет радостью, от чего я получаю удовольствие. Если не помогает – чем я любил заниматься в детстве? Кстати, довольно непросто детские увлечения отделить от обязанностей. Поделюсь своим опытом – я училась в музыкальной школе 6 лет и ненавидела её всеми фибрами души. После выпускного не садилась за фортепиано, за десять лет пальцы помнили только «Собачий вальс». А совсем недавно, буквально пару месяцев назад нашла преподавателя и начала раз в неделю изучать Вальс C-moll Шопена, тот самый вальс, от которого у меня мурашки бегут по коже. С такими эмоциями радости и наполненности я не сталкивалась уже очень давно! Так что очень рекомендую не отметать сразу, даже если что-то когда-то не нравилось, или вы относились к своим детским занятиям скептически – пробуйте ещё раз! А вот пример из рабочей сферы. Мы в компании на 8 марта предложили представительницам прекрасной половины нашего коллектива мастер-класс по живописи – во-первых, открылись интересные таланты, а во-вторых, некоторые коллеги нашли себе новое хобби.</p><p>Какое хобби больше всего любят программисты – нет однозначного ответа на этот вопрос. Все мы разные, программисты, кстати, тоже очень разные: кодеры, тестировщики, дизайнеры. Поэтому разнообразию нет предела. В нашей компании очень многие любят компьютерные игры. В результате у нас появилась зона отдыха с PlayStation, которая пользуется большим успехом. Есть у нас и спортивный уголок, а также кикер. А вот на 23 февраля в этом году установили зону VR … которая пользовалась популярностью почему-то больше у девушек. Также наши ребята любят играть в игры, типа крокодила, мафии и различных настольных игр. Многие коллеги любят путешествовать. В офисе компании висит доска с открытками, присланными сотрудниками из разных городов и стран. Руководитель департамента разработки ПО серьёзно занимается игрой на ударных, а глава Java-разработки недавно увлёкся гончарным делом. Недавно мы выяснили в закрытом телеграм-канале компании, что у нас много кулинарных талантов, многие из которых открылись сейчас, в период самоизоляции. Кстати, планируем запустить конкурс про хобби в том же канале – вот по результатам будет гораздо больше информации о том, чем увлекаются люди из разработки.</p><p>Резюмируя, хочется сказать, что хобби – очень важная составляющая жизни, даже когда работа приносит удовольствие и радость. Человек – существо многогранное и разностороннее, поэтому не стоит зацикливаться только на работе или на каком-то одном хобби: любимых занятий может быть несколько, они наполняют нашу жизнь и делают её прекрасной и яркой.</p><p>Работая в коллективе разработчиков, могу с уверенностью сказать, что среди программистов очень много увлечённых людей и практически у каждого, помимо работы, есть хобби, в котором он может поделиться своей экспертизой. Увлечения настолько разнообразны, что можно очень долго рассказывать, поэтому я расскажу о самых популярных хобби среди моих коллег-разработчиков:</p><ul><li>музыка (от игры на музыкальных инструментах до создания треков через специальные программы); неслучайно во многих IT-компаниях есть музыкальные инструменты и музыкальные группы, организованные сотрудниками, на корпоративных мероприятиях часто можно услышать песни под гитару или даже профессиональные выступления;</li><li>спорт (от великов до качалки) и ЗОЖ. Ребята соорганизовываются и участвуют в марафонах, различных спортивных состязаниях: соревнования по командным видам спорта, лазертаг, гонки героев;</li><li>игры (компьютерные, настольные, какие угодно) — поэтому у нас в офисе есть куча настолок на любой вкус и Xbox;</li><li>автомобили, кулинария, есть ребята, которые тащатся от преподавания и успевают совмещать основную работу с преподаванием в нескольких университетах.</li></ul><p>Как выбрать хобби? Главное — не пытаться найти хобби ради того, чтобы оно просто было. Вариантов интересного и увлекательного провождения свободного времени огромное количество. Пробуйте и тогда вы найдёте то, что будет делать вас счастливее.</p><p>Мне кажется, что есть несколько тем, которыми программисты (и я в том числе) увлекаются чаще, остальных. Например, чтение фэнтези, увлечение рок-музыкой, интеллектуальные игры или игры на музыкальных инструментах, изучение иностранных языков, бег. Подтверждение этому — разнообразные клубы и мастер-классы внутри нашей компании, которые создаются увлечёнными людьми для таких же увлечённых коллег: от игры в преферанс до полётов с вингсьютом, от уроков по приготовлению лангмана до совместных игр в D&amp;D и Magic: the Gathering.</p><p>Однако все мы разные, и далеко не все программисты применяют принципы рационализации и автоматизации в повседневной жизни или связывают с ними свои хобби — так что вполне возможно, что вашим хобби может стать что-то неожиданное и творческое, например, <a href="https://www.youtube.com/watch?v=TYU8IwGGXm4">резьба по яичной скорлупе</a>.</p><p>Как найти что-то именно свое? Есть две стратегии: пробовать больше и пробовать разное. Что-то да придётся по душе :). Чем неожиданней будет занятие — тем лучше. Чем больше попробуешь, тем скорее найдёшь своё – как в <a href="https://ru.wikipedia.org/wiki/%D0%97%D0%B0%D0%B4%D0%B0%D1%87%D0%B0_%D0%BE_%D1%80%D0%B0%D0%B7%D0%B1%D0%BE%D1%80%D1%87%D0%B8%D0%B2%D0%BE%D0%B9_%D0%BD%D0%B5%D0%B2%D0%B5%D1%81%D1%82%D0%B5">задаче о разборчивой невесте</a>.</p><h3>Как программисту выбрать хобби?</h3><p>В этом плане программисты мало чем отличаются от других людей — что нравится, тем и занимаются. Кому-то нравится охота и рыбалка, кто-то сочиняет музыку и пишет книги, а кто-то связывает хобби с профессиональной деятельностью и занимается изучением новых технологий и не только. Так что если вы ещё не определились с хобби, то просто пробуйте разные вещи пока не найдёте то, что вам нравится.</p><p>А у вас есть хобби? Делитесь в комментариях.</p><p>Напоминаем, что вы можете <a href="https://docs.google.com/forms/d/e/1FAIpQLSdSanNvlfPRrSyQWfnoGPflSVwO4KctnjOdEKHzuxjCmFX2dA/viewform">задать свой вопрос</a> экспертам, а мы соберём на него ответы, если он окажется интересным. Вопросы, которые уже задавались, можно найти в списке выпусков <a href="https://tproger.ru/experts/">рубрики</a>. Если вы хотите присоединиться к числу экспертов и прислать ответ от вашей компании или лично от вас, то пишите на <a>experts@tproger.ru</a>, мы расскажем, как это сделать.</p>]]></content:encoded>
    </item>
    <item>
      <title>Как из гуманитария стать программистом — отвечают эксперты</title>
      <link>https://tproger.ru/experts/becoming-a-programmer</link>
      <comments>https://tproger.ru/experts/becoming-a-programmer?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Никита Прияцелюк]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/experts/becoming-a-programmer</guid>
      <description><![CDATA[<p>Эксперты делятся опытом смены профессии: почему одного интереса к деньгам мало и что нужно нетехническому специалисту для перехода в IT.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/experts/becoming-a-programmer">Как из гуманитария стать программистом — отвечают эксперты</a>»</p>]]></description>
      <category><![CDATA[Для начинающих]]></category>
      <category><![CDATA[Обучение программированию]]></category>
      <category><![CDATA[Ответы экспертов]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Fri, 08 May 2020 05:53:36 GMT</pubDate>
      <content:encoded><![CDATA[<p>Живёт себе человек спокойно, никого не трогает, и вдруг приходит ему мысль: «Хочу быть программистом!». Спрашиваем у экспертов, с чего начать.</p><p>Как из гуманитария стать программистом?</p><p>Прежде чем перейти к практическим советам, скажу главное: если условный гуманитарий хочет в программисты только из-за «денежности» профессии – план провальный. Первое и самое важное условие для успешного перехода в IT из другой сферы деятельности – искренняя страсть к «железу», цифрам и алгоритмам, без неё не осилить даже базовые основы профессии.</p><p>Предположим, страсть есть. Что дальше?</p><ol><li>Определитесь, чем именно вы хотите заниматься. В IT куча направлений и специализаций, и с повсеместной цифровизацией становится только больше. Кроме собственно программирования можно попробовать себя в профессиях на стыке IT и гуманитарных дисциплин: например, в UX-дизайне или SEO-оптимизации текстов. Если вы и раньше работали с текстами или картинками, переход в новую профессию будет проще. Если хочется именно программировать, рекогносцировку провести все равно придётся: создавать «мозги» для гаджетов, писать сайты или делать мобильные приложения – разные вещи, нужно их различать. Отталкивайтесь от конкретных прикладных задач. Это поможет определиться, какие навыки прокачивать, а на что не тратить время. Например, если вы всегда мечтали создать боевого робота, вам не придётся учить HTML.</li><li>Подтяните «базу». Какое бы направление вы ни выбрали, вам в любом случае понадобится фундамент из математики, логики, знания алгоритмов (и хорошо, если у вас хоть немного математический склад ума). Как минимум – скачайте пару учебников для первых курсов вуза. Нужные легко найти в учебных планах популярных «компьютерных» направлений, их как правило выкладывает в открытом доступе любой университет. Ещё полезно хотя бы немного знать английский – во-первых, большинство языков программирования построены на его основе, во-вторых, на нём идет вся коммуникация в глобальном IT-комьюнити и публикуется самая свежая литература.</li><li>Изучите профильные вакансии. Так вы составите формальное представление, каким «должен быть» программист. В вакансиях всегда указаны требования к необходимым скиллам: знание такого-то языка, владение такой-то технологией. Выделите список «минимум», который встречается в большинстве описаний, и начинайте его осваивать. Затем посмотрите на «тусовку» изнутри: читайте профильные сайты, общайтесь на форумах. Так вы будете в курсе актуальных проблем, которые волнуют профессиональное сообщество, а ещё заручитесь поддержкой «старших товарищей». Не стесняйтесь задавать вопросы старожилам этих площадок – на многих ресурсах для этого есть специальные разделы Q&amp;A. Там новичку подскажут и литературу, и полезные курсы, чтобы освоить необходимый навык, а то и способы решить конкретные задачи.</li><li>Учитесь, учитесь и ещё раз учитесь. И будьте готовы, что процесс обучения будет бесконечным. IT развивается быстро, чтобы не пропустить новый тренд, нужно постоянно держать руку на пульсе и совершенствовать свои навыки. И легких путей здесь нет – даже если начать учить условно «простой» язык Java, чтобы затем конкурировать на рынке, придётся освоить массу сопутствующих технологий. Но это не повод опускать руки. Удовольствия от процесса будет больше, если новые знания сразу переводить в практику. Напишите свой условный «Hello world» – когда вживую увидите, как работают ваши знания, мотивации продолжать прибавится в разы.</li></ol><p>Расскажу, как я из гуманитария стал программистом. Мне было 25 лет, и я работал специалистом по связям с общественностью. В какой-то момент понял, что буквально ненавижу то, чем занимаюсь, недоволен зарплатой и готов сменить место работы как можно скорее.</p><p>Я поразмыслил о том, чем хочу заниматься, и понял, что основные критерии выбора новой специальности у меня следующие:</p><ol><li>Мне должно нравиться, что я делаю.</li><li>Хочу поменьше общаться с людьми.</li><li>У новой профессии должна быть возможность развития.</li><li>На новом месте должна быть достойная зарплата.</li></ol><p>Выбор пал на профессию программиста, а точнее – frontend разработчика, поскольку мне показалось, что там самый низкий порог вхождения среди всех областей программирования.</p><p>Я начал свой путь с вёрстки. Примерно два месяца потратил на прохождение интерактивных онлайн-курсов, после чего устроился в компанию, которая занималась только вёрсткой. Первое время моя зарплата составляла всего 8-12 тыс. рублей (Ульяновск, 2015 год) – совсем немного, потому что опыта у меня было мало и нужно было еще многому учиться. Отсюда совет: если будете кардинально менять сферу деятельности, подготовьте сначала денежную «подушку».</p><p>В этой компании я проработал полтора года, став за это время уверенным верстальщиком. Освоил Git, Webpack и Gulp, LESS, Sass, БЭМ, Jade, он же Pug, Bootstrap и простые задачи по JS (подключить плагин, настроить его, добавить классик и т.д.).</p><p>После этого устроился верстальщиком в компанию, где работаю и сейчас. На какое-то время забросил изучение JS (не делайте так! Это моя главная ошибка на пути из гуманитария в программисты), но потом вернулся к этому. Для этого прошёл ещё один онлайн-курс по специальности frontend разработчик и освоил онлайн-учебник по JavaScript. Кстати, советую начать изучение не с самого JS, а с основ программирования, чтобы понимать, как всё работает внутри.</p><p>Пару слов о том, почему я всегда отдавал предпочтение курсам (особенно интерактивным), а не книгам. В книгах даётся подробная теоретическая база, но без практики и руководства наставника мне было трудно её усвоить. Интерактивные курсы, где теоретические знания даются параллельно с заданиями в онлайн-редакторе, решают эту проблему: они направляют человека от задания к заданию и указывают на ошибки. Это позволяет усваивать теорию на конкретных примерах и накапливать первый опыт.</p><p>В текущей компании я первое время занимался вёрсткой. Постепенно стали появляться задачи на JS, которые становились всё сложнее, с некоторыми я справлялся сам, с другими помогали советом более опытные коллеги. Затем мне доверили мелкий внутренний проект на Vue.js, с которым я справился, потом крупный проект на Vue.js, и на нём за год работы я вырос до полноценного frontend разработчика.</p><p>Таким образом, мне потребовалось 5 лет, чтобы пройти путь от специалиста по связям с общественностью до frontend разработчика. Но если вы будете интенсивнее учиться и меньше лениться, то полноценно освоить эту профессию сможете за 2-3 года.</p><p>Что я могу посоветовать людям, которые решили кардинально сменить сферу деятельности и устроиться в IT?</p><ol><li>Не затягивайте с обучением и устраивайтесь на работу как можно раньше: опытные программисты из числа новых коллег подскажут, что подучить, и таким образом ускорят ваше развитие.</li><li>Не бойтесь идти на собеседования: многие IT-компании готовы брать людей с минимальной подготовкой и обучать их.</li><li>Как можно больше практикуйтесь.</li><li>И самое главное – получайте удовольствие от своей новой работы!</li></ol><p>Мой опыт сделать IT-специалиста из гуманитария оказался неудачным, а другой такой возможности у меня пока больше не было. Проходил у нас стажировку один парень, который захотел сменить профессию на айтишника. Не получилось.</p><p>Основные его проблемы были связаны не столько с «гуманитарностью» основного образования, сколько с полным незнанием английского языка. Поэтому в первую очередь надо осваивать не машинный язык, а английский, чтобы открыть для себя возможность работать с огромными массивами полезных материалов, так нужных в нашей деятельности. Времена меняются, в Рунете сейчас тоже накопилось немало информации по интересующим темам, но возможность понимать первоисточники по-прежнему актуальна. И это замечание относится ко всем: и к технарям, и к гуманитариям. Кстати, как раз у гуманитариев очень часто можно встретить хорошие знания естественных языков.</p><p>Если с английским языком всё хорошо, и есть мотивация и/или огромное желание этим заниматься дальше (что тоже немаловажно!), то сперва надо пройти один или несколько курсов по основам программирования. Знание английского не ограничивает вас в выборе площадки для обучения. Лучше, если это будут онлайн-курсы: Coursera, Udemy предлагают отличные варианты. Некоторые по завершении курса и после успешной сдачи тестов дают сертификат – пригодится при трудоустройстве.</p><p>Далее придётся изучить хотя бы один классический язык программирования: например, Java или Python. Надо уже на примере конкретного языка понять, как реализуются алгоритмы на языках высокого уровня, какие основные языковые конструкции бывают, как используются и т. д. Изучать язык надо обязательно в какой-нибудь среде разработки – они очень помогают как новичкам, так и профессионалам: IDEA, Eclipse, NetBeans, JDeveloper и т. д.</p><p>Ну и ещё один, альтернативный вариант: пойти на стажировку в какую-нибудь компанию. Подобные программы для начинающих специалистов или специалистов без опыта встречаются достаточно часто. Плюс в том, что в коллективе единомышленников обучение проходит гораздо эффективнее, а также можно автоматом решить вопрос с трудоустройством.</p><ol><li>Стоит начать с изучения Computer Science – то есть программирования, архитектуры ЭВМ, операционных систем, компьютерных сетей и других областей в качестве научных дисциплин. Для этого можно изучать профильную литературу, смотреть лекции университетов. Программистом можно стать и пропустив этот пункт. Однако он позволит стать более востребованным и профессиональным специалистом.</li><li>Далее стоит приступить к выбору первого языка. В данном случае отлично подойдут Python, PHP, JavaScript за счёт низкого порога входа и большого количества бесплатных образовательных материалов. На этом же этапе будет полезно сделать пару тестовых проектов – и для них можно найти очень много примеров. Конечно, самый простой способ – записаться на платный курс. Но к этому моменту лучше уже понимать базовые вещи и уметь писать hello world на выбранном языке.</li><li>После этого можно найти сообщество программистов – например, в Telegram, чтобы начать общаться с будущими коллегами: задавать вопросы, делиться своим опытом. Там же можно подписаться на каналы разработчиков. Это поможет окружить себя культурой, в которую человек планирует попасть.</li><li>Главное – это понять, какая именно сфера интересует больше всего. Ведь кому-то интереснее делать сайты, а кому-то – участвовать в разработке софта для анализа небесных тел.</li></ol><p>Мой короткий ответ – никак. Но если вы продолжаете читать, то я советую использовать вашу сильную сторону: гуманитарные знания и понимание людей. Проанализируйте вашу мотивацию, задайте себе вопрос: «Как стать product-менеджером?» или «как стать руководителем проектов?» – возможно, эта область подойдёт вам лучше. Но если вы уверены, что хотите стать программистом, то тогда рецепт прост: подписывайтесь на курс по программированию на Python. Готовьтесь к железной дисциплине: выписывайте каждый новый термин, который вам непонятен, ищите ответ на вопросы «что это?», «зачем нужно?», «почему это так работает?». Спустя время у вас в голове начнёт возникать связная логическая система понятий и определённый образ мышления. Сможете продержаться 2 месяца в таком режиме обучения – значит, у вас есть шанс стать успешным в этой области.</p><p>Сейчас, в условиях цифровой экономики, самое время активно учиться работать с digital, и гуманитариям тоже. Приобретайте цифровые навыки в целом, чтобы использовать новые инструменты, алгоритмы и мощности. Сложнее всего по-настоящему быть цифровыми, то есть стратегически мыслить при работе с данными, развиваться и улучшать свои рабочие процессы с помощью технологий. Это требует развития культуры работы с данными, а также понимания основ кибербезопасности и особенностей цифрового общения.</p><p>Стать профессиональным разработчиком ПО, просто пройдя курсы переподготовки, не получится. Я считаю, что невозможно создать хорошего инженера за 3 месяца или даже за год. Однако это не говорит о том, что путь в IT-индустрию для людей без технического образования закрыт. Сейчас в IT появились новые специальности, которых не существовало еще 10 лет назад, а также возросла потребность в нетехнических специалистах. К примеру, раньше специальности UX-дизайнер не было вообще, а бизнес-аналитики в таких количествах не требовались.</p><p>Таким образом, вряд ли будет разумно стремиться именно в разработку, не имея технического образования или сопутствующей базы. Скорее имеет смысл найти близкое вам направление и переквалифицироваться. К примеру, экономист может достаточно просто стать бизнес-аналитиком, статистик — специалистом по Data Science, менеджер любого направления — тестировщиком, графический дизайнер — UX/UI-дизайнером, специалист из любой сферы, хорошо разбирающийся в своей отрасли и бизнес-процессах своей компании, потенциально может стать руководителем проекта и так далее. Для этих целей как раз подойдут относительно кратковременные курсы.</p><p>Однако отнеситесь к подбору курсов максимально серьезно. Спросите совета у знакомых, работающих в этой сфере. Задайте вопрос о курсах HR-специалистам IT-компаний, спросите, есть ли возможность дальнейшей стажировки.</p><p>Делая первый шаг, будьте готовы постоянно учиться. IT — очень подвижная среда. Чтобы быть здесь профессионалом, надо всё время осваивать что-то новое.</p><p>Нет простого ответа на вопрос: «Как стать программистом, если ты гуманитарий». Это долгий и упорный труд, прежде всего над самим собой. Но всё же есть масса примеров из жизни, когда человек, далёкий от IT, вдруг становится хорошим программистом. Слово «вдруг» тут мало подходит, потому что придётся прочитать кучу книг, побывать на множестве семинаров, вебинаров, «перелопатить» множество форумов, как российских, так и зарубежных. Процесс трансформации будет небыстрым и поэтапным.</p><p>Для начала необходимо определить, в какую сторону вы хотите развиваться. Сейчас в сфере IT довольно много направлений, поэтому нельзя просто выбрать быть программистом. К примеру, нужно определить язык. Backend/frontend? Может быть, вы не хотите быть «чистым» программистом, и ваше сердце принадлежит DevOps? Чтобы увериться в правильности вашего выбора, обязательно посетите сайты поиска работы и посмотрите, какие специальности востребованы и оплачиваемы более всего. Это важные вопросы и им стоит уделить пристальное внимание.</p><p>Следующим этапом должно идти прочтение множества книг и форумов, посвящённых выбранному направлению. Вашим любимым местом должно стать StackOverflow. Книги должны быть самые начальные (for dummies, для детей) с нарастанием сложности. Форумы должны быть как русскоязычные, так и иностранные. Иностранные более дружелюбные для новичков. И на этом шаге важно владеть английским языком. Минимальный порог вхождения в IT — умение читать техническую литературу на английском языке. Идеально, если вы учитель английского ?.</p><p>Также очень важно в момент вашей «перестройки» найти работу по будущей специальности, чтобы на конкретном опыте получать нужную информацию. Этот этап может быть связан с самой минимальной оплатой, но это те жертвы, на которые стоит пойти ради будущих перспектив.</p><p>Можно и нужно спрашивать, что непонятно, у всех, кто владеет темой. Поэтому, если есть знающий человек или коллега «под боком», то это отличный вариант для получения информации. Обретение IT знаний самостоятельно — это, конечно, возможный, но не самый быстрый вариант.</p><p>Также можно получить второе или третье высшее образование любым удобным способом, пройти специальные курсы. Благо, сейчас это возможно сделать очень просто и довольно дешево с помощью различных онлайн-курсов.  Главное не забывать, что теория без практики мертва и любая прочитанная глава или абзац должны быть применены на вашей тестовой машине. Тренировка — очень важный этап в формировании вас как IT специалиста. «Ни дня без строчки» — вот, что должно вести вас к успеху и, если следовать этому совету, то награда обязательно придет.</p><p>Первое, что стоит сделать — понять зачем ты хочешь научиться программированию. К сожалению, написание кода сейчас похоже на золотую лихорадку — многие бегут в IT, потому что там много денег, в сравнении с другими специальностями. Но на одном желании заработать далеко не уедешь, если человеку не нравится программировать, то он быстро выгорит. Потому что прежде чем заработать первые деньги, нужно потратить сотни часов на обучение.</p><p>Если говорить про книги, то подойдёт любая, где есть задания и примеры кода. Отличный пример — «Код» от Чарльза Петцольда. Это книга-тест, и если человек осилит все биты-триггеры-сумматоры-регистры — значит есть выдержка и есть смысл развиваться в программировании дальше.</p><p>Хороший вариант — курс Harvard CS50 «Основы программирования». Он бесплатный и доступен, как на <a href="https://javarush.ru/quests/QUEST_HARVARD_CS50">русском языке</a>, так и на <a href="https://courses.edx.org/courses/course-v1:HarvardX+CS50+X/course/">английском</a>. Правильнее будет проходить второй.</p><p>После закрепления основ, можно выбрать конкретный язык программирования и развиваться в нём.</p><p>Прежде всего, не стоит отчаиваться и переживать, если что-то не получается. Это нормально, часть нашей работы – исправлять ошибки и решать проблемы.</p><p>Начинающим разработчикам я бы посоветовал сперва определиться с направлением. Выбрав направление, изучите рынок труда и выделите технологии, которые наиболее востребованы на рынке. Изучая их, вы точно не ошибётесь.</p><p>Чередуйте источники информации во время обучения. Возможно, то, что в книге или документации показалось вам сложным и непонятным, покажется простым при просмотре обучающего видео или статьи.</p><p>Уделите достаточно времени основам языка, прежде чем изучать фреймворки. Основные концепции у многих языков достаточно схожие, изучив их сейчас, вы сэкономите время в будущем.</p><p>Больше практикуйтесь. Есть различные сайты с задачками, типа Codewars, которые помогут вам закрепить основные концепции языка. К тому же, очень часто на собеседованиях бывают схожие задачки.</p><p>Придумывайте и реализовывайте свои проекты, которые можно было бы показать работодателю.<br />Удачи!</p><p>Для гуманитария подойдет то же самое, что и для любого другого начинающего программиста.</p><p>Нет каких-то особенных когнитивных отличий гуманитария от технаря; дело сугубо в том, куда направлен интерес конкретного человека.</p><p>Если проанализировать гуманитарные области, то везде, от тактов в музыке до построения перспективы на картинах, мы увидим строгую математику. Она является формальным языком, который все понимают и который всё описывает. И разработку приложений тоже. Так что нет какого-то отдельного контекста, в котором должен обучаться гуманитарий.</p><p>Нельзя обесценивать мощную базу точных наук, приобретаемую среднестатистическим технарём в рамках образования. У гуманитария такой базы нет, и на её построение уйдут годы. Но это не значит, что нельзя делать первые шаги в программировании. Просто решая любую практическую задачу, нужно будет подкреплять этот опыт тщательной теоретической работой.</p><p>Для получения базовых знаний я бы рекомендовал классику вроде Кнута, а также какую-нибудь фундаментальную книгу по конкретному языку программирования (Блох или Эккель по Java, Шилдт по C++ и т. д.).</p><p>Чтобы выбрать в самом начале какую-то технологию, нужно понять, что же вообще интересует в сфере IT. С техническим бэкграундом это несложно сделать, но и люди с гуманитарным прошлым точно хоть раз да восхищались какой-нибудь технологической фишкой. С неё лучше и начать, это позволит держать мотивацию на нужном уровне. Скорее всего, большинство изысканий приведут в лоно Java, C++, Python или JavaScript. Возраст, склад ума, релевантность опыта – в деле обучения разработке ПО эти вещи не имеют решающего значения. Решает всегда упорная и обстоятельная работа, с постоянством и хорошей длительностью, умение не опускать руки при ошибках и делать правильные выводы из любого опыта. Лучше, если в этом тяжелом процессе будет конкретная цель, которая будет вдохновлять.</p><p>Если считать гуманитариями тех, кому хорошо даются такие предметы, как философия, история и экономика, то для таких людей есть определённые пути в программировании.</p><p>Если вы в состоянии осилить «Логику» Аристотеля, то с освоением программирования не должно быть проблем. Для умения писать программы логика важнее всего, даже важнее математики, которую, кстати, многие программисты не особо-то и любят. Немалая часть программ состоит из выражений: «если A, то B», «продолжать выполнять действие до тех пор, пока выполняется условие X», «если верно A и верно B или не верно C, то …».</p><p>Без наличия развитого логического мышления распутать хитросплетения программы будет сложно. Правда, нужно учесть, что профессиональные программы иногда достигают таких размеров, что удержать в голове всю логику их работы не представляется возможным. Тут-то и появляются баги, и одна из обязанностей программиста — находить их и исправлять.</p><p>Начинать изучение программирования лучше с простых языков — например, с Python. Это современный высокоуровневый язык программирования, на котором можно делать практически всё: создавать веб-сайты, писать программы для искусственного интеллекта, работать с большими данными, запускать команды на квантовом компьютере.</p><p>Одна из лучших книг для начинающих — «Программируем на Python» Майкла Доусона. В ней рассказывается о том, как создавать простейшие игры на Python, и в процессе их создания читатель изучает синтаксис языка. После данной книги можно перейти к решению простейших алгоритмических задач на сайте <a href="https://pythontutor.ru">Питонтьютор</a>. После того, как вы решите все или хотя бы какую-то часть задач, можно будет задуматься о специализации и начать изучать применение Python в той сфере, которая вам интересна.</p><p>Информационные технологии сегодня — одна из самых крупных интеллектуальных отраслей. И хотя в ней задействовано огромное количество людей, IT-компании ежедневно ищут новых специалистов. Высокий спрос даёт массу возможностей для соискателей из нетехнических областей.</p><p>Начать программировать сегодня легче, чем когда-либо: в Сети есть огромное количество курсов, издаётся куча книг, а мастер-классы и воркшопы проводят чуть ли не каждый день. В таком разнообразии информации легко потеряться, поэтому я бы советовал сфокусироваться на одной области, а в ней — на конкретном технологическом стеке. На примере выбранной технологии легче будет понимать остальные субдисциплины, так как концепции и идеи часто переходят из одной информационной дисциплины в другую. В качестве первых книг для знакомства с предметом я бы порекомендовал «Искусство программирования для Unix» Эрика Реймонда и «Практику программирования» Кернигана и Пайка. Эти книги не только дают массу практических советов, но и вдохновляют тех, кто решил заняться таким непростым делом, как программирование.</p><p>Стоит понимать, что любой выбранный язык — это не только его синтаксис и библиотеки, но и в огромной степени сообщество вокруг него. Коммуникация — это то, что движет всё сообщество вперёд, и чем скорее специалист становится частью сообщества, тем быстрее будет происходить его развитие. Каждый технологический стек предлагает свой путь решения задач. Это могут быть идиомы языка, паттерны проектирования и даже правила форматирования кода. Стоит учиться использовать эти подходы сразу, так как они были выработаны сообществом в ходе решения несчётного множества типовых задач.</p><p>Всегда стоит помнить, что проблемы, с которыми вы неизбежно столкнётесь, встречались каждому, кто связал свою жизнь с IT, а потому — никогда не поздно задать вопрос или попросить помощи у сообщества. Взаимопомощь и солидарность, коммуникация и обмен идеями — это те принципы, которые делают IT такой яркой и динамично развивающейся индустрией</p><h3>Как из гуманитария стать программистом?</h3><p>В целом, всё описанное подойдёт и «технарям», просто определённые вещи у них могут усваиваться проще ввиду наличия технической базы.</p><p>Для начала определитесь с направлением. Вдруг вы хотите не просто программировать, а, например, заниматься Data Science. Для успешного обучения важно иметь мотивацию, иначе всё желание быстро пропадёт.</p><p>Также вам не помешает знание английского. В дальнейшем без него никак, а на начальных этапах оно поможет вам не ограничивать себя в источниках для обучения.</p><p>Далее можно пройти какой-нибудь курс (или несколько) по основам программирования, например, Harvard CS50 «Основы программирования».</p><p>Затем нужно определиться с языком программирования, который вы планируете изучать. Обычно выбор останавливают на одном из следующих: Python, JavaScript, Java, C++. Не переходите сразу к фреймворкам языка, уделите достаточно внимания его основам. Основные концепции у многих языков достаточно схожие, изучив их сейчас, вы сэкономите время в будущем.</p><p>Не ограничивайтесь одной лишь теорией. Важно закреплять полученные знания на практике, поэтому если в изучаемом материале есть какие-то задачи, обязательно выполняйте их. Ещё лучше, если у вас будет идея для какого-нибудь проекта, который вы сможете реализовывать по мере изучения языка.</p><p>Копайте глубже, если вам что-то непонятно. Различные форумы, чаты в Telegram, StackOverflow, Google — ваши верные помощники в этом деле.</p><p>Чередуйте источники информации во время обучения. Возможно, то, что в книге или документации показалось вам сложным и непонятным, покажется простым при просмотре обучающего видео или статьи.</p><p>Не бойтесь идти на собеседования: многие IT-компании готовы брать людей с минимальной подготовкой и обучать их. А на работе опытные программисты из числа новых коллег подскажут, что подучить, и таким образом ускорят ваше развитие.</p><p>Напоминаем, что вы можете <a href="https://docs.google.com/forms/d/e/1FAIpQLSdSanNvlfPRrSyQWfnoGPflSVwO4KctnjOdEKHzuxjCmFX2dA/viewform">задать свой вопрос</a> экспертам, а мы соберём на него ответы, если он окажется интересным. Вопросы, которые уже задавались, можно найти в списке выпусков <a href="https://tproger.ru/experts/">рубрики</a>. Если вы хотите присоединиться к числу экспертов и прислать ответ от вашей компании или лично от вас, то пишите на <a>experts@tproger.ru</a>, мы расскажем, как это сделать.</p>]]></content:encoded>
    </item>
    <item>
      <title>IT-компании рассказывают о традициях, которые у них появились с переходом на удалёнку</title>
      <link>https://tproger.ru/experts/distant-work-traditions</link>
      <comments>https://tproger.ru/experts/distant-work-traditions?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Никита Прияцелюк]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/experts/distant-work-traditions</guid>
      <description><![CDATA[<p>Сотрудники компаний рассказывают о новых традициях на удалёнке: подробных дайджестах, фотоконкурсах и других активностях для команды.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/experts/distant-work-traditions">IT-компании рассказывают о традициях, которые у них появились с переходом на удалёнку</a>»</p>]]></description>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[HR]]></category>
      <category><![CDATA[Ответы экспертов]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Mon, 04 May 2020 06:00:02 GMT</pubDate>
      <content:encoded><![CDATA[<p>После перехода на удалёнку у многих компаний появились новые традиции и привычки. У некоторых это пятничные онлайн-посиделки с пиццей, кто-то начал запускать конкурсы и флешмобы, чтобы поддержать сотрудников и командный дух.</p><p>Если помните, мы уже <a href="https://tproger.ru/articles/yandex-home-mode/">рассказывали</a>, как справляются с самоизоляцией в Яндексе. А теперь спросили у сотрудников других компаний, какие нововведения появились в их командах.</p><p>Какие традиции появились у вашей компании после перехода на удалёнку?</p><p>Когда все сидят в одном офисе, многие идеи возникают неформально, просто потому что информация о проектах и их развитии в том числе проговаривается в личных разговорах, так сказать, витает в воздухе опенспейса и курилки. Чтобы хотя бы частично заменить этот общий информационный слой, мы переформатировали новости компании с крупными анонсами в довольно подробный еженедельный дайджест. Его цель — дать всем возможность быть в курсе происходящего и не потерять важный навык «услышал краем уха, подключился, помог запустить новое или починить сломавшееся».</p><p>А для небольшого развлечения запустили фотоконкурс. Раз в несколько дней публикуем фото удалённого рабочего места одного из сотрудников с предложением отгадать, чьё оно. На каждой фотографии стрелочками обозначаются подсказки — предметы интерьера, которые свидетельствуют о характере и привычках их хозяина. Важная деталь в этой игре, которая поднимает настроение участникам, — неверные догадки. Во-первых, за них тоже начисляют очки. Во-вторых, ведущий, не указывая конкретных имён, сообщает владельцу фотографии, за кого его приняли угадывающие, и их объяснения. Иногда варианты бывают настолько «мимо», что удержаться от смеха просто невозможно.</p><p>Мы отреагировали на обязательную самоизоляцию практически сразу после её начала, запустив марафон активностей для сотрудников. Он состоит из 5 модулей (направлений) и длится ровно месяц, с 1 по 30 апреля.</p><p><b>«А вам слабо?»</b></p><p>Задача сотрудников, принимающих участие в этом модуле, — снять короткое видео с демонстрацией своих навыков или достижений с призывом повторить или превзойти их уровень в ответном видео. В съёмках могут быть задействованы члены семьи, домашние животные — в общем, те, кто разделяет с сотрудником компании бремя изоляции. По завершении этой части марафона пройдёт голосование за самое крутое видео.</p><p><b>«Наш ответ коронавирусу»</b></p><p>Чисто спортивный модуль, простой и понятный: бьём рекорды по количеству отжиманий и приседаний. Участники через WhatsApp сообщают координатору, сколько повторений за день они сделали. По результатам месяца подводятся итоги и определяется победитель.</p><p><b>«Ученье — свет»</b></p><p>Марафон онлайн-тренингов, обучений и прочитанных книг. В течение апреля участники сообщают координатору о всех пройденных образовательных мероприятиях и литературе, прочитанной за месяц. В целом, в зачёт идёт любая активность в сфере интеллектуального развития. По результатам месяца подводятся итоги и определяется наиболее продвинувшийся в этом направлении сотрудник.</p><p><b>«#Моеудаленноерабочееместо и #мойудаленныйрабочийlook»</b></p><p>«Ревизия» удалённых домашних офисов сотрудников компании. Участники делятся с координатором фотографиями рабочего места на «удалёнке» с любимыми вещами, которые не дают скучать во время вынужденного отсутствия в офисе и помогают сохранять продуктивность. В конце этого модуля марафона пройдёт голосование за самое креативное фото.</p><p><b>Донорство крови</b></p><p>Из-за введения режима самоизоляции сильно уменьшился поток доноров. В связи с этим запасы крови в Москве и в Санкт-Петербурге резко сократились. А тем временем ситуации, требующие восполнения крови: сложные роды, травмы при ДТП, процедуры химиотерапии — никуда не исчезли.</p><p>Мы поощряем сотрудников, у которых есть желание и время сдать кровь, предоставляя информацию по запасам крови в центрах и отделениях переливания крови, а также содействуя решению логистических вопросов в рамках режима самоизоляции. Так, ряд таксомоторных парков в крупных городах предлагают свои услуги по перевозке доноров на льготных условиях, вплоть до отказа от взимания платы за такую поездку.</p><p>Здесь соревновательный элемент, само собой, отсутствует, задача — предоставить сотрудникам возможность помочь тем, кто нуждается в такой помощи на фоне и без того непростой ситуации, в который мы все сегодня оказались.</p><p>В целом, можно отметить положительный отклик сотрудников Linxdatacenter по поводу участия в марафоне: людям необходимо занять себя на удалёнке чем-то ещё помимо выполнения рабочих задач. Также важно не терять «чувство локтя» с коллегами, а подобного рода инициативы прекрасно решают эту задачу.</p><p>В компании существуют хорошие традиции коллективного досуга — спортивного, творческого, профессионального. Самоизоляция предоставляет возможность обкатать сценарии его переноса в онлайн-пространство вместе с рабочей практикой: корпоративная культура и современные инструменты взаимодействия позволяют добиваться в этом направлении хороших результатов.</p><p>Возможно, нам было проще перейти на удалённый формат работы благодаря тому, что в нашей компании в таком режиме уже работала часть команды, а коллеги, которым не обязательно было находиться на рабочем месте для достижения результата, могли достаточно гибко управлять своим временем. Однако же полная изоляция оказалась неожиданностью и для нас.</p><p>Как мне кажется, самое важное в нестандартной ситуации — дать понять каждому человеку, что компания действует в его интересах, что он является полноправным участником всех процессов, его готовы в любой момент выслушать и дать обратную связь. Стандартные шаги адаптации к изменениям — информирование, разъяснение смысла, чёткий план действий, работа с возражениями; а поскольку переход на удалёнку отличается стремительностью происходящих изменений, то приходится делать всё очень быстро.</p><p>Что мы уже сделали и продолжаем:</p><ul><li>регулярные внутренние рассылки с официальной информацией, разъясняющей распоряжения властей и текущую ситуацию;</li><li>цикл коротких наглядных презентаций об организации удалённой работы;</li><li>рассылки с предложениями об обучении, которых сейчас много и среди которых есть очень полезные;</li><li>на нашем YouTube-канале и в соцсетях публикуем советы экспертов компании и делимся впечатлениями о жизни и работе в режиме самоизоляции;</li><li>для более неформального общения и поддержания позитивного духа объявили среди сотрудников конкурс фотографий в различных номинациях, которые публикуем в наших социальных сетях. Отдельная номинация #инкогнитоРДТЕХ родилась спонтанно, после того, как мы целый день пытались угадать в комментариях к посту, кто этот модный мужчина в очках и маске;</li><li>оперативно создана отдельная страница на внутреннем корпоративном портале, на которой собирается вся полезная информация, а также публикуются новые конкурсные фотографии.</li></ul><p>В организации этих действий принимают участие разные подразделения нашей компании, и это отлично, так как работать с неравнодушными коллегами — большая удача!</p><p>Ещё до перехода на удалённую работу у нас был внутренний дайджест новостей. После введения режима самоизоляции мы целый выпуск посвятили нашим впечатлениям и историям об удалёнке. В рамках внутреннего флешмоба коллеги делились мнениями, забавными рассказами, фотографиями своих рабочих мест, кофе и котов. А некоторые — даже лайфхаками, например как отреставрировать старое кресло для работы или превратить телефон в беспроводной микрофон, если забыл в офисе свою гарнитуру для звонков.</p><p>Мы стали устраивать массовые видеосозвоны — теперь не только для рабочих совещаний, но и для вечерних посиделок и чаепитий. Остальные офлайн-традиции тоже постепенно переносим в онлайн, например раньше именинников мы поздравляли всей толпой в офисе, а теперь — так же массово по Skype. Заметно оживился общий чат компании: до этого он был, скорее, информационным, а теперь стал местом встречи всей команды, где все делятся впечатлениями, обсуждают новости и жалуются, как они скучают по коллегам.</p><p>С переездом питерского офиса в онлайн почти сразу мы поняли, как сильно скучаем по офисным кофейням. И дело тут не столько в хорошем кофе, сколько в возможности поболтать с кем-то просто так или случайно пересечься с тем, кого давно не видел. Так что в первые же дни удалёнки появилась наша онлайн кофейня — Skype-чат без модерации и повестки. Надо ли говорить, что теперь мы знаем о собачках и котиках наших коллег если не всё, то многое — и это замечательно.</p><p>Отличную идею нам предложил коллега-разработчик: что, если сделать в Linza онлайн филиал нашей кухни-столовой? Днём там можно обедать компанией, а в нерабочее время собираться, как в баре. Есть общая столовая под названием Linza Lunch, но нам известно, что идея пошла в более узкие сообщества, и коллеги создают отдельные комнаты для привычных компаний. Как раньше они садились бы за отдельный обеденный стол в столовой: «Привет всем, приятного аппетита, что нового, как дела?».</p><p>Следующее нововведение — Random Skype (как Random Coffee, только онлайн). Работает это так: желающие поучаствовать присылают заявки эйчару, рандомайзером мы разбиваем их на группы по три человека, а дальше эти трое договариваются об удобном времени и созваниваются в скайпе. Темы для разговора участники определяют сами. Можно знакомиться с новыми коллегами, искать новые решения для технических и нетехнических задач, говорить об интересах и искать единомышленников или просто скрасить работу из дома. Random Skype проводим раз в 2–3 недели. Как только вернёмся в офис, возобновим привычный Random Coffee в офлайне на уровне питерской локации, а Random Skype, возможно, расширим до всех наших офисов — такие просьбы уже поступают от коллег.</p><p>«Клуб диванных аналитиков/футурологов/путешественников/…» — ещё один новый интерактивный формат общения. Пока тестируем его на русскоязычной аудитории с нашими коллегами в России и Украине. Раз в неделю (в пятницу вечером после работы) все желающие собираются онлайн послушать одного из наших коллег-экспертов на темы, к работе не имеющие никакого отношения. Так, например, в одну из пятниц говорили в прямом эфире на тему «Кризис и планы» — лидер глобального организационного развития Михаил Завилейский рассуждал о культе планирования и апокалиптических сектах, о стратегии и тактике в VUCA-мире, о теории игры и как переключаться между играми с положительной и отрицательной суммой. Сейчас, когда я пишу эту заметку, тоже пятница, и я с нетерпением жду вечернее заседание Клуба: глава продакшена Алексей Филимонов расскажет, каково это — переселиться в Португалию и практически сразу очутиться там в самоизоляции.</p><p>Часть наших старых привычных офлайн-традиций сохранилась и в новом формате. Мы по-прежнему занимаемся йогой и фитнесом в тех же группах и с теми же тренерами, только в Skype. По-прежнему раз в неделю накануне выходных получаем рассылку Nice Weekend — наши саппорт-менеджеры делают отличные подборки из того гигантского количества виртуальных концертов, экскурсий и прочего, что предлагает сейчас индустрия развлечений.</p><p>Наши рабочие встречи обычно проходят с включенными камерами и дурацкими фонами, некоторые перетекают в стендапы перед командой. Через 2 недели после выхода на удалённую работу мы провели онлайн DemoDay (и планируем продолжать эту традицию). За время мероприятия сотрудники компании делились не только рабочими проектами, но и говорили про эмоциональное состояние, рассматривали успешные кейсы мировых компаний.</p><p>Также каждую пятницу мы проводим GeekBar. Собираемся после 19:00, обычно нет чёткого регламента мероприятия — это своего рода «болталка», вектор может задать любой желающий. Как правило, мы устанавливаем соответствующий фон, чтобы приблизиться к условиям настоящего бара. Один раз мы провели бар про кинематограф: сначала обсуждали фильмы, но в процессе решили добавить геймификацию, и каждый сотрудник по очереди описывал своими словами трейлер, а другие пытались угадать, про какой фильм или сериал идёт речь. Собрали отличный список фильмов для просмотра в выходные ?</p><p>Существует довольно много онлайн-игр. Мы для себя выбрали <a href="https://gartic.io">сервис с рисованием</a>, где мы пытаемся угадать, что рисует наш коллега. На фоне общения это проходит очень живо.</p><p>Сейчас важно сохранять неформальное общение с коллегами, в офисе это может быть пара фраз на кухне, а в условиях удалёнки коммуникация перетекает исключительно в решение рабочих вопросов в течение дня. Для нас GeekBar — это ещё и повод переключиться от рабочих задач к выходным дням, в самоизоляции стирается грань между началом и окончанием рабочей недели. Полноценный отдых — это необходимый элемент для избежания выгорания.</p><p>В нашей компании разработчики делятся на несколько команд, и каждая переживает удалёнку по-своему. Например, мы в команде раз в две недели проводим распределённые ретроспективы по видеосвязи. По всеобщему мнению, они очень помогают. Также регулярно проводим «статус-митинги», которые длятся не дольше 30–40 минут и помогают поддерживать бодрый рабочий темп. Стараемся чередовать темы: в один день обсуждаем рабочие вопросы и распределяем задачи, в другой — просто болтаем.</p><p>При проведении ретроспектив и других собраний в онлайн-формате основная сложность в том, что коммуникация занимает больше времени, и удерживать внимание участников сложнее. Мы с этим работаем, но пока, оценив прошедшие ретроспективы, можем сказать, что проседания нет – ни в плане пользы, ни в плане «фана». Также в офисе у нас была традиция собираться в 16 часов за чаем — теперь она перешла в онлайн-формат. Кстати, некоторые команды делают так же, а коллеги из Research &amp; Development ещё и вместе решают CTF (Capture the flag) или пишут простые программы вроде pastebin.</p><p>В нашем случае с первого дня повелось утреннее приветствие в корпоративном чате: каждый старается прислать что-то уникальное, чтобы развеселить команду. После этого мы переходим в голосовой чат для обсуждения обстановки в мире под свежий кофе. Именно так было всё устроено, когда мы посещали офис. Далее общение плавно перетекает в daily meeting. В самом начале мы решили, что важно сохранять общение голосом: это позволяет понимать, что ты продолжаешь работать в команде. После работы часть ребят собирается в группы для совместного прохождения онлайн-игр. Мы играем в Human: Fall Flat, Screeps, Path of Exile.</p><p>Периодически головной офис проводит разные конкурсы для сотрудников и их семей — например конкурс детских рисунков. За участие в них всем полагаются призы.</p><p>После перехода на удалёнку мы предложили коллегам несколько инициатив для поддержания командного духа и хорошего настроения в целом. Инициативы получили положительный отклик.</p><p>Прежде всего, хотелось делиться с ними интересным и полезным контентом, который помогал бы разнообразить жизнь на самоизоляции. Поэтому каждую пятницу мы рассылаем всей команде полезный дайджест, в котором собираем ссылки на ресурсы по разным темам: чаще всего это спорт, онлайн-театр, чтение, образовательные вебинары, занятия для детей. Стараемся соблюдать баланс между образовательным и развлекательным контентом.</p><p>Отдельные департаменты устраивают пятничные онлайн-сборы. Во время этих посиделок ребята обсуждают разные нерабочие темы, играют в «Мафию», настольные игры, и всё это в режиме онлайн. Также мы сейчас прорабатываем идею провести квиз.</p><p>Кроме того, для нас было важно не останавливать процесс обучения команды, поэтому мы тоже перевели его в онлайн-формат. Например, недавно прошла встреча руководителей проектов: спикеры, лидеры крупных департаментов, поделились рекомендациями о том, как управлять командой на удалёнке, как организовать свой рабочий день, чтобы соблюсти work-life balance. Это был полезный обмен опытом, поэтому планируем проводить такие онлайн-встречи для разных специалистов.</p><p>В Hays, как и в многих других компаниях, уже вполне привыкли к новому режиму работы. Так, не без удивления, мы обнаружили, что стандартные и регулярные планёрки с не меньшей эффективностью проводятся онлайн. Это касается не только общих компанейских мероприятий, но и собраний отдельных команд. Но на этом ритуалы не заканчиваются. В компании постоянно ищут новые способы поддержания вовлечённости и морального духа сотрудников.</p><p>Коллеги из внутреннего HR-подразделения запустили всероссийскую утреннюю онлайн зарядку, а отдел L&amp;D подготовил ряд вебинаров и менторских сессий, в ходе которых руководители направлений отвечают на любые вопросы, возникающие в процессе адаптации к удалёнке. Тем временем наш маркетинг запустил флешмоб в соцсети: коллеги теперь с радостью делятся тем, как проходит их рабочий день дома.</p><p>Из нововведений в рамках направления IT&amp;Telecoms: мы стали каждое утро организовать видеозвонки, чтобы обменяться новостями и пожелать друг другу хорошего дня. Это заменяет нам обычные утренние приветствия и кофе в офисе. Кроме традиционного чата в WhatsApp, мы завели группу в Skype и ввели правило: WhatsApp — для развлечений, смешных картинок, приколов и шуток (приветствуются даже в течение рабочего дня), Skype — для рабочих вопросов, обмена экспертизой, советов, моральной поддержки и т. д. Подобное разделение каналов помогает не терять важную информацию в ходе общения, а кроме того, отвлекаться тогда, когда это удобно каждому члену команды. Отдельно хочется отметить и наши тимбилдинги. Посидеть вечером с бокалом вина и обсудить совсем нерабочие вопросы с коллегами — особенно приятно.</p><p>Кроме того, на первой неделе удалённой работы в IT&amp;Telecoms запустили собственный флешмоб и ежедневно публиковали коллаж из фотографий членов команды. Вместе придумывали новую тему на день. Это помогло нам легче адаптироваться к нынешним условиям работы и с юмором пережить сложную первую неделю. Останавливаться на этом даже не думаем, поскольку велика вероятность, что текущий режим не закончится в апреле. Предполагаю, что может возникнуть кризис 4 недель дома, когда все те, кто сейчас очень верит и надеется провести майские праздники «на воле», начнёт грустить из-за продолжающейся изоляции. Очень важно поддержать команду в случае, если подобное действительно произойдёт. Сотрудники должны иметь возможность положиться на руководителя и коллег.</p><p>Стоит отметить, что в нашей компании половина сотрудников уже давно работает удалённо на постоянной основе. Но для другой половины режим удалёнки в новинку. В связи с этим у нас появились свои фишки и традиции:</p><ul><li>Сотрудники завели в почте тред «Хорошие новости», где делятся самыми разными позитивными новостями (например что вода в каналах Венеции стала чище из-за оттока туристов), ссылками на классные спортивные тренировки, онлайн-курсы, которые открыли бесплатный доступ и другие полезные сервисы.</li><li>Также мы создали тред по текущей ситуации, где наши юристы отвечают сотрудникам на все вопросы: документы, пропуски, переход на удалёнку.</li><li>В онлайн-формат переместились и корпоративные мероприятия. 1 апреля мы провели игру «Где логика?» внутри компании, а на ближайшее время у нас запланирован кулинарный онлайн мастер-класс от одной из сотрудниц.</li><li>На созвонах в Zoom по рабочим вопросам хорошо разряжает обстановку возможность ставить самые разные фоны (опция «Виртуальный фон»). Можно проявить оригинальность или чувство юмора.</li><li>У многих команд появились неформальные созвоны по пятницам, где сотрудники общаются на самые разные темы. Те, кто соскучился по совместным офисным обедам, устраивает их онлайн. А в некоторых командах появились ежедневные совместные онлайн-зарядки.</li><li>Актуальным на время карантина стал вопрос сохранения ментального здоровья, и наши сотрудники сделали для всей команды и клиентов сервис с шуточными аффирмациями для разработчиков, удалёнщиков, домейнеров, к которым можно возвращаться снова и снова. Однако в каждой шутке есть доля шутки: многие клиенты написали, что медитации действительно помогли успокоиться и настроиться на позитив.</li></ul><p>В плане разработки всё осталось в прежнем режиме. У нас порядка 75 % команд работают по распределённому принципу. Офисы у нас расположены в пяти городах: Санкт-Петербурге, Воронеже, Ростове-на-Дону, Москве и Стокгольме. Также мы привлекаем отдельных разработчиков из других городов, например Твери. Кроме того, к работе над проектами из различных точек мира часто присоединяются сотрудники заказчиков, курирующие задачи. У нас стандартная ситуация, когда руководитель проекта находится в Москве, а разработчики в Санкт-Петербурге и Воронеже. И даже если они находятся в офисах, по факту это дистанционная работа.</p><p>А вот с точки зрения командообразующих традиций изменения есть. В некоторых отделах до перехода на удалённую работу практиковалось неформальное чаепитие в офисе. Коллеги собирались на 15–20 минут в зоне отдыха, болтали, часто не о работе, и давали себе возможность передышки и такого важного личного общения. Я волновалась, что станет с этой традицией в режиме home office? Но Zoom и адаптивность людей всё-таки прекрасные штуки, а кофе можно пить и перед экраном компьютера. Традиция живёт и процветает! Более того, многие отделы, которые раньше не поддерживали такую традицию, сейчас активно её подхватили и мотивируют друг друга.</p><p>Кроме того, в режиме офисной работы у нас как-то не очень «заходили» конкурсы. Коллеги участвовали, но неактивно, поэтому и конкурсы, и флешмобы мы запускали не чаще раза в полгода. Сейчас же у нас успешно проходит второй конкурс за месяц, и, чувствую, на этом мы не остановимся.</p><p>Ну и обмен знаниями тоже на высоте — когда учиться, если не сейчас? В компании хорошо выстроен процесс обмена знаниями внутри компании, есть система внутренних семинаров ProfIT. Раньше чаще раза в месяц мы такие мероприятия не проводили, да и активности такой не было. Сейчас только на апрель запланировано 3 включения, и я уже веду список желающих на май. Самое ценное — темы очень интересные и полезные. Видимо, в такое непростое время просыпается не только желание учиться, но и потребность делиться знаниями и тренировать свои навыки презентации. А мы только за!</p><p>Ещё одна традиция — более регулярное общение руководства с коллегами. Это важно для снятия возросшей тревожности. Всем непросто быть в изоляции под градом новостей из масс-медиа. Специально для информирования сотрудников через 2 недели после перехода на карантин мы провели «РЕК-ТВ» — дистанционное общение топ-менеджемента с сотрудниками в программе Zoom. В течение часа руководство в прямом эфире отвечало на самые животрепещущие анонимные вопросы коллег. И в планах стоит ещё одно общение в этом формате на конец апреля.</p><p>Корпоративная культура — это основа доверия и лояльности между сотрудниками и компанией. Мы нашли большое понимание у команды, когда в режиме низкого старта быстро организовывали процесс перехода на удалённую работу: все были лаконичны, исполнительны и не задавали лишних вопросов. И такой формат — самое время для команды в полной мере понять, что компания поддерживает их как и прежде.</p><p>Мы активно общаемся в корпоративных мессенджерах, созваниваемся, но этого мало. И мы придумали ряд активностей, которые не только помогают укрепить командный дух, но и просто дают возможность весело и полезно провести своё время.</p><p>Одной из таких активностей стала онлайн-зарядка. Трижды в неделю в 08:30 приглашённый фитнес-тренер в течение двадцати минут проводит с нами небольшую тренировку, чтобы проснуться, размяться, привести в тонус мышцы и просто приободриться перед началом рабочего дня. В начале желающих было небольшое количество, но с течением времени люди стали подтягиваться. Сейчас в зарядке участвует почти половина команды.</p><p>Небольшие конкурсы — вечная классика. Это как раз тот случай, когда главное не победа, а участие: поделиться фотографиями домашних рабочих мест, любимых котиков и деталями дня — не только быстро, но и весело. Победитель получает пиццу на дом, осетинские пироги или другие вкусности.</p><p>Ещё одна фишка уютного чата — во флешмобах. Мы стараемся отслеживать все челленджи и буквально в тот же день выкладывать в Telegram свои фотографии и передавать эстафету. Как правило, народ очень активно поддерживает и комментирует. Напоминает наши офисные посиделки.</p><p>Часто ребята собираются поиграть в Counter Strike. Мы поддержали это начинание и организовали еженедельные корпоративные турниры. В последнем, кстати, выиграла девушка. Наши разработчики расстроились.</p><p>Одной из прекрасных традиций, зародившихся в прошлом году, стали вечера кухонь народов мира. Мы собирались на кухне в офисе и под руководством опытного шеф-повара познавали тонкости приготовления национальных блюд разных стран. Несмотря на сложившиеся обстоятельства, решили не отменять подобные мероприятия, а видоизменить их. Шеф-поварами становятся наши же ребята. В формате онлайн они приглашают коллег к себе домой и в прямом эфире готовят свое любимое блюдо. Например, наши пиарщик и главный бухгалтер научили готовить кавказские хычины, лепешки с сыром и зеленью. Конечно, без баек и смеха не обходится, но этим и ценны такие вечера — сохраняется чувство единства и личного контакта.</p><p>Планируем развивать эту тему и хотим организовать цикл различных лекций на самые отвлечённые темы, чтобы ребята могли переключиться на что-то новое. Среди планируемых гостей — стилист, дизайнер и психолог.</p><p>Поскольку во многих странах введён массовый карантин, закрыты школы и детские сады, мы понимаем, что это негативно сказывается на детях наших сотрудников, клиентов и партнёров, их семейном климате.</p><p>Поэтому силами нашего благотворительного фонда мы начали программу Acronis Cyber Foundation Homeschooling, чтобы помочь детям продолжать учиться, а родителям в это время сосредоточиться на работе. Мы хотим, чтобы семьи поддерживали хорошие отношения во время вынужденной изоляции: родители знали и одобряли то, чем занимаются дети, и в то же время дети не думали, что их не ценят, и они только мешаются.</p><p>Мы предложили детям своих сотрудникам доступ к лучшим учебным ресурсам онлайн на разных языках (школы программирования, шахматы, английский язык). Компания будет полностью покрывать плату за подписку. Мы надеемся, что это поможет в сохранении продуктивности наших сотрудников при работе из дома и сделает новую реальность более комфортной.</p><p>Также мы пропагандируем здоровый образ жизни и активную жизненную позицию. В совокупности все эти качества определяются нами как #CyberFit. После массового перехода на дистанционную работу мы предложили своим сотрудникам бесплатные занятия йогой и функциональные тренировки, которые можно выполнить из дома через Zoom, чтобы легче адаптироваться к «новым нормам» жизни на карантине. В это время у всех сотрудников есть возможность отдохнуть и отвлечься, переключить своё внимание и оставаться #CyberFit вместе с другими членами команды.</p><p>Переход на удалёнку вначале воспринимался многими сотрудниками, как манна небесная, ведь теперь не придётся тратить полтора-два часа на дорогу до офиса, обедать в кафе и столовых, сидеть по 8 часов за одним рабочим столом. Однако реальность оказалась для всех куда хуже: сотрудники осознали, что удобное рабочее кресло в тысячу раз лучше любого дивана, кофемашина варит просто шикарный кофе, а поболтать с коллегами не по скайпу, а вот так в живую намного ценнее, быстрее и интереснее. Когда пришло осознание, мы столкнулись с проблемой — некоторые ребята тяжело переживали удалёнку. Кого-то отвлекали дети, кто-то не мог настроиться на рабочий лад, а кто-то просто скучал по офису. Чтобы помочь сотрудникам справиться со стрессом и развеять скуку на удалёнке, мы запустили ряд конкурсов, флешмобов, опросов, и даже поучаствовали в челленджах.</p><p>У нас есть традиция — проводить последнюю пятницу месяца с великим размахом: устраивать тематический вечер с пиццей, напитками и другими вкусностями для всех сотрудников компании. Мы провели эту традиционную встречу в закрытом чате Телеграма: сотрудники присылали фото и видео о том, как они проводят последнюю пятницу вне офиса. Кто-то стряхнул пыль с любимой приставки, кто-то занимался спортом, некоторые играли с детьми. По итогу мы провели голосование, в котором определили победителей в двух номинация: фото и видео (победили получат крутые призы после карантина). Что нам дал такой конкурс: сотрудники лучше узнали друг друга и смогли пообщаться на нерабочие темы.</p><p>Также мы активно участвуем в различных челленджах: снимаем танцевальные видео под нашумевшие треки, делаем вместе зарядку, проводим различные опросы и конкурсы. На внутреннем портале компании мы провели несколько опросов, один из них — узнай коллегу по детской фотографии.</p><p>Отличной точкой контакта с сотрудниками стал наш первый онлайн-квиз на тему космонавтики. Мы провели его на Twitch. На квиз заявилось несколько команд, все они боролись за вкусный приз — пиццу на всю команду. Отзывы на этот квиз были просто потрясающие, поэтому мы хотим продолжить такую традицию и проводить квизы чаще!</p><p>Сейчас могу с уверенностью сказать — все активности отлично поддерживаются сотрудниками, поэтому не надо бояться запускать и пробовать. Мы продолжаем проводить мозговые штурмы и придумываем всё новые способы сплотить и развеселить коллег на карантине!</p><p>При переходе на удалённый формат многим компаниям пришлось перестроить свою работу и изменить процессы, и наша — не исключение, хоть и в меньшей степени, так как практика удалённой работы у нас всё же присутствовала всегда в определённых объёмах. Конечно, работая в ИТ это сделать проще, но у нас появились новые традиции и привычки.</p><p>Мы начали проводить онлайн-конференции для всех сотрудников, где руководство делится своим видением того, как ситуация в мире отражается на жизнедеятельности наших рабочих процессов, какие изменения ждут рынок ИТ, какую тактику реагирования на внешние события выбрала для себя компания. Таким образом, все сотрудники оказываются в едином информационном поле, что даёт ощущение спокойствия и делает прозрачными инструменты поддержки всего коллектива.</p><p>На платформе для коммуникаций внутри ГК мы создали отдельную группу, где HR-департамент делится с коллегами информацией о ситуации по COVID-19 и тем, как она отражается на нашей компании. Мы оказываем помощь в получении пропусков, информируем, где можно сдать анализы, и даём рекомендации по профилактике болезни.</p><p>Чтобы поддерживать командный дух, мы запустили конкурсы, участие в которых сближает сотрудников. Так они не только работают онлайн и обсуждают друг с другом задачи и их выполнение, но и знакомятся с членами семей, показывают своих домашних животных.</p><p>Большие силы мы вкладываем в обучение сотрудников. Были запущены циклы лекций в формате вебинаров и курсы на онлайн-платформе. Нам важно, чтобы в свободное время коллеги могли обучаться, развивать свои скилы и понимать, что компания их в этом поддерживает.</p><p>Кроме того, мы запускаем программу, где каждый сотрудник может предложить свою идею, которая выведет компанию или подразделение на новый уровень. Эта идея может касаться как улучшения существующих проектов, так и представлять собой некую инновацию в рамках всей деятельности компании. За такие идеи сотрудники могут получить поощрение и привилегии на разных этапах их рассмотрения, обоснования и реализации идей в продукты и решения. Сейчас важно объединять команды и совместно приходить к общему результату.</p><p>Когда 8 лет назад мы начали работать удалённо, у нас сразу появилась традиция первые 5–10 минут любой видеоконференции посвящать дружеской беседе. Работая в офисе, коллеги много разговаривают друг с другом, делятся своими новостями, шутят, рассказывают о жизни. Так мы не упускаем возможность пообщаться, как это принято в офисе, когда сотрудники встречаются у кофемашины или кулера.</p><p>Утренние планёрки — отличный способ настроиться на рабочий день, который практикуют многие компании. Мы же такие встречи проводим стоя. Такой способ — необычный, но он помогает держать свои мысли в тонусе, а обсуждение задач на день проходит быстрее. Эффективность такой планёрки возрастает в разы.</p><p>Кстати, рабочий день мы начинаем с командной утренней разминки по видеосвязи — эта активность здорово объединяет и даёт заряд бодрости на весь день.</p><p>По пятницам мы проводим общий созвон со всеми разработчиками, чтобы показать друг другу последние наработки по продуктовым фичам. Выступление всегда заканчиваем словами благодарности и аплодисментами в адрес спикера.</p><p>Иногда, когда требуется максимальная концентрация всей команды над задачей, мы включаем «‎режим офиса»‎. Что это значит? Коллеги собираются в конференции в Zoom и не выходят из неё весь день — создаётся эффект опенспейса. Во-первых, это помогает в режиме реального времени решать и обсуждать все возникающие вопросы. Во-вторых, чувствуя рядом плечо коллеги, сотрудникам бывает проще сконцентрироваться на результате, появляется соревновательный дух.</p><p>Работая удалённо, мы не тратим деньги на аренду офиса. Часть сэкономленных денег идёт на организацию ежегодных выездов всей команды. Раз в год мы собираем около 130 человек и выезжаем в Подмосковье на несколько дней. Собираем всех: и тех, кто работает в России, и сотрудников из других стран. Несмотря на то, что такой выезд стоит дорого, он очень важен для наc. Это помогает развиртуализироваться и пообщаться вживую, обменяться опытом и обсудить планы на следующий год.</p><p>Сейчас очень важно выстроить эффективные удалённые коммуникации, поэтому мы активно пробуем новые каналы и форматы.</p><p>Первая наша «карантинная» традиция заложена руководством компании: топ-менеджмент практически на ежедневной основе информирует сотрудников о ситуации в компании, пишет не только официальные письма, но и отправляет нам слова поддержки, мотивирующие картинки.</p><p>Внутри компании появилось большое количество активистов со свежими идеями. Один из центров по утрам проводит в прямом эфире зарядку для всех желающих, проектные команды устраивают чаепития по видеосвязи, бизнес-завтраки с руководителями, организовывают квизы, регулярные онлайн-посиделки в нерабочее время. Ещё в копилку спортивных традиций — утренние и вечерние тренировки с профессиональным тренером, йога в режиме онлайн.</p><p>Также мы активно развиваем наш внутренний портал, корпоративные аккаунты в социальных сетях «для своих». Там уже провели конкурс на лучшее рабочее место, запустили онлайн-викторину на знание фактов о компании, а также открыли горячую линию, где каждый может анонимно или открыто задать вопрос руководству.</p><p>Сейчас в разработке ещё несколько интересных идей по запуску общекорпоративных челленджей, так что формирование новых онлайн-традиций ещё впереди!</p><p>Коллеги используют все возможные инструменты и форматы, чтобы поддерживать друг друга. Конечно, каждая команда проводит свои регулярные стендапы, синкапы, митинги (и другие встречи, скрывающиеся под страшными офисными словами) в формате онлайн, как, впрочем, и раньше, поскольку многие проектные команды территориально-распределённые.</p><p>Но второй месяц удалёнки даёт о себе знать, стали появляться неформальные онлайн-посиделки, а где-то простые онлайн-посиделки переросли в нечто большее.</p><p>В России наши офисы есть в 14 городах, и каждый офис придумывает свои традиции. Так, например, в Нижнем Новгороде заработало онлайн-кафе, которое сначала задумывалось как «болталка», как если бы все мы столкнулись с кем-то на кухне в офисе и начали обсуждать последние новости. Сейчас «кафе» превратилось в нечто большее. По понедельникам «болталки» так и остались «болталками»; по средам ребята проводят разные игры, уже состоялись турниры ЧГК и «Где логика?»; а по пятницам проходит что-то вроде «квартирника» — кто песни поёт, кто на гитаре играет, кто мастер-класс по выпечке хлеба проводит. В остальное время в чате офиса регулярно проводятся челленджи — например, кто построит самую большую башню из подручных материалов, кто раньше встанет и выложит фото с утренним напитком.</p><p>Похожий формат образовался и в Ижевске — коллеги организовали «онлайн-кухню». Сюда «приходят» не только за порцией неформального общения за чашечкой чая, но попеть песни под гитару в Zoom, поиграть в настольные игры.</p><p>Отличились креативностью некоторые комьюнити. Так, бизнес-аналитики и тестировщики запустили еженедельные челленджи. Ребята получают письма с весёлыми залипательными заданиями, например: дорисовать фигуру, «гонки» на клаве (тест на скорость), собрать оригами и т. д., а в конце недели подводят итоги, объявляют победителей.</p><p>Конечно, соцсети не обходятся без флешмобов — фото рабочего места, домашние любимцы, вид из окна и т. д. Коллеги делились полезными привычками, кто как поддерживает здоровье и разум в условиях изоляции.</p><p>Если говорить про рутинные задачи, то, конечно же, всё то, что было запланировано до самоизоляции, перешло в онлайн — внутренние курсы, тренинги, а также разговорные клубы по английскому языку (с недавних пор и по французскому), митапы, вебинары, встречи комьюнити.</p><p>Белорусские и украинские офисы зашли ещё дальше и организовали внутренние радиоэфиры для специалистов компании.</p><p>Наша команда по всему миру уже больше месяца работает из дома. В современном мире границы между сотрудниками из разных стран и так стираются, но нынешняя ситуация стала для нас дополнительным стимулом. Мы стали ещё активнее экспериментировать с развитием нашей корпоративной культуры в новом виртуальном формате.</p><p>Каждую неделю в корпоративной соцсети Workplace проходят челленджи на разные темы. Например, на прошлой неделе был спортивный. Коллеги из разных офисов выкладывали видео с тренировками у себя в квартире или во дворе дома. Один сотрудник стал «звездой Workplace», набивая рулон туалетной бумаги вместо футбольного мяча. На этой неделе коллеги делятся рецептами блюд, которые готовят дома. Например, сотрудник из Японии поделился видеорецептом борща в японском стиле, коллега из Венгрии — рецептом традиционного венгерского пасхального кекса. Такие активности не только позволяют коллегам раскрыться с неожиданной стороны, но и рассказать другим о своих культурах и странах.</p><p>У нас в компании давно есть внутренний проект ABBYY Academy. В рамках него можно в том числе рассказать коллегам что-то интересное, поделиться своим личным опытом. Любой сотрудник может предложить тему и сделать доклад, который мы транслируем во всех офисах. Чтобы помочь людям адаптироваться к новым условиям удалённой работы, мы провели несколько вебинаров именно вокруг этой темы. Например вице-президент группы компаний ABBYY Арам Пахчанян рассказал о техниках тайм-менеджмента, а я — о способах организации эффективной работы на удалёнке.</p><p>Ещё один эксперимент, который, похоже, станет новой хорошей традицией, — это открытые вебинары TEDFridays. Проходят они… барабанная дробь… по пятницам! Любой сотрудник может предложить какой-то TED Talk, который кажется ему важным, полезным или неожиданным. Мы смотрим его вместе онлайн, а потом обсуждаем увиденное в маленьких группах. Мероприятие занимает полчаса. Для сотрудников европейских офисов — это отличное окончание рабочей недели, а сотрудники американского офиса начинают свою пятницу с TED и общения с коллегами на другом берегу Атлантики.</p><p>Одни устраивают челленджи, другие — онлайн-зарядку, а кто-то стал проводить мастер-классы по готовке. Появились ли какие-нибудь традиции в вашей компании после перехода на удалёнку? Делитесь в комментариях.</p><p>Напоминаем, что вы можете <a href="https://docs.google.com/forms/d/e/1FAIpQLSdSanNvlfPRrSyQWfnoGPflSVwO4KctnjOdEKHzuxjCmFX2dA/viewform">задать свой вопрос</a> экспертам, а мы соберём на него ответы, если он окажется интересным. Вопросы, которые уже задавались, можно найти в списке выпусков <a href="https://tproger.ru/experts/">рубрики</a>. Если вы хотите присоединиться к числу экспертов и прислать ответ от вашей компании или лично от вас, то пишите на <a>experts@tproger.ru</a>, мы расскажем, как это сделать.</p>]]></content:encoded>
    </item>
    <item>
      <title>Самые большие ошибки в веб-разработке — опыт экспертов</title>
      <link>https://tproger.ru/experts/the-greatest-mistakes-in-web-development</link>
      <comments>https://tproger.ru/experts/the-greatest-mistakes-in-web-development?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Никита Прияцелюк]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/experts/the-greatest-mistakes-in-web-development</guid>
      <description><![CDATA[<p>Эксперты делятся крупными ошибками разработчиков, объясняют их последствия и напоминают, на какие грабли не стоит наступать.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/experts/the-greatest-mistakes-in-web-development">Самые большие ошибки в веб-разработке — опыт экспертов</a>»</p>]]></description>
      <category><![CDATA[Веб-разработка]]></category>
      <category><![CDATA[Советы]]></category>
      <category><![CDATA[Ответы экспертов]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 15 Apr 2020 05:41:14 GMT</pubDate>
      <content:encoded><![CDATA[<p>Все ошибаются, и разработчики — не исключение. Мы попросили экспертов поделиться своими самыми крупными косяками. Возможно, вы поймёте, что на их фоне вы ещё неплохо справляетесь, ну или по крайней мере будете знать, на какие грабли не стоит наступать.</p>]]></content:encoded>
    </item>
    <item>
      <title>Какие типичные ошибки в дизайне сайта допускают новички — рассказывают эксперты</title>
      <link>https://tproger.ru/experts/design-mistakes</link>
      <comments>https://tproger.ru/experts/design-mistakes?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Никита Прияцелюк]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/experts/design-mistakes</guid>
      <description><![CDATA[<p>Эксперты называют частые промахи начинающих дизайнеров сайтов и интерфейсов, начиная с неумения корректно работать с сетками.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/experts/design-mistakes">Какие типичные ошибки в дизайне сайта допускают новички — рассказывают эксперты</a>»</p>]]></description>
      <category><![CDATA[Веб-разработка]]></category>
      <category><![CDATA[Дизайн интерфейсов и UX]]></category>
      <category><![CDATA[Веб-дизайн]]></category>
      <category><![CDATA[Ответы экспертов]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 02 Apr 2020 11:15:22 GMT</pubDate>
      <content:encoded><![CDATA[<p>Разработка дизайна и интерфейса сайта — это не просто «тыкнуть кнопку здесь, вставить картинку там и использовать десять модных шрифтов». Это кропотливая работа, в процессе которой можно допустить множество ошибок. О том, какие самые часты ошибки допускают новички, мы решили спросить у экспертов.</p><h2>Сетки</h2><p>Многие начинающие дизайнеры знают что такое сетки, видели их, но не умеют корректно с ними работать. Необходимость сетки заключается в том, что при её использовании, во-первых, контент можно выравнивать, соблюдая определённый ритм, во-вторых, frontend разработчику будет удобнее работать с макетом, использующим сетку.</p><h2>Выравнивание контента</h2><p>Новички часто пренебрегают выравниванием и зачастую располагают элементы интерфейса независимо друг от друга, что является грубой ошибкой. Если, например, задан ритм с выравниванием по левой стороне макета, он должен соблюдаться для всех элементов модуля сайта, в котором используется данное свойство.</p><h2>Погоня за «украшательствами»</h2><p>Начинающий дизайнер, обычно насмотревшись красивых работ от более опытных коллег, спешит воплотить нечто похожее в своей работе, «дёргая» понемногу из разных работ. В итоге получается «сборная солянка» из различных стилевых решений, разных шрифтов, цветов и пр.</p><h2>Воздух</h2><p>Под воздухом я имею в виду пространство вокруг элементов, определяющее отступы между ними. Неопытного дизайнера можно определить по тому, что он как будто стесняется использовать рабочую область, опытный же — напротив старается задействовать всё полотно целиком.</p><h2>Акценты и читаемость текста</h2><p>Очень часто встречающийся пример ошибки — дизайнер не делает акцент на важном. Например заголовок и подзаголовочный текст имеют очень близкую по весу гарнитуру шрифта. Иногда подбираются не очень подходящие для дизайна фотографии, поверх которых идёт текст, и получается, что читаемость такого текста снижается. Рекомендация: подбирайте картинки таким образом, чтобы текст, который идёт поверх изображения, смотрелся контрастно.</p><h2>Некачественная работа с графикой</h2><p>Самые распространённые ошибки, связанные с графикой, — это некачественные изображения, которые используются в дизайне (например фотографии с плохим разрешением) и плохая обтравка изображений. Для того, чтобы такого не происходило, есть рекомендация по выбору качественных изображений на платных/бесплатных фотобанках, например Shutterstock или Freepik.</p><h2>Работа со слоями</h2><p>Часто открывая работы новичков, видно, что слои имеют дефолтное системное название, они не сгруппированы. Когда в работе использовано много объектов на различных слоях, то этим очень трудно управлять. Моя рекомендация — называть все слои, группировать их так, чтобы внутри документа был порядок.</p><p>В работах тех, кто только пришёл в профессию, чаще всего натыкаюсь на следующие ошибки.</p><h2>«Грязные» цвета</h2><p>Недотянутые или перетянутые по насыщенности и контрастности. Они визуально утяжеляют интерфейс, добавляют элементам громоздкости и могут сильно перетягивать на себя внимание там, где это не нужно. Попробуйте сперва использовать цвета из готовых палитр. Это помогает и тренировать насмотренность, и избавиться от «грязных» цветов. Готовые палитры используют даже опытные дизайнеры.</p><h2>Слишком жёсткие тени элементов интерфейса</h2><p>Их тоже можно отнести к «грязным». Посмотрите на окружающие вас предметы — у них, как правило, тени имеют дополнительные оттенки внутри. За счет этого они выглядят более мягко и естественно.</p><h2>Неконтрастные цвета</h2><p>Другая крайность, часто встречающаяся в дизайне у новичков в профессии. Это могут быть слишком бледные по отношению к фону типографика, кликабельные элементы или блоки. А иногда и всё разом. Обычно такое получается, если мы в процессе дизайна забываем о том, что не все пользователи будут работать с нашим интерфейсом в условиях идеального освещения. И, конечно же, далеко не у всех есть экраны с ретиной. Для того, чтобы проверить контрастность цветов, можно использовать специальные инструменты и плагины для графических редакторов и браузеров.</p><h2>Непродуманная визуальная иерархия</h2><p>Ещё один «бич» начинающих дизайнеров. Неверно расставленные с помощью цветов и размеров акценты могут сломать user flow пользователя. Попробуйте накинуть на нарисованный вами интерфейс слой с блюром и посмотрите, какие места получились более яркими — совпадают ли они с теми блоками, которые наиболее важны для выполнения задач ваших пользователей? Если нет, можно составить шкалу «важности» блоков и контролов в вашем интерфейсе и придерживаться её.</p><p>Эти ошибки могут совершить как начинающие дизайнеры, так и программисты, которые по какой-либо причине делают сайт без дизайнера. Последние обычно используют готовые элементы и шаблоны веб-интерфейсов из библиотек Bootstrap, Metronic и других, но эти инструменты не решают абсолютно все задачи по UX/UI сайта, и о многом придется думать самостоятельно. С какими ошибками можно столкнуться?</p><h2>Разрабатывать интерфейс для абстрактного пользователя, а не для решения его задач</h2><p>Начиная работу над интерфейсом, неопытные дизайнеры часто сталкиваются с синдромом белого листа: непонятно, с чего начинать, и страшно сделать что-то не то. Чтобы справиться с этим, нужно действовать по алгоритму: определите свою аудиторию, выделите её потребности и на основе этого сформулируйте задачи, которые будет решать ваш продукт.</p><p>Главное — не ограничиваться только определением аудитории. Например вы делаете файлообменник и представляете, что им будет пользоваться Петя, 33 года, с высшим образованием. Проблема в том, что ни одна из этих характеристик не объясняет, каким должен быть ваш продукт, чтобы Пете было удобно им пользоваться и он выбрал его из десятков подобных проектов.</p><p>Используйте подход Jobs To Be Done (JTBD, «работа, которая должна быть выполнена»). Он предлагает отталкиваться не от характеристик пользователя, а от его задач. Пете нужен файлообменник не потому, что у него высшее образование и ему 33 года, а потому, что ему нужно перенести файлы с одного компьютера на другой. Понимая, какова задача пользователя, намного проще представить себе интерфейс для её решения.</p><h2>Рисовать интерфейс «из головы», без конкурентного анализа и user-flow</h2><p>Представим, что существует задача — сделать небольшой интернет-магазин по продаже обуви. Junior-дизайнер думает так: «Я видел много интернет-магазинов, нарисую что-нибудь похожее по памяти». Это плохой путь: дизайнер рискует создать нечто нефункциональное и притом потратить много времени, потому что без плана работать довольно трудно.</p><p>Не стоит полагаться на свою фантазию, лучше начать с конкурентного анализа. Потратить 2–4 часа и изучить за это время сайты наиболее близких конкурентов: проанализировать их структуру, выделить главные элементы, отметить наиболее удачные фишки.</p><p>Далее нужно проработать user-flow – логику действий пользователя на сайте. Проще всего набросать эти сценарии прямо от руки на бумаге. После этого можно переходить к вайрфреймам (wireframe, «каркас», прототип сайта со схематическим изображением всех элементов финального дизайна). Дизайнеры могут отрисовать их вручную, разработчики — собрать из элементов <a href="https://www.figma.com/templates/">готовых UI-китов</a> от дизайнерского комьюнити Figma.</p><h2>Нарушать F-образный паттерн при построении страницы</h2><p>Неопытные дизайнеры часто располагают элементы страницы без учёта F-паттерна. F-паттерн — это наиболее распространённый шаблон движения глаз пользователя при изучении контента на странице. Исследования показывают, что обычно люди читают верхние строки (слева направо), затем спускаются на несколько строчек ниже и читают ещё немного текста по горизонтали, а потом опять просматривают левую сторону контента по вертикали вниз. В итоге область внимания пользователя напоминает букву F, и наиболее важные элементы лучше располагать именно здесь. Отступать от этого паттерна можно (например если у вас есть задача сместить фокус пользователя), но нужно понимать, что это скорее исключение из правил.</p><h2>Пренебрегать правилами оформления текста</h2><p>Текст на сайте должен быть читабельным. В типографике много правил, все сразу усвоить невозможно, но следует избегать хотя бы наиболее грубых ошибок. Сокращайте тексты, разбивайте их на читабельные абзацы, не нарушайте иерархию заголовков (в рамках одного текстового блока более крупные заголовки не должны идти после более мелких, например H1 не должен идти после H3).</p><h2>Делать незаметные кнопки, нарушать их иерархию</h2><p>Неправильно оформленная кнопка может обрушить даже самый хорошо продуманный пользовательский сценарий. Следите за тем, чтобы кнопка легко считывалась — пользователь должен с первого взгляда понять, что это именно кнопка, а не какой-либо другой элемент дизайна. У пользователя не должно быть трудностей с её нажатием, поэтому она не должна быть слишком маленькой. Также необходимо соблюдать иерархию кнопок: первостепенные (primary) должны быть более заметными, чем второстепенные (secondary). Например первостепенная кнопка «Купить» может иметь заливку ярким цветом, а второстепенная «Продолжить покупки» — быть в виде текста на белом фоне.</p><h2>Добавлять иллюстрации ради иллюстраций</h2><p>Начинающие дизайнеры часто добавляют на страницы изображения, которые не несут смысловой нагрузки или не подходят к тексту. Например на страницу финансовой тематики могут вставить стоковое изображение рукопожатия. Это моветон, и этого однозначно стоит избегать. Иллюстрация должна дополнять текст, а её смысл должен хорошо считываться даже без описания. Также нужно помнить о том, что картинки, как и другие элементы дизайна, нужно выравнивать по сетке.</p><h2>Неверно подбирать иконки</h2><p>При отрисовке или выборе иконок из готовых наборов нужно соблюдать как минимум два правила: во-первых, иконки должны правильно отражать суть скрытого под ними действия, во-вторых, они должны быть в одной стилистике. Не должно возникать ситуации, когда часть иконок — с заливкой, часть в виде обводки, а где-то вообще в виде полноценных иллюстраций. Разработчикам я могу порекомендовать использовать готовые наборы, например <a href="https://feathericons.com/">Feather Icon</a>. Этот пак хорош тем, что под каждой иконкой указано действие, которое она означает, а значит, вы точно не ошибётесь при выборе.</p><h2>Работать без фидбэка</h2><p>Новички часто забывают тестировать свои интерфейсы. Покажите сайт друзьям или коллегам и попросите их выполнить целевое действие — заказать услугу, купить билет, сменить аватар в личном кабинете. Оцените, как быстро они справятся с этой задачей, где столкнутся с трудностями, что им будет непонятно. Попросите знакомого дизайнера проверить ваш продукт. Тестирование и взгляд со стороны — обязательная часть работы по созданию действительно удобного интерфейса.</p><p>Я бы выделил пять типичных ошибок начинающих дизайнеров.</p><h2>Не разбираются в задаче</h2><p>Техническое задание может быть написано заказчиком, который субъективно понимает решение задачи. Например заказчик хочет, чтобы страница выглядела премиально. Узнайте целевую аудиторию, разберитесь в ожиданиях заказчика и только после этого проектируйте и рисуйте. Время, потраченное на понимание задачи, окупится в работе над макетом.</p><h2>Рисуют и двигают пиксели, а не проектируют</h2><p>Ни одна картинка не может появиться, чтобы заполнить пустоту. Ни один шрифт не может добавиться ради премиальности. Любой элемент на сайте должен быть спроектирован так, чтобы приносить деньги и пользу — всегда держите это в голове. Пусть это будет вашим фильтром.</p><h2>Используют фотографии и иконки с первой страницы поисковой выдачи</h2><p>Такие картинки примелькались и успели надоесть. Если не можете нарисовать иконку сами, перейдите на пару-тройку страниц вперёд и поищите её там. Возможно, она будет менее популярной.</p><h2>Увлекаются декором: много шрифтов, цветов, стилей и иллюстраций</h2><p>Придумайте себе ограничение и работайте в нём: минимум шрифтов и начертаний, небольшая палитра цветов, простая четырёхколоночная сетка, отказ от картинок. Научитесь работать с этим и постепенно расслабьте ограничение или, наоборот, придумайте более жёсткое.</p><h2>Используют шаблонные решения vs Изобретают велосипед</h2><p>Новичков выдают шаблоны и приёмы, которые уже отработали своё. Чем дольше вы работаете, чем больше видите чужих работ, тем сильнее натренирована ваша насмотренность. Она помогает отсеивать неподходящие решения и заезженные ходы.</p><p>А ещё новичков выдаёт оригинальное исполнение паттернов, которые уже стали стандартом в интерфейсе и к которым привыкли пользователи. Не нужно изобретать вещи, которые доказали свою эффективность, даже если они выглядят банальными.</p><h2>Изобретают велосипеды</h2><p>Вечный вопрос, который касается не только начинающих и не только дизайнеров. Некоторые не хотят подвергать сомнению свою креативность, а некоторые просто не знают, что и где нужно искать.</p><p>Как избежать</p><p>Не нужно боятся копировать другие, более профессиональные работы. Даже самые известные художники и дизайнеры начинали с этого. Главное — понять то, как и почему выбраны те или иные решения. Для тех, кто ещё не знает, что и где искать, есть множество ресурсов, начиная от аккаунтов в Instagram и заканчивая самыми известными Dribbble, Behance и Pinterest.</p><h2>Бездумно бросаются в тренды</h2><p>Часть предыдущего решения с велосипедом уводит некоторых дизайнеров в бездумное подражание всем трендам без понимания, как и в каких обстоятельствах их лучше использовать, а в каких не стоит. К тому же, не все обращают внимание на то, что данные проекты сделаны лишь для картинки и никогда не были реализованы.</p><p>Как избежать</p><p>Стоит найти студии или отдельных дизайнеров и следить за их реально реализованными проектами, что может дать понимание, как те или иные решения выглядят внутри проекта и на разных устройствах и разрешениях.</p><h2>Игнорируют скетчи</h2><p>Неиспользование скетчей для будущего дизайна нельзя полноценно назвать ошибкой, но всё же это довольно нужная и важная часть разработки дизайна, которую некоторые игнорируют.</p><p>Как избежать</p><p>Просто делать! Иногда скетчи могут только увеличить время на разработку дизайна, но зачастую они сохраняют кучу времени при экспериментах с формой и композицией.</p><h2>Используют очень отдалённый контент</h2><p>Иногда макеты могут создаваться в тот момент, когда контента для этого дизайна ещё нет, и в этот момент не стоит использовать «Lorem ipsum» и рандомные фото с улыбающимися людьми.</p><p>Как избежать</p><p>Найдите схожие проекты из этой тематики и возьмите контент у них, взяв за основу несколько источников и при желании или возможности добавления собственных мыслей. Так проект будет выглядеть более живым, и появится понимание, какой контент частично будет и в вашем проекте.</p><h2>Отсутствие акцентов</h2><p>Просто получить контент или найти его не достаточно. Зачастую начинающие дизайнеры не разделяют или выделяют неправильно контент проекта.</p><p>Как избежать</p><p>Всегда нужно общаться и уточнять как можно больше вопросов у того, кто ставит вам задачу: понимание разных людей о значимости какой-то информации в проекте может отличаться. Если же возможности уточнить нет по каким-то причинам, нужно опять идти и изучать схожие проекты и конкурентов.</p><h2>Отступы и иерархия</h2><p>Даже в самых небольших проектах не стоит забывать об иерархии текста и отступов, подбирая каждый заголовок и отступ, исходя из ситуации или настроения в данный момент.</p><p>Как избежать</p><p>Хранить все вариации отступов и типографики в их кратном соотношении друг к другу. Можно создать подобную структуру на этапе начала работы над макетом совместно с созданием сетки и править всё совместно, не забывая про соотношение в процессе разработки макета.</p><h2>Хаос в макете</h2><p>Зачастую новички не задумываются о структуре макетов своего дизайна и не думают о том, что нужно тратить время на группировку и прочие «ненужные» вещи при создании макета, что впоследствии очень сильно усложняет работу с данными макетами как самому дизайнеру, так и его коллегам.</p><p>Как избежать</p><p>В данном случае, как и со скетчами, нужно просто делать! Создание групп и компонентов может отнять много времени на стартовом этапе, но учитывая, насколько в дальнейшем это упростит работу вам или вашим коллегам, если вы работаете в команде, это несомненно стоит своего времени.</p><p>Количество новичков в нашей профессии растёт с каждым месяцем в геометрической прогрессии, и поэтому сегодня мы вспомним и разберём самые распространённые ошибки новичков в дизайне сайтов, веб и мобильных приложений.</p><p>Правда, мой многолетний опыт показывает, что ошибки совершают не только новички, но и гораздо более опытные специалисты, и причины могут быть самыми разнообразными. Главное — это вовремя понять свою ошибку, проанализировать и исправить.<br />Сразу забегая вперёд скажу, что самый действенный способ избежать ошибок, который мы разработали у нас в компании:</p><ul><li>всегда сверяться с текущим чек-листом по ошибкам;</li><li>всегда использовать коллегиальное мнение или использовать, как некоторые называют, «вторую пару глаз», чтобы ничего не упустить;</li><li>и, конечно же, множество UX-тестов.</li></ul><h2>Проектирование</h2><p>Любая новая постройка здания или техники начинается, как известно, с чертежей. Так и любой сайт, веб или мобильное приложение начинаются с проектирования логики экранов и функций. Новички, как правило, это шаг игнорируют и приступают сразу к дизайну.</p><p>Именно после таких необдуманных решений на этапе разработки выясняется, что навигация не продумана, отсутствуют экраны или они работают не так, как должны, пропущены шаги. Отсюда вытекают доработки на скорую руку, скорее всего «кривые» и опять непродуманные, а ваше приложение уже должно выйти в прод, сроки поджимают.</p><p>Поэтому не забывайте и всегда начинайте работу с проектирования. И не важно, как оно будет выглядеть, это даже может быть не инструмент на компьютере (Axure, Balsamiq, Figma), а просто обычная бумага и ручка. Накидайте от руки скетчей и разложите их в порядке логики. Так вы сможете увидеть полный путь вашего пользователя от начальной точки к конечной, найти пропущенные шаги и, возможно, уже на первом этапе что-то улучшить или упростить.</p><h2>Лишний дизайн</h2><p>Есть несколько основоположных правил при разработке стиля сайта или приложения — угадываемые шрифты, цвета, линии и паттерны. Очень часто, начинающие специалисты перебарщивают с этими элементами, и интерфейс превращается в креативный мусор, полный вычурных теней или кислотных цветов. Такие разработки возвращают нас в эпоху 2000-х годов.</p><p>Задача дизайна — решить проблему пользователя (например прочитать необходимый текст, заполнить поля формы или купить товар в интернет-магазине). Дизайн должен помочь пользователю дойти до конечной точки и решить его проблему / запрос.</p><p>Но если дизайн перегружен или превращается в неработоспособные концепты, люди не могут решить свою проблему / запрос и уходят.</p><p>Лучше сосредоточьтесь на контенте, сделайте фокус на нём, а не вокруг него. Старайтесь не перебарщивать с креативностью и делать дизайн, подчёркивающий необходимое действие, а не отталкивающий от него.</p><h2>Не изобретайте велосипед</h2><p>Новички дизайна «ищут себя» в каждом макете. Они смотрят на устоявшиеся в сознании иконки, решения, расположения и задумываются о том, что могут улучшить и сделать понятнее. Но это исключительно их мнение, чаще всего подкрепленное отсутствием опыта, тестов или недостатком информации.</p><p>Нередко такое решение приводит к изменению паттернов поведения пользователя, заставляя его отходить от уже привычного пути. Существуют привычки, выработанные годами. Например, для нас очевидно и привычно, что в большинстве случаев фильтр по выбору товаров находится слева, а иконка с изображением пользователя — это профиль в личном кабинете. Своими поступками вы не только можете запутать пользователя, но доставить ему неудобства, и, что хуже всего, это может вызвать негативные эмоции и неудовлетворенность.</p><p>Не принимайте решение единолично, соберите всю информацию, в конце концов проведите тесты на своих друзьях и убедитесь, что ваши предложения действительно удобнее, полезнее, гармоничнее и приведут к необходимому результату.</p><p>К сожалению, если проектируемый интерфейс понятен дизайнеру, это не означает, что он также будет понятен пользователю. Не изобретайте велосипед там, где уже тысячи и миллионы раз его переизобрели, воспользуйтесь готовым решением.</p><p>Подсматривайте в чужих UX-кейсах, используйте наработки и опыт конкурентов.</p><h2>Универсальность и паттерны</h2><p>Иногда при использовании приложения пользователь приходит в замешательство. Он видит одну и ту же кнопку, которая выполняет разные действия, или наоборот — одно и то же действие скрывается за двумя (или даже тремя) кнопками, которые выглядят по-разному.</p><p>Создайте и используйте библиотеки с компонентами. Не перекрашивайте функциональные кнопки, которые несут одно и тоже действие. Если вы работаете в таких программах как Sketch/Figma, то создавайте символы/компоненты, чтобы ускорить свою работу.</p><p>А также старайтесь делать шаблон страницы универсальным, чтобы у ваших пользователей не возникало вопросов, что произошло и куда они попали.</p><p>Вы заметите, что экономите кучу времени себе и сократите время пользователя на обучение вашему интерфейсу. Чем быстрее пользователь решит свою проблему, тем выше шанс совершения покупки или любого необходимого вам развития сценария.</p><h2>Визуальная иерархия</h2><p>Важный принцип дизайна и расставления акцентов — визуальная иерархия, и именно о ней чаще всего забывают молодые специалисты.</p><p>Необходимо понимать, какая информация для вашего пользователя наиболее важна, а какая — второстепенна.</p><p>Когда мы забываем визуально разделить информацию, нередко получается информационная каша. Пользователь сам не в силах определить, что ему нужно, а что нет, пролистывает блок или вовсе уходит.</p><p>Чтобы избежать этого, делайте более важную информацию ярче, а второстепенную — менее яркой. Банально и очевидно, да, но, к сожалению, очень часто об этом забывают. Определитесь, с какой информацией пользователь будет взаимодействовать чаще, и сделайте на этом акцент.</p><p>Есть несколько основных способов выделения важной информации:</p><ul><li>размеры элементов;</li><li>структурирование в типографике (заголовок, подзаголовок, описательный текст);</li><li>повторение и группировка;</li><li>цвет.</li></ul><h2>Человечные тексты</h2><p>Конечно, мы все понимаем, что текст должен предоставить заказчик (маркетолог, менеджер проекта и т. д.) ещё на стадии постановки ТЗ, но нередко эта задача ложится на дизайнера. И именно в этот момент мы не должны совершить две самые распространённые ошибки:</p><ul><li>при совершении действия пользователь нажимает на кнопку с надписью, которую до конца не понимает, и не знает, какое действие последует после её нажатия;</li><li>пользователь видит подсказку, которая обезличена, описана общими словами или не соответствует действительности.</li></ul><p>Это неправильно.</p><p>Пользователь должен понимать и видеть логику в каждом своём действии. Пишите для людей. На каждом элементе интерфейса должна быть ровно та надпись, за которой скрывается действие, написанное на этой кнопке. Или опишите подсказку так, чтобы пользователь понял, о чём в ней говорится. Протестируйте текст на ваших знакомых, убедитесь, что они понимают ваш замысел.</p><h2>Технические ограничения</h2><p>Последние несколько лет всё чаще сталкиваюсь с тем, что новички вдохновляются референсами с Dribbble или Pinterest, смотрят на красивые картинки и стараются повторять эти же приемы в своём дизайне. Но как только дело доходит до реализации, выясняется, что так сделать нельзя в силу технических ограничений какого-либо фреймворка.</p><p>Если вы хотите внедрить какую-то убер-модную вещь в своё приложение или сайт — посоветуйтесь для начала с разработчиком.</p><p>Соберите информацию, сможет ли он воплотить вашу гениальную идею в коде.</p><h2>Пустые страницы и страницы с ошибкой</h2><p>Очень часто новички забывают о страницах с ошибкой 404 или страницах/окнах с пустыми данными.</p><p>Не плодите безликие и неинтересные страницы. Напишите сообщение пользователю, обратитесь к нему и предложите выполнить какие-либо действия. Вовлеките пользователя и помогите ему, он вам будет только благодарен, а, следовательно, и более лоялен.</p><p>Помните, что всегда можно улучшить ваш дизайн. И каждый раз улучшая, вы будете понимать, что всегда, я подчеркну, всегда есть к чему стремиться и что улучшать.</p><p>Интересуйтесь мнением ваших пользователей. Разбейте разработку вашего продукта на шаги и выполняйте их поэтапно: от идеи к прототипам, от прототипов к дизайну и так далее. Избегайте вышеперечисленных ошибок и тогда вы гарантированно повысите UX своего сайта или приложения.</p><p>Я постарался предостеречь начинающих дизайнеров от основных ошибок, с которыми с сталкиваются и мои начинающие дизайнеры и, наверное, большая часть всех дизайнеров мира.</p><h2>Итак, какие типичные ошибки наиболее часто совершают при разработке дизайне сайта?</h2><ul><li>не разбираются в задаче, желаниях заказчика;</li><li>разрабатывают интерфейс для абстрактного пользователя, а не для решения его задач;</li><li>используют фотографии и иконки с первой страницы поисковой выдачи;</li><li>изобретают велосипеды, в то время как существуют устоявшиеся подходы к решению задачи;</li><li>используют шаблоны, которые уже отработали своё;</li><li>чрезмерно креативничают, превращая дизайн в солянку из всего и сразу;</li><li>рисуют интерфейс «из головы», без проектирования;</li><li>пренебрегают правилами оформления текста;</li><li>делают незаметные кнопки, нарушают их иерархию;</li><li>добавляют иллюстрации ради иллюстраций;</li><li>неверно подбирают иконки;</li><li>работают без фидбэка;</li><li>бездумно бросаются в тренды;</li><li>оставляют пустые страницы или безликие страницы ошибок;</li><li>не используют пространство вокруг элементов, оставляют много «воздуха».</li></ul><p>Напоминаем, что вы можете <a href="https://docs.google.com/forms/d/e/1FAIpQLSdSanNvlfPRrSyQWfnoGPflSVwO4KctnjOdEKHzuxjCmFX2dA/viewform">задать свой вопрос</a> экспертам, а мы соберём на него ответы, если он окажется интересным. Вопросы, которые уже задавались, можно найти в списке выпусков <a href="https://tproger.ru/experts/">рубрики</a>. Если вы хотите присоединиться к числу экспертов и прислать ответ от вашей компании или лично от вас, то пишите на <a>experts@tproger.ru</a>, мы расскажем, как это сделать.</p>]]></content:encoded>
    </item>
    <item>
      <title>Практика Data Science: где искать датасеты и что с ними делать — отвечают эксперты</title>
      <link>https://tproger.ru/experts/data-science-practice</link>
      <comments>https://tproger.ru/experts/data-science-practice?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Никита Прияцелюк]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/experts/data-science-practice</guid>
      <description><![CDATA[<p>Эксперты советуют новичкам, где брать данные для практики и что с ними делать: наборы есть даже внутри многих библиотек Python.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/experts/data-science-practice">Практика Data Science: где искать датасеты и что с ними делать — отвечают эксперты</a>»</p>]]></description>
      <category><![CDATA[Big Data]]></category>
      <category><![CDATA[Машинное обучение]]></category>
      <category><![CDATA[Data Science]]></category>
      <category><![CDATA[Ответы экспертов]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 12 Mar 2020 15:48:16 GMT</pubDate>
      <content:encoded><![CDATA[<p>В процессе изучения Data Science важна практика, для которой нужны данные. Узнаём у экспертов, где эти данные брать и что с ними делать.</p><p>Для изучения методов машинного обучения доступно большое количество материалов: книги, курсы, статьи, видеолекции, конференции и т. д.</p><p>Многие библиотеки Python содержат в себе наборы данных, на которых можно практиковаться начинающим датасаентистам. Например, библиотека sklearn.datasets содержит 26 наборов данных для новичков: предсказание видов ириса, предсказание цен на жилье в Бостоне, пассажиры Титаника и другие. Фреймворк Keras содержит набор рукописных цифр MNIST, на котором можно изучать алгоритмы для работы с изображениями.</p><p>Во многих соревнованиях по машинному обучению разрешается использовать выложенные в открытый доступ датасеты — для обучения, научных исследований и т. п. На самой популярной соревновательной площадке Kaggle есть отдельный раздел с датасетами на самые разные тематики — от кредитного скоринга до распространения коронавируса. Кроме табличных структурированных данных есть также наборы текстов и изображений, на которых можно обучать глубокие нейронные сети.</p><p>Для работы с изображениями самыми известными открытыми базами данных являются ImageNet и CIFAR. Для работы с текстами среди популярных датасетов можно отметить: IMDB dataset of 50k movie reviews, Wikipedia dataset, SMS spam collection dataset, Twitter sentiment analysis dataset и другие.</p><p>Помимо известных баз данных на различных интернет-ресурсах можно найти подборки датасетов на самые разные узкоспециализированные тематики: данные смертей и сражений из игры престолов, глобальная база данных терроризма, данные для распознавания пола по голосу, данные о студенческом потреблении алкоголя, рентгенография грудной клетки (пневмония), датасет с обзорами вин, данные рейтингов шоколадных батончиков, датасет с данными звуков сердцебиения, база данных рекомендаций аниме, датасет с данными FIFA-19 и многое другое.</p><p>Из открытых наборов данных можно выделить три группы. Первая — традиционные, которые используются для исследования статистических методов на практике. Такие наборы включены в некоторые фреймворки по машинному обучению, например scikit-learn.</p><p>Вторая группа — уже ставшие классическими наборы данных для сравнения SOTA-методов и получения предобученных моделей на практике. Сюда можно отнести Open Images Dataset для классификации моделей или Netflix Prize data для рекомендаций.</p><p>В третью группу входят датасеты на Kaggle — собранные большими компаниями или просто любителями и предоставленные в открытый доступ. Здесь можно найти данные на любой вкус и цвет. Также стоит упомянуть основной портал открытых данных в России <a href="http://data.gov.ru/">data.gov.ru</a>, на котором всё сложно структурировано, но максимально приближено к «реальной жизни».</p><p>Что с ними можно делать? Очевидно, всё, что угодно. Нужно определить цель анализа, чтобы получить какой-то профит.</p><p>Например:</p><ul><li>в исследовательском анализе (EDA) акцент больше идёт на визуализацию и описание данных;</li><li>в статистическом анализе, например сравнении групп, чаще требуется применение статистических критериев;</li><li>в прогнозном анализе уже необходимы навыки построения моделей и их интерпретации.</li></ul><p>Площадка <a href="https://www.kaggle.com/">Kaggle</a> предоставляет несколько соревнований для обучения и совершенствования навыков начинающих специалистов по анализу данных. Например <a href="https://www.kaggle.com/c/house-prices-advanced-regression-techniques">это соревнование</a>, где нужно предсказать стоимость дома, основываясь на данных, содержащих 79 хорошо описанных признаков. В этом соревновании требуется применить навыки выделения новых признаков в данных (feature engineering) и работы с алгоритмами градиентного бустинга. Площадка предоставляет все необходимые наборы данных для практики, и, более того, предоставляет доступ к множеству опубликованных решений в формате IPython Notebook с подробными пошаговыми описаниями манипуляций с данными. Если этого недостаточно, то всегда можно задать вопрос в разделе дискуссий. Таким образом начинающий специалист получает практически всё, что необходимо для развития своих навыков в области Data Science.</p><p>Если мы говорим о Data Science, то мы говорим о репрезентативных выборках в огромных массивах данных. О миллиардах, сотнях миллиардов единиц релевантной информации. Такие данные сегодня можно искать в самых разных источниках. Во-первых, можно скачать уже готовый датасет в соответствии с темой своего исследования. Visual Genome, к примеру, позволяет выбирать датасеты из достаточно большой базы, и это не единственный пример.</p><p>Во-вторых, готовый набор данных легко получить от крупных коммерческих структур вроде «Сбербанка» или «Газпрома». Компании часто представляют датасеты для их обработки на хакатонах или ML-конкурсах. Кстати, там же часто можно найти себе и работу. Заходите на какой-нибудь Kaggle и следите за расписанием мероприятий.</p><p>Наконец, проще всего массивы можно найти там, где их хранят — на государственных сайтах вроде data.gov.ru, <a href="https://data.mos.ru/">data.mos.ru</a> или того же Росстата. А вот что с этой информацией делать — уже вопрос, может быть, даже философский. Сегодня найти большой объём информации — не проблема, а значит, перед тем, как искать датасет, нужно чётко определить цель своих изысканий.</p><p>В зависимости от целей, которые перед собой ставят начинающие специалисты, датасеты могут различаться.</p><p>В случае, если мы говорим про узкоспециализированные задачи, требующие профильной подготовки (биоинформатика, астрофизика и т. д.), вокруг таких областей как правило существуют достаточно компактные сообщества, и специалистам скорее всего стоит искать ответы внутри таких сообществ.</p><p>Когда же мы говорим про задачи, не требующие от начинающих специалистов предварительной углублённой подготовки, и позволяющие в относительно короткие сроки разобраться в предметной области по мере решения задачи (клиентский отток, цена на недвижимость и т. д.), де-факто самая обширная коллекция открытых датасетов собрана на <a href="https://www.kaggle.com/datasets">Kaggle</a>.</p><p>Формальных ограничений, какие действия можно совершать с датасетом, нет, однако каждая DS задача, как правило, состоит из стандартных шагов, включающих Exploratory Data Analysis (EDA), Feature Engineering (FE), моделирование (modelling), валидацию (validation).</p><p>Наибольший фокус на ознакомление с данными, как правило, приходится на этап EDA. На профильных ресурсах, в частности Kaggle, Towards Data Science или в сообществе ODS в Slack, можно найти много примеров и практик по EDA.</p><p>Начинающему специалисту по Data Science лучше всего практиковаться, решая конкретные практические задачи. Обычно их ставит перед вами бизнес: как увеличить прибыль, привлечь новых клиентов, какие будут продажи, какие особенности у наших пользователей, откуда они приходят. Но во время самостоятельной практики вы можете выбрать задачу по желанию. Определиться с направлением работы очень важно: если вы выбрали область, в которой интересно прокачиваться, и потренировались на соответствующих датасетах, впоследствии будет проще найти подходящую работу.</p><p>Соответственно, если вы хотите заниматься прогнозированием, нужно использовать одни датасеты и инструменты, если распознаванием или классификацией — другие. Неплохие наборы данных, собранные из реальных источников, есть на <a href="https://www.figure-eight.com/data-for-everyone/">FigureEight</a>. Там можно выбрать набор данных, подходящий для решения интересующей вас задачи: проблема дорожного трафика, проблема задержки рейсов и так далее. Однажды я увидел там специфическую задачу: по лайкам в Instagram нужно было определить, какие детали на фотографиях пользователи считают наиболее привлекательными и наоборот. Датасеты на этом ресурсе относительно чистые и красивые, с ними можно работать без предварительной очистки. Кстати, если вы получаете неподготовленные данные, подготовительная работа займет 70–80% времени, необходимого для решения задачи.</p><p>Вы получили датасет и не знаете, как к нему подступиться? Начните исследование. План работы с данными в процессе решения Data Science задачи может быть следующим.</p><h2>Получение данных</h2><ul><li>Определите объёмы данных (обычно чем больше, тем лучше: можно использовать только данные компании либо добавить к ним данные из открытых источников или данные сторонних организаций, предлагающих такую услугу).</li><li>Охарактеризуйте данные: по количеству, по качеству.</li></ul><h2>Исследование и визуализация данных для их понимания</h2><ul><li>Определение характера взаимосвязи между данными (особенно с целевой переменной).</li><li>Визуализация (столбчатая диаграмма, линейная, лучевая, гистограмма – вариантов очень много).</li></ul><h2>Подготовка данных</h2><ul><li>Определение основных проблем с данными: аномалии, пропуски, выбросы и другие.</li><li>Оцените необходимость трансформации (после очистки можно использовать различные виды группировки, чтобы привести данные к требуемому для конкретной задачи виду).</li><li>Нормализация и стандартизация (приведение данных к значениям в ограниченных диапазонах, для чувствительных к флуктуациям моделей это очень важно).</li><li>Создание новых признаков на основе старых (стоимость дома лучше будет выражаться через площадь дома, чем через длину и ширину стен).</li><li>Редуцирование данных (использовать, если признаков очень много или есть подозрения на мультиколлениарность).</li></ul><h2>Выбор и обучение модели</h2><ul><li>Определите тип моделей под решаемую задачу с учётом характера данных.</li><li>Обучите несколько моделей на скорую руку и измерьте их эффективность.</li><li>Проанализируйте наиболее значимые переменные.</li><li>Проанализируйте типы ошибок, допускаемых моделями (и как их можно исправить).</li><li>Пройдитесь ещё раз по моделям, используя наиболее значимые признаки и исправив ошибки.</li><li>Выберите до пяти разных наиболее эффективных моделей, отдавая предпочтение более простым и более масштабируемым (принцип бритвы Оккама).</li></ul><h2>Точная настройка модели</h2><ul><li>Проведите точную настройку гиперпараметров с применением перекрестной проверки.</li><li>Отбор значимых атрибутов.</li><li>Экспериментируйте с ансамблями.</li></ul><p>После построения модели и её валидации вы можете приступить к последнему этапу — представление данных в удобном для бизнеса виде. Это могут быть таблицы, предсказанные роли, отметки на фотографиях, также можно создать отдельное хранилище или сгенерировать новые данные.</p><h2>Источники</h2><p>Главные источники информации по Data Science — книги. Я бы посоветовал новичкам Elements of Statistical Learning и ML (Murphy). Надо прочитать их от корки и до корки — это займёт пару месяцев. Там подробно описывается вся классическая теория, почему и зачем всё это нужно.</p><h2>Наборы данных</h2><p>Есть типичные наборы данных для каждой области специализации: ImageNet (CV), COCO (CV), Wikidump (NLP), OpenTTD/Freesound (audio). С табличными данными нюансов много, классика — Titanic. Но типов задач с табличками существует великое множество, особенности данных решают. Чем больше датасетов вы изучите, тем проще потом будет. Также существует Kaggle, где очень много уже практически любых смоделированных данных.</p><h2>Что делать с открытыми наборами данных</h2><p>По общепринятым канонам реализовывать архитектуры, сравнивать с эталоном, пробовать улучшать/менять параметры, ускорять (метод MLE). Либо делать EDA, показывать их опытному чуваку, пробовать моделировать разные факторы/искать эвристики (DS). Группировки, в целом, по пути можно освоить — это несложно.</p><h2>Визуализация</h2><p>Визуализации бывают разные: подспорье для анализа и всякие темы (дашборды) для бизнеса. Первую можно делать и показывать кому-то опытному, вторую вам придется осваивать на боевых задачах/показывать менее подготовленным людям. Суть в том, что хорошая визуализация упрощает восприятие, понял дилетант — значит, суть хорошо передана. На Kaggle есть конкурсы на визуализацию/анализ данных. Можно смотреть лучшие работы и учиться. Более точно тяжело описать, ибо чёткого плана на эту тему нет для DS, обычно упор делается на то, что пригодится в работе в ближайшее время.</p><h2>Касательно Kaggle</h2><p>Там есть чётко поставленные задачи с метриками и лидербордом в рамках соревнований. Это научит делать пайплайны на 20–40%. Но там также взрослые дядьки выступают, хороших результатов не будет точно, это не должно расстраивать.</p><h2>Постановка задач, гипотез, метрик</h2><p>Самому это изучать очень тяжело. Гуглите литературу по научному методу, учите его на зубок, чтобы вас можно было ночью разбудить и спросить за методологию. Метрики придётся разбирать: какие бывают, какие особенности. Применение правильное придёт с опытом. Гипотезы тоже только с опытом придут, но надо пробовать на тех же датасетах.</p><h2>Системы ML</h2><p>Придётся собирать по крупицам инфу о том, как работают системы ML в бизнесе. Тут даже конкретную ссылку не могу привести, сложно советовать — компиляций хороших крайне мало. Надо гуглить, смотреть, общаться с коллегами — ходить на конференции, слушать и набираться разума.</p><h2>Итого</h2><p>Практика с датасетами даст небольшой процент необходимых знаний. Помимо неё важно строго понимать, зачем и почему применяется условные способ А и метрика Б. Для этого нужна теория, а она обычно плавает почти у всех, так что лишним не будет её повторно изучить. Даже если человек вышел из сильного вуза — всё равно стоит заново пройти курс по линейной алгебре, математической статистике.</p><p>Ну и важно понимать, кем вы себя видите. Условный DS близок к аналитику: меньше кодит и больше погружён в бизнес. Лучший способ получить бизнес-навыки — стажировка в компании с налаженными процессами.</p><p>Условный MLE хорошо программирует, максимально погружен в матанализ, мало общается с бизнесом. Ему важнее определиться с треком направления (зрение, тексты, звуки, временные ряды, прочее; но таблички на самом деле тут уже меньше подходят) и самому изучать все ключевые архитектуры — писать их самому, много читать.<br />Бывают уникумы, которые тянут и то, и то, но их очень мало.</p><p>Как правило, изучение Data Science начинается с прохождения каких-либо курсов, включающих в себя практическую часть со всеми необходимыми датасетами, их описанием и инструкциями. После получения базовых знаний, Data Scientist пробует свои силы в более сложных практических задачах, близких к реальным, возникающим в бизнесе, науке или индустрии. Чаще всего это учебные задачи на <a href="http://kaggle.com/">Kaggle</a> и подобных площадках.</p><p>Там же стоит искать и данные для следующего шага — участия в соревнованиях на датасетах с реальными данными.</p><p>Если не хочется участвовать в соревнованиях, стоит попробовать создать свой проект. В таком случае отталкиваться следует не от датасета, а от предметной области, в которой было бы интересно попробовать свои силы. Выбрав такую область необходимо определить в ней некоторую проблему (например задачу о фильтрации спама или о распознавании речи). При этом задача не обязательно должна быть новой и сложной, ведь мы говорим о начинающем специалисте, для которого основной целью является получение практических навыков. Главное — решить поставленную задачу самостоятельно.</p><p>Это может быть как задача машинного обучения, так и статистическая задача, либо даже интересная визуализация данных.</p><p>При этом собирать датасеты самостоятельно, например через парсинг сайтов, чаще всего сложно и неэффективно.</p><p>Существует множество публично доступных датасетов для исследований в различных прикладных направлениях.</p><p>Для поиска необходимых данных можно воспользоваться следующими ресурсами:</p><ul><li>проект <a href="https://open.umich.edu/find/find-open-data">Open Michigan</a> от University of Michigan;</li><li><a href="https://lib.msu.edu/dsc/datasets/">текстовый корпус для исследований в области NLP и вычислительной лингвистики</a> от Michigan State University;</li><li><a href="https://www.kaggle.com/datasets">раздел датасетов на Kaggle</a> содержит различные наборы данных, регулярно обновляемые сообществом;</li><li>платформа<a href="https://datasetsearch.research.google.com/"> Google Dataset Search</a>;</li><li>сообщество <a href="https://ods.ai/">Open Data Science</a>, к которому можно присоединиться и обратиться за советом в поиске нужных данных.</li></ul><h2>Итак, где брать данные и что с ними делать?</h2><p>Откуда брать данные:</p><ul><li>государственные сайты вроде data.gov.ru, <a href="https://data.mos.ru/">data.mos.ru</a>;</li><li><a href="http://visualgenome.org/">Visual Genome</a>;</li><li><a href="https://www.figure-eight.com/data-for-everyone/">FigureEight</a>;</li><li><a href="https://open.umich.edu/find/find-open-data">Open Michigan</a>;</li><li><a href="https://www.kaggle.com/datasets">раздел датасетов на Kaggle</a>;</li><li><a href="https://datasetsearch.research.google.com/">Google Dataset Search</a>;</li><li><a href="https://lib.msu.edu/dsc/datasets/">датасеты для NLP</a>.</li></ul><p>Что с ними делать:</p><ul><li>писать свои модели, пытаться обойти эталонные;</li><li>учиться исследовать и визуализировать данные;</li><li>учиться предобрабатывать данные: нормализация, создание новых признаков и т. д.;</li><li>попробовать реализовать свой проект, который будет использовать эти данные.</li></ul><p>Напоминаем, что вы можете <a href="https://docs.google.com/forms/d/e/1FAIpQLSdSanNvlfPRrSyQWfnoGPflSVwO4KctnjOdEKHzuxjCmFX2dA/viewform">задать свой вопрос</a> экспертам, а мы соберём на него ответы, если он окажется интересным. Вопросы, которые уже задавались, можно найти в списке выпусков <a href="https://tproger.ru/experts/">рубрики</a>. Если вы хотите присоединиться к числу экспертов и прислать ответ от вашей компании или лично от вас, то пишите на <a>experts@tproger.ru</a>, мы расскажем, как это сделать.</p>]]></content:encoded>
    </item>
    <item>
      <title>Какие алгоритмы и структуры данных нужно освоить начинающему специалисту по Data Science — отвечают эксперты</title>
      <link>https://tproger.ru/experts/data-science-algorithms</link>
      <comments>https://tproger.ru/experts/data-science-algorithms?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Никита Прияцелюк]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/experts/data-science-algorithms</guid>
      <description><![CDATA[<p>Эксперты объясняют, какие алгоритмы и структуры данных нужны новичку в Data Science и почему важно получить комплексное представление о предмете.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/experts/data-science-algorithms">Какие алгоритмы и структуры данных нужно освоить начинающему специалисту по Data Science — отвечают эксперты</a>»</p>]]></description>
      <category><![CDATA[Для начинающих]]></category>
      <category><![CDATA[Машинное обучение]]></category>
      <category><![CDATA[Советы]]></category>
      <category><![CDATA[Data Science]]></category>
      <category><![CDATA[Ответы экспертов]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 04 Mar 2020 08:28:14 GMT</pubDate>
      <content:encoded><![CDATA[<p>Data Science — обширная сфера, поэтому начинающим специалистам может быть сложно понять, что им нужно изучать. Узнаём у экспертов, на какие алгоритмы и структуры данных нужно обратить внимание в первую очередь.</p><p>Можно говорить о том, какие алгоритмы более популярны и востребованы в том или ином направлении, но разделять их на то, что пригодится и что нет — опасный путь. Специалист по Data Science, пусть и начинающий, должен закладывать в голову комплексное представление о предмете.</p><p>Лучше всего выбрать любой курс/учебник/лекции по алгоритмам и посмотреть содержание — это с большой вероятностью адекватный, проверенный временем необходимый список того, что нужно знать. Кроме того, любой курс включает понятия для анализа и понимания любых алгоритмов: вычислительная сложность по памяти, по времени, теории из анализа алгоритмов (почему сортировать быстрее, чем за O(N*logN), в среднем нельзя) — с этим в любом случае сталкиваешься при работе.</p><p>Если же говорить, о том, с чем чаще приходится работать — это различные методы, используемые в базах данных: тут важно знать виды сортировок, понимать, как СУБД обрабатывает оператор ORDER BY, как работает и хранится индекс и primary key и т. п.</p><p>Также можно интересоваться, как обрабатываются различные данные в области, где хочется развиваться. Например, в рекомендательных системах и информационном поиске нужно хорошо знать алгоритмы на графах, в анализе изображений — как работают алгоритмы сжатия, поиска линий, смежных точек, а при анализе текста — поиск подстрок, регулярные выражения и т. д. Но повторюсь, хороший специалист должен иметь всеобъемлющее представление об алгоритмах и структурах данных.</p><p>Начинающему data scientist’у необходимо определиться с ближайшей целью своего развития:</p><ol><li>Применение своих навыков в прикладных задачах.</li><li>Экспериментальные и в большей степени научные задачи, участие в конкурсах на платформе Kaggle, анализ идей цифровых гигантов.</li></ol><p>В первом случае нужно обладать знаниями моделей регрессии (линейная, градиентный спуск, полиномиальная, логистическая, регуляризованные регрессии, метод опорных векторов, деревья принятия решений), методах понижения размерности, ансамблевых методах (бэггинг, бустинг), моделей классификации и кластеризации.</p><p>Для этого стоит изучить библиотеки NumPy, Pandas, SciPy, Sklearn, Matplotlib, XGBoost, LightGBM, после чего специалисту открыты двери для решения задач в ритейл-, телеком- и банковской сферах.</p><p>Если в приоритете экспериментальные задачи, помимо всего вышесказанного нужно разобраться в библиотеках NLP, Keras, TensorFlow, Theano, проанализировать множество видео-, аудиоданных, собрав различные датасеты, например с изображениями котиков. Это откроет потенциальную возможность разработать нечто крутое, что потом купит Apple или Facebook.</p><p>Вне зависимости от того, какая цель будет выбрана, начинающий специалист должен владеть основами аналитики, статистики и математики. А в фундаментальных знаниях — Python и R, базовые навыки работы в Linux, Excel и, конечно же, SQL, потому что иногда проще написать две строчки select-а, чем ломать голову, как минимизировать количество циклов над датасетом.</p><p>Я бы посоветовал начать с общего обзора всех возможных направлений в машинном обучении: работа с текстом, изображениями, временными рядами, информацией о том, где и как применяется ML на практике и в научных исследованиях. Всегда полезно изучить классические алгоритмы: логистическая регрессия, например, используется с 60-х годов и даже не планирует устаревать. Отдельное внимание стоит уделить не самим алгоритмам, а методике их применения: проверке качества, детектировании переобучения, подготовке и очистке данных. И не старайтесь изучить сразу все возможные алгоритмы, лучше узнавать их по мере наработки навыка работы с данными. Практика показывает, что можно изучить всего один алгоритм и применять его всю жизнь, делая при этом очень крутые «штуки».</p><p>Ну и безусловно, в этом вопросе лучше разбираться с опытным наставником.</p><p>Для специалиста по Data Science важно знать прежде всего алгоритмы и структуры данных, которые применяются в алгоритмах машинного обучения. Например, для того, чтобы знать, как устроены решающие деревья, нужно знать, как создать класс узла дерева, а затем построить само дерево, используя рекурсию.</p><p>Если специалист по Data Science решает оптимизационные задачи или задачи, связанные с геоданными, социальными сетями, то нужно знать соответствующие графовые алгоритмы, например алгоритм Дейкстры, алгоритмы поиска в глубину и ширину.</p><p>Для специалистов, работающих с текстовым поиском, полезно знать алгоритм Кнута-Морриса-Пратта (поиск подстроки в строке), а для тех, кто работает в области NLP, хорошо бы знать алгоритм Хаффмана, использующийся, в частности, в word2vec.</p><p>Для инженера машинного обучения — специалиста, который не только применяет модели машинного обучения, но и внедряет их, а иногда и модифицирует, важно знать всё те же алгоритмы, которые должен знать обычный программист, начиная от простейших (сортировки, обход деревьев) до специфичных для Data Science.</p><p>Преподаватели вузов <a href="http://www.justmedia.ru/analitika/project/otkrytaya_pozicziya_dmitrij_gokov_at_consulting_vostok__kadrovyj_golod_v_it_ili_effekt_dyryavogo_vedra">говорят</a> о том, что из 100 поступивших на IT-факультеты до выпуска доходят не более 50 человек. При этом по профессии начинает работать едва ли половина из них. Эксперты онлайн-университета «Нетология» отмечают, что прирост блока Data Science в онлайн-обучении в 2019 году составил целых 700 %. Это сигнализирует о том, что в условиях высокой конкуренции специалисту в DS нужно обладать обширным набором знаний для успешной самореализации.</p><p>Алгоритмы и структуры данных — это больше теоретическая основа для работы программистом. Так, в «джентльменский набор» программиста входит: асимптотическая оценка сложности, быстрая сортировка, хеш-таблицы, сбалансированные деревья поиска, алгоритмы на графах и знание NP-полных задач.</p><p>Data Science-специалисту как минимум надо овладеть следующим инструментарием и знаниями:</p><ul><li>Основы программирования на Python + Python для анализа данных. Это и управляющие структуры, и умение написать небольшую процедуру, например для очистки данных, и базовые знания Pandas, NumPy.</li><li>Визуализация данных для интерпретации результатов и обсуждения с бизнес-заказчиками. Для начала можно использовать matplotlib — библиотеку на языке Python для визуализации данных двумерной 2D и 3D-графикой — она наиболее распространённая.</li><li>Математические основы: работа с линейными операторами (матрицами).</li><li>Матанализ и методы оптимизации (например градиентный спуск, метод наименьших квадратов).</li><li>Знание статистики и теории вероятности. Тут важна теорема Байеса и понимание, как проверять статистические гипотезы.</li><li>Умение анализировать временные ряды (метод скользящего среднего).</li><li>Оценка качества алгоритмов (схемы валидации и метрики, например HoldOut, K-Fold, метрики: MSE, F1-Score, ROC-AUC). Это нужно, чтобы проанализировать, правильно ли работают налаженные вами процессы и насколько они эффективны.</li><li>Основные модели машинного обучения (это logistic regression, random forest, desicion tree, XGBoost, SVM, k-means). Применяются в зависимости от конкретной прикладной задачи, либо в ансамбле многоуровневой модели.</li><li>Deep learning и нейронные сети — Back Propagation, Pytorch, основные архитектуры сетей. Начать можно со свёрточных сетей вроде AlexNet, так как они самые простые для выполнения задач классификации.</li><li>Оценка эффективности моделей в реальных бизнес-задачах, умение коррелировать внутренние метрики с бизнес-показателями.</li><li>Сложно будет и без soft-skills: ML-модели строятся под конкретные цели заказчиков, поэтому важно уметь объяснить клиенту — либо своему project-менеджеру — мотивацию своих действий и решений, чтобы выстроить грамотный «мостик» между работой программиста и задачами бизнеса.</li></ul><p>Эксперты отмечают Data science среди необходимых в 2020 году навыков, так как 14 % всех рабочих задач <a href="https://www.bcg.com/ru-ru/perspectives/228999">могут</a> быть <a href="https://www.bcg.com/ru-ru/perspectives/228999">автоматизированы</a> в ближайшие годы. Хорошему специалисту DS нужны не только диджитал-навыки и высокий уровень понимания процессов, но и soft skills для успешной коммуникации с командой и заказчиками.</p><p>Для старта нужно знать основу: как работает классическое машинное обучение, уметь решать задачи регрессии (линейной, логистической, случайный лес, градиентный бустинг на решающих деревьях и т. п.), классификации. Чаще всего в жизни применяется Gradient Boosted Trees/Random Forest, но встречаются также задачи с логистической регрессией. Это что касается обучения с учителем (supervised learning).</p><p>Если говорить про алгоритмы без учителя (unsupervised learning), позволяющие делать аналитику без целевой разметки, то здесь важно владеть методами понижения размерности, потому что они часто помогают избавиться от ненужных факторов, облегчить модель перед выводом в продакшн, например. Также нужно хорошо знать методы кластеризации, среди них популярны метод k-средних (k-means), HDBSCAN. Первый подходит, когда мы вручную задаём количество кластеров. Например у нас есть информация, какой у людей рост и вес, известно, что производственные мощности могут произвести 100 маек, и мы знаем, что существует 5 размеров маек — 5 кластеров. Задача — понять, сколько на самом деле маек нужно сделать, чтобы обеспечить спрос рынка, чтобы, например, не было много размеов L или S. И алгоритм k-means помогает подобрать, сколько людей подходит под каждый кластер. Другой алгоритм помогает сам подобрать необходимое количество кластеров.</p><p>Классические методы Machine Learning хороши, но часто не оправдывают ожидания бизнеса из-за того, как они работают и с каким качеством. Например, если в обученной модели вес одного из факторов будет 70-80 %, то бизнес может решить, что модель линейная, и не принять результаты. Молодому специалисту следует выбрать направление, в котором интересно развиваться профессионально. Например, если интересно заниматься предиктивной аналитикой, то нужно дополнительно изучить анализ временных рядов (здесь много своей специфики), глубинное обучение. Также надо знать, как работают классические модели по анализу временных рядов (ARIMA/SARIMA и т. д.).</p><p>Другое направление — это рекомендательные системы. К ним прибегают, когда нужно восстановить зависимость: какой пользователь какой продукт выберет. Отличный пример — Netflix, который рекомендует релевантный видео-контент в зависимости от предпочтений. В этом направлении базовые методы — сингулярное разложение, коллаборативная фильтрация, факторизационные машины. Можно, конечно, погрузиться и в изучение квантовых Больцмановских машин, но понадобится он, скорее всего, только для исследований — не для работы.</p><p>Ещё одно интересное направление — анализ естественного языка (NLP). Желающим развиваться в этом направлении специалистам нужно знать базовые модели и разбираться в текущих наработках — gensim, word2vec, SpaCy, BERT. Последний достаточно тяжелый, он нужен для масштабных разработок крупным ИТ-компаниям. В обычной жизни его сложно использовать.</p><p>Ещё одно очень популярное в последнее время направление — компьютерное зрение. Для того, чтобы специалисту развиваться в этом, нужно изучить как классические модели — например аналитические алгоритмы на основании библиотеки OpenCV — так и более продвинутые и устойчивые инструменты, например свёрточные нейросети (convolutional neural network).</p><p>Таким образом, чтобы начать карьеру Data Scientist, нужна база, после чего можно углублённо изучать доменные области, внутри которых можно развиваться. Конечно, в любой момент можно легко поменять направление, потому что в принципе «под капотом» находится примерно одно и то же, только разбирается разными инструментами и под разными ракурсами.</p><h2>Итак, какие алгоритмы и структуры данных нужно знать начинающему специалисту Data Scientist?</h2><p>Конечно же, необходимость понимать тот или иной алгоритм или структуру данных зависит от прикладных задач, которые решает или планирует решать специалист. Так, для работы с текстовым поиском, полезно знать алгоритм Кнута-Морриса-Пратта, для работы с геоданным точно пригодятся графовые алгоритмы, а для NLP — алгоритм Хаффмана. При этом, любому специалисту явно не помешает знание методов кластеризации (например, k-means и HDBSCAN) и умение решать задачи классификации, понижения размерности и регрессии.</p><p>Отдельное внимание стоит уделить не только алгоритмам, но и методике их применения: проверке качества, детектировании переобучения, подготовке и очистке данных. И не старайтесь изучить сразу все возможные алгоритмы, лучше узнавать их по мере наработки навыка работы с данными.</p><p>Вне зависимости от направления, которое вы выберете, вам понадобятся основы аналитики, статистики и математики. Также не помешают базовые навыки работы с Linux, Excel и SQL. Кроме того, вам скорее всего придётся освоить какой-то язык программирования; в ML фаворитами являются R и Python, многие делают свой выбор в пользу последнего.</p><p>В Python для ML пригодятся такие библиотеки, как NumPy, Pandas, SciPy, Sklearn, Matplotlib, XGBoost, LightGBM и другие.</p><p>Напоминаем, что вы можете <a href="https://docs.google.com/forms/d/e/1FAIpQLSdSanNvlfPRrSyQWfnoGPflSVwO4KctnjOdEKHzuxjCmFX2dA/viewform">задать свой вопрос</a> экспертам, а мы соберём на него ответы, если он окажется интересным. Вопросы, которые уже задавались, можно найти в списке выпусков <a href="https://tproger.ru/experts/">рубрики</a>. Если вы хотите присоединиться к числу экспертов и прислать ответ от вашей компании или лично от вас, то пишите на <a>experts@tproger.ru</a>, мы расскажем, как это сделать.</p>]]></content:encoded>
    </item>
    <item>
      <title>Какие инструменты и подходы использовать для тестирования фронтенда — рассказывают эксперты</title>
      <link>https://tproger.ru/experts/tools-and-approaches-for-testing-frontend</link>
      <comments>https://tproger.ru/experts/tools-and-approaches-for-testing-frontend?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Никита Прияцелюк]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/experts/tools-and-approaches-for-testing-frontend</guid>
      <description><![CDATA[<p>Эксперты советуют, какие инструменты и подходы к тестированию фронтенда пригодятся веб-разработчику и тестировщику — от Selenium и дальше.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/experts/tools-and-approaches-for-testing-frontend">Какие инструменты и подходы использовать для тестирования фронтенда — рассказывают эксперты</a>»</p>]]></description>
      <category><![CDATA[Тестирование]]></category>
      <category><![CDATA[Веб-разработка]]></category>
      <category><![CDATA[Инструменты]]></category>
      <category><![CDATA[Советы]]></category>
      <category><![CDATA[QA]]></category>
      <category><![CDATA[Ответы экспертов]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 26 Feb 2020 16:13:25 GMT</pubDate>
      <content:encoded><![CDATA[<p>Тестирование — достаточно надёжный способ отловить ошибки ещё на этапе разработки и сохранить нервы в процессе эксплуатации ПО. Описание целей и процесса тестирования фронтенда изложено в таких наших материалах: <a href="https://tproger.ru/translations/frontend-testing-1/">знакомство с фронтенд-тестированием</a>, <a href="https://tproger.ru/translations/frontend-testing-2/">юнит-тестирование</a>, <a href="https://tproger.ru/translations/frontend-testing-4/">интеграционное</a> и <a href="https://tproger.ru/translations/frontend-testing-3/">E2E-тестирование</a>. А в этой статье эксперты расскажут, какие инструменты и подходы для фронтенд-тестирования они рекомендуют использовать веб-разработчику и тестировщику.</p><p>Когда идёт речь об автоматизации тестирования фронтенда, самым очевидным инструментом является Selenium. Хотя, если проект непродолжительный по времени, стоит в качестве альтернативы рассмотреть Selenide или другую обёртку. Это позволит заметно ускорить старт проекта и избежать написания под себя функций для базового взаимодействия. Затем очень важно создать удобную инфраструктуру, где можно было бы свести к минимуму все ручные операции и наглядно представить результаты тестов. В этом может помочь связка из Allure, Jenkins и Selenoid. Allure можно использовать как для общей статистики, так и для отражения в отчёте всех шагов и действий тестов. Для этого надо лишь снабдить код необходимыми аннотациями. Selenoid нужен для удалённого запуска ваших UI тестов, так как после определённого момента запускать их локально становиться непозволительно по времени. Ну и наконец Jenkins служит как связующее звено и позволяет с лёгкость настроить запуск тестов в определённое время или после очередной сборки фронта.</p><p>В качестве общего подхода при написании тестов могу посоветовать максимальную фрагментацию. Нет никакой необходимости пытаться проверить всё в одном тесте. Напротив, стоит дробить их на небольшие тесты, проверяя по одной-две бизнес функции. И как показывает практика, в сложных приложениях очень удобно перед UI тестом подготовить тестовые данные при помощи автоматизации работы с базой или с API приложения.</p><p>И в качестве совета начинающим специалистам, которые решили изучать автоматизацию тестирования фронта при помощи Selenium, могу порекомендовать выучить Xpath, а не пытаться пользоваться программами для автоматического поиска локаторов, и как можно лучше изучить выбранный вами язык программирования, ведь в сложных системах и сложных тестах на первое место уже встаёт работа с данными, и вы не сможете обойтись даже прекрасными знаниями одного лишь Selenium.</p><p>Большинство нагрузочных тестов и функциональных автотестов web-приложений в КРОК мы создаём с помощью LoadRunner от MicroFocus. Оптимальным этот инструмент считают и многие внешние ИТ-команды, которые приходят к нам за экспертизой в области разработки автотестов.</p><p>Кстати, мало кто знает про возможности LoadRunner в области функционального тестирования, так как привыкли воспринимать его исключительно как инструмент нагрузки. Здесь можно создавать функциональные тесты для приложений, используя протокол TrueClient, а после конвертировать их в нагрузочные. Очень удобная штука, но требует определённых знаний и продуманного подхода к решению.</p><p>По факту LoadRunner — огромная профессиональная студия, которая делает много работы за тебя, например помогает быстро создавать нагрузочные скрипты используя автокорреляцию. С её помощью при разработке функциональных тестов можно быстро и качественно создавать локаторы на объекты, встраивать в автотесты свой код на различных языках программирования. Возможность подключать собственные библиотеки — одна из самых сильных сторон этого инструмента. А всё, что не может сделать LoadRunner, можно написать самому на С или JavaScript. Например, это было полезно, когда в нагрузочном тесте нам нужно было проверить систему, где каждый отчёт, отправляемый на сервер, должен сопровождаться электронной подписью. По LoadRunner много информации в интернете на тематических форумах, есть видеопрезентации в YouTube. Обычно достаточно часа, чтобы подключить нового человека к созданию или поддержке автотестов.</p><p>Раньше LoadRunner был полностью платный, а сейчас бесплатен для нагрузки 50 пользователями, протокол TrueClient же вообще бесплатен. Обычно полсотни пользователей достаточно, чтобы показать разработчикам их слабые места в коде, но всегда можно незначительно увеличить нагрузку, используя виртуализацию.</p><p>Каждый программист несёт ответственность за качество написанного им кода, а одной из важнейших характеристик качества является покрытие кода тестами. На практике этой областью часто пренебрегают из-за нехватки времени или дедлайнов, отдавая предпочтение написанию новой функциональности и скидывая эту задачу на тестировщиков. Как результат — на еженедельные спринты накладывается печать боли под названием «исправление багов» из-за непредвиденных ошибок в коде, а любимый Agile постепенно превращается в водопадную модель.</p><p>При создании большого SPA со сложной архитектурой написание тестов является неотъемлемой частью процесса разработки. В зависимости от специфики приложения покрытие тестами может быть направлено на работу с данными или на область работы с DOM. Если модуль представляет простой блок отрисовки данных, связанных с API (форма, список, модальное окно или таблица), стоит сконцентрироваться на описании тестами функций, отвечающих за изменение данных, — работы с состоянием или хранилищем данных. Чем сложнее визуальная часть приложения, тем большего внимания заслуживает процесс отрисовки DOM-дерева.</p><p>Основные виды тестирования для frontend — Unit-тестирование, интеграционное тестирование, end-to-end (E2E) тестирование. Unit-тест тестирует работу одного юнита (функции, объекта, класса, модуля) в изоляции от других частей приложения. Интеграционные тесты проверяют несколько связанных между собой модулей. Чаще всего для фронтенда это означает проверку работоспособности частей приложения, связанных с внешним миром (работа с localStorage или cookies, работа с API), либо имитацию событий на странице и переходы между модулями. В end-to-end тестировании загружается всё приложение целиком и имитируется работа пользователя с приложением.</p><p>Для определения количества тестов каждой из групп существует пирамида тестирования, группирующая необходимые тесты по разным уровням реализации (много Unit-тестов, меньше интеграционных и немного E2E). На практике эта пирамида не всегда является лучшим подходом. Дело в том, что в быстро развивающемся приложении функциональность часто изменяется, бизнес-требования расширяются, при этом затрагивая написанные до этого модули, а некоторые фичи и вовсе могут не дойти до деплоя в production. Поэтому покрывать всю функциональность приложения тестами не всегда имеет смысл. Пирамида в таком случае может встать с ног на голову.</p><p>В разработке я уделяю больше всего внимания написанию интеграционных тестов, в частности работе с API. Это не самая динамичная часть кода, а повышение отказоустойчивости при работе с сервером — одна из важнейших целей тестирования фронтенда.</p><p>Для реализации эффективного тестирования существуют TDD (Test Driven Development) и BDD (Behavior Driven Development). Это специальные техники экстремального программирования, когда сначала разработчик пишет тесты, а затем код, который будет удовлетворять заложенные технические требования или пользовательские сценарии. В реальной жизни этот подход эффективен, но сложен в поддержании и внедрении, к примеру, если у вас распределённая команда разработки.</p><p>Популярными библиотеками тестирования для фронтенд-разработчика являются Jest для интеграционных и юнит-тестов и Puppeteer или Cypress для end-to-end тестирования. При работе с Angular чаще всего для написания тестов используются Karma и Jasmine, а также Protractor для end-to-end. Помимо общих библиотек каждый фреймворк имеет специфичные подходы к тестированию. Например React содержит test-utils, упрощающие тестирование компонентов. При выборе инструмента рекомендуется изучить подходы и документацию для тестирования вашего фреймворка.</p><p>Тестирование — неотъемлемый элемент обеспечения качества (QA). Его объёмы, как это ни банально прозвучит, зависят от требуемого качества: при создании прототипа достаточно проверки результата самим разработчиком, при написании же библиотеки, которая будет использоваться в неизвестном заранее окружении, уже стоит подумать о высокой плотности покрытия юнит-тестами.</p><p>Тестирование можно разделить на статическое и динамическое. К статическому относятся автоматические анализаторы кода, и в мире фронтенда стандартом стал <a href="https://eslint.org/">ESLint</a>. Для него есть множество наборов настроек, например <a href="https://github.com/airbnb/javascript">Airbnb CodeStyle</a>. В нашей компании мы используем собственный пресет.</p><p>Стоит сказать и про использование систем типизации, среди которых лидирует <a href="https://www.typescriptlang.org/">TypeScript</a>. Мы пока не видим для себя заметной выгоды от их использования и продолжаем писать на JavaScript. Процесс Code Review также можно назвать одним из видов статического тестирования.</p><p>Тема динамического тестирования шире, нельзя не упомянуть ручные и автоматизированные функциональные тесты, но подробнее я остановлюсь на юнит-тестировании с выдержками из рекомендаций для наших фронтенд-разработчиков:</p><ol><li>Используйте <a href="https://jestjs.io/">Jest</a>.</li><li>Тесты бывают black box (не знают о реализации) и white box (знают о реализации). Старайтесь писать black box, тестируя вход и выход юнита и не привязываясь к конкретной реализации. У каждого юнита есть публичный интерфейс, контракт, тестируйте его.</li><li>Следуйте TDD. Это позволит писать более компактные юниты с достаточным количеством и качеством тестов. Если писать сначала код — с заметной вероятностью его нужно будет переписать в процессе написания тестов.</li><li>Размер юнита может быть больше одной функции/метода. Например в Vue-приложении это обычно весь компонент.</li><li>Не тестируйте приватные методы и не мокайте их, если в этом нет необходимости. Тест станет более «интеграционным», но не привяжется к деталям реализации.</li><li>Не пишите тесты ради тестов.</li><li>Не гонитесь за code coverage. Даже 20% может быть вполне достаточно.</li><li>Не тестируйте фреймворки, только свою логику.</li><li>Тест должен тестировать что-то одно.</li><li>Каждый багфикс — повод одновременно с исправлением написать новый тест.</li></ol><p>Обычно для тестирования фронтенда мы используем Selenium, Cypress, фреймворки Jasmin или Mocha. Из полезного: PhantomCSS — запоминает состояние веб страницы, позволяя отслеживать регрессии (вроде пропавшей кнопки или другого элемента). Из подходов мы используем метод TDD (Test Driven Development — разработка через тестирование). Из сервисов для тестирования — BrowserStack, для кроссбраузерного тестирования на реальных устройствах. Много полезной информации frontend-специалист может почерпнуть на профессиональных форумах и блогах, типа Habr и в зарубежных источниках.</p><p>Для тестирования фронтенда применяются юнит тесты, интеграционные тесты и сквозное тестирование.</p><p>Юнит тестирование используется для изолированной проверки компонентов, модулей и различных функций. Например популярным фреймворком для JavaScript является Jest. Он хорошо документирован, прост в установке и использовании, постоянно развивается и имеет богатый набор возможностей, таких как тестирование снимками, простота создания всех видов имитаций и т. д. Для тестирования компонентов на React хорошо подходит набор утилит Enzyme, который позволяет работать с отрисовкой компонентов, имеет удобный API для работы с элементами и также хорошо документирован.</p><p>Интеграционные тесты проверяют взаимодействие двух и более модулей между собой. Сквозные (end-to-end) тесты охватывают проверку системы развёрнуто, что предполагает реальный запуск проекта в связке с бэкендом. Для этих целей хорошо подходит платформа Cypress. Она имеет простой синтаксис написания тестов, удобный формат вывода сообщений и понятную документацию, что позволяет даже новичку быстро разбираться с написанием тестовых сценариев.</p><p>В современной фронтенд-разработке очень много зависит от выбранного стека технологий, на котором пишется фронтенд. Крупные проекты пишутся на каком-нибудь фрейворке типа React или Vue, а менее крупные проекты — либо на чистом JS, либо на микрофреймворках типа jQuery. В зависимости от выбранного подхода в разработке, тестирование различается. Как правило, в полноценных фреймворках есть уже встроенные механизмы тестирования. Например, <a href="https://jestjs.io/docs/en/testing-frameworks">вот для React</a>, а <a href="https://angular.io/guide/testing">вот — для Angular</a>. Если фреймворка нет, то есть <a href="https://codeburst.io/javascript-unit-testing-using-mocha-and-chai-1d97d9f18e71">такой</a> вариант.</p><p>Если смотреть на подходы к автоматическому тестированию фронтенда, то можно выделить:</p><ul><li>unit тесты — их пишут сами разработчики, используя механизмы, приведенные выше;</li><li>тестирование вёрстки и UI тесты (эмулирование пользователя) пишут тестировщики-автоматизаторы, так как для прогона таких тестов нужно создавать специально окружение и поддерживать его.</li></ul><p>Для UI тестов обычно применяется <a href="https://selenium.dev/">Selenium</a>. Для тестирования вёрстки и простого тестирования UI применяется метод на основе <a href="https://jestjs.io/docs/en/snapshot-testing">snapshot</a>.</p><p>Активно используем юнит-тесты как способ проверить работоспособность какой-либо малой функциональной единицы и модульные тесты для проверки работоспособности готового логического блока. Применяем как на начальном этапе разработки, так и при пересмотре механики работы элементов интерфейса. Использование связки TypeScript + Jest покрывает потребность в тестировании пользовательских интерфейсов сервисов Containerum Managed Kubernetes, DBaaS, облачной технологической платформы. К визуальному регрессу только присматриваемся — ещё не возникало потребности в использовании в виду высокой динамики разработки и изменений. E2E и интеграционные тесты также представляют интерес.</p><p>Всё тестирование программного обеспечения (ПО) можно условно разделить на две большие категории: автоматизированное тестирование (автотесты) и ручное (мануальное). С точки зрения самих разработчиков, когда речь заходит о тестировании ПО, то подразумеваются именно автотесты.</p><p>Автоматизированное тестирование кода позволяет снизить количество ручного тестирования, облегчает интеграцию новых фич и помогает в рефакторинге исходного кода.</p><p>Говоря об автотестах на фронтенде, как правило, подразумевают 3 вида: юнит-тесты, интеграционные тесты и E2E-тесты.</p><p>Юнит-тестирование, оно же модульное — это когда вы тестируете отдельные модули вашего приложения независимо друг от друга. Понятие модуль в данном контексте крайне широкое. Это может быть отдельный класс, функция, компонент и т. п. Важно лишь то, что вы тестируете все эти сущности по возможности независимо друг от друга. Это позволяет не только проверить корректность работы приложения на низком уровне, но и повышает качество кода, так как юнит-тесты налагают определённые требования на сам тестируемый код и его окружение.</p><p>Интеграционное тестирование — это уже следующий этап тестирования, когда модули приложения объединяются в группы и тестируются совместно. Цель этого этапа тестирования проста — понять, что могло сломаться при объединении модулей. При этом приложение запускается не в реальном окружении т. е. не используется продуктовый API, а вместо него подключают моки.</p><p>E2E-тестирование (системное тестирование) — это третий этап тестирования, выполняемый в полном окружении, максимально приближенном к продуктовому окружению. При этом внутреннее устройство приложения остаётся скрытым от E2E-тестов.</p><p>Существует довольно много различных фреймворков для написания тестов, но самыми популярными являются: Mocha, Jasmine и Jest. Также удобно бывает использовать отдельную среду для запуска тестов в разных браузерах, например Karma. Для взаимодействия с браузером используют специальный драйвер типа Selenium и иногда прослойки типа Protractor. Есть и интегрированные среды, которые объединяют в себе все типы инструментов, такие как Cypress.</p><p>Для изучения всех эти инструментов могу порекомендовать в первую очередь документацию и GitHub, так как там всегда содержится самая актуальная информация.</p><p>На <a href="https://egghead.io/">egghead.io</a> и Pluralsight есть множество курсов и лекций по тестированию на фронтенде.</p><p>Мне кажется, сообщество разработчиков находится где-то в фазе понимания, что «бетонированию» тестами поддаются только конструкции, обещающие жить долго без изменений. В то же время мы видим повсеместное применение Agile подходов к разработке, намекающих нам на то, что подвижность, гибкость продукта во всех смыслах является одним из ключевых факторов его выживаемости на рынке.</p><p>TDD (test-driven development или разработка через тестирование) звучит бодро, когда вы делаете лабораторную работу, и совсем не так, когда вы оказываетесь на рынке и проигрываете тендер только потому, что заложили в цену тесты, актуальность которых едва ли доживёт до релиза. Очевидное противоречие между абстрактным идеальным кодом и бизнесом, который хочет дёшево, надёжно и вчера, решается в таком компромиссе: дешёвых тестов можно много, дорогих — мало. Чем больший объём функциональности покрыт тестом, тем обычно дороже стоит такой тест.</p><p>Именно так мы выходим на классику пирамиды тестов: Jest, Mocha, Jasmine и другие в юнит и интеграционных тестах; Karma, Protractor, Phantom и пр. для тестов UI компонент (которые с лёгкой подачи команды Angular стали называть E2E тестами, хотя это не всегда так). Pact как тестирование исполнения контракта между провайдером и потребителем.</p><p>Стоит отдельно упомянуть тестирование на безопасность (на моём нынешнем проекте используется Fortify), тестирование производительности (Lighthouse), тестирование на CSS регрессию (Hermione).</p><p>Сфера тестирования, как и сфера программирования, очень широкая. Здесь нет готового алгоритма, и многие технологии и решения зависят от инструментов, на которых мы проводим тестирование. Мы используем unit-тестирование, end-to-end-тестирование, интеграционное тестирование. Интеграционные и unit-тесты, как правило, проводятся разработчиками. End-to-end-тестирование — тестировщиками, которые пишут автоматические тесты.</p><p>Если говорить про тесты, которыми занимаются разработчики, всё зависит от фреймворков (Angular, React и т. д.). Для Angular многие компании используют инструменты Karma и Protractor, для React — Jest и Enzyme. Интеграционное тестирование делается на этих же вещах.</p><p>Основным инструментов для end-to-end-тестов, как правило, является Selenium. Далее идёт обёртка высокого уровня, более доступная пользователям. Это может быть Puppeteer, Cypress, Webdrive.io и прочие.</p><p>В нашей компании end-to-end-тесты делают либо на C#, либо на Java. На C# у нас свои тестовые решения, которые мы написали и реализовали. На Java мы используем фреймворк Selenide, который легко все масштабирует и обладает рядом полезных функций, которые работают «из коробки». Например, удобная интеграция с Allure, который мы используем для сбора и анализа результатов тестов. На самом деле, нет большой разницы, на чем писать автотесты, это можно делать на любом языке, поэтому смотрите, что вам ближе. Фреймворки типа Puppeteer и Webdriver.io подходят для людей, которые умеют писать код. Фреймворки типа Cypress имеют UI для тестеров и более дружелюбны. Но для использования большинства фреймворков все же нужно изучить язык программирования. После того, как вы выбрали фреймворк, обязательно нужно прочитать документацию. На Medium есть много полезных статей на эту тему. Также на Software Testing есть неплохие курсы для тестирования с нуля и по C#, и по Java. У нас в компании также есть платная подписка на Pluralsight. Можно подобрать что-то на Udemy, Lynda, Coursera. Будет полезна книга «Шаблоны тестирования xUnit: рефакторинг кода тестов», где неплохо описаны антипаттерны, которые есть в тестах.</p><p>Еще при интеграционном тестировании помогает работа со скриншотами экрана. Мы делаем эталонный снимок экрана и сравниваем с ним все последующие. Это подходит для устоявшихся продуктов, где UI редко меняется. Есть сервисы, которые позволяют делать сравнение в разных браузерах. BrowserStack – отличный инструмент как для мануального, так и для автоматического тестирования. Плагины для тестирования, например, Wave, помогают быстро и качественно протестировать, насколько удобен и читабелен продукт.</p><p>Для начала я бы рекомендовал отличный инструмент «проверь себя». Часто случается, что разработчики передают задачу тестировщикам, не проверив перед этим свою работу, что приводит к потерям времени: сперва задача находится в очереди на тестирование, потом тестировщик находит банальную ошибку в первом же очевидном тест-кейсе, после этого задача снова ждёт, пока разработчик переключится с нового задания на старое, а дальше цикл повторяется, пока не будут устранены ошибки «на поверхности». Только после этого этапа тестировщик сможет полностью погрузиться в задачу и выполнить полноценное тестирование. Поэтому, в первую очередь, надо «покликать» кнопочки, заполнить формы, пройти хотя бы планируемый, «идеальный» сценарий.</p><p>На следующем этапе можно перейти на более сложный уровень — встать на место пользователя и попытаться выполнить его задачи. В таком случае важно абстрагироваться от собственной разработки и пойти не по «счастливому сценарию», а смоделировать более вероятную и близкую к реальности ситуацию, ведь пользователи не догадываются, через какой именно путь вы хотите их провести. Можно даже попытаться сломать свою систему, как если бы это был чужой проект: заполнить форму для телефона буквами, поля email — цифрами, внезапно закрыть окно подтверждения действия и так далее. Это займёт совсем немного времени разработчика, зато позволит передать в тестирование более качественную работу и доставить её в «прод» намного быстрее.</p><p>Следующий уровень — проверка в разных средах. При разработке под веб стоит проверить свою работу во всех браузерах (Chrome, IE, Safari и др.). Также хорошим испытанием будет тестирование на различных разрешениях экрана: идеально — на разных устройствах, не идеально — встроенными в браузеры средствами. Фронтенд-приложения для мобильных устройств тоже надо проверять на разных устройствах, но подойдут и эмуляторы, например Genymotion или Bluestacks. Для проверки кросс-браузерности и кросс-платформенности можно воспользоваться browserstack.com.</p><p>Безусловно, существуют инструменты автоматизированного тестирования. Для этого есть множество разработок под различные виды фронтенда (веб, мобильный, десктоп). Например Selenium IDE работает как надстройка к браузеру, умеет заполнять поля, нажимать кнопочки и так далее. Если проект уже устоявшийся и изменений на фронте нет либо мало, верстку допустимо тестировать при помощи сравнений скринов с эталоном, инструментов для этого тоже много. Для более сложных проверок можно написать под Selenium пару скриптов на Python, тогда автоматически выполняется валидация полей, проверяется наличие кнопок, текстов, ссылок и тому подобное.</p><p>Для мобильного фронтенда используется Katalon, он позволяет сделать запись своих действий, а потом повторять этот сценарий. Такой подход подойдёт для проверки поломок после внесённых во фронт изменений, так называемое регресс-тестирование.</p><h2>Итак, что и для каких тестов используют при тестировании фронтенда?</h2><ul><li>Модульные и интеграционные тесты: <a href="https://jestjs.io/">Jest</a>, <a href="https://mochajs.org/">Mocha</a>, <a href="https://jasmine.github.io/">Jasmine</a>;</li><li>UI-тестирование: <a href="https://selenium.dev/">Selenium</a>, <a href="https://karma-runner.github.io/latest/index.html">Karma</a>, <a href="https://www.protractortest.org/">Protractor</a>;</li><li>Тестирование вёрстки на CSS-регрессию: <a href="https://github.com/gemini-testing/hermione">Hermione</a>, <a href="https://github.com/HuddleEng/PhantomCSS">PhantomCSS</a>;</li><li>End-to-end тесты: <a href="https://pptr.dev/">Puppeteer</a>, <a href="https://www.cypress.io/">Cypress</a>, <a href="https://webdriver.io/">Webdrive.io</a>;</li><li>Тестирование производительности: <a href="https://developers.google.com/web/tools/lighthouse">Lighthouse</a>;</li><li>Кроссбраузерное тестирование на реальных устройствах: <a href="https://www.browserstack.com/">BrowserStack</a>;</li><li>Инструменты для создания тестовой инфраструктуры: Allure, <a href="https://jenkins.io/">Jenkins</a>, <a href="https://aerokube.com/selenoid/latest/">Selenoid</a>.</li></ul><p>Напоминаем, что вы можете <a href="https://docs.google.com/forms/d/e/1FAIpQLSdSanNvlfPRrSyQWfnoGPflSVwO4KctnjOdEKHzuxjCmFX2dA/viewform">задать свой вопрос</a> экспертам, а мы соберём на него ответы, если он окажется интересным. Вопросы, которые уже задавались, можно найти в списке выпусков <a href="https://tproger.ru/experts/">рубрики</a>. Если вы хотите присоединиться к числу экспертов и прислать ответ от вашей компании или лично от вас, то пишите на <a>experts@tproger.ru</a>, мы расскажем, как это сделать.</p>]]></content:encoded>
    </item>
    <item>
      <title>Какие навыки программиста никогда не устареют и будут всегда востребованы — отвечают эксперты</title>
      <link>https://tproger.ru/experts/useful-programmers-skills</link>
      <comments>https://tproger.ru/experts/useful-programmers-skills?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Никита Прияцелюк]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/experts/useful-programmers-skills</guid>
      <description><![CDATA[<p>Чистый код, системное мышление, работа с системами контроля версий и другие умения, которые остаются востребованными у работодателей.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/experts/useful-programmers-skills">Какие навыки программиста никогда не устареют и будут всегда востребованы — отвечают эксперты</a>»</p>]]></description>
      <category><![CDATA[Советы]]></category>
      <category><![CDATA[Навыки]]></category>
      <category><![CDATA[Soft Skills]]></category>
      <category><![CDATA[Карьера]]></category>
      <category><![CDATA[Ответы экспертов]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 11 Feb 2020 15:45:26 GMT</pubDate>
      <content:encoded><![CDATA[<p>Умение писать чистый код, системное мышление, работа с системами контроля версий — эти и другие навыки приносят пользу вне зависимости от направления разработки и используемых технологий. Узнаём у экспертов, какие ещё важные навыки нужно иметь программисту, чтобы оставаться востребованным.</p><p>Главное умение разработчика — использовать языки программирования для решения жизненных задач. Он выступает проводником между окружающим миром и вычислительными системами. А чтобы качественно решить задачу, нужно сперва правильно её понять. Поэтому программисту необходимо уметь взаимодействовать с людьми, для которых он эту задачу выполняет, понимать их потребности и находить наиболее эффективное решение — не обязательно то, о котором заказчик просил изначально.</p><p>Лучше всего навык решения задач развивается в процессе реальной разработки. Тренировать его можно и нужно не только на работе: поищите проблемы, с которыми регулярно сталкиваются ваши родственники, друзья и знакомые. Возможно, кому-то нужен сайт-визитка или приложение, которое будет напоминать о важности ежедневных прогулок. Поговорите с окружающими и попробуйте решить их конкретную проблему. Так вы прокачаете свои технические навыки, добавите новый проект в портфолио, потренируетесь находить боли и обсуждать варианты решений с заказчиком.</p><p>Среди технических навыков, на мой взгляд, наиболее важно не знание конкретных инструментов и фреймворков (освоить нужный при необходимости можно довольно быстро), а развитое концептуальное мышление. Для этого необходимо изучать самые разные подходы к разработке. Например, освоить не только JavaScript, но и Haskell, а может быть даже Erlang или Prolog. Прочитать не только про SOLID, но и про Domain-driven design и Event sourcing. Уверенное владение различными концепциями позволит создавать эффективные, масштабируемые и поддерживаемые решения.</p><p>Несмотря на то что индустрия IT меняется чуть медленнее скорости света, есть незыблемые истины, о которых не стоит забывать любому кодеру.</p><p>В первую очередь это качество и чистота кода. Автор книги «Совершенный код» Стив Макконнелл говорил: «Пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живёте». Во-вторых, это философия упрощения. Программирование — это бесконечный поиск решений для устранения проблем. Желание упростить что-либо всегда будет вам на руку. Зачем изобретать велосипед, если можно воспользоваться библиотекой? Зачем изображать «мыслителя» Родена, если можно сделать декомпозицию задач?</p><p>Один из важнейших навыков сегодня — научиться учиться. Индустрия развивается. Каждый год мы видим бурный рост популярности той или иной технологии, резкий спрос на рынке на конкретный язык программирования и на людей, готовых к этим изменениям. Очень важно держать руку на пульсе, развивать свои скиллы и расширять кругозор. Ни в коем случае нельзя забывать о таком важном навыке, как системный подход. Всегда полезно представить функциональность приложения в деле, взаимодействие его компонентов, спроектировать принципы построения внутренней логики и пользовательских интерфейсов. Это позволяет определить максимально эффективные технические решения.</p><p>Софт-скиллы — the must! Время, когда можно было в одиночку разработать «космолёт», давно прошло. Если вы хотите трудиться над большим и интересным проектом, вам придётся работать в команде. Все известные нам методологии разработки программного обеспечения нацелены на отладку эффективного взаимодействия внутри команды проекта. Умение слушать и слышать, конструктивно доносить свою точку зрения, помогать другим и уметь просить помощи, делиться опытом, идеями, умение договариваться — одни из самых важных навыков для любого программиста. Также не стоит забывать, что для того, чтобы попасть на работу мечты, вам необходимо будет пройти этап общения с рекрутером. HR не сможет познакомить вас с нанимающим, если с вами тяжело выстроить коммуникацию, даже когда ваш код блестящ.</p><p>Последний по списку, но не последний по важности навык — управление временем. Разработчику, чаще всего имеющему довольно гибкий график работы, крайне важны навыки управления своими ресурсами. Планирование, приоритизация задач, оценка времени на выполнение каждой из них — действительно полезные навыки. В противном случае можно сломаться под тяжестью дедлайнов и задач, недооценённых ранее.</p><p>Прежде всего это, конечно, умение писать простой и понятный другим код, причем адаптивный — который легко подстраивался бы под меняющиеся требования без значительного переписывания. Это приходит с опытом.</p><p>Очень важно не изобретать «велосипеды» там, где это не нужно. Многие начинают писать свои БД, веб-серверы, блокчейн и т. д., не проанализировав, что из уже готового можно использовать.</p><p>При этом не нужно доверять всей подряд «рекламе» фреймворков и технологий. Постоянно появляются решения, которые подаются так, будто в разы превосходят текущие аналоги. Но чаще всего это «превосходство» достигается в ущерб другому функционалу, стабильности, производительности. Поэтому прежде чем начать использовать ранее не применявшийся стек или инструмент, опытные разработчики досконально разбираются, что у новинки «под капотом» и за счёт чего достигается описываемый эффект.</p><p>Наконец, для поддержания навыков «в тонусе» необходимо не зацикливаться на одной области, а постоянно расширять свой кругозор (учить новые языки, работать с разными СУБД и т. д.). Но при этом важно соблюдать баланс: не стоит распылять силы, постоянно переключаюсь с одного на другое. Лучше методично «прокачивать» то направление, в котором вы являетесь профессионалом, чтобы знания из новых областей подкрепляли общий вектор.</p><p>Из-за быстрого развития технологий все технические навыки (hard skills) рано или поздно устаревают: за 2–3 года стек меняется на 50%, за 5 лет — почти полностью. А вот умение взаимодействовать в команде, анализировать информацию и другие soft skills остаются востребованными всегда. Я бы выделил следующие навыки, которые нужно развивать программисту на протяжении всего профессионального пути:</p><h2>Умение анализировать задачи и разбираться в предметной области</h2><p>Высококлассного разработчика от рядового исполнителя отличает умение видеть суть задачи. Если исполнитель просто действует по техническому заданию, то действительно хороший программист может работать с неполным ТЗ, по Agile-методологии, осмысляя бизнес-требования заказчика, которые тот описывает своими словами, и предлагать оптимальный способ решения задачи.</p><h2>Умение находить информацию, когда её недостаточно, договариваться с контрагентами</h2><p>Протоколы взаимодействия инфосистем зачастую неполны или противоречивы, но доработать их бывает невозможно (например, при работе с госорганами), и тогда приходится искать обходные решения. Однажды разработчики нашей торговой сети столкнулись с проблемой передачи данных по алкогольной продукции в Единую государственную автоматизированную информационную систему, ЕГАИС. В протоколе был определён набор данных для регистрации продажи товара, но возвраты и обмены предусмотрены не были. Можно было либо изменить бизнес-процессы магазинов под протокол (на что бизнес, конечно же, никогда бы не пошёл), либо придумать, как обойти ограничения протокола. Решили проблему следующим образом: убедили разработчиков ЕГАИС анализировать знак минус в поле «Цена» — если там отрицательное значение, то это возврат товара.</p><h2>Умение выбирать адекватные ресурсам и срокам решения</h2><p>Время, бюджет и другие ресурсы в коммерческих проектах всегда ограничены, поэтому важно научиться выбирать решения, которые позволят выполнить задачу в срок с максимально возможным качеством. Это ценится в любой компании, в то время как необоснованный перфекционизм почти всегда вредит достижению бизнес-целей. Чтобы научиться правильной оценке сроков, нужно постоянно следить за своим темпом работы, изучать различные алгоритмические задачи и общаться с более опытными специалистами.</p><h2>Стрессоустойчивость</h2><p>Работа программиста связана с постоянным стрессом (приближение дедлайна, внезапно открывшиеся дефекты в продуктивной системе и пр.), но при этом она же творческая и требующая сосредоточения, поэтому крайне важно научиться правильно относиться к своей работе. Нужно принять тот факт, что ты не можешь быть всегда прав, перестать считать клиента и коллег своими противниками и научиться к ним прислушиваться. Это принесёт комфорт и спокойствие, которые дадут возможность продуктивно работать.</p><p>Планомерное развитие всех этих навыков позволяет не только повышать свою конкурентоспособность как специалиста, но и защищает от профессионального выгорания: разработчик с развитым soft skills сможет работать в более сложных и интересных проектах и будет получать удовлетворение от своей работы.</p><p>Индустрия разработки ПО развивается феноменальными темпами, и требования к продуктам непрерывно растут. Для разработки продукта уже недостаточно программиста-многостаночника, занимающегося всем в одиночку. За любым проектом, будь то open-source веб-сервер или коммерческая CRM, стоит команда специалистов, за каждым из которых закреплена своя зона компетенций.</p><p>Само собой, каждый технический специалист должен обладать научно-технической базой для понимания работы всей системы в целом. В эти навыки входит как понимание работы ОС, сетевого стека, принципы работы баз данных, так и математический аппарат, лежащий в основе любого алгоритма или протокола. Однако сами по себе эти навыки не смогут быть полезны, если они не будут интегрированы в общий процесс разработки. Таким образом, всё более и более очевидной становится потребность в развитии soft skills. Умение вместе добиваться поставленной задачи — это то, что технические специалисты часто упускают. Бывает, что и вопросам коммуникации не уделяют должного внимания. Улучшение коммуникативных навыков происходит не только за счёт изучения материалов на эту тему, но и требует ежедневной практики и изменения своих уже привычных паттернов поведения.</p><p>Умение говорить и слушать, находить компромиссные решения в спорных ситуациях, а также справляться со стрессом, присущим любой инженерной сфере, — вот те навыки, которые позволяют реализовать свои технические умения в полной мере.</p><p>Базовое качество, предшествующее любым навыкам, в моём представлении — критическое мышление. Мой опыт показывает, что понимание того или иного процесса приводит к гораздо более быстрому его постижению, чем неосознанное следование чьим-то советам/рекомендациям. Более того, программирование — быстро развивающаяся отрасль. Порой эта скорость так высока, что знания, приобретённые пару лет назад, становятся бесполезными, а иногда даже вредными. Это означает, что, чтобы оставаться на вершине своей профессии, необходимо постоянно учиться.</p><p>В моём понимании, лучший мотиватор для следования технологическим трендам — критическое мышление. Ведь чтобы на длительном отрезке времени программисту было комфортно осваивать что-то новое или совершенствоваться в чём-то, просто необходимо понимать, зачем это делать.</p><p>А ещё критическое мышление позволяет не закреплять набор необходимых навыков, а отдавать его определение на откуп каждому в зависимости от сферы деятельности: кому-то для работы достаточно чистого кода, знания системы контроля версий и системного мышления, а кому-то, кто занимается наукоёмкими проектами, необходимо профессиональное развитие в особых разделах математики или физики.</p><p>По-моему, один из самых важных навыков программиста — умение работать в команде. Это значит, что нужно уметь договариваться об архитектурных решениях, принимать обратную связь по своему коду и давать обратную связь по коду партнёров в проекте, сдерживать эмоции и поддерживать других участников проекта, делиться знаниями, помогать находить конструктивные решения, уметь признавать неправоту и т. д.</p><p>В полезные навыки я добавлю:</p><ul><li>постоянное обновление знаний по технологическому стеку;</li><li>расширение знаний о смежных направлениях (например, если ты бэкенд, сделай pet-проект на фронтед и наоборот);</li><li>умение быстро находить информацию;</li><li>общение с единомышленниками (митапы, хакатоны, open-source проекты, конференции и т. д.).</li></ul><ul><li>работа в команде и шаринг знаний, например парное программирование и code-review. Именно умение делать code-review, а не только валидация code-style или того хуже написание необоснованных комментариев и холивары. Во-первых, от этого зависит не только набор компетенций в команде, но и прокачка своих компетенций. Во-вторых, формирует культуру разработки;</li><li>математический аппарат — достаточно универсальные знания не только для программиста, но и для инженера вообще;</li><li>не только написание кода но и:организация сборки в том числе автоматической (системы автосборки, такие как CMake, контейнерная виртуализация Docker, сборка пакетов для последующей поставки), несмотря на то что появилась такая специальность, как devops;документирование кода с самых ранних этапов (HLD, LLD) и в дальнейшем (например, Doxygen);Unit tests — повышение качества кода;</li><li>понимание принципов работы ЭВМ, операционных систем и сетевого взаимодействия. Данные навыки очень ценны отдельно от языков программирования, например математический аппарат;</li><li>системное мышление, которое подразумевает не только мышление вширь и вглубь, но и обобщение (композиция) и детализацию (декомпозиция). Такой подход помогает спроектировать архитектуру ПО, а также в значительной мере способствует прогнозированию и планированию;</li><li>системы хранения данных (SQL, NoSQL);</li><li>умение вникнуть в первоначальную задачу, решаемую программой, и быстро получить базовые знания в этой области. Часто бывает, что разработчики делают выбор в пользу какого-то решения исходя исключительно из того, как это удобнее и/или «красивее» реализовать;</li><li>умение и желание читать документацию. Привычка делать «наугад» и потом чинить, если не заработало, стоит дорого;</li><li>использовать подходящие инструменты, а не привычные. Это касается любого инженера.</li></ul><p>Как развивать?</p><ol><li>Транслировать культуру новичкам, поясняя, как работает команда программеров.</li><li>Наставничество — каждого новичка, каким бы продвинутым он ни был, поначалу должен вести опытный член команды, помогая влиться, адаптироваться.</li><li>Шаринг полезных ссылок, новинок и т. д.</li></ol><p>Скорость, с которой меняются технологии, постоянно растёт. Поэтому говоря о навыках программиста, которые никогда не устареют, имеет смысл сфокусироваться на soft skills, развитие которых позволит программисту стать хорошим программистом, а хорошему программисту — отличным программистом:</p><p>Навыки коммуникаций. Есть выраженная корреляция между навыками разработки и способностями к коммуникации. Отличный программист способен чётко понять проблему, разбить её на гипотезы и предложить решение. Отличные программисты быстро осознают концепции или задают правильные вопросы для их осознания и не требуют, чтобы всё было описано в деталях внутри спецификации. Отличные программисты, занимающиеся оффшорной разработкой, часто владеют несколькими иностранными языками и без проблем работают с документацией на английском языке. Английский язык является де-факто общепринятым для документации и при взаимодействии внутри международных команд разработки.</p><p>Навыки управления задачами и временем. На отличных программистов можно положиться. Они пунктуальны и серьёзно относятся к работе. Важным навыком является способность адекватно оценивать время, необходимое для решения задачи. Отличные программисты умеют управлять ожиданиями своих клиентов и руководителей.</p><p>Способность быстро обучаться. Отличные программисты самообучаются. Они способны самостоятельно изучать новые технологии и не воспринимают такие технологии в виде угрозы. Отличные программисты способны извлекать необходимые им знания из разрозненных источников и усваивать их на лету. Каждый программист сталкивается с ситуациями, когда он или она не знает ответа. Отличные программисты найдут различные ресурсы, поговорят со знающими людьми и найдут решение, несмотря ни на что.</p><p>Сочетание технической эрудиции и глубины знаний. Отличные программисты имеют достаточно продолжительный практический опыт с некоторыми технологиями, чтобы стать в них экспертами. Но при этом они компетентны и во многих других областях. За счёт комбинации когнитивных способностей и технической эрудиции отличные программисты способны быстрее находить решение задачи. Отличный программист хорошо знаком с распространёнными лучшими практиками и методологиями (такими, как agile), средствами управления задачами (Jira, Trello и т. д.), средствами контроля версий (Git и т. п.), а также имеет опыт работы с различными окружениями. Учитывая растущее проникновение DevOps, отличный программист должен понимать особенности эксплуатации информационных систем, в том числе в мультиоблачном окружении, соблюдать баланс между производительностью и эксплуатируемостью системы и извлекать максимум возможного из k8s и IaC.</p><p>Навыки командной работы. Ещё одним качеством отличных программистов является их умение помогать другим программистам становиться лучше. Они помогают коллегам, когда те застряли, передают им новые знания и навыки, а также пишут документацию, которая востребована не только внутри их организации, но и в более широком комьюнити разработчиков.</p><p>Фокусировка на продукте. Отличные программисты искренне переживают за результат. Они положительно настроены и готовы при необходимости приложить дополнительные усилия для того, чтобы выполнить работу. Также отличные программисты не позволяют своему эго встать на пути получения обратной связи.</p><p>Фокусировка на пользователе. Хороший программист делает то, о чём его или её просят, а отличный программист думает о конечном пользователе разрабатываемого продукта, о том, как этот продукт решит проблемы пользователя. Отличный программист хочет понимать ценность создаваемой функции для пользователя. Иногда создание такой функции оказывается очень трудоемкой и продолжительной задачей, но отличный программист понимает необходимость её создания и мотивирует себя и окружающих решить эту задачу.</p><p>Сегодня IT-индустрия стремительно развивается. Следить за обновлениями, новинками и событиями становится все сложнее. Это задаёт новые требования к разработчикам. Если раньше было важно знать как можно больше инструментов и иметь большой опыт работы с ними, то сегодня ключевым навыком является скорость. Скорость поиска подходящего решения, скорость изучения новой библиотеки, скорость решения поставленной бизнес-задачи. Во многих проектах чистый код и использование паттернов становятся минусом. Часто время жизни кода слишком мало, и его проще переписать с нуля на новой технологии, чем поддерживать что-то старое. Переход к микросервисам, конкурентная среда бизнеса и количество новых решений, появляющихся каждый день — всё это привело к тому, что скорость стала важнее качества. Иногда полезнее выкатить код с багами, чем упустить время, работая над созданием выверенного рабочего решения. Действует принцип: кто первый выпустил продукт, тот первый «застолбил» рыночную нишу. Стоит учесть, что так происходит не на всех проектах. Например, для заказчиков из банковской сферы важно высокое качество предлагаемых решений уже в первой версии продукта. В этих случаях баги могут быть слишком дороги, а спешка выйдет боком.</p><p>Второй ключевой навык разработчика, который важен во все времена, — это понимание фундаментальных принципов. Не разобравшись с тем, как работают фреймворки под капотом, можно быть сильным разработчиком в определённой сфере, но стать по-настоящему высококлассным специалистом, не понимая базовых концепций, невозможно. Выучить новый язык программирования легко, разобраться в новой библиотеке недолго, но, чтобы решать сложные, необычные задачи, быть локомотивом проекта и двигать индустрию, этого мало.</p><p>И, наконец, самоорганизация. Как и в любой другой сфере, в программировании умение построить процесс своей работы, контролировать и направлять себя — ключевой навык успешного специалиста. На его развитие стоит тратить время, инвестируйте в себя, и это обязательно окупится.</p><p>На мой взгляд, кроме действительно глубоких технических знаний, для IT-специалистов всё более актуальными и всегда востребованными становятся коммуникативные навыки. Работает ли программист один, в команде или руководит собственным стартапом, ему приходится взаимодействовать с другими людьми: коллегами, пользователями, клиентами. И часто успех проекта зависит от чётких и грамотно выстроенных коммуникаций между сторонами.</p><p>Ещё я думаю, что в профессии программиста всегда будет востребовано знание иностранных языков, прежде всего, конечно, английского. Во-первых, необходимую для профессионального развития информацию не всегда удаётся найти на русском. Во-вторых, большая часть заказчиков в IT — иностранные компании, разработчики активно участвуют в общении с представителями клиента, проектные команды распределены между офисами компании в разных странах, так что общение в проектах идёт на английском.</p><ol><li>Программисту необходимо знать алгоритмы и структуры данных — в этом состоит отличие настоящего программиста от кодера, способного писать программу только по чужому плану.</li><li>Нужно знать не только свой язык программирования, но также интересоваться другими языками. Например, для программиста Python полезно знать хотя бы примерно, как устроен C/C++.</li><li>Необходимо знать принципы работы баз данных и быть знакомым с двумя-тремя СУБД. И, конечно, нужно хотя бы на среднем уровне уметь писать запросы SQL. Отдельный ценный навык, который может пригодиться при обработке больших данных, — умение работать с NoSQL базами данных.</li><li>В отдельный пункт можно выделить soft skills и способность работать в команде — без этого невозможно наладить рабочий процесс.</li><li>Способность гибко планировать свою работу — в том числе в рамках Agile, Scrum и других методологий. При этом нужно не жалеть времени на планирование, иначе возникнет хаос в работе, а это означает, что и задачи не будут выполнены, и время будет потрачено. Для ведения задач нужно освоить Asana, YouTrack, Trello, Favro или любой подобный трекер командных задач. Неважно, насколько сложен трекер, главное — дисциплина. Гибкость в планировании также нужна — любой план можно корректировать в процессе выполнения.</li></ol><p>Нельзя поспорить, что сейчас в сфере IT много конкуренции и, чтобы работать в топ-компаниях и заниматься любимым делом, необходимо обладать рядом умений. База знаний, как правило, закладывается в школе, колледже или университете, но впоследствии, несомненно, должна расти и шириться в зависимости от выбранного направления. Программисты, как основная группа IT-специалистов, постоянно находятся в поиске новых технологий, разрабатывают эти самые технологии и любое минутное опоздание в обучении может привести даже к выпадению из профессии. На этот счёт есть пример: когда женщина из IT-сферы уходит в декрет, ей необходимо постоянно подтягивать знания, между кормлениями и сном.</p><p>По моему мнению, есть ряд навыков и умений, которыми необходимо обладать в той или иной степени для достижения успеха в программировании.</p><p>В частности:</p><ul><li>Знание не одного, а нескольких языков программирования. Но как минимум в одном из них нужно быть гуру и экспертом. Это позволяет мозгу не зацикливаться на одном и искать решение задачи во многих плоскостях.</li><li>Умение правильно писать комментарии (в нужных местах и в нужное время), чтобы дать возможность «падаванам» впоследствии «боготворить» тебя и вникать в твою логику.</li><li>Видеть не только свою задачу, но и знать, что делает весть продукт в целом. Системное мышление — это умение, которое делает из Junior → Senior.</li><li>Владение навыками тестирования и использование его при работе. Это поможет уменьшить количество ошибок впоследствии и даст вам «плюсы» в карму.</li><li>Умение обращаться за советом к «старшим» товарищам. Так вы не потратите время на построение «своего велосипеда» при имеющихся работающих решениях.</li><li>Абсолютно точно необходимо знание английского языка как общего языка в сфере IT. Это не запрещает знать и другие языки, но английский язык — в первую очередь.</li><li>Уметь видеть рутину в работе и автоматизировать ее. Положительный эффект — уменьшение времени, тратящегося впустую, ведь его можно потратить на другие важные задачи.</li><li>Навык оптимизации кода (алгоритма), избегание повторения рутинных операций.</li><li>Умение концентрироваться на поставленной задаче и решить её несмотря ни на что.</li></ul><p>Все вышеперечисленные знания можно получить как из Интернета, так и из IT-форумов, вебинаров, конференций. Сейчас это не трудно ввиду доступности сети почти на всей территории мира. За эксклюзивные знания (такие как сертификаты Citrix, Microsoft и т. д.), конечно, приходится платить, но в этом может помочь заинтересованный в вас работодатель.</p><p>Также из моей ежедневной практики: для усовершенствования своих soft-навыков можно использовать внутренние тренинги в компании, книги по психологии. Это помогает взглянуть на себя со стороны, критически оценить и исправить, следуя найденным советам.</p><p>Ну, и, конечно, нет предела совершенству! Тренируясь каждый день, вы, несомненно, увеличите свой багаж знаний и опыта, превращаясь из ценного специалиста в «бесценного».</p><p>Программист — это не профессия, это стиль жизни и образ мышления, некая задача со многими переменными. Известные условия — языки программирования, стеки технологий, цели. А вот неизвестные — навыки, которыми должен обладать компетентный специалист: как опытный мастер, так и юный падаван. И среди них:</p><h2>Умение читать чужой код</h2><p>Сложно? Да. Важно? Очень. Чужой код может быть написан плохо, неряшливо, однако его всё равно нужно понимать. В наши дни редко создается что-то с нуля, акцент ставится на дальнейшей проработке уже имеющегося «бэкграунда». Когда у книги остался только эпилог, нет нужды начинать писать новую.</p><h2>Навык отладки</h2><p>Написать код — лишь первая часть головоломки, сделать код рабочим — вторая и главнейшая. Если что-то идёт не так, а это бывает часто, программисту надо в сжатые сроки найти корень зла. Вместо многочасовых бдений и слепых попыток исправить что-то неопределённое, хороший специалист должен построить гипотезы, где может скрываться ошибка, и системно проверять их.</p><h2>Умение работать в команде</h2><p>Работа в команде предполагает, что каждый участник коллектива чётко осознаёт свою роль и будет стараться эффективно выполнять поставленные задачи в тесной связке с коллегами, в том числе и из других отделов.</p><h2>Искусство планирования</h2><p>Меньше строчек — больше пользы. Получив задачу, разработчик не должен в омут с головой бросаться в написание кода. Ему нужно выяснить как можно больше про конечный продукт, узнать его особенности, пообщаться с менеджером проекта, а затем чётко продумать структуру программы ещё до того, как он начнет программировать.</p><h2>Готовность постоянно изучать что-то новое</h2><p>Технологии развиваются быстрее, чем мы можем себе это представить. То, что на пике сегодня, — уже завтра канет в Лету. И особенно остро это ощущают разработчики, чьи навыки должны соответствовать запросам современных IT. Тот программист ценный, который самостоятельно наблюдает на тенденциями в своей сфере, образованием и никогда не упускает возможности совершенствовать компетенции.</p><p>Английский язык — всё более обязательный навык для программиста: переводы документации и книг на русский язык часто запаздывают на годы и появляются, когда технологии уже неактуальны. Топовые онлайн-курсы и конференции остаются непереведёнными. Да и в коде совершенно неприлично писать что-то вроде var peremennaya = 1.</p><p>Также очень важно понимание потребностей бизнеса. Продуманнейшая архитектура и утончённые инженерные практики не нужны при создании прототипа, цель которого максимально быстро проверить гипотезу. И наоборот, писать «ароматный код» (code smell) и не адаптировать практики в долгоживущих проектах — недопустимо.</p><p>Горящие глаза не навык, но полезнейшее качество для программиста. Есть, конечно, в нашей профессии заболоченные области, где ничего не меняется годами, но это исключение. С потухшим взглядом отстать от трендов — вопрос месяцев. Подходить к решению задач без энтузиазма — обрекать результат на унылость.</p><p>Любите свою работу и непрерывно развивайтесь!</p><p>Наиболее ценными на рынке специалистов в области ИТ делают не только их навыки программирования и погружение в технологии, востребованность которых с каждым годом меняется, но и (а, возможно, и в первую очередь) soft skills. Это надпрофессиональные качества, развитие которых помогает нам коммуницировать друг с другом, быстро принимать решения, нести ответственность за них, работать на результат или уходить в процессы и уделять внимание мелочам, уметь слышать и слушать других людей. Помимо увеличения эффективности в рабочих процессах, soft skills помогают эффективно прокачать технические компетенции.</p><p>Рынок же информационных технологий развивается на сверхскоростях, поэтому программистам необходимо соответствовать его возрастающим с каждым годом требованиям и постоянно развивать свою техническую экспертизу. В настоящее время у компаний есть большой спрос в направлении BigData. Специалисты, которые работают с большими данными (Data Scientists), должны обладать знаниями методов статистического анализа данных, уметь строить математические модели и обладать уникальной способностью предсказывать потребности клиентов.</p><p>Кроме того, сегодня жизнь каждого из нас связана с мобильными устройствами и различными экосистемами в них. Сайты почти всех компаний интегрированы с мобильным приложением. iOS- и Android-разработчики по этой причине не теряют актуальности на рынке труда.</p><p>Помимо этого, спросом пользуются специалисты в области кибербезопасности. Они обладают компетенциями не только в сфере информационных технологий, но и в областях права, юриспруденции и психологии. Они отслеживают кибер-атаки и разрабатывают защитные технологии для их предотвращения. Таким образом, мы рекомендуем программистам постоянно держать руку на пульсе и следить за современными трендами.</p><h2>Навыки, которые традиционно относят к hard skills</h2><ul><li>В первую очередь — навыки построения и анализа алгоритмов. Этот навык формируется изучением стандартных алгоритмов, анализом их сложности и практической имплементацией подходов к построению алгоритмов.</li><li>Рядом с алгоритмами идут структуры данных. Предмет, который изучают, так и называется «Алгоритмы и структуры данных». Понимание, умение строить и применять различные структуры данных базируется на изучении принципов работы компьютеров как таковых.</li><li>Умение применять паттерны проектирования, переключаться между разными парадигмами программирования. Никогда не знаешь, завтра увидишь объектно-ориентированный или функциональный код, но спроектировать решение всё равно нужно.</li><li>Навык и стремление к автоматизации. Программист должен уметь и хотеть избавляться от рутины. Если часто начинаешь писать одно и то же — пора создавать фабрику.</li><li>Навык анализа чужого кода. Программы редко создают в одиночку, нужно приобрести сноровку для быстрого понимания работы коллег, чтобы интегрировать системы.</li><li>Навык работы с документацией. Нужно уметь понимать технический текст других разработчиков и писать свой. Чем сложнее система, которую вы создаете, тем больше работы с документацией.</li><li>Навык «копнуть глубже». Если используете готовое решение или чужую технологию, нужно быть готовым «заглянуть под капот» и что-то переделать под себя. Такое, кажется, было и будет всегда.</li></ul><h2>Навыки, которые относят к soft skills</h2><ul><li>Навык работы с задачей. Включает уточнение и декомпозицию задачи.</li><li>Умение оценивать свое время. При разработке всё всегда связно со сроками. Близкие к реальности оценки будут в цене всегда.</li><li>Умение сконцентрированно работать. Чем легче программист впадает в ощущение «не могу отвлечься, пишу код», тем он производительнее и эффективнее.</li><li>Умение правильно задать вопрос. Правильно — означает, поискав ответ самостоятельно, а не найдя ответа, сформулировав все вводные для ответа коллегами или сообществом.</li><li>Навык вовремя предупредить свои или чужие ошибки. Вовремя почувствовать отклонение от дедлайна и сказать об этом, заметить, что коллега в предыдущем коммите пошёл по пути, который вызовет проблемы, и обсудить — очень ценный навык.</li><li>Умение учиться. Это навык. Учиться придётся всегда, индустрия динамичная, такой она будет всегда.</li><li>Умение признать ошибку и изменить подход. Нормальное отношение к работе — это принятие, что рефакторинг вездесущий и неизбежный.</li><li>Фокус на задаче, а не на технологии. Легко очароваться модными фреймворками, о которых говорят на митапах. Но важна на самом деле задача. Навык выбора технологии, соответствующей вводным, — путь сильных.</li><li>Быть хорошим человеком. Это тоже навык. Мы не заперты в клетке и работаем с людьми: проводим ревью, обсуждаем решения, делимся знаниями, узнаём новое от других. Люди с готовностью будут идти вам навстречу, если научиться быть добрым и открытым.</li></ul><p>Главный навык — готовность постоянно учиться. Сейчас это актуально для всех профессий, но программистам, если они хотят быть востребованными, важно держать руку на пульсе технологического развития, изучать новые языки программирования. Кроме того, всё более важным становятся так называемые soft skills и умение работать в команде. Эти качества отлично прокачиваются в рамках различных командных соревнований и хакатонов. К примеру, на соревнованиях по спортивному программированию у команды из 3 человек всего один компьютер. Им надо правильно распределить роли, время, учиться работать в немного экстремальных условиях и т. д. И готовя наши команды, мы, безусловно, уделяем этому внимание. Нарабатывать практику талантливым ребятам из разных уголков мира мы помогаем в международном образовательном проекте Moscow Workshops. Ребята не только вовлекаются в соревновательную атмосферу и показывают высокие результаты на чемпионатах, но потом гораздо комфортнее чувствуют себя на работе в стрессовых ситуациях и как следствие — более эффективны. И всё же надо не забывать, что soft skills должны быть надстройкой при хорошем знании алгоритмов.</p><p>На сегодняшний день программирование находится на пике востребованности. Все индустрии развиваются благодаря технологиям, которые создают программисты, поэтому эта профессия считается одной из самых перспективных.</p><p>Навыки программистов для различных специализаций будут отличаться. Однако любой программист решает множество задач, которые требуют не только логичности мышления, усидчивости, творческого подхода к решению каждой задачи, но и способности постоянно совершенствоваться.</p><p>Большая часть работы программиста связана с написанием исходного кода на одном из языков программирования. Всегда существует вероятность появления уязвимости в продукте, поэтому для программиста важно уметь писать не просто чистый, но безопасный код. Внимание к тестированию кода — ключевой навык для безопасного программирования, без которого никогда не удастся защитить веб-приложение от хакеров.</p><p>Поскольку компании конкурируют за квалифицированных специалистов, этот навык поможет попасть в самые интересные и передовые проекты.</p><p>Я бы сделал здесь поправку — не никогда, а в ближайшее время. В будущем, считаю, написание кода будет стремиться к минимуму, т. е. любые навыки устареют, это тенденции мира. Поэтому отвечу на вопрос «какие же навыки не растеряют ценности в ближайшие пару десятилетий?».</p><p>Самое главное — умение учиться новому и это новое пробовать, зная какие-то фундаментальные вещи и расширяя эрудицию, умение быстро адаптироваться к новым условиям. Тогда вы всегда сможете пересесть на новую технологию / язык программирования, адаптироваться под новые условия рынка. Как это лучше развивать? Известно: чтобы что-то уметь хорошо делать, нужно это много делать. Нужно пробовать разные технологии, расширять багаж знаний и умений, не зацикливаться на одном. Тогда можно будет легко адаптироваться к изменениям, которые, несомненно, принесёт будущее.</p><p>Важный навык программиста — писать самодокументируемый код с понятной и надёжной структурой, что защищает его от большого количества багов и проблем с производительностью. Навык стилизации кода и грамотный выбор имён переменных нивелирует потребность в комментариях. Грамотная структура кода позволяет легко вникнуть в проект новым программистам, что очень важно при передаче проекта.</p><p>Не менее важны soft skills разработчика: умение понятно излагать свои мысли устно и на бумаге, грамотно планировать своё время, уметь работать в команде.</p><p>Программирование — это постоянное обучение и совершенствование своих навыков. Самый простой способ развивать эти навыки — постоянно делать что-то новое, решать задачи с которыми раньше не сталкивался.</p><p>Прежде всего, давайте определимся, что значит «всегда востребованы»? Язык COBOL уже давно не топовый, но программисты на COBOL всё ещё встречаются.</p><p>Говоря о востребованности, можно подразумевать два разных момента:</p><ol><li>Возможность легко найти работу по профессии.</li><li>Возможность профессионального развития.</li></ol><p>С первым пунктом всё достаточно просто. Любая из десяти наиболее востребованных технологий так или иначе прокормит вас следующие лет 10–20. И тут надо определить, что такое «всегда». Давайте решим, что «всегда» — это до построения первого настоящего МИ и, соответственно, до наступления сингулярности. После этого события, очевидно, никаких программистов уже не будет. Наступит это, как мне кажется, нескоро, но давать прогноз более, чем на 10–20 лет, я всё же остерегусь.</p><p>Со вторым пунктом сложнее. Тут я не готов выдать чёткий список, но, если говорить об общих принципах, обычно хорошо развиваются профессионально те программисты, которые хорошо понимают, из каких элементов состоит система, как они работают, как связаны друг с другом. Что-то вроде «вот страница в браузере, она использует JS, CSS, HTML, они работают вот так, доставляются они в браузер по http — протокол устроен вот таким образом, он базируется на сетевом протоколе TCP с такими-то особенностями, браузер — это процесс, выполняемый операционной системой, процесс отличается от нитей вот таким образом». И так далее.</p><p>Эти знания не помогают писать код немедленно, надо ещё знать конкретные технологии, но это здорово помогает при решении проблем и построении надёжной архитектуры системы. И это ценится всегда. А технологии легко изучаются по мере необходимости. Улучшать эти навыки можно, задавая себе вопросы: а как эта штука работает, откуда берутся эти буковки на экране, какие есть альтернативные пути решения задачи?</p><p>В первую очередь, программист обязательно должен иметь профессиональные компетенции (так называемые hard skills), соответствующие поставленным задачам. Однако нельзя забывать про универсальные навыки (soft skills): любому специалисту нужно уметь находить общий язык с коллегами и задавать правильные вопросы при получении задачи. В противном случае и трудозатраты, и результат могут существенно отличаться от ожиданий заказчика: иногда программисты строят настоящую «Звезду Смерти», когда нужно создать лишь практичный летательный аппарат.</p><p>Важное значение имеют навыки, которые касаются личных качеств. Программист должен быть вовлечён в процесс работы, иметь желание непрерывно совершенствоваться как профессионал до экспертного уровня. А ещё быть ответственным и держать ответ за выполненную работу.</p><p>Умение писать чистый код и прочие важные навыки приобретаются в процессе работы. И зачастую диктуются сроками и условиями труда.</p><p>Очевидно, что знания конкретных технологий или практик теряют актуальность. Но есть вещи, которые будут цениться всегда: умение документировать свой код, способности к постоянному саморазвитию и самообучению, коммуникативные навыки, желание работать в различных предметных областях.</p><p>Также крайне важным скиллом является умение планировать свою работу и давать точные оценки сложности задач и сроков их решения, независимо от используемого языка, технологий и методологий.</p><p>В работе программиста всегда будет цениться умеренный перфекционизм, а также глубокое понимание своей роли в искусстве софтостроения, процессе, в который вовлечено большое количество разных экспертов (представителей бизнеса, аналитиков, тестировщиков, специалистов DevOps, поддержки и т. п.).</p><p>Времена, когда от программиста нужен был только работающий код, давно прошли. Сегодня уже мало создать софт, нужно прогнозировать все сценарии, когда деплой может пойти не по плану, быть в тесной связке с потребностями бизнеса, понимать, с какими вызовами в развитии продукта приходится сталкиваться и предлагать решения для улучшения клиентского опыта при помощи передовых информационных технологий. Поэтому программистам сегодня нужно регулярно повышать свой профессиональный уровень, изучать смежные профессии, чтобы быть кроссфункциональными, развивать soft skills, чтобы быть востребованными на рынке труда.</p><p>Один из самых важных soft skills навыков, которые необходимо развивать, — это умение работать в команде. Талантливые интроверты больше никому не нужны, Agile и Less практики появились не просто так, и в дальнейшем роль межличностного общения будет только усиливаться. Программист должен продуктивно взаимодействовать с тимлидами, дизайнерами, тестировщиками, другими программистами, руководителями бизнес-направлений. Поэтому важно развивать коммуникабельность, умение договариваться, адаптивность, эмоциональный интеллект. Рекомендую пройти курс эффективных переговоров и публичных выступлений, чаще запрашивать от коллег обратную связь, читать специализированную литературу, например, «Сначала скажите «нет». Секреты профессиональных переговорщиков» (Джим Кэмп).</p><p>Актуальность в работе программиста не теряют аналитическое и критическое мышление. Удивительно, что разработчики могут часами ломать голову на тему оптимальности алгоритмов или потребления памяти, но совершенно не задаются вопросом: «А зачем поставлена задача, какую боль бизнеса она закрывает, можно ли решить её иным способом?». В контексте командной работы умение анализировать информацию, интерпретировать данные, оценивать и приоритезировать вводные — особенно важно. Прежде чем внедрить ту или иную фичу, воспользуйтесь минимальным алгоритмом критических вопросов и соберите максимально полную картину: какую проблему мы планируем с её помощью решить, насколько эта проблема критична, что будет, если не реализовывать её совсем и т. д.</p><p>Конечно, всё это не отменяет наличие «технической базы» программиста и его постоянное совершенствование с учётом развития рынка и новых технологий. В целом, главный навык нашего времени — умение быстро и качественно осваивать новую информацию, готовность всегда учиться новому. Ставьте долгосрочные и краткосрочные цели для собственного профессионального развития (например, разобраться с Kubernetes), делите их на более мелкие шаги (для начала нужно узнать, как работает Docker и что такое контейнеризация), регулярно выделяйте время для проработки. И, конечно, следите за трендами, посещайте конференции, общайтесь с коллегами по цеху, ходите на собеседования — это поможет держать руку на пульсе, понимать, какие технологии сейчас востребованы. И помните фразу Альберта Эйнштейна: «Интеллектуалы решают проблемы, гении предотвращают их».</p><p>Один из наиболее важных навыков для программиста, да и для ИТ-специалиста в целом, умение планировать и управлять своим временем. Если он прокачан — из разработчика получается надёжный член команды.</p><p>Нарушение обещанных сроков даже для самого опытного программиста с обширными знаниями может обернуться конфликтом и как минимум испортить о нём впечатление как о специалисте.</p><p>Как и любой другой навык, умение планировать время можно прокачать. Для начала нужно научиться точно понимать, сколько времени на что уходит.</p><p>Сегодня для этого масса инструментов: плагины-трекеры времени к средам разработки, расширения к хрому, фитнес-браслеты с напоминалками и т. д.</p><p>Вечером или в конце недели можно сесть и проанализировать, сколько на самом деле часов вы посвящаете непосредственно своей прямой задаче.</p><p>Все «отвлекающие» действия (поболтать, попить кофе, посмотреть ролики в ютюбе) тоже нужно учитывать. Если становится понятно, что вы неэффективно распределяете свои рабочие часы, можно использовать методы pomodoro или подобные техники управления временем.</p><p>Владея реальной информацией о том, за какое время можно выполнить определённую задачу, вы можете планировать работу с большой точностью. При этом не забывайте учитывать ещё и время на прокрастинацию.</p><p>В дополнение к системному мышлению и умению писать чистый код, я бы ещё выделил:</p><p>Алгоритмическое мышление в широком смысле — как умение разбираться в работе сложных процессов и умение конструировать процессы, достигающие поставленную цель. Для развития очень полезно решать сложные нестандартные задачи, например олимпиадные. Конечно, в работе «среднестатистического» программиста чисто алгоритмические задачи встречаются редко, но соответствующие навыки нужны очень часто. По моему опыту, отсутствие алгоритмического мышления — одна из самых частых проблему у программистов, переквалифицировавшихся из других специальностей. Научиться «кодить» практически на любом языке и с использованием любого фреймворка можно достаточно легко и быстро, а развить алгоритмическое мышление — трудно.</p><p>Умение понимать других людей. Это уже из разряда soft skills, но один из наиболее полезных навыков для программиста. «Другие люди» — это и пользователи, и коллеги по команде разработки (аналитики, тестировщики). Важно понимать не только что нужно другому человеку, но и зачем ему это нужно. Для развития полезно чаще общаться с людьми смежных специальностей, интересоваться их работой.</p><p>Умение планировать работу, в т. ч. оценивать сложность отдельных задач и возможные риски. Развивается с опытом, но именно с опытом, а не просто стажем работы. Важно фокусироваться на этих вопросах при планировании и после выполнения — проводить ретроспективу и анализировать причины расхождений.</p><p>Это те навыки, которые останутся востребованными, независимо от развития конкретных технологий, и позволят остаться успешным программистом даже в мире всеобщей роботизации ?</p><h2>Итак, какие навыки программиста всегда будут актуальны?</h2><p>Конечно же, это практические навыки в написании кода:</p><ul><li>применение паттернов проектирования и алгоритмов;</li><li>комментирование кода;</li><li>умение писать чистый код и покрывать его тестами;</li></ul><p>В области <b>soft skills</b> всегда будет полезно уметь:</p><ul><li>правильно задать вопрос;</li><li>общаться с людьми и работать в команде;</li></ul><p>Не устареют и навыки самодисциплины и саморазвития:</p><ul><li>желание учиться, постоянно развиваться и быстро находить информацию;</li><li>корректная оценка времени выполнения работ;</li><li>умение концентрироваться на работе;</li></ul><p>И ещё не будет лишним:</p><ul><li>понимание принципов работы компьютерного «железа» и операционных систем;</li><li>системное мышление.</li></ul><p>Напоминаем, что вы можете <a href="https://docs.google.com/forms/d/e/1FAIpQLSdSanNvlfPRrSyQWfnoGPflSVwO4KctnjOdEKHzuxjCmFX2dA/viewform">задать свой вопрос</a> экспертам, а мы соберём на него ответы, если он окажется интересным. Вопросы, которые уже задавались, можно найти в списке выпусков <a href="https://tproger.ru/experts/">рубрики</a>. Если вы хотите присоединиться к числу экспертов и прислать ответ от вашей компании или лично от вас, то пишите на <a>experts@tproger.ru</a>, мы расскажем, как это сделать.</p>]]></content:encoded>
    </item>
    <item>
      <title>Когда применять функциональное программирование, а когда ООП — отвечают эксперты</title>
      <link>https://tproger.ru/experts/oop-vs-functional-programming</link>
      <comments>https://tproger.ru/experts/oop-vs-functional-programming?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Никита Прияцелюк]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/experts/oop-vs-functional-programming</guid>
      <description><![CDATA[<p>Эксперты объясняют, в каких задачах уместна каждая парадигма и почему опытные разработчики выбирают её по эффективности, а не по симпатии.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/experts/oop-vs-functional-programming">Когда применять функциональное программирование, а когда ООП — отвечают эксперты</a>»</p>]]></description>
      <category><![CDATA[Функциональное программирование]]></category>
      <category><![CDATA[Объектно-ориентированное программирование]]></category>
      <category><![CDATA[Ответы экспертов]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Mon, 03 Feb 2020 09:07:06 GMT</pubDate>
      <content:encoded><![CDATA[<p>Многие слышали про функциональное программирование и, возможно, задавались вопросом: «А зачем оно, когда есть ООП?». Мы спросили у экспертов, когда стоит использовать ту или иную парадигму.</p><p>Каждый инструмент хорош для определённого набора задач в определённой ситуации. Как некоторые могут забивать саморезы молотком, так и фанаты той или иной парадигмы при любых вводных могут задействовать то, чем лучше владеют. Однако опытные разработчики всё-таки руководствуются не симпатией к какой-либо технологии, а эффективностью. Также могут присутствовать ограничения, задаваемые заказчиком или программным окружением. Важен целый ряд факторов и характеристик разрабатываемого решения, его дальнейшей поддержки. Разумеется, выбор чаще опирается на собственный опыт, и в самом начале проектирования не всегда удаётся угадать будущее развитие и все нюансы использования ПО, так что универсального решения нет.</p><p>Объектно-ориентированное программирование (ООП) является более «традиционной» парадигмой. С её помощью разработано несчётное количество программ, в том числе огромные промышленные системы в финансовых организациях, телекоммуникации на производстве, складах, транспорте. Незнание принципов ООП фактически перекроет доступ ко всем этим системам.</p><p>Тут надо понимать, что если десяток лет пользовался ООП, то и сознание подстраивается под эту модель, проще проектировать именно через объекты и вызовы методов, а не через потоки данных и данные. Один из главных минусов ООП — чудовищная, запутанная система классов для системы, которая разрабатывается десятки лет большой командой. Как правило, некоторые «ядерные» классы оказываются на «дне» модели, их никто не рискует трогать даже в ущерб скорости разработки и устойчивости ПО. Появляются классы-наследники, переопределённые методы и прочий мусор, который со временем тоже становится «ядром системы».</p><p>Что касается функционального программирования (ФП). В каком-то сильно упрощённом виде оно используется и при ООП — в школах первые программы пишут функциями. С него нужно начинать изучение языков программирования, им же и завершать. Далее, в зависимости от нужд конкретного проекта, можно углублять знания той парадигмы, которая больше используется. Парадигма ФП влияет и на программирование, и на проектирование программного обеспечения. Для высоконагруженных систем переход к обработке потоков данных может быть спасением. Для выбора этой парадигмы в «большой» системе как минимум нужно иметь много данных и большую нагрузку (много вызовов, много пользователей). С одной стороны, она может дистанцировать бизнес-модель от реализации, с другой — позволит вовремя отвечать на запросы пользователей и иных внешних систем. Для небольших программ выбор ФП возможен, тут больше дело вкуса. Однако новичку может быть непросто разделить бизнес-модель на данные и потоки данных и спроектировать так, чтобы данные не хранились в классах и было чистое ФП.</p><h2>Что выбрать новичку для изучения?</h2><p>Изучить всё сразу не получится, но для быстрого старта карьеры, на мой взгляд, достаточно знать принципы ООП и иметь хотя бы общее представление о функциональных, процедурных языках: современные подходы используют некоторые более старые парадигмы, в новой реализации они могут быть очень эффективны. Если есть поверхностное знание о функциональном программировании — это вообще замечательно. Значит, у разработчика есть выбор, меньше ограничений на реализацию задуманного.</p><p>Я считаю, что каждый разработчик должен иметь представление и об ООП, и о ФП, знать сильные и слабые стороны каждого подхода и на основе этого определять, что лучше использовать для решения конкретной бизнес-задачи.</p><p>ООП-подход подразумевает написание базовых классов и расширение существующих путем добавления к ним методов. Данные хранятся в экземпляре класса вместе с методами, которые ими оперируют. Функции в ООП зависят от внешних данных (например содержат внутри себя ссылки на глобальные переменные) или коммуницируют с внешним миром (ввод-вывод).</p><p>В отличие от ООП, функциональное программирование характеризуется слабой связью функции с данными, которыми она оперирует. Это позволяет избежать побочных эффектов при выполнении функций — например чтения и изменения глобальных переменных, операций ввода-вывода и так далее. Детерминированные функции ФП возвращают один и тот же результат для одних и тех же аргументов.</p><p>Но эти подходы не являются взаимоисключающими. Нет необходимости выбирать только одну парадигму и следовать ей до конца. Вы можете передавать классы в чистые (то есть не связанные с внешними данными) функции или можете использовать чистые функции в качестве методов класса — одно другому не противоречит, а только дополняет. Если вы пишете простую и небольшую программу, следование той или иной парадигме — сугубо ваше личное мнение и видение прекрасного. Однако если вы пишете большой сервис с разноплановыми задачами, в определённый момент вы столкнетесь с необходимостью рефакторинга, так как для эффективного решения всех этих задач одного подхода будет недостаточно.</p><p>Приведу пример. Если вы пишете на Node.js, на первый взгляд удобнее использовать ФП. Дело в том, что сам по себе запрос на сервер — это функция с определённым входом и выходом (request, response). А работа с request’ом происходит с помощью цепочки функций (middleware), и результат (response) всегда будет одинаковый, если в качестве аргументов передавать одни и те же значения. Функциональный подход здесь смотрится естественно. С другой стороны, если Node.js-сервис подразумевает работу с БД, для описания моделей и работы с ними удобнее применить ООП-подход. Примером служит популярная библиотека sequelize.</p><p>На просторах frontend особой популярностью пользуются фреймворки, и каждый из них использует ту или иную парадигму, но для полноценной работы с ними необходимо знание как ООП, так и ФП. Взять для примера Angular: данный фреймворк построен на сервисах, которые в свою очередь являются классами, содержащими данные и методы для работы с ними. Однако при работе с библиотекой Redux, обычно работающей в паре с React, напрямую сталкиваешься с функциональным подходом, так как основная идея Redux — использование чистых функций без побочных эффектов.</p><p>ООП vs. ФП — вечная дилемма. Мне кажется, что наибольшей эффективности в разработке можно добиться, только если миксовать подходы. Точно не стоит писать проект только на ФП, потому что такой подход сильно ограничивает разработку: нужно постоянно прорабатывать поведение state.</p><p>Я бы порекомендовал начинающим разработчикам посмотреть отдельные, частные кейсы. Например, хороший кейс использования ФП, когда в проекте есть некая сортировка данных. Условно, есть датасет, в котором нужно отфильтровать данные по фамилии, а затем ещё и по имени. Функциональное программирование позволяет сделать это красиво и с умом.</p><p>Всегда стоит думать о логике проекта. Если в приложении много динамики, то архитектура REST API из функционального программирования отлично сработает, так делают те же ребята из tutu.ru. То же самое работает и наоборот — если у вас обычное сервисное приложение, где пользователю отображают JSON, то особо смысла использовать ФП нет.</p><p>«Когда применять функциональное программирование, а когда ООП?» — вопрос совсем непростой. Если посмотреть форумы, то понятно, что холивар возникает уже на этапе самого определения функционального программирования.</p><p>Если исходить из определения, что функциональный стиль — это когда результат выполнения кода всегда зависит только от поданных на вход значений, то лично я такой подход стараюсь применять как можно чаще. Это упрощает читабельность кода, его тестирование. Однако ФП более характеризуется тем, что аргументами одних функций являются другие, более простые функции, и вот это наиболее сложная часть, где можно легко выскочить за сложность вычислений O(n).</p><p>Не очень понятно, как сравнить ООП и функциональное программирование (ФП). Я считаю, что модели могут тесно пересекаться, не исключая друг друга, и где какую модель применять, зависит от архитектуры программы и задач, стоящими перед каждым модулем программы. Например ваш код имитирует движение транспортного средства (ТС). Нужно каждую секунду вычислять координаты ТС, его скорость, пройденный путь. Для того, чтобы это сделать, необходимо будет производить вычисления на основе предыдущих вычислений. Если применить функциональное программирование, то появляется необходимость хранения результатов вычислений и подачи их каждый раз на вход модели. Это создаст дополнительные логические сложности, поэтому в этой задаче лучше скомбинировать ООП и ФП. Для каждого ТС создаётся объект в стиле ООП, и каждый объект сам хранит свои предыдущие вычисления. Вам остаётся на вход подавать только ускорение, направление движения и время, в течение которого они действовали. Внутри же объекта ТС у вас будет два десятка методов, рассчитывающих его новое состояние. И вот тут рекомендация: стремиться большую часть из них сделать в виде простых функций, и только в одном или двух в вычисления добавить влияние его предыдущего состояния или используемого набора функций.</p><p>Сейчас порог входа в программисты очень высок, и изучать что-то одно и быть востребованным у программиста вряд ли получится.</p><h2>Итак, какую парадигму выбрать?</h2><p>ООП-подход подразумевает написание базовых классов и расширение существующих путем добавления к ним методов. Данные хранятся в экземпляре класса вместе с методами, которые ими оперируют. Функции в ООП зависят от внешних данных.</p><p>Функциональное программирование характеризуется слабой связью функции с данными, которыми она оперирует. Это позволяет избежать побочных эффектов при выполнении функций — например чтения и изменения глобальных переменных, операций ввода-вывода и так далее.</p><p>Тем не менее, эти подходы не являются взаимоисключающими. Вы можете передавать классы в чистые функции или использовать чистые функции в качестве методов класса. Нередко удачным подходом является именно смешение парадигм, а не использование какой-то одной.</p><p>При выборе парадигмы стоит смотреть на решаемую вами задачу, а также учитывать возможное развитие проекта, чтобы быть уверенным, что выбранная сегодня «правильная» парадигма не вынудит вас через полгода переписать весь проект.</p><p>Что до новичков, то определённо стоит изучить ООП, так как это более «традиционная» парадигма, которая много где используется. Но стоит иметь хотя бы общее представление о ФП, чтобы иметь у себя в арсенале ещё один инструмент.</p><p>Напоминаем, что вы можете <a href="https://docs.google.com/forms/d/e/1FAIpQLSdSanNvlfPRrSyQWfnoGPflSVwO4KctnjOdEKHzuxjCmFX2dA/viewform">задать свой вопрос</a> экспертам, а мы соберём на него ответы, если он окажется интересным. Вопросы, которые уже задавались, можно найти в списке выпусков <a href="https://tproger.ru/experts/">рубрики</a>. Если вы хотите присоединиться к числу экспертов и прислать ответ от вашей компании или лично от вас, то пишите на <a>experts@tproger.ru</a>, мы расскажем, как это сделать.</p>]]></content:encoded>
    </item>
    <item>
      <title>Отдыхаем с пользой: годные сериалы и фильмы про науку и технику</title>
      <link>https://tproger.ru/experts/movies-and-series-about-science-and-technology</link>
      <comments>https://tproger.ru/experts/movies-and-series-about-science-and-technology?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Никита Прияцелюк]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/experts/movies-and-series-about-science-and-technology</guid>
      <description><![CDATA[<p>Эксперты называют фильмы и сериалы о науке и технике, которые произвели на них сильное впечатление и помогли расширить горизонты знаний.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/experts/movies-and-series-about-science-and-technology">Отдыхаем с пользой: годные сериалы и фильмы про науку и технику</a>»</p>]]></description>
      <category><![CDATA[Фильмы]]></category>
      <category><![CDATA[Образование]]></category>
      <category><![CDATA[Ответы экспертов]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Mon, 27 Jan 2020 14:31:43 GMT</pubDate>
      <content:encoded><![CDATA[<p>Фильмы и сериалы не обязательно показывают только драйвовый экшен и яркие спецэффекты. Многие из них могут научить чему-то новому и расширить горизонты знаний или поменять мировоззрение. Мы решили спросить у экспертов, что из просмотренного про науку или технику произвело на них большое впечатление.</p><p>Интересен Into the Universe, помимо очевидных преимуществ (доступно и интересно говорят о сложном) — очень масштабирует. Совсем иначе смотришь на daily challenges, когда ближе соприкасаешься со знаниями и мнениями о неизведанном и сложном. С одной стороны, и себя ощущаешь очень «несущественным», с другой стороны, ты всё-таки рад за то, что приглашён в этот удивительный мир.</p><p>Смотрю сериал Black Mirror. Истории про то, как новые технологии и изобретения неожиданным образом и не в самую лучшую сторону могут поменять нашу жизнь. В своей работе в ИТ об этом надо всегда помнить.</p><p>Недавно я понял, если хочу не только узнать о чём-то подробнее, но и развлечься, а не просто прочитать статью в Википедии, то нужно идти на YouTube, где в открытом доступе есть множество интересных каналов о науке и технике. Конечно, есть специализированные платные платформы, такие как Curiosity Stream и Nebula, которые выкупают права на документалки или сами создают контент, но я по-прежнему предпочитаю YouTube.</p><p>Вот мой топ-10 каналов о науке и технике. Большинство из них англоязычные.</p><ol><li>Vox Science. В тематическом плейлисте канала Vox есть всё, что связано с наукой и техническим прогрессом. Например видео о космических путешествиях, инновациях в кинематографе, принципах полигонов в играх.</li><li><a href="https://www.youtube.com/channel/UCI2Tj1A3E2litfptZZ9WfJw">SkyShips</a>. Русскоязычный канал про самолёты. Если интересно, какие самолеты преобладали в гражданской авиации 50 лет назад и почему сейчас рынок захватили Boeing и Airbus, заглядывайте на SkyShips.</li><li><a href="https://www.youtube.com/user/Wendoverproductions">Wendover Productions</a>. Wendover Productions стоит смотреть ради объясняющих видео. Например о том, что такое Сибирский аэрокоридор и зачем на самом деле Илону Маску Tesla.</li><li><a href="https://www.youtube.com/channel/UC1ZBQ-F-yktYD4m5AzM6pww">Mustard</a>. На канале Mustard вы найдете 10-минутные видео про необычные самолёты, историю транспорта и многое другое.</li><li><a href="https://www.youtube.com/channel/UCQMyhrt92_8XM0KgZH6VnRg">Company Man</a>. На Company Man подписывайтесь ради историй известных компаний. Здесь есть видео про автомобили, хайповые бренды одежды и многое другое. Ролики дополнены неплохой графикой.</li><li>Vox Atlas. Авторская рубрика журналиста Vox, объясняющего всё подряд. Как Леонардо да Винчи делал карты спутникового качества в 15 веке, как работали пневматические трубы для доставки почты, почему в 60-х среди американцев было модно иметь бомбоубежище и другие неочевидные вопросы, раскрытые в видео.</li><li><a href="https://www.youtube.com/channel/UC04KsGq3npibMCE9Td3mVDg/videos">Cheddar</a>. Cheddar — канал, который отвечает на необычные вопросы. Например здесь есть видео о том, зачем Саудовская Аравия импортирует песок и как Распутин повлиял на кинематограф.</li><li><a href="https://www.youtube.com/channel/UCR1IuLEqb6UEA_zQ81kwXfg">Real Engineering</a>. Real Engineering порадует более глубокой подачей тем про электронику, сопромат, а также техническое оснащение спутников, морских кораблей и гражданских сооружений.</li><li><a href="https://www.youtube.com/channel/UCuCkxoKLYO_EQ2GeFtbM_bw">Half as Interesting</a>. Хотите узнать, почему все карты Китая, которые можно найти в интернете, неверны, существует ли подземное правительственное метро Вашингтона — вам на канал Half as Interesting.</li><li><a href="https://www.youtube.com/channel/UCP5tjEmvPItGyLhmjdwP7Ww">RealLifeLore</a> и <a href="https://www.youtube.com/channel/UCqmD_a5YIbB5Brt_V04zLRQ">RealLifeLore2</a>. Подписывайтесь на эти каналы, если вам нравятся утопичные видео. Можно узнать, как стать первым в мире триллионером и что будет, если воссоздать монгольскую империю.</li></ol><p>Мне больше всего нравятся документальные истории незаурядных личностей. Они мотивируют жить ярко, развиваться и двигаться вперёд. Вот мой топ таких лент.</p><h2>Citizenfour. Правда Сноудена</h2><p>Документальный фильм 2014 года рассказывает о разоблачении массовой слежки ЦРУ и АНБ за обычными людьми. Главная фигура в фильме — Эдвард Сноуден, работавший в АНБ и имевший высокую форму допуска к секретным данным. Он почувствовал, что те вещи, которыми занимается АНБ, ущемляют частные права граждан, и решил раскрыть эту информацию всему миру. В наш век информационных технологий, когда мы проживаем большую часть сознательной жизни без отрыва от смартфонов и компьютеров, важно знать и помнить о том, что рассказал нам Эдвард Сноуден. Человек поставил на кон всю свою жизнь, чтобы люди знали правду. Фильм учит самоотверженности, решительности действий и готовности защитить себя и близких.</p><h2>Социальная сеть</h2><p>Фильм режиссёра Дэвида Финчера, выпущенный в 2010 году, рассказывает историю создания крупной технологичной компании на примере Facebook. Всё начинается в университетские годы с инициативы двух студентов — Марка Цукерберга и Эдуардо Саверина. Они приятели, Марк — компьютерный гений, в то время как Эдуардо разбирается в финансовых аспектах. Решая отомстить бывшей девушке, Марк за ночь создаёт сайт, где можно выбирать, кто из студенток привлекательнее, и закачивает туда взломанные базы данных соседних университетов. Постепенно друзья понимают, чего действительно хотят люди от общения в современном мире. Им приходят всё новые идеи, что и становится катализатором для создания сети Facebook. На мой взгляд, картина мотивирует создавать свои технологии, придумывать новое, преодолевая десятки трудностей, в том числе борьбу с конкурентами. После просмотра хочется, если не сделать свой собственный стартап, то точно погрузиться в новые технологии и стать лучшим в своей сфере.</p><h2>Клонирование 2.0</h2><p>Авторы рассказывают не только о самых обсуждаемых сторонах процесса клонирования (как проходит процедура и сколько она стоит, будет ли клон 100-процентной копией оригинала), но и поднимают другие важные темы: исследования, эксперименты, вопросы этики и ответственности. Например, как генная инженерия может использоваться в лечении? Кем и на основании чего регулируется редактирование человеческого генома? Как должны обсуждаться вопросы ответственности человека? На данный момент идёт шестая волна массового вымирания видов, которая почти полностью спровоцирована человеческой деятельностью.</p><p>В фильме рассказывается также об интересных экспериментах и текущих проектах. Сейчас уже, например, есть светящиеся мышата с геномом медузы и стерильные самки малярийных комаров. Авторы также подробно рассказывают о проектах «Замороженный ковчег», которые помогут восстановить вымершие виды животных, от которых сохранились живые клетки. Дополнительная изюминка фильма: мы узнаем, какие из ныне живущих животных являются ближайшими генетическими родственниками динозавров!</p><h2>Витамин Д. Большой скачок</h2><p>Фильм, созданный при участии российских учёных и врачей. Все мы знаем о существовании такого витамина и примерно представляем его важность для организма. Но, оказывается, по современным меркам его относят скорее к гормонам, чем к витаминам. Причин тому несколько: количество генов, которые он регулирует (спойлер: более 4500!), производимый эффект стероидного гормона и последствия, которые вызывает его недостаток в организме. Перечень заболеваний, вызываемых дефицитом витамина Д, просто невероятен: от ожирения, атеросклероза и гипертонии до депрессии, бессонницы и кариеса. В фильме также подробно объясняется, каким образом лучше всего определять количество витамина Д в своём организме и какие меры стоит предпринять для поднятия его уровня.</p><h2>Adam ruins everything</h2><p>Сериал, на данный момент выпущено уже 3 сезона. В формате шутливых мизансцен главный герой Адам развенчивает существующие в обществе мифы на самые разные темы. Откуда взялась традиция дарения помолвочного кольца с бриллиантом, почему не стоит сдавать кровь после массовой трагедии, как правильно организовать благотворительность — и это всё только в первой серии! Часть утверждений Адама, возможно, спорна, но в любом случае небезынтересна и заставляет задуматься о вещах, которые мы принимаем как данность. Эпизоды совсем короткие — от 20 до 30 минут, поэтому сериал можно смотреть во время выполнения домашних дел или, например, за ужином. Для тех, кто не владеет английским языком на высоком уровне, есть приятная новость: в рунете можно найти все серии в русском дубляже.</p><h2>Теория большого взрыва</h2><p>And last but not least: всем известный сериал «Теория большого взрыва». В нём ярко и искромётно подаются научные факты из самых разных областей науки (теоретическая и экспериментальная физика, нейробиология, астрономия, микробиология), при этом сюжетная линия достаточно разнообразна и снабжена большим количеством шуток. Сериал получил несколько Эмми и даже Золотой глобус за роль Шелдона Купера в исполнении несравненного Джима Парсонса. ТБВ стала самым длительным ситкомом в истории (279 серий в 12 сезонах), но смотрится она на одном дыхании.</p><p>Относительно недавним открытием для меня стало то, что популярный стриминговый сервис Netflix выпускает помимо отличных развлекательных сериалов также качественные документальные фильмы. Тематика таких фильмов достаточно широка и многообразна, поэтому каждый сможет найти что-то, что захватит и удивит именно его. Из последних открытий хотелось бы выделить и порекомендовать следующие документалки.</p><h2>Абстракция: Искусство дизайна (Abstract: The Art of Design)</h2><p>В 2019 году вышел уже второй сезон документального мини-сериала о дизайнерах и их работе в современном мире. В этом сериале переплетаются творчество, философия, современные технологии и тенденции, истории о людях с мировым именем и их уникальных идеях. Все герои Abstract: The Art of Design достигли больших успехов в своих отраслях, например исландско-датский художник и архитектор Олафур Элиассон находится в центре внимания ввиду его большой ретроспективной выставки в лондонской Tate Modern, Ян Спалтер отвечает за дизайн приложения Instagram, а архитектор Нери Оксман работает на пересечении дизайна и биологии и возглавляет Mediated Matter Group, один из самых известных отделов в MIT Media Lab. Картинка визуально очень приятна глазу, а декорации и визуальные эффекты позволяют расслабиться и в то же время зарядиться вдохновением.</p><h2>Большой Хак (The Great Hack)</h2><p>Документальный фильм, вышедший в прошлом году, посвящён скандалу с утечкой персональных данных 87 млн. пользователей Facebook и их использованием компанией Cambridge Analytica для влияния на мнение избирателей Великобритании и США. Несмотря на то, что этот скандал, случившийся в 2018 году, практически забылся, механизмы и приемы, которые разрабатывала и использовала компания Cambridge Analytica, актуальны и используются в избирательных кампаниях во всем мире. Фильм поднимает проблему использования персональных данных в целях маркетинга и необходимость их защиты. Нужно смотреть, чтобы понимать роль «Big Data» в нашей повседневной жизни и степень нашей уязвимости перед корпорациями, использующими данные технологии в своих целях.</p><h2>Американский завод (American Factory)</h2><p>Этот фильм стоит посмотреть не только потому, что продюсерами являются Барак и Мишель Обама, а сам фильм номинирован на премию Оскар. Фильм рассказывает историю бывшего завода General Motors, который приобрела китайская компания Fuyao Glass America. Стремление нового руководства корпорации создать тысячи рабочих мест для американцев, поднять экономику города Морен и штата Огайо, научить местных лучшим китайским бизнес-практикам столкнулись с препятствиями в лице американских профсоюзов, модернизацией индустрии и замещением человеческого труда машинами. Здесь налицо также и разница в менталитетах и подходах к работе и управлению, влияние глобализации и развития новых технологий, а также можно проследить и влияние политики на развитие промышленности и экономических реалий. Фильм получился сильным и современным, рекомендую к просмотру.</p><h2>Итак, какие фильмы/сериалы про науку и технику можно посмотреть?</h2><h3>Фильмы</h3><ul><li>«Американский завод» (American Factory);</li><li>«Большой Хак» (The Great Hack);</li><li>«Витамин Д. Большой скачок»;</li><li>«Клонирование 2.0»;</li><li>«Социальная сеть»;</li><li>«Citizenfour. Правда Сноудена».</li></ul><h3>Сериалы</h3><ul><li>«Абстракция: Искусство дизайна» (Abstract: The Art of Design);</li><li>«Адам портит всё» (Adam ruins everything);</li><li>«Теория большого взрыва»;</li><li>«Чёрное зеркало» (Black Mirror);</li><li>Into the Universe.</li></ul><h3>YouTube-каналы</h3><ul><li>Vox Science;</li><li><a href="https://www.youtube.com/channel/UCI2Tj1A3E2litfptZZ9WfJw">SkyShips</a>;</li><li><a href="https://www.youtube.com/user/Wendoverproductions">Wendover Productions</a>;</li><li><a href="https://www.youtube.com/channel/UC1ZBQ-F-yktYD4m5AzM6pww">Mustard</a>;</li><li><a href="https://www.youtube.com/channel/UCQMyhrt92_8XM0KgZH6VnRg">Company Man</a>;</li><li>Vox Atlas;</li><li><a href="https://www.youtube.com/channel/UC04KsGq3npibMCE9Td3mVDg/videos">Cheddar</a>;</li><li><a href="https://www.youtube.com/channel/UCR1IuLEqb6UEA_zQ81kwXfg">Real Engineering</a>;</li><li><a href="https://www.youtube.com/channel/UCuCkxoKLYO_EQ2GeFtbM_bw">Half as Interesting</a>;</li><li><a href="https://www.youtube.com/channel/UCP5tjEmvPItGyLhmjdwP7Ww">RealLifeLore</a> и <a href="https://www.youtube.com/channel/UCqmD_a5YIbB5Brt_V04zLRQ">RealLifeLore2</a>.</li></ul><p>Напоминаем, что вы можете <a href="https://docs.google.com/forms/d/e/1FAIpQLSdSanNvlfPRrSyQWfnoGPflSVwO4KctnjOdEKHzuxjCmFX2dA/viewform">задать свой вопрос</a> экспертам, а мы соберём на него ответы, если он окажется интересным. Вопросы, которые уже задавались, можно найти в списке выпусков <a href="https://tproger.ru/experts/">рубрики</a>. Если вы хотите присоединиться к числу экспертов и прислать ответ от вашей компании или лично от вас, то пишите на <a>experts@tproger.ru</a>, мы расскажем, как это сделать.</p>]]></content:encoded>
    </item>
  </channel>
</rss>