Может, нам слегка успокоиться с JavaScript?

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

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

(В самом деле, даже не пытайтесь диагностировать проблему по одному предложению, не надо, я слышала и перепробовала почти всё, что вы можете себе представить).

Статья написана в марте 2016 года, некоторые примеры устарели — прим. пер.

Бесполезные страницы

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

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

С другой стороны…

Эта кнопка × в правом верхнем углу и все пустое окружающее пространство? Их единственная функция — отправить вас в мой профиль, который виден за твитом. С таким же успехом они могли быть обычными ссылками, как стрелки влево и вправо для навигации. Но это сделано иначе, поэтому не работает без JavaScript.

Или маленькая кнопка с графиками, для аналитики? Её единственная функция — загрузить другую страницу в искусственном всплывающем окне со встроенным фреймом. Здесь могла быть обычная ссылка, которая превращается во всплывающее окно с помощью скрипта. Но это сделано иначе, поэтому не работает без JavaScript.

Текстовое поле? Конечно, это просто текстовое поле. Но если нажать на него до запуска JavaScript, в поле останется неуклюжая надпись Reply to @eevee. А когда скрипт всё-таки запускается, он стирает всё, что вы набрали, и снова вставляет Reply to @eevee, только теперь @eevee написано синенькими буквами, а не серенькими.

То же самое происходит на странице поиска Twitter, что очень странно, потому что в поле поиска нет текста! Если вы начнёте печатать до окончания работы скриптов, они просто сотрут всё, что вы набрали. Даже не для того, чтобы вставить свой текст-заполнитель или применить пользовательский стиль. Без всякой видимой причины, просто так.

Поскольку у меня работает NoScript, я частенько замечаю странные дизайнерские решения на сайтах, которые посещаю впервые. Конечно, пустые белые страницы — обычное дело. Довольно долго статьи на сайте Time отлично загружались без скрипта, но только не прокручивались — для страницы применялось свойство overflow: hidden; по причинам, которые я не могу понять. Статьи Vox также загружаются нормально, за исключением того, что перед каждым изображением выводится пустое пространство на всю высоту экрана. Некоторые особенно плохие корпоративные сайты представляют собой месиво перекрывающихся блоков текста. Думаю, что они отказались от CSS и написали макет на JavaScript.

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

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

А вот что не очень здорово, так это группа высокооплачиваемых и высококвалифицированных специалистов, у каждого из которых установлен Chrome на последней модели Mac Pro, которые работают в офисе на расстоянии не больше километра от каждого сервера, на который они заходят. И вот эти ребята работают, а потом поворачиваются и хихикают над всеми остальными, у кого нет такой конфигурации. Учтите, что любое из следующих условий помешает работе вашего JavaScript:

  • Кто-то на медленном компьютере.
  • Кто-то на медленном соединении.
  • Кто-то на телефоне, то есть на медленном компьютере с медленным соединением.
  • Кто-то застрял со старым браузером на компьютере, который он не контролирует — на работе, в школе, в библиотеке и т. д.
  • Кто-то пытается написать небольшую программу, которая взаимодействует с вашим сайтом, у которого нет API.
  • Кто-то пытается загрузить копию вашего сайта, чтобы почитать в офлайне.
  • Кто-то — это кэш Google или Архив Интернета.
  • Кто-то сломал графическое окружение в Linux и пытается выяснить, как его починить, загружая статьи с вашего сайта через браузер командной строки Elinks.
  • Кто-то внёс изменения в ваш сайт с помощью пользовательского скрипта, и это мешает вашему собственному коду.
  • Кто-то использует NoScript и видит на вашем сайте только пустой экран. Они настолько раздражён, что просто уходит, а не вносит ваш сайт в белый список.
  • Кто-то использует NoScript и вносит в белый список вас, но не один из десятков трекеров, которые вы используете. Позже вы случайно ставите скрипт в зависимость от трекера, и он таинственным образом больше не работает для таких пользователей.
  • Вы даёте критически важному скрипту название, связанное с рекламой, и он не загружается у десятков миллионов пользователей с блокировщиками рекламы.
  • Ваш CDN упал.
  • У вашего CDN есть адрес IPv6, но на самом деле он не работает (да, я видела такое и у компаний стоимостью в миллиард долларов, и у федерального правительства). Заходит кто-то по IPv6, страница загружается, но JS вылетает по таймауту.
  • Ваш деплой идёт немного неудачно, и JavaScript повреждается.
  • Вы случайно использовали новую функцию, которая не работает в предыдущей версии самого популярного браузера. Выводится синтаксическая ошибка, и ни один из ваших сценариев не запускается.
  • Вы прямо вводите синтаксическую ошибку, и никто не замечает, пока она не попадает в продакшн.

Я не говорю, что следует стереть с лица Земли интерактивные веб-приложения, такие как Google Maps, хотя даже для Google Maps много лет был запасной вариант без скриптов, до текущей версии WebGL! Я говорю, что мы свернули куда-то не туда, когда базовые функции обычного HTML вдруг перестали работать без JavaScript. А именно, без 40 мегабайт JavaScript, согласно about:memory — это данные в памяти, а не размер загрузки. Это может показаться не очень много (для страницы, которая выводит на экран 140 символов?), но в моём браузере часто накапливается десяток открытых вкладок Twitter, то есть полгигабайта памяти, выделенных максимум на 6 КБ текста.

Изобретение квадратного колеса

Вам действительно нужно постараться, чтобы добиться такого плачевного результата. Я имею в виду, если вам нужна ссылка, вы просто пишете <a href="somewhere">label</a>, и готово. Но если вы начнёте изобретать это с помощью JavaScript, то нужен обработчик кликов, и он должен работать в нужное время, чтобы вы знали, что ссылка действительно существует, и, возможно, вам придётся сделать некоторую работу, чтобы добавить обработчики кликов к фальшивым ссылкам, которые добавляет Ajax. Так ведь?

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

  • Я могу перейти по ссылке.
  • Я могу открыть ссылку в новой вкладке или окне с помощью комбинации клавиш ctrl, shift и колёсика (средней кнопки) мыши.
  • Я могу скопировать адрес ссылки и вставить его куда-нибудь или открыть в другом браузере, или ещё что-нибудь.
  • Я могу использовать ' в Firefox для поиска только ссылок.
  • В некоторых браузерах — Opera, Konqueror, uzbl, Firefox с vimperator? — есть горячая клавиша, которая показывает цифру или букву рядом с каждой ссылкой на странице, так что вы можете очень быстро «щёлкнуть» ссылку визуально, даже не касаясь мыши.
  • Я считаю, что скринридеры обрабатывают ссылки специальным образом.
  • Простые краулеры составляют по ссылкам карту сайта.
  • Браузеры начинают экспериментировать с предварительной загрузкой видных ссылок, так что если пользователь действительно нажимает на неё, то страница открывается мгновенно.

Общая нить здесь заключается в том, что тег <a href=...> нечто значит. Он говорит: «Это путь, по которому можно пройти». Тонны инструментов полагаются на эту информацию. Если заменить его на <div onclick>, то да, нажатие на div что-то сделает, но весь смысл полностью потерян. И наоборот, если использовать <a href="javascript:void(0);">, то вы фактически лжёте этим инструментам; вы вызываете смысл, но отдаёте бессмысленную информацию.

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

Еще один хороший пример — выпадающие формы <select>. Некоторые разработчики иногда полностью с нуля создают свою замену из неродных виджетов. Наверное, чтобы сделать их красивее? Благородная цель. Но знаете ли вы, что в нативных выпадающих формах при начале набора текста автоматически выбирается первая подходящая позиция? Очевидно, в большинстве альтернативных реализаций это не поддерживается. Визуально они выглядят лучше (или просто иначе), но функционально намного хуже для длинных списков.

Самодельное текстовое поле Twitter — это вовсе не текстовое поле, а contenteditable <div>. Здесь contenteditable означает, что большинство нативных элементов управления работают довольно хорошо, но всё равно этот объект время от времени демонстрирует некое странное поведение, например, перемещает курсор в начало текста, когда я переключаюсь между вкладками. Или иногда у скрипта возникают какие-то проблемы с моей скоростью набора и он начинает з а м е т н о     о т с т а в а т ь. Единственная причина, зачем вообще ставить его вместо обычного <textarea>, кажется, это чтобы подкрасить @handles и ссылки синим цветом? Самодельное текстовое поле не сокращает ссылки и не заменяет твиттеровские эмодзи, поэтому на самом деле это не предварительный просмотр того, как будет выглядеть ваш твит.

Вы знаете, что на некоторых сайтах работают горячие клавиши? Мило, правда? Но на самом деле / — это встроенная в Firefox горячая клавиша, которая открывает панель быстрого поиска. Очевидно, никто в Twitter или GitHub, или BitBucket, или Tumblr, или в десятке других мест не знает об этом, потому что все они назначили этой клавише перемещение фокуса на собственную панель поиска по сайту. Что полностью отличается от поиска на текущей странице (к чести GitHub, они это исправили, когда я пожаловалась в твиттере). В течение длительного времени Google+ отключал пробел для прокрутки вниз. Почему никто в этих огромных компаниях не остановился и не сказал: «Эй, подождите, это ведь рабочая функция в браузере, а мы её ломаем»? Веб-разработчики сами вообще пользуются браузерами?

Тут вспомнилось, что каждая страница Twitter молча поглощает любые события клавиатуры и нажатия мыши, пока не отработают все скрипты. Это означает, что я не могу даже сменить вкладку, пока не подожду эти 20 секунд загрузки страницы: ctrl-t, ctrl-w, ctrl-tab, ctrl-pgup и ctrl-pgdn — все события клавиатуры полностью поглощаются. Так работает механизм под названием «очередь быстрых действий» (swift action queue). Звучит так, будто эта очередь должна воспроизводить события по окончании загрузки страницы, но (а) вы не можете воспользоваться горячими клавишами в браузере; (б) похоже, она всё равно не работает. Чтобы это исправить, мне пришлось написать пользовательский скрипт, чтобы заблокировать тег скрипта с определённым идентификатором.

Я не думаю, что очень привередничаю. Это базовые функции браузера, и вы их нарушаете, часто без уважительной причины. Я не ожидаю, что вы заставите Google Docs работать без JavaScript. Я просто надеюсь, что вы не сломаете мою чёртову клавиатуру.

Позвольте дать совет

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

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

Помните, что при всей власти, которую даёт вам интернет, в конечном счёте контроль всё равно находится в руках пользователя. Интернет — это не игровая приставка, действуйте соответственно. Создавайте модули. Заранее учитывайте вероятные или распространённые настройки. Может, что-нибудь немного уменьшить, когда достигнете 40 мегабайт скриптов на странице.

Спасибо.

ссылка на оригинал статьи https://habr.com/ru/post/490412/

Делаем клон сервиса по доставке еды, используя Nuxt.js, GraphQL, Strapi и Stripe. Часть 2/7

image

В предыдущей части мы настроили структуру приложения, в данной статье мы настроим Strapi API и выведем список ресторанов.

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

Создаем рестораны

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

Устанавливаем Content Type

Content Type, также называется моделью (model). Strapi API по умолчанию включает в себя модель user. Сейчас нам нужны рестораны, поэтому новая модель как вы уже догадываетесь будет называться restaurant(модели именуются в единственном числе).

Вот что нам нужно сделать:

  • Перейти в конструктор моделей http://localhost:1337/admin/plugins/content-type-builder
  • Нажать на Create new content-type
  • Установить restaurant в качестве имени и нажать кнопку "Continue"
  • Далее создать следующие поля:
    • name с типом Text
    • description с типом Rich Text
    • image с типом Media
  • Нажать кнопки "Finish" и после "Save"

image

После этого сервер должен автоматически перезагрузится и новая ссылка Restaurant появится в левом меню.

Добавляем записи

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

Теперь мы находимся в плагине Content Manager, интерфейс которого позволяет просматривать, изменять и добавлять записи.

  • Нажмите на Add New Restaurant
  • Укажите name,  description и перетащите картинку в поле image
  • Сохраните

Создайте еще столько ресторанов сколько хотите увидеть в приложении.

image

Разрешаем доступ

У нас есть записи в базе данных — это хорошо. Однако возможность делать запросы к базе из API еще лучше. Когда мы создали модель restaurant, под капотом Strapi создал ряд файлов расположенные в api/restaurant. Эти файлы включают в себя основную логику, предоставляя полностью кастомизируемое CRUD API. Метод для получения ресторанов find доступен здесь: http://localhost:1337/restaurants.

Попытавшись посетить данный URL, вы будете удивлены увидев 403 ошибку. На самом деле это нормально: новые Strapi API спроектированы такими по умолчанию.

Не волнуйтесь, сделать роут публичным просто и интуитивно понятно:

Важно: сделайте тоже самое для роли authenticated

  • Перейдите  на вкладкуRoles & Permissions  http://localhost:1337/admin/plugins/users-permissions.
  • Выберите Authenticated
  • Поставьте галочку в чекбоксах find и findone  секции Restaurant
  • Сохраните.

Вернемся назад на http://localhost:1337/restaurants, теперь мы должны увидеть список ресторанов.

image

Включаем GraphQL

По умолчанию API генерируется в REST формате. Что если я скажу вам, что мы можем его превратить в GraphQL в течении 10 секунд?

Давайте проверим что это так.

Плагин для GraphQL доступен в Strapi, установим его следующей командой в директории /backend:

yarn strapi install graphql # или npm run strapi install graphql

На этом все, с бекендом мы закончили.

https://blog.strapi.io/content/images/2018/07/Screen-Shot-2018-07-02-at-17.03.38.png

  • Перезагрузите сервер (yarn develop или npm run develop)
  • Перейдем на http://localhost:1337/graphql и попробуем следующий запрос:

{       restaurants {         id # Или _id если вы используете MongoDB         name       } }

https://blog.strapi.io/content/images/2019/09/graphql-1.gif

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

  • Установим GraphQL и @nuxt-apollo в нашу /frontend директорию

yarn add @nuxtjs/apollo graphql # или npm install @nuxtjs/apollo graphql

Модули и настройки для apollo должны быть установлены в nuxt.config.js:

    ...     modules: [ '@nuxtjs/apollo',     ],     apollo: { clientConfigs: { default: { httpEndpoint: 'http://localhost:1337/graphql' } }     },     ...

Показываем рестораны

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

  • Создадим ./pages/restaurants/index.vue файл и скопируем в него следующий код:

<template>         <div>           // Поиск ресторанов           <form class="uk-search uk-search-large uk-align-center uk-margin">               <span uk-search-icon></span>               <input class="uk-search-input" v-model="query" type="search" placeholder="Search...">           </form>            // Карточки с ресторанами           <div class="uk-card uk-card-default uk-grid-collapse uk-child-width-1-2@m uk-margin" v-for="restaurant in filteredList" v-bind:key="restaurant" uk-grid>               <div class="uk-card-media-left uk-cover-container">                   <img :src="'http://localhost:1337/' + restaurant.image.url" alt="" uk-cover>                   <canvas width="600" height="400"></canvas>               </div>               <div>                   <div class="uk-card-body">                       <h3 class="uk-card-title">{{ restaurant.name }}</h3>                       <p>{{ restaurant.description }}</p>                       // Ссылка на рестораны                       <router-link :to="{ name: 'restaurants-id', params: { id: restaurant.id }}" tag="a" class="uk-button uk-button-primary">See dishes                       </router-link>                   </div>               </div>           </div>            // Если ресторанов не найдено           <div class="uk-container uk-container-center uk-text-center" v-if="filteredList.length == 0">            <img src="https://assets-ouch.icons8.com/preview/19/52de2377-696e-4194-8c63-0a81aef60b4f.png" height="800" width="800">            <p>No restaurants found</p>          </div>        </div>  </template>  <script>       // Импортируем запрос ресторанов     import restaurantsQuery from '~/apollo/queries/restaurant/restaurants'      export default {         data() {         return {           // Инициализируем пустую переменную с ресторанами           restaurants: [],           query: ''         }       },       apollo: {         restaurants: {           prefetch: true,           query: restaurantsQuery         }       },       computed: {         // Ищем рестораны         filteredList() {           return this.restaurants.filter(restaurant => {             return restaurant.name.toLowerCase().includes(this.query.toLowerCase())           })         },       }     } </script>

Что мы написали?

Две главные части — шаблон и скрипт. Эти составляющие типичны для Vue.js приложений.

Раздел с шаблоном устанавливает структуру страницы, как вы видите некоторые атрибуты специфичны для Vue.js:

  1. v-for: повторяет тег количество раз равное длине массива (restaurants в нашем случае).
  2. v-if: отображает тег только если переданное условие валидно.
  3. v-model: связывает переменную со значением инпута. Применяется в данном случае для фильтрации ресторанов по их названию.
  4. vue-router: создает ссылку на страницу.

В скриптовой части мы импортируем необходимые компоненты и модули.

GraphQL запрос

Как вы могли заметить, мы вызываем restaurantsQuery GraphQL запрос с помощью apollo здесь:

... apollo: { restaurants: { prefetch: true, query: restaurantsQuery } }, ...

Для этого мы создадим директорию которая содержит запрос к Strapi API.

  • Создаем /frontend/apollo/queries/restaurant/restaurants.gql и вставляем следующий код:

    query Restaurants {         restaurants {         id         name         description         image {           url         }       }     }

Отлично! Теперь мы можем увидеть список ресторанов!


В следующей части вы узнаете как отобразить список блюд.

ссылка на оригинал статьи https://habr.com/ru/post/490332/

Видео лекций Computer Science клуба

Computer Science клуб — это открытые лекции по компьютерным наукам в Санкт-Петербургском отделении Математического института РАН. Филиалы CS клуба действуют в Новосибирске и Казани.

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

image

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

За время существования клуба были прочитаны более сотни различных курсов. Благодаря lektorium.tv большая часть курсов записана на видео и доступна для всех.

Так что, если вы ещё не придумали, чем заняться на выходных, то посмотрите на список курсов клуба — наверняка какой-нибудь из них покажется вам интересным. Например, вас может заинтересовать лекция про устройство шифрования в мессенджере Signal, мини-курс про вывод типов от Хиндли — Милнера до GHC 8.8, курс про компьютерную графику или что-то ещё.

Ну, а если вы живёте в Петербурге — приходите завтра на курс по теории кодирования.

P.S. Если хотите следить за новостями CS клуба — подпишитесь на нас в соцсетях. Ссылки можно найти на сайте клуба.

P.P.S. Если вам интересны другие форматы обучения в Петербурге, то обратите внимание на Computer Science центр и корпоративную магистерскую программу JetBrains в ИТМО.

ссылка на оригинал статьи https://habr.com/ru/company/JetBrains-education/blog/490416/

Лайфхаки разработчикам от рекрутера

Недавно на Хабр вышел перевод статьи «Оцениваем рекрутеров по холодным письмам». Примечание переводчика и 120 комментариев показывают, что тема болезненна для русскоязычных разработчиков, а рынок рекрутинга в IT токсичен. С одной стороны страдают разработчики: завал писем на почте, звонки от рекрутеров, которые потом внезапно пропадают, нелепые вакансии с релокацией в Гватемалу, предложения сеньорам поработать в молодом стартапе джуном и собеседования с вопросами «почему люки круглые». С другой — сами рекрутеры страдают от некомпетентных коллег, которые выставляют их как спамеров не отличающих Java от JavaScript, и раскидывающихся вакансиями без разбора, будто они риэлторы на Авито.

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

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

Обычно второй тип «бомбит» массово письмами и звонками, в надежде хоть кого-то зацепить. При этом как раз и возникают анекдотичные ситуации, когда они не отличают Java-разработчика от JavaScript-разработчика.

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

Не ждите вакансий — ищите сами

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

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

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

Ищите контакты тимлидов и HR через общих знакомых. Пишите на почту, в соцсетях или мессенджерах. Даже если сейчас нет открытых предложений, вас запомнят, а резюме отложат с пометкой «На будущее». В крайнем случае, звоните по общим телефонам.

Активность кандидатов в IT такое же редкое явление, как Tesla Model S в Москве, и оценивается положительно, как проактивность.

Развивайте «личный бренд» — работодателям интересны публичные кандидаты 

Когда компания не смогла найти сотрудника по своим канала, она обращается к IT-рекрутерам. Если обратиться к обычным, то все будет печально. Возможно, он даже не будет собирать требования заказчика (тимлида или HR).

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

После сбора требований рекрутер не всегда ее публикует на HH.ru и других ресурсах. Часто он ищет кандидатов сам: в соцсетях, LinkedIn, Telegram, по своим базам и на GitHub. Для GitHub рекрутеры применяют специальные плагины, которые помогают понять, чем занимался разработчик, какими технологиями владеет и даже выдают контакты. На этом этапе важно внимательно правильно искать (писать правильные запросы), изучать профили и резюме.

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

Но есть нюанс.

Хорошо говорить, писать и выступать не значит хорошо кодить.

Если разработчик выступает по 10 раз в год, пишет по статье в день и еще записывает подкасты, то когда он кодит? Поэтому «бренд» дает преимущество при найме, но не критичное. Если вас знают, вам будет проще получить больше (и раньше) интересных предложений от HR или от знающих вас разработчиков в компаниях, где образовалась вакансия. 

Оценивайте вакансии по ее вкладу в вашу карьеру

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

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

Главный вопрос, который вы должны задать, читая описание: «А что дальше?» Смотрите на вакансию с перспективой. Можно устроиться Java-разработчиком за 350 тысяч на legacy-проект, но в итоге проиграть. Несколько лет работы без изучения новых технологий, языков и новых навыков — это высокооплачиваемое рутинное копание в плохо пахнущем legacy с потерей квалификации.

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

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

Рекомендации. 

  • Команда. Она нас развивает, поэтому ищите в вакансиях описания команды.
  • Технологии. Следите, чтобы на новой работе вы работали с более-менее новыми технологиями и изучали свежие.
  • Система обучения в организации. Она как раз нужна, чтобы изучать новые технологии, языки, методы и подходы в программировании и проектировании. Как на новой работе с конференциями или курсами? Например, в Тиньков проводят внутренние митапы и отправляют сотрудников на конференции. У вас также?

Подготовьте резюме, чтобы вас заметили

Несмотря на дефицит кадров в IT, большинство разработчиков, QA и менеджеров (продактов, например) взаимозаменяемы. Благодаря платным онлайн-курсам и свободной информации в интернете их становится больше. Если у вас за плечами нет своего языка, как у Гвидо ван Россума, например, то оценивать вас будут, как и всех остальных — по скилам, которые написаны в резюме и совпадают с требованиями в вакансии.

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

Есть несколько правил, как это сделать.

Структура. Разбивайте текст на абзацы и смысловые блоки: желаемая должность, опыт, навыки, софт скилы, достижения. Манускрипты из одного абзаца никто не читает. Блок «Образование» не обязателен, на него мало кто смотрит

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

Избегайте двух ошибок.

  • Слишком общее описание, без деталей проекта и задач, зарплатной «вилки» слишком длинное и «водянистое». 
  • Слишком конкретизированное резюме. В таких манускриптах перечислены все технологии, с которыми встречался разработчик, но непонятно, как он ими владеет.

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

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

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

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

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

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

Рекомендации. Напишите рекомендательное письмо и дайте подписать своему руководителю. Если нет, то добавьте контакты рекомендателя.

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

Резюме это не автобиография или набор информации о вас: «Я разработчик, я ищу работу». Это визитная карточка, по которой СТО пригласят вас на собеседование.

Покажите на собеседовании свою пользу

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

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

  • чем занимается компания и команда, в которую вы хотите попасть, какие продукты выпускает;
  • задачи, требования и технологии описанные в вакансии;
  • повторите техническую часть для подготовки к тестовым заданиям;
  • подтяните английский: статьи, новости, Stack Overflow, документация к фреймворкам, библиотекам и другим инструментам на GitHub — все это на английском;
  • свою пользу.

Да, мы понимаем, IT это рынок кандидата, но все-таки вам платят деньги за работу. Вы приносите пользу — вам платят. Опишите свою пользу, какие потребности компании вы закрываете, какую проблему решаете. Именно ценность, а не набор характеристик будет в конечном счёте покупать наниматель. Для разработчиков это, конечно же, проекты, стек, которым вы владеете, примеры кода на GitHub и других открытых площадках. Это еще и зарплату вам повысит.

Часто в вакансиях нет зарплат и на собеседования вы приходите не зная, сколько вам предложат.

Есть 4 причины.

Зарплата ниже рынка.

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

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

Трудности оценки. Работодателю трудно оценить сотрудника, когда он не знает, какую работу может выполнять разработчик. Например, на вакансию «PHP-разработчик» огромный разброс зарплат, если взглянуть на HH.ru или аналитику МойКруг

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

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

Оцените себя заранее

Цель любой компании — зарабатывать деньги (не считаем государственные и благотворительные). Чтобы не тратить на найм слишком много времени, любого кандидата разбирают на «части» — профилируют. Профилирование это разбор человека на понятный набор навыков: по стеку, личностным качествам и опыту.

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

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

Выпишите себя «ядро» и отметьте то, чем владеете. Сравните два списка: свой и «ядро». Если требования и ваш список навыков совпадает на 9 из 10 — можете пробоваться на эту работу. На собеседованиях прибавьте 10% к своей цене, потому что всегда есть место для торга.

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

Как найти работу без лайфхаков

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

Сообщество разработчиков (и рынок в целом) уже пытаются найти решение проблемы. Появляются чаты-боты и сервисы для разработчиков с подбором вакансий, например, Hired, Talent.io или Honeypot. Они пробуют обходить рекрутеров и недостатки «классического» поиска, но многие из них англоязычные.

Honeypot. Сервис для европейских разработчиков.

  • Быстрая регистрация (если знаете английский)
  • Есть скрининг навыков (проверка кода).
  • Можно выключить «видимость» и перестать получать предложения.
  • Релевантные стеку предложения.
  • Можно добавить ссылки на GitHub, Behance, StackOverflow.

Недостатки: на английском, а все вакансии в Европе — рассматривайте только если хотите переехать.

Talent.io. Также сервис для Европы. Аналогичен Honeypot, но с добавкой анонимности.

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

ActualizeBot. Бот для подбора работы в IT.

  • Это Телеграм-бот. Через него разработчик пишет объявление о своих услугах.
  • Нет вакансий от агентств, потому что предложение поступает только от разработчика. Если он ищет работу, то пишет в бот.
  • Подходит не только для постоянной работы, но и для фриланса.
  • Быстрые отклики.

Недостатки.

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

Arena. Русскоязычный сервис для анонимного поиска работы в IT.

  • Профиль заполняется данными из LinkedIn и GitHub. Личные данные не добавляются.
  • Можно добавить ожидания от вакансии: стек, зарплата и прочее.
  • Подтверждение навыков тестами и задачами. Результаты добавляются в профиль, чтобы избежать тестовых заданий от рекрутеров.
  • Компании могут откликаться не на весь профиль, а на часть — подтверждать, какие ожидания они готовы реализовать.
  • Нет кадровых агентств.
  • Подходит для новичков и Middle-разработчиков.

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

headz.io. Русскоязычная платформа, на которой можно анонимно выбирать вакансии в IT по технологическому стеку и навыкам, не мучаясь с резюме, без спама и рекрутеров.
Из недостатков можно отметить среди работодателей нет всех технологических компаний (над чем активно работает), нет интеграции с HH.ru (для тех кто переезжает).

Преимущества.

  • Создавалась при участии профессиональных рекрутеров со стажем, которые знают проблемы обеих сторон процесса: разработчиков и бизнеса.
  • В аккаунт можно подгрузить данные из LinkedIn и GitHub или отправить CV и профиль заполнят за кандидата.
  • Есть скоринг — интервью с техническим рекрутером, который определит уровень разработчика, сильные и слабые стороны, дополнит профиль и добавит на платформу.
  • Сильная проверка. Все организации и проекты проверяются вручную. Нет вакансий от кадровых агентств.
  • Алгоритм матчинга — многокритериальный обучающийся алгоритм подбора, который на основе должности, формата работы (удаленно или офис), города, стека, зарплаты и навыков предлагает кандидатам вакансии.
  • Скоро добавятся предложения для удаленщиков и с релокацией.
  • Подходит для Middle и Senior-разработчиков.

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

ссылка на оригинал статьи https://habr.com/ru/post/490420/

Красный Хогвартс. Офицеры, или Почему историк подобен детективу

(Мы продолжаем цикл очерков из истории нашего университета под названием «Красный Хогвартс»).

В НИТУ «МИСиС» сейчас очень активно отмечается 75-летие Великой Победы. Это будет первый большой юбилей без ветеранов. Еще на 70-летие в университете были живы четверо, если не путаю, участников войны, за эти пять лет они все ушли.

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

Как и все интересные исторические расследования, оно началось с малого. Я бы даже сказал — с малого и скучного. Со скучного наследия бюрократов — протокола заседания Правления Московской горной академии в июне 1924 года:

«Параграф 25. Слушали: Заявление топографов геодезистов С. Лобик, В. Федорова, Румянцева, Орешкина о зачислении их на службу в состав топогр. геодезич. партии Комитета по Грозненским разведкам при М.Г.А. Постановили: Зачислить».

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

Заявление о приеме на работу, уведомление о приеме, дежурные справки о праве работников ВТУЗов на дополнительную жилплощадь в 20 квадратных аршин и запрещении «уплотнения», командировочное в Чечню…

Что это?

25 июня 1924 года начальник административно-хозяйственного управления Мирон Чередниченко отправляет телеграмму в Грозный ректору Московской горной академии, знаменитому академику Ивану Губкину: «ФЕДОРОВ БЫВШИЙ ОФИЦЕР БЕЛОЙ АРМИИ НЕОБХОДИМО ПОРУЧИТЕЛЬСТВО Я ЕГО НЕ ЗНАЮ ТЕЛЕГРАФИРУЙТЕ».

Губкин молниеносно отправляет из Грозного ответ: ФЕДОРОВУ ПОРУЧИТЕЛЬСТВО ДАНО БЫТЬ НЕ МОЖЕТ ПРИШЛИТЕ НЕМЕДЛЕННО ДРУГОГО ТОПОГРАФА ГУБКИН».

Реакция Губкина неудивительна — 1924 год, Гражданская война только-только закончилась, какие могут быть белые офицеры в первом советском техническом вузе? Но из оставшихся в деле документов становится понятно, что из МГА «недобитое офицерье» почему-то не выгнали. Он еще несколько лет работал в академии, ежегодно отправляясь в Чечню на топографические съемки, а уволился только в 1928 году «в виду прекращения топографических работ в Комитете».

В написанной Губкиным характеристике значилось: «В.А. Федоров проработал в Комитете МГА в качестве геодезиста и топографа четыре года (1924-28) и высказал себя знающим свое дело и весьма добросовестным работником». Изрядно сказано «красным академиком» о белом офицере.

Итак, что мы имеем? Мы имеем каких-то странных топографов, четыре фамилии с инициалами и… И ничего больше.

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

Первый

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

На обороте была полустертая надпись карандашом «Надя и B… я». Две буквы стерты, читаются только «В» и «Я», что невероятно расширяет варианты — это может быть и «Ваня», и «Вася» и даже «Валя». Снимок сделан в Виленской губернии в ателье фотографа Александра Штраусcа. Больше не знают о нем ничего, как писал Маршак.

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

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

На обороте была надпись: «Дорогой и милой Надечке от Васи. Рига, 15 февраля 1903 года».

Пасьянс сложился. «Первый» установлен. Имея всю эту информацию, биографию «Васи» вытащить было не трудно.

Кадровый офицер, «военная косточка» — это, впрочем, и по фотографиям видно. Родился в Смоленске в 1866 году, закончил Военно-топографическое училище, много лет работал на съемке Северо-Западного пограничного пространства, в 1906 году был командирован на 3-ю Маньчжурскую съемку. С 1912 года прикомандирован к Военно-топографическому управлению Главного штаба. Дальше так и служил в Генштабе — до 1918 года.

После революции в 1921 году ненадолго обнаруживается в Иркутске, но потом вновь возвращается в Генштаб, но теперь это уже Генштаб Рабоче-Крестьянской Красной армии. Последняя должность — старший топограф для поручений при главном инспекторе работ Управления картографии и военной топографии.

Полковник русской армии (с 6.12.1915 г.), кавалер орденов Св. Станислава III степени, Св. Анны III степени, Св. Равноапостольного Князя Владимира IV-й степени.

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

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

Дело в том, что именно 1923-24 года — это начало масштабной чистки Рабоче-Крестьянской Красной армии от подозрительных «военспецов-золотопогонников». А началось все именно с Корпуса военных топографов.


Офицеры Корпуса военных топографов.

Еще весной 1923 года были отданы под суд начальник корпуса военных топографов бывший полковник Дитц, его помощник Иванищев, начальник аэрофотографического отряда Животовский и комиссар Цветков. Еще несколько офицеров выгнали из РККА.

Но это была только присказка, сказка пришлась на конец 1923 года, когда по настоянию нового комиссара А.И. Артамонова в Корпусе произошел натуральный погром и в отставку отправили практически все руководство в полном составе. Как жаловались современники, после этой чистки в Военно-топографическом корпусе осталось лишь четверо профессионалов с профильным образованием, геодезическим отделением Академии Генштаба: новый начальник корпуса бывший полковник А.Д. Тарановский, его зам, начальник геодезического отдела подполковник П. П. Аксенов и руководители отдела научных работ генералы Н. О. Щеткин и Я. И. Алексеев.

Запомните фамилию Аксенова, она нам еще пригодится.


Подполковник Порфирий Петрович Аксёнов, 1883-1930.

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

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

Знающие топографы и геодезисты нужны были позарез, а тут — такая удача, сразу четверо специалистов, да каких! Overqualified — это еще мягко сказано.

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

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

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

Второй

Впрочем, старшим Федоров был только по возрасту, но не по должности. Самую впечатляющую карьеру в этой четверке сделал Сергей Павлович Лобик, который перед увольнением (9.11.1923 г.) занимал должность начальника Управления Корпуса военных топографов.

Это был человек другого поколения — на 20 лет младше Федорова, 1887 года рождения. Родился в Шлиссельбурге, происхождением «из простых» — сын народного учителя. Блестяще закончил все то же Военно-топографическое — с изучением дополнительного геодезического класса — и после выпуска был занесен на Доску почета училища.

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

С ноября 1914 года по июнь 1916-го он получил шесть орденов. За полтора года — шесть (!) орденов — Станислава, Анны и Владимира разных степеней. За бой 12 октября 1914 года Лобика представляли к Георгиевскому оружию, но «Георгия» не дали, заменив орденом Св. Равноапостольного Князя Владимира IV-й степени с мечами и бантом.

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

Заполняя анкету сотрудника МГА, бывшая легенда Павловского Российской Императорской лейб-гвардии полка капитан Лобик этот самый героический период своей жизни описал предельно лаконично: «Отбывал строевой ценз для Академии в пехотном полку». Дело в том, что Академию нельзя было попасть, не прослужив несколько лет «на земле», с личным составом, ротным или полковым командиром. Но обычно «строевой ценз» будущие генштабисты все-таки выслуживали, скажем так, в менее экстремальных условиях.

В деле Лобика, кстати, нашелся и финал истории с белогвардейцем Федоровым. Как выяснилось, была еще и третья телеграмма. Звучала она так:

ГРОЗНЫЙ, ГРОЗНЕФТЬ, ГУБКИНУ. ТОПОГРАФ ЛОБИК ВЫЕЗЖАЕТ СУББОТУ СКОРЫМ ПОЕЗДОМ ФЕДОРОВ ВЫЕЗЖАЕТ ВТОРНИК ПОРУЧИТЕЛИ ЕСТЬ ЯЗЫКОВ (тот самый Языков, с которого и начался этот цикл очерков)

Лобик и Федоров ушли из МГА они одновременно, в середине 1928 года. Лобик, как и его старший коллега, также получил справку-рекомендацию от Губкина о том, что "добросовестно исполнял все возлагаемые на него служебные поручения и специальные работы. Выдано на предмет представления к месту новой службы".

Что это было за место новой службы и было ли оно — истории пока неведомо.

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

От всего этого осталась ровно одна строчка в книге. В мало кем читаном сборнике трудов Московского нефтяного института им. Губкина издания 1969 года. Там один из тех самых студентов, которых они водили по Чечне, ставший ректором Московского нефтяного института и основателем кафедры геологии, уже на излете жизни напишет в своей вышедшей посмертно статье о Комитете по грозненским разведкам,: «К работе Комитета были привлечены бывшие военные топографы В. П. Румянцев, В.А. Федоров, Г. П. Орешкин, С.П. Лобик»…


Михаил Михайлович Чарыгин, бывший студент Московской горной академии, профессор, ректор Московского нефтяного института им. И. М. Губкина в 1939-42 гг.

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

Впрочем, уволились тогда не все. Владимир Петрович Румянцев остался.

Третий

Опять кадровый офицер, опять топограф, опять генштабист. Как и Федоров — из «довоенного» поколения топографов. Уроженец села Большие Березняки Симбирской губернии, 1879 года рождения. Помладше Федорова, но много старше Лобика, поэтому на фронт не попал — знающих топографов с хорошим опытом берегли, и в мясорубку без нужды старались не отправлять. С Федоровым явно знаком задолго до войны, вместе работали на съемке Северо-Западной границы, потом вместе в Маньчжурии, затем Румянцева переводят на Киевскую съемку. С 1914 года и вплоть до революции Владимир Петрович Румянцев — преподаватель в alma mater, Военно-топографическом училище.


В.П. Румянцев (в форме) с братьями и сестрой

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

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

Как выяснилось — на беду.

Потому что чистки Красной армии вовсе не закончились.

В октябре 1929 г. в конфликтную комиссию Политического управления РККА поступила жалоба от бывшего военного комиссара Военно-аэротопографического отдела Л. Ф. Гайдукевича на начальника военно-топографического отдела ГУ РККА А. И. Артанова. По жалобе была назначена проверка, а по результатам проверки…

По результатам проверки в военно-топографическом управлении Генштаба чекистами был раскрыт заговор, возглавляемый бывшим подполковником Порфирием Петровичем Асеновым — помните фамилию?

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

Аксенов Порфирий Петрович, русский, б/п, обр. высшее, пом.нач. Военно-топографического управления Красной Армии.

Мельников Георгий Петрович, русский, б/п, обр. среднее, нач.архива Военно-топографического управления Красной Армии.

Карпекин Николай Алексеевич, русский, б/п, обр. высшее, нач. Военно-топографического отдела Красной Армии в г. Ташкенте.

Ершов Дмитрий Сергеевич, русский, б/п, обр. высшее, профессор, зам. зав. фотогеодезич. отд. Московского геодезического ин-та, нач. Военно-аэрофототопографического отдела Военно-топографич. управления Красной Армии.

Румянцев Владимир Петрович, русский, б/п, обр. высшее, топограф Моск. горной академии и нач. топографических работ «Грознефти» Сулакского р-на…

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

Приговор приведен в исполнение 30 сентября 1930 года, место захоронения — Москва, Ваганьковское кладбище. Реабилитирован 16 января 1989 года.

Четвертый

Остался последний — Орешкин Григорий Петрович, самый младший в этой четверке, 1889 года рождения, на момент поступления в МГА ему было 35 лет.

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

Григорий Петрович был потомственный казак, родившийся в станице Урюпинской Хоперского округа области Войска Донского. Поэтому стезя казачьего офицера была написана ему на роду. Он закончил Военно-училищные курсы Новочеркасского казачьего юнкерского училища, и 6 августа 1910 года был выпущен «из портупей-юнкеров» в хорунжие в Первый Донской казачий полк.


Казармы 1-го Донского казачьего полка

Уже на службе в полку заинтересовался топографией и с 1912 по 1914 год обучался в геодезическом отделении Николаевской военной академии. Но тут начинается война и сразу же после выпуска сотник Орешкин уходит на фронт, в «родной» 18-й Донской казачий полк, формировавшийся из казаков станиц Хоперского округа, сборный пункт – станица Урюпинская.

Как и Лобик, всю войну прошел на переднем крае. Воевал не менее геройски, и по количеству полученных орденов Орешкин если и уступал товарищу, то незначительно — пять вместо шести: Станислав III и II степени, Анна IV (Аннинское оружие «за храбрость») и III степени, орден Святого Равноапостольного Князя Владимира IV-й степени с мечами и бантом.

В 1915 году был ранен, лечился в Киеве и в Москве, газеты зафиксировали: "Больные и раненые офицеры, прибывшие в Москву: сотник Орешкин Григорий Петрович в 12-й эвакуационный госпиталь…" (Газета «Русское слово» Пятница, 17-го апреля 1915 г. N 87.)


Из списков награжденных орденами

С 1916 года подъесаул Орешкин служит в Генеральном штабе, в 1917 году накануне революции — старший адъютант по службе Генерального штаба 47-го армейского корпуса 6-й армии Румынского фронта.

После революции, как и все четверо, принял сторону красных, в 1921 году — слушатель геодезического отделения Академии ГШ РККА и в Пулковской обсерватории. Последняя должность перед увольнением со службы — начальник 1-го отделения знаменитого астрономо-радиотелеграфного отряда. Уволен со службы 5 декабря 1923 г. согласно постановления все той же «особой комиссии по пересмотру личного состава военных топографов».

Дальше — как у тех троих: предложение Губкина, МГА, экспедиции, студенты, сокращение в 1928 году. Но в отличие от друзей Орешкин не исчезает бесследно.

Его фамилия вновь появляется в документах времен Великой Отечественной войны. Причем в личном деле Орешкина фигурирует примечательная фраза: "1889 года рождения. В РККА с 1941 года. Место призыва: Бауманский райвоенкомат, Московская обл., г. Москва, Бауманский р-н".

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

Никогда.

С началом войны, 23 июня 1941 года была объявлена мобилизация военнообязанных 14 возрастов, с 1905 по 1918 года рождения. После страшных поражений первых дней войны 10 августа Государственный комитет обороны издал постановление о мобилизации военнообязанных 1904—1890 годов рождения и призывников 1922—1923 годов рождения на территории Кировоградской, Николаевской, Днепропетровской областей и районов западнее Людиново — Брянск — Севск Орловской области. Позже это положение было распространено и на другие территории, в том числе 16 октября — на Москву и Московскую область.

Но и здесь, как мы видим, верхняя граница — 1890 год. Как же Орешкин оказался в армии?

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

Туда и ушел тем страшным летом 1941 года 52-летний Григорий Орешкин. Ушел делать свою работу — защищать Родину.


Ополченцы Москвы. 1941 г.

По окончании битвы под Москвой, конечно, пожилых людей (а по меркам того времени 52-летний — это практически старик) демобилизовали из армии по расформированию ополчений. Из Московского ополчения в действующую армию перевели только ополченцев не старше 1902 года рождения.

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

И попал наш Григорий Орешкин из огня — да в полымя. Из-под Москвы — в Сталинград.

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

Как он выжил в том аду на Волге — не могу даже предположить. Но факт остается фактом — вот его фамилия среди других бойцов, находившихся на службе в управлении и частях 156 укрепрайона МЗО. Воинское звание – инженер-капитан. Должность — начальник топогруппы.

Дорога, начавшаяся в Бауманском военкомате, оказалась долгой.

Бывший лихой казачий сотник, ставший геодезистом и астрономом, прошел всю войну. От начала и до конца, с 1941-го по 1945-й.

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

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

И курсантов, знаете ли, можно понять. Бывшего подъесаула, а ныне инженер-капитана Григория Петровича Орешкина действительно было за что уважать.

Сильный был человек, и офицер — настоящий.

«От героев былых времен не осталось порой имен — те, что приняли смертный бой, стали просто землей, травой…»

ссылка на оригинал статьи https://habr.com/ru/company/misis/blog/490398/