Вы находитесь на странице: 1из 30

СЛОВАРЬ

Автор: IT рекрутера
Язиля Насибуллина

IT Recruiter / Язиля

@Yazilya_n БАЗОВЫЕ ПОНЯТИЯ ДЛЯ


РЕКРУТЕРА И HR’а
СЛОВАРЬ IT РЕКРУТЕРА

БАЗОВЫЕ ПОНЯТИЯ ДЛЯ ЛЮБОГО РЕКРУТЕРА И HR’а

Активный поиск (executive search) – или также прямой поиск


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

Классический подбор – чаще всего встречается при расширении


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

Контроффер – предложение, которое делает ваш текущий


работодатель, если не хочет потерять вас и видит в вас ценного
сотрудника.

Массовый подбор - когда требуется нанять целую команду, несколько


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

Нанимающий менеджер – руководитель, линейный менеджер или лидер


команды, который принимает решение о найме сотрудника.

Оффер – предложение о работе, которое вы получаете при успешном


прохождении всех этапов и при взаимном интересе друг друга.

Поиск универсального сотрудника – чаще всего таких сотрудников


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

Поиск эксперта с узкими знаниями – когда


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

Портфолио – заранее оформленный сайт или презентация, в котором есть


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

Ресерч – то есть исследование, в случае рекрутмента исследование рынка


труда, анализ количества подходящих кандидатов, актуальная стоимость
разработчика на рынке, количество предложений на рынке, анализ компаний-
конкурентов, анализ ресурсов, на которых можно найти кандидатов.
Рекрутер (recruiter, recruitment manager) –
сотрудник, который занимается отбором,
поиском, оценкой персонала, здесь в разных
компаниях может входить также активный поиск,
то есть executive search, поиск пассивных
кандидатов, навыки хантинга, проведение
интервью, ведение переговоров. В некоторых
случаях рекрутеры также занимаются адаптацией.

Ресечер (researcher) – глубоко занимается сорсингом кандидатов, ищет по


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

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

Сорсер (sourcer) – сотрудник, который осуществляет поиск кандидатов


по альтернативным источникам, использует различные инструменты boolean
search, X-ray search, осуществляет поиск на митапах, агрегаторах, сервисах.

Сорсинг - поиск it специалистов на разных площадках, с использованием


различных инструментов, таких как boolean search, плагины, агрегаторы.

Тестовое задание – дополнительное задание на оценку


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

Хантинг (hunting) – прямой поиск кандидатов из шорт-листа, жесткие


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

Boolean Search или булевой поиск – это поиск по базам данных с


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

Hard skills (профессиональные навыки) – это


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

2
Soft skills (личностные компетенции), то есть личностные качества –
надпрофессиональные навыки, не связанные с должностными обязанностями
человека. Примеры: мотивация, лидерские и управленческие навыки,
открытость, гибкость, легкость коммуникации.

X-ray – это поиск по конкретному сайту и его сканирование с помощью


логических операторов.

ТИПЫ СОБЕСЕДОВАНИЙ

Кейс интервью – кандидату дается определенная ситуация для решения,


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

Интервью по компетенциям – рекрутер чаще всего просит приводить


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

Поведенческое интервью – часть интервью, на которой оцениваются


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

Стресс-интервью – данный тип используется все меньше, но к нему


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

Структурированное собеседование – рекрутер идет по заранее


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

Culture fit – соответствие негласным правилам команды. Соответствие


ценностям, устоям, негласным правилам, традициям, особенностям команды
или компании.

HiPo (high potential) – сотрудники с высоким


потенциалом, способные к развитию и могут эффективно
продвигать компанию на рынке. Возможность заявить о
себе и быть полезным бизнесу в других HR процессах, 80%
прибыли вашей компании создают 20% самых талантливых
сотрудников. HiPo сотрудники к изменениям быстро
учатся, развиты в активностях, изучают и переваривают
информацию быстро. Таких сотрудников отличают: вовлеченность,
стремлением к достижению целей, стрессоустойчивость, высокая
продуктивность, хорошая обучаемость
3
OKR – система оценки эффективности работы (успешно используется
компанией Google и многими другими). Он включает личные цели (objectives,
стратегические цели, которые нужно достичь) и ключевые результаты (Key
results – то, что позволяет отслеживать прогресс).

ROI – Return on investment – окупаемость инвестиций.

РЕСУРСЫ РАЗРАБОТЧИКОВ

GitHub – веб-сервис для хостинга ИТ проектов и их совместной


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

Stack Overflow — это сервис, предназначенный для того чтобы


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

Linkedin – это социальная сеть, изначально считается предназначенной


для профессионалов, а потому в ней никто не удивляется предложению
вакансии. Даже среди разработчиков (как в России, так и за рубежом) это
наиболее популярная профессиональная сеть. Сейчас Linkedin можно
пользоваться посредством установки VPN плагина.

VC.ru - крупнейшая в рунете платформа для предпринимателей и


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

Habr - одинаково интересен программистам и разработчикам,


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

Habr Career - сервис развития карьеры в IT. Здесь работодатели находят


себе специалистов, а соискатели — работу в самых разных сферах IT-
индустрии: программирование, верстка, дизайн, менеджмент, веб-аналитика,
маркетинг и других. До 2020 года раньше был Мой Круг.

Hackerrank – сайт создан для практики программирования. Можно


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

Angel list – это площадка, где стартапы ищут инвестиции. В этой


компании сначала было написано много кода, который в итоге был выброшен.
После неудачного старта основатели пошли другим путем.

4
Xing – бизнес-ориентированная социальная сеть для поиска и
администрации деловых и личных контактов.

Telegram – мессенджер, кроме текста можно отправлять файлы,


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

Slack – это облачный корпоративный мессенджер, чаще всего


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

Gitter - это сервис для обмена мгновенными сообщениями, построенный


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

Skype – мессенджер для видеосвязи и отправки данных.

ПОЛЕЗНЫЕ РАСШИРЕНИЯ ДЛЯ РЕКРУТЕРОВ

Candy Jar – бесплатное расширение для Google Chrome.


https://bit.ly/2A7lGWD позволяет ИТ рекрутерам искать кандидатов на разных
ресурсах, находясь на одном ресурсе. Контакты собираются из 10+ источников.
Сервис анализирует исходный код на Github и определяет hardskills
кандидатов.

AmazingHiring – плагин Amazing Hiring можно установить в Google


Chrome по ссылке https://bit.ly/2W7f6Il. Расширение Amazing Hiring позволяет
бесплатно искать технических кандидатов и позволяет найти профили одного
кандидата на других социальных и профессиональных сетях. Амайзинг
агрегирует более 50 различных сайтов. Позволяет работать с пассивными
кандидатами и закрывать вакансии в несколько раз быстрее.

OctoHR – плагин для Google Chrome https://bit.ly/3dilgel.

OctoHunt – поиск профилей на гитхаб. Задаются два параметра: язык


программирования и локация поиска https://octohunt.com/.

GlossaryTech – сервис, который дает возможность IT рекрутеру быстро


понять терминологию разработчиков.
У GlossaryTech есть расширение Google, которое выдает определение
слова при наведении. При наведении на слово SEO в профиле на Linkedin
появляется четкое определение. Единственный минус для некоторых в том, что
ресурс на английском. Но есть переводчик.
OneTab по клику мыши на расширение собирает все вкладки в одном
месте, сохраняет, и после к ним можно обратиться без опасения, что вы их
потеряли.

Prophet – расширение, которое выглядит как сервис, с внутренними
фильтрами для поиска. Можно выбрать на каких ресурсах искать. Выводит
интересные результаты по Linkedin. Достаточно узкие, но интересные. Часто не
совпадает с булевыми запросами, внутренними фильтрами.
5
Multi-highlight – ищет заданные слова и выделяет их на странице. За счет
такого инструмента поиск по Headhunter многочисленных резюме становится
быстрее. Работает на всех сайтах.

LinkedIn Extension – это расширение загорается новым счетчиком


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

AutoPagerize расширение браузера для автоматической загрузки страниц,


разбитых на страницы. AutoPagerize используется на многих веб-сайтах и
обеспечивает быстрый сорсинг на веб-страницах.

Extensity – лучший инструмент для молниеносного включения и


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

Github Email – просто скопируйте и вставьте или введите имя


пользователя для получения электронной почты.

BooleanAssistant – генератор булевых запросов и помогает найти


почту кандидата на Linkedin.

OCtoHR – расширение дает информацию о профиле на github,


процентное соотношение языков программирования. Иногда выводит
почту профиля. Так же есть возможность через виджет с помощью
простых фильтров искать кандидатов на GitHub.

Browsec VPN – расширение для входа в Linkedin. По моему опыту


работает лучше всего.

CV Timeline – расширение для браузера, которое автоматически


извлекает данные профиля из Linkedin и отображает интуитивно понятный и
интерактивный формат временной шкалы CV кандидатов.

Improver – расширение, которое позволяет открыть почту и иногда


телефон профиля на Linkedin. Бесплатно можно открыть 10 контактов за месяц,
далее платно. Каждый месяц обновляется лимит до 10.

Lusha – помогает найти контакты профиля на Linkedin. Чаще находит


почту корпоративную или рабочую. Но бывает, что находит почту личную и
телефон профиля.

ПРОФЕССИОНАЛЬНЫЕ ФОРУМЫ И ДРУГИЕ


СОЦИАЛЬНЫЕ И ПРОФЕССИОНАЛЬНЫЕ СЕТИ

Lookatme
Bullhornreach
Livejournal
Профессионалы
6
SQL.ru
Programmersforum
Linux.org
Javatalks
Software-testing
PHPclub
Realcoding
Weblancer
Sysadmins
3wforums
Itmozg
Promoforum
SQLINFO
Jooomla
Webonrails
Brainstorage
Maultalk
SEOSHNIK
Cyderforum
Furfut
WOS
Woweb
Hardforum
PHPforum

БАЗОВЫЕ ПОНЯТИЯ ДЛЯ IT РЕКРУТЕРА

Репозиторий – место, где хранятся и поддерживаются какие-либо


данные. Чаще всего данные в репозитории хранятся в виде файлов, доступных
для дальнейшего распространения по сети. Чаще всего, когда мы спрашиваем у
кандидата про примеры кода, то имеется в виду открытые репозитории на
Github или Bitbucket.

Opensource проекты – это приложения, чей код доступен всем. Их


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

Веб-приложение – это клиент-серверное приложение, в


котором клиентом выступает браузер, а сервером – веб-сервер
(в широком смысле).

Двухзвенная архитектура – распределение трех


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

Трехзвенная архитектура – сетевое приложение разделено на две и


более частей, каждая из которых может выполняться на отдельном
компьютере. Выделенные части приложения взаимодействуют друг с другом,
обмениваясь сообщениями в заранее согласованном формате.
7
Веб-сервер – это сервер, принимающий HTTP-запросы от клиентов и
выдающий им HTTP-ответы. Веб-сервером называют как программное
обеспечение, выполняющее функции веб-сервера, так и непосредственно
компьютер, на котором это программное обеспечение работает. Наиболее
распространенными видами ПО веб-серверов являются Apache, IIS и NGINX.
На веб-сервере функционирует тестируемое приложение, которое может быть
реализовано с применением самых разнообразных языков программирования:
PHP, Python, Ruby, Java, Perl и пр.

Языки высокого уровня – языки, которые не зависят от процессора,


когда под тобой появляется новое железо, тебе не нужно переписывать
программу.
1. Языки низкого уровня (машинные коды и ассемблер).
2. Средний уровень (C, Фортран ).
3. Высокий уровень (C++, C#, Java, Python, Ruby, JavaScript ).

Фреймоврк – программная платформа, определяющая структура


программной системы, облегчает разработку и объединение разных
компонентов большого программного проекта. Фреймворк можно представить
ка каркас программной системы или подсистемы, может включать
вспомогательные программы, библиотеки кода, язык сценариев и другое ПО.
Обычно объединение происходи за счет использования единого API.
Преимущества использования фреймворков: скорость разработки,
удобство разработки, чистота кода.
Недостатки: безопасность, скорость работы, нужно время для освоения и
переучивания.
Примеры: Angular, Vue, Spirng, Symfony, Laravel.

Тонкий клиент – отображение информации без обработки и хранения, не


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

Толстый клиент – может обрабатывать и хранить данные, есть бизнес


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

Сервер: примеры и виды: физический сервер, сервер баз данных (SQL


Server), веб сервер (apache, nginx), сервер приложений (tomcat), почтовый
сервер, файловый сервер ( FTP), Видео, аудио, радио или другие медиасерверы
(Asterisk), терминальный сервер ( VNC, RDP).

LAMP – linux, Apache, MySQL, PHO (Maria DB, Perl, Python)


MEAN - MongoDB, express, Angular, Node.js
CMS – content management system - система управления содержимым.
Примеры: Wordpress, Joomla, Drupal, Bitrix, ModX, Magento.
Legacy-код (произносится: легаси) – это устаревший код, который более
не поддерживается и не обновляется, но используется. Код, который достался
нынешнему разработчику в наследство от сторонних разработчиков или из
старых версий. Разработчики не любят с ним работать, поэтому спрашивают
процентное соотношение или уточняют, есть ли на проекте легаси.

8
Библиотека – реализация часто используемого функционала в виде
отдельной сущности. Библиотеку можно представить как файл, который
содержит код и иожно включить его в программу. То есть своего рода набор
готовых объектов, часто встречающихся (стандартных вычислительных
операций, сделанных за разработчика. Примеры библиотек: STL, Boost, React.

Стили программирования: процедурный/императивный,


функциональный, логический, объектно-ориентированный.
Процедурный/императивный – использование памяти компьютера для
хранения данных. Формирование инструкций последовательных команд,
которые должна выполнять машина. Например: Cobol, C, Fortran.
Функциональный – реализация функций без хранения значений. Что
делать в целом, а не в конкретном случае. Например: Lisp, Clojure, Scala, R,
Haskell.
Логический – оперирование математической логикой для ввода новых
фактов и состояний из уже известных.
Объектно-ориентированный (ООП в резюме разработчиков) –
поддерживает императивное программирование. Например: Java, C++, Python,
C#. Позволяет манипулировать кодом и программой как разными объектами. 3
кита ООП: инкапсуляция, полиформизм, наследование.

TDD – test-driven development – код, который покрывается тестами для


того, чтобы проверить каждый объект в отдельности.

API – Application programming interface – интерфейс, который помогает


управлять программой извне. Например, переслать файл из OneDrive в чат в
WhatsApp.

Enterprise разработка – разработка, направленная на решение проблем


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

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

Enterprise продукты – Java, C# (стэк Сбербанка например)


Web разработка - PHP, Python, Ruby ( на Ruby написана платформа
UCHI.ru)
Высокопроизводительные сервисы – С++, Golang
Обработка больших данных – Scala
Научные задачи – Python, R.
В сфере машинного обучения – Python

Компилируемые –- компиляция в машинный код. Преимущество


компилируемых языков в скорости выполнения, недостаток – нужно
скомпилировать, усложнение откладки, платформо-зависимые. Примеры
языков: С, С++, Erlang, Haskell.

JIT (Just in time compiltation) – компиляция происходит во время работы


программы. Используется в реализациях Java, JavaScript, .NET Framewor,
Python (PyPy).

9
AOT (ahead of time compilation) – когда мы говорим: «Вот исходный код
преврати его в программу», применяется как для компиляции
высокоуровневых языков: С, С++, Паскаль. И промежуточных. Байт-код Java,
.NET (CIL), IBM System

Интерпретируемые инструкции исполняются другой программой –


интерпретатором. Преимущество – независимость от платформы,
динамическая типизация, проще отлаживать. Недостаток – невысокая скорость
исполнения, но есть JIT-компиляция. Примеры языков: PHP, Perl, Ruby, Python.

Байткод языки используют для исполнения кода как компиляцию, так и


интерпретацию, сначала происходит компиляция программы из человек
читаемого языка в байткод, после виртуальная машина интерпретирует
байткод в машинный (JVM, CLR). Преимущество – платформонезависимость,
быстрее интерпретируемых. Примеры языков: Java, .NET.

Frontend разработка – клиентская часть сервиса, которая видна


пользователю. Язык программирования - JavaScript (JS).

Backend разработка – серверная часть сервиса, которая не видна


пользователю и осуществляет передачу и возврат данных с сервера. То есть
логика функционирования любой системы. Языки
программирования: Java, C++, Python, C#, PHP, Ruby,
Golang (Go).

Full-stack разработка – разработка frontend и


backend частей одним разработчиком.

Web-разработка – разработка любого сайта, что


может работать в браузере (тонкий клиент).

Desktop разработка – разработка монолитных


приложений, требующие установку на компьютер, телефон (Толстый клиент).

Мобильная разработка (iOS, Android, Windows mobile) – разработка


мобильных приложений (интерфейс и логика). Здесь нет разделения на frontend
и backend: один разработчик пишет интерфейс и логику общения с сервером.

Тестирование – тестирование системы, как frontend, так и backend для


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

Поддержка и доработка (эксплуатация) – поддержка серверов в


рабочем состоянии, настройка deploy системы или release-менеджмента.
Настройка виртуальных облаков и их функционирования.

Многопоточность – свойство платформы или приложения, состоящее в


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

10
Оптимизация
Объекты синхронизации – semaphore, mutex.
Библиотеки– boost, util.concurrent.
Проблемы - deadlock, race condition.
Проекты – биллинг, RTB.

СЕТЕВЫЕ ПРОТОКОЛЫ

TCP/IP — набор протоколов передачи данных, получивший название от


двух принадлежащих ему протоколов: TCP (англ. Transmission Control Protocol)
и IP (англ. Internet Protocol).

Наиболее известные протоколы, используемые в сети Интернет, знание


которых может пригодиться при поиске инженеров технической поддержки,
системных администраторов:

HTTP (Hyper Text Transfer Protocol) — это протокол


передачи гипертекста.

HTTPS (HyperText Transfer Protocol Secure) -


расширение протокола HTTP для поддержки шифрования, в
целях повышения безопасности. Данные в протоколе HTTPS
передаются поверх криптографических протоколов SSL или TLS.

SSL ( Secure Sockets Layer — уровень защищѐнных cокетов) —


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

FTP (File Transfer Protocol) — это протокол передачи файлов со


специального файлового сервера на компьютер пользователя.

POP3 (Post Office Protocol) — это стандартный протокол почтового


соединения.

SMTP (Simple Mail Transfer Protocol) — протокол, который задает набор


правил для передачи почты.

TELNET — это протокол удаленного доступа.

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


связи IPN, которые используются NASA.

Прокси-сервер (proxy — «представитель, уполномоченный») -


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

CRM – Customer Relationship Management


Автоматизированная система управления взаимоотношениями с
клиентами. Направленная на построение устойчивого бизнеса концепция и
бизнес-стратегия, ядром которой является клиентоориентированный подход.
11
ERP – Enterprise Resource Planning
Комплекс интегрированных приложений, позволяющих создать единую
среду для автоматизации планирования, учета, контроля и анализа всех
основных бизнес-процессов предприятия.

Help Desk (Компьютерная служба помощи)


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

Patch (Исправление, «заплатка»)


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

Peer-to-Peer (Одноранговое взаимодействие)


Метод соединения узлов в сети, отличаемый отсутствием выделенного
файлового сервера.

VPN – Virtual Private Network (Виртуальная частная сеть)


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

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

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

FRONTEND РАЗРАБОТКА

JavaScript – Frontend. Язык был разработан для взаимодействия


клиентского веб-браузера с пользователем и удалѐнным сервером. JavaScript –
скриптовый, строго не типизированный язык для разработки frontend части.
Наиболее популярные фреймворки: Angular, React и VUE.
В данное время относительно активно употребляется и на web и т. п.
серверах (backend), особенно популярен Node.js.
Typescript, Flow – версии языка JavaScript
Angular, React/Redux, Vue.js – фреймворки JavaScript

Типы верстки: существует 5 типов версток, но в современном мире


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

12
Так же ранее верстка была табличная, статичная (используется на ТВ),
резиновая (когда приближаешь/уменьшаешь контент, но блоки остаются на
своих местах).

Кросс-браузерная верстка – одно из требований


к верстке, разные браузеры и их версии по-разному
отображают стили.

Адаптивная – когда делаешь экран шире/уже и


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

HTML (HyperText Markup Language) – стандартизированный язык


разметки документов в интернете. Большинство веб-страниц содержат
описание разметки на языке HTML (или XHTML). Язык HTML
интерпретируется браузерами; полученный в результате интерпретации
форматированный текст отображается на экране монитора компьютера или
мобильного устройства.

CSS (Cascading Style Sheets) — формальный язык описания внешнего


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

ЯЗЫКИ ПРОГРАММИРОВАНИЯ

Node.js – программная платформа JavaScript, построенная на движке


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

Python – научная и инженерная сфера (помимо веб-области). Является


альтернативой стандартным вычислительным и математическим пакетам
(Mathematica, Octave, MatLab…), но имеет привычную семантику языка и
большое число библиотек. Имеет много поклонников в области систем
машинного обучения, статистики и искусственного интеллекта. Из часто
используемых библиотек необходимо упомянуть django, numpy, pandas,
tensorflow.
Асинхронность в программировании — выполнение процесса в
неблокирующем режиме системного вызова, что позволяет потоку программы
продолжить обработку. Способы реализации асинхронности: Async/Await,
coroutine — сопрограмма, aiohttp, callback — обратный вызов, Asyncio и
Gevent.

13
Синхронные фреймворки: Django, Flask Синхронные – когда код в
программе исполняется поэтапно и в строго заданной последовательности.

Асинхронные фреймворки: Tornado, Aiohttp. Те у которых при


выполнении программы появляется «многопоточность» то есть может
выполняться несколько функций параллельно. На самом деле,
многопоточность в python – псевдо. На самом деле, это исполнение функции
отложенное во времени.

С++ – универсал, эволюционное развитие языка C. Предоставляет


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

NET Core — это модульная платформа для разработки программного


обеспечения с открытым исходным кодом.

QT – фреймворк на C++/C – используется, когда нужно написать


«толстый». Клиент, когда для работы с сервером ты устанавливаешь себе
какую-то программу. На QT написан Skype, VLC.

Unity — межплатформенная среда разработки компьютерных игр,


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

UGUI – гибкий и удобный инструмент для создания и редактирования


игровых пользовательских интерфейсов.

ASP.NET (Active Server Pages для .NET) — платформа разработки веб-


приложений, в состав которой входит: веб-сервисы, программная
инфраструктура, модель программирования, от компании Майкрософт.
ASP.NET входит в состав платформы .NET Framework и является развитием
более старой технологии Microsoft ASP.

ASP.NET AJAX — расширение, содержащее как клиентские, так и


серверные компоненты для создания ASP.NET страниц, реализующих AJAX
функциональность;

ASP.NET MVC — фреймворк для создания веб-страниц с


использованием шаблона проектирования MVC;

Flask – относится к категории минималистичных фреймворков, он


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

Tornado – асинхронный фреймворк, предназначенный в первую очередь


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

JAVA

Java – условно компилируемый язык, потому что в нем происходит JIT


компиляция. Так существуют современные бразеры: код компилируется справа
в фоне, а потом блоки кода просто заменя/тся друг на друга – движок Chrome,
Firefox.

Фреймворки Java – Spting Boot, Spting MVC, Dropwizard, grails, GWT,


JAX-RS, JHipster, JSF, Lagom, Play framework, ratpack, Seam,
Sparkjava, Struts. Tapestry, Vaadin, Wicket.

Java SE (Standard Edition) – основная реализация


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

Java EE (Enterprise Edition) – набор спецификаций


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

Java ME (Micro Edition) – создана для использования на устройствах,


ограниченных по вычислительной мощности, например, на мобильных
телефонах, КПК, встроенных системах;

JVM обеспечивает возможность запуска Java приложений на любых


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

JVM – виртуальная машина, которая имитирует среду, в которой


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

Spark - отличный фреймворк для написания веб-бэкенда

PHP

PHP – скриптовый, интерпретируемый язык, динамической типизации, с


принципами ООП. На PHP разрабатывают сайты, веб-сервисы. Последняя
версия PHP 7&3. Большие изменения с точки зрения функциональности
произошли при переходе с 5 версии на 7. Версии всегда выпускались с
хорошей обратной совместимостью. Язык тяжело работает в условиях высокой
нагрузки, необходимости оптимизации памяти, может быть большое
количество костылей в коде при разработке высоконагруженного проекта.

15
Фреймворки PHP: Laravel, Symfony, Yii, Zend, Falcon.

Golang (Go) вытесняет PHP так как на нем быстрее пишется программа,
выдерживается нагрузка. Относительно молодой язык, главное преимущество
производительность, а не архитектура, порг входа в язык средний, язык
микросервисов.

Ruby – Backend. Применяется для создания скриптов (служебных


сервисных файлов) и на web серверах. Основной фреймворк - Ruby On Rails.

Ruby – скриптовый, динамический, интерпретируемый язык. Это язык


соглашений, в нем очень много неявных соглашений, то есть на нем
невозможно писать, пока не изучишь все правила. Ruby высокий порог входа.
Версия Ruby 2&6 b 3&0
Ruby on Rails (RoR или рельсы) – основной фреймворк Ruby.
Остальные фреймворки: Rack, Sinatra, Hanami, Padrino, Cramp, Cuba.

Теорема CAP (известная также как теорема Брюера) — эвристическое


утверждение о том, что в любой реализации распределѐнных вычислений
возможно обеспечить не более двух из трѐх следующих свойств:
– согласованность данных (англ. consistency) — во всех вычислительных
узлах в один момент времени данные не противоречат друг другу;
– доступность (англ. availability) — любой запрос к распределѐнной
системе завершается корректным откликом, однако без гарантии, что ответы
всех узлов системы совпадают;
– устойчивость к разделению (англ. partition tolerance) — расщепление
распределѐнной системы на несколько изолированных секций не приводит к
некорректности отклика от каждой из секций.
Требованию CA – отвечает Postgres
Доступност – Cassandra
Устойчивость к разделению -Redis

R — язык программирования для статистической обработки данных и


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

Scala — мультипарадигмальный язык программирования,


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

16
ИСКУССТВЕННЫЙ ИНТЕЛЛЕКТ
МАШИННОЕ ОБУЧЕНИЕ И КОМПЬЮТЕРНОЕ ЗРЕНИЕ

Machine Learning – машинное обучение


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

Нейросеть – это одна из моделей машинного обучения. С


ее появлением ускорилась саморазвитие машинного обучения

Computer vision — это совокупность технологий, методов и алгоритмов,


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

OpenCV (англ. Open Source Computer Vision Library, библиотека


компьютерного зрения с открытым исходным кодом) — библиотека
алгоритмов компьютерного зрения, обработки изображений и численных
алгоритмов общего назначения с открытым кодом. Реализована на C/C++,
также разрабатывается для Python, Java, Ruby, Matlab, Lua и других языков.

TensorFlow — открытая программная библиотека для машинного


обучения, разработанная компанией Google для решения задач построения и
тренировки нейронной сети с целью автоматического нахождения и
классификации образов, достигая качества человеческого восприятия[4].
Применяется как для исследований, так и для разработки собственных
продуктов Google. Основной API для работы с библиотекой реализован для
Python, также существуют реализации для R, C Sharp, C++, Haskell, Java, Go и
Swift.

Scikit-learn – бесплатная библиотека машинного обучения для языка


программирования Python.

SciPy — библиотека для языка программирования Python с открытым


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

BI – busiless intelligence.

DWH – Data WareHouse. Работа с информацией: OLAP, отчетность,


кубы, витрины данных.
Инструменты: QuickView, Tableu, MSRS/MSIS/MSRS

Mobile СУБД – sq Lite, Realm.

17
БАЗЫ ДАННЫХ

СУБД – система управления базами данных.


Примеры: MySQL, Oracle, MS SQL, PostgreSQL.

База данных (БД) – это информационная модель,


позволяющая упорядоченно хранить данные об объекте
или группе объектов, обладающих набором свойств,
которые можно категорировать. Базы данных
функционируют под управлением, так называемых,
систем управления базами данных (далее – СУБД). Самыми популярными
СУБД являются MySQL, MS SQL Server, PostgreSQL, Oracle (все – клиент-
серверные).

Реляционные базы данных – база данных, основанная на реляционной


модели данных. Данные в таких базах можно представить в виде реляционных
моделей. Данные между разными таблицами связаны по ключевым полям.
Доступ к таким данным можно получить с помощью языка SQL. Кроме того
можно изменять, обновлять, загружать и выгружать эти данные. Упрощенно
можно представить реляционные базы как таблицы. Примеры таких баз: Oracle,
MySQL, PostgreSQL, SQL Server.

Нереляционные БД – NoSQL, общий термин, для различных баз данных


и хранилищ, сделанных на основе совершенно различных принципов.

Самые известные реляционные базы данных:


MS SQL Server – как вы можете догадаться, это продукция Microsoft.
Соотвтетсвенно, до 2016 года не поддерживала Linux и работала только под
Windows.
PostgeSQL – довольно старая open-source (то означает открытое,
бесплатное ПО) СУБД.
Oracle – дорогая и очень сложная СУБД.
MySQL – очень старая open-source СУБД, которая часто используется в
веб-проектах.

Нереляционные БД делятся на 4 типа:


Ключ – значение. СУБД: Redis, MemcacheDB.
Семейство столбцов (это такой способ организации данных). Примером
таких СУБД будут Cassandra, HBase.
Документоориентированные СУБД: MongoDB, CouchDB.
Графовая СУБД: OrientDB.

Хранимая процедура – набор SQL-инструкций, который компилируется


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

Триггер – хранимая процедура или функция, которая запускается при


возникновении каких-то событий. Например, счетчик.

18
Хранилища: MySQL, PostgreSQL, Oracle, SQL, Momgo DB, Redis,
Clickhouse, Hadoop.
Очереди: RabbitMQ, Kafka, OMQ.
Инфраструктура: AWS, Google Cloud platform.

Transact-SQL (T-SQL) - процедурное расширение, созданное компанией


Microsoft для работы со своими базами.
PL-SQL расширение, созданное компанией Oracle.

Hadoop — проект фонда Apache Software Foundation, свободно


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

Apache Kafka — распределѐнный программный брокер сообщений,


проект с открытым исходным кодом, разрабатываемый в рамках фонда Apache.
Написан на языке программирования Scala и Java.

Amazon Web Services (AWS) — коммерческое публичное облако,


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

Apache Cassandra — распределѐнная система управления базами


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

SQL (ˈɛsˈkjuˈɛl; англ. structured query language — «язык


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

NoSQL (от англ. not only SQL — не только SQL) — термин,


обозначающий ряд подходов, направленных на реализацию систем управления
базами данных, имеющих существенные отличия от моделей, используемых в
традиционных реляционных СУБД с доступом к данным средствами языка
SQL. Применяется к базам данных, в которых делается попытка решить
проблемы масштабируемости и доступности за счѐт атомарности (англ.
atomicity) и согласованности данных
Примеры: MongoDB, elastcsearch, HBase, Hadoop, Cassandra, DynamoDB,
Redis, Tsrsntool/.

19
УРОВНИ РАЗРАБОТЧИКОВ

Junior разработчик – знает базовые


математические алгоритмы, знает нативный
язык, знает какой-то фреймворк под свой язык.

Middle – знает алгоритмы, нативный язык,


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

Senior – плюс к middle разработчику имеет коммерческий опыт


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

Teamlead – самый сильный технический специалист в команде: может


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

УПРАВЛЕНИЕ ПРОДУКТОМ

PM ( Project manager) – человек, который


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

PM (Product manager) – Менеджер продукта отвечает за успех продукта


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

Product owner – Владелец продукта – роль пришедшая из Scrum и


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

Waterfall методология влияет на строгость и последовательность этапов


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

20
Минус такого метода в долгосрочном планировании, так как оно
предъявляет высокие требования к компетенции в предметной области. Также
неизменяемой внешней среды.
Проблема водопадной модели в высоком риске ошибок при
планировании бюджета. Чаще всего такой подход в разработке применяется в
государственном секторе и в некоторых случаях в заказной разработке.

Agile – общая методология гибкой разработки. Как итог использования


agile бизнес получает то, что хочет. Как недостаток, разработка может вестись
бесконечно. Данная методология используется все чаще и чаще. Но
преимущественно в продуктовой разработке.
По манифесту Agile подчиняются следующие методологии: Scrum,
Kanban, XP, Scrumban.

SCRUM – концепция работы в условиях сорванных сроков и


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

XP (Extreme programming) – экстремальная разработка в динамической


среде.

Kanban – гибкая методология разработки программного обеспечения,


ориентированная на задачи.

SLA – service level agreement, может включать свой набор критериев для
проекта, и у каждого проекта набор может отличаться. Главное: сроки, бюджет
и качество разработки.

GIT/SVN/TFS (Version Contrrol System) – система которая позволяет


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

Jira, Trello – task management software, программы для управления


задачами проекта. Асинхронность.

CustDev (Customer Development) – это «процесс получения инсайтов от


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

MVP – (Minimum Viable Product – минимально жизнеспособный


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

GTM (go-to-market) – GTM продукта (или выход на рынок ) – это


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

21
Use Case – использование является гипотетическим (но
правдоподобным) сценарием , показывающим, как пользователи того или
иного продукта может взаимодействовать с продуктом для достижения
конкретной цели. Менеджеры по продуктам часто используют сценарии
использования для объяснения посредством простых для понимания историй,
как и почему клиенты будут использовать различные части продукта.

Sprint – это период времени


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

Roadmap – в управлении продуктами дорожная карта – это


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

Alpha Test – используется чаще всего в индустрии программного


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

Beta Test – широкое распространение до запуска продукта ( как правило


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

Value Proposition – в управлении продуктом ценностное предложение –


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

МОБИЛЬНАЯ РАЗРАБОТКА

React Native – язык создан и развивается


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

Android – под Андроид можно писать с


помощью Java или Kotlin.

SDK – Software development kit – набор программ, который нужен, чтобы


начать разрабатывать – среда разработки, компилятор, отладчик.
22
Kotlin – язык, который работает поверх JVM. Сейчас приложения под
Android чаще пишут на Kotlin.

RxJava – функциональное реактивное


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

iOS – разработка мобильного приложения под


iOS платформу. Ранее, исторически на iOS
разрабатывался с помощью Objective-C – это
надстройка над языком «С», который был
разработан компанией Apple. Сейчас большинство приложений пишутся с
помощью Swift.

Swift – язык программирования, которы заимствовал идеи из Objective-C,


Rust, Haskell, Ruby, Python, C#.

IDE – Integrated Development Environment – это XCode / App Code.

Xamarin – кроссплатформенный язык программирования для мобильных


приложений.

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


под платформу.

DEVOPS

DevOps – development, IT operations. QA (Quality assurance) – это набор


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

Docker – отдельный виртуальный контейнер со средой, аналогичной prod,


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

Gitlab-CI, Jenkins – программы для обеспечения непрерывной


интеграции программного обеспечения.

CI/CD – Continuous integration/ continuous delivery – непрерывная


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

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

Continuous deployment – непрерывное развертывание, отвечает за то,


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

Continuous integration – непрерывная интеграция – постоянное


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

Codereview – процесс проверки одним разработчиком кода, который


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

Операционная система – комплекс взаимосвязанных программ,


предназначенных для управления ресурсами компьютера и организации
взаимодействия с пользователем. Основные:
Windows, Linux, MacOS, Android, iOS.

Nginx – веб-сервер и почтовый прокси-


сервер, работающий на Unix-подобных
операционных системах.

ТЕСТИРОВАНИЕ

Модульное тестирование отдельных модулей. Относится к


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

Интеграционное – одновременное тестирование


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

Системное – тестирование всей системы сразу. Чаще


выполняется вручную, но иногда включено в автотесты.
Создаются специальные сценарии, и в конце сценария
ожидаются определенные результаты. Если результаты не
достигаются, то тест не пройден.
24
Альфа – первая версия функционала. Проводится самими
разработчиками. Основная цель – работоспособный прототип.

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


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

Релиз-кандидат (RC) – финальное тестирование перед релизом. Всегда


проводится тестировщиками.

Приѐмочное тестирование – тестирование выпущенной версии


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

Дымовое (Smoke) – тестирование, при котором выполняется


минимальный набор тестов, которые скажут в целом – есть ли существенные
ошибки в функционале, или нет.

Регрессионное – тестирование, при котором проверяется, что с выходом


нового функционала старая функциональность по-прежнему корректно
работает.

Повторное – тестирование, при котором проверяются только те участки,


которые выдали ошибку в прошлый раз.

Тестирование сборки – при непрерывной интеграции разработчик


отправляет свои изменения на автоматизированное тестирование. При этом
создаются сборки продукта (builds), которые включают его изменения и
которые будут проверены автотестами.

Санитраное тестирование – проверка какой-то конкретной


feature,которая только что изменилась, либо реализовалась.

White-box– тестирование по спецификации о продукте.

Black-box – тестирование, когда спецификация отсутствует.

Спецификация – набор характеристик, которым должно обладать


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

Grey-box – спецификация к продукту есть только частичная.

Функциональное тестирование – когда система удовлетворяет


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

Тестирование локализации – проверка однотипности отображения


информации на разных языках.

25
Тестирование взаимодействия – включает в себя совместимость и
интеграционное тестирование (совместимость с внешними компонентами –
операционными системами, компонентами), а интеграционное.

Тестирование эргономики – тестирование эргономичности


функционала.
Эргономика - это часть юзабилити тестирования.

Usability тестирование относится к нефункциональному – потому что


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

Тестирование производительности – которое делится на нагрузочное и


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

Инсталляционное – тестирование, при котором проверяется, происходил


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

Конфигурационное – тестирование которое проверяет, что в различных


конфигурациях система работает корректно.

Selenium web driver – автоматизированное тестирование для frontend.

Restfull API – автоматизированное тестирование для backend.

ВИДЫ КОМПАНИЙ

Продуктовые компании разрабатывают и продают свой продукт, в


данном случае заказчиком выступает сама компания. Все задачи по
маркетингу, исследованию рынков и ценообразованию компания решает сама.
Как пример, продуктовых компаний это Microsoft, Лаборатория
Касперского, Google, Yandex.

Заказная разработка – компании с заказной разработкой называют


аутсорсинговые или сервисные компании. Данный тип IT компаний
разрабатывают программное обеспечение (ПО) под заказ для других фирм и
предприятий.

Аутсорс компании на основании договора


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

26
Вендор – это компания, разрабатывающая технологии, выпускающая и
поставляющая продукты и услуги под своей торговой маркой, как Intel, IBM,
Oracle.

Консалтинговые компании занимаются внедрением уже готового


программного обеспечения. Не ИТ компании обращаются в консалтинговые за
готовым коробочным решение с бизнес-процессами внутри. В данном случае
на первом этапе включается в работу консультант для сбора информации о
всех процессах, анализа и подготовки необходимой информации для заказчика
по коробочному решению. Компании, занимающиеся IT консалтингом:
ЛАНИТ, Ай-Теко, Компьюлинк, Terrasoft, ЭкоСофт.

Big Data – это огромные пласты информации, обладающие неоднородной


структурой. Термин придумали в 2008 году, хотя само явление больших
данных появилось гораздо раньше.
Главные характеристики Big Data – это 3V:
1. volume (большие объемы)
2. velocity (необходимость быстрой обработки)
3. variety (разнообразие)

IT ПРОФЕССИИ

CTO – chief technical officer – технический директор. Один из


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

Product manager отвечает целиком за продукт, анализирует рынок,


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

Project manager обычно занимается «административной» работой, его/ее


главная задача – успешное выполнение проекта в установленные сроки и
бюджет.

Фича (от англ. feature) — это какая-то характерная функциональная


особенность программы.

Баг – ошибка в системе.

Разработчик – человек, который непосредственно пишет код и реализует


поставленное ТЗ (техническое задание).

Тимлид – руководитель группы разработчиков, который зачастую


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

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

UI/UX дизайнер – специалист, что занимается проектированием


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

UX дизайнер (пользовательский опыт/) — это специалист, который в


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

UI дизайнер — это специалист, который


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

Product designer – продуктовый дизайнер проанализирует аудиторию


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

Guidelines (Гайдлайны) — это наборы правил, которые описаны в рамках


дизайн-системы, например Material Design, iOs и пр.

Visual Design (Визуальный Дизайн) — исключительно визуальная часть


работы дизайнера, то что можно увидеть.

Ui Kit — набор элементов используемых в построении интерфейса.


Такой-себе конструктор, с которого состоит дизайн.

Design system (Дизайн система) — правила, компоненты, спецификации


и пр., что задает общий тон всему дизайну, в рамках проекта. Фактически это
своеобразный Гайдлайн.

28
СЛОВАРЬ АЙТИШНИКА – СЛЕНГ

Галера – компания, в которой трудится проограммист.


Или взятое из сайта *banoe.it

«Галера — синоним бодишопа, место «Куда приводят


мечты» желающего попасть в айти. Место, после ухода из
которого, можно больше не захотеть возращаться в АйТи или
же остаться там навечно. Обязательные аттрибуты:
опенспейс, куча нердов, набор HRюшек с заоблачным ЧСВ.
Зачастую лидер рынка и предел мечтаний любого нормального человека.
Однако по иронии судьбы, сами же гребцы поносят галеры на чем свет стоит,
не понимая, что находятся в оазисе среди нищеты и разрухи, ведь не будь галер
— не было бы ни баксовых зарплат, ни корпоративов в забугорьи, ни сыров по
500».

Гребцы — основная рабочая единица галеры. Средство без которого цель


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

Код-пахлава – многоуровневый код.

Ругается – выдает сообщения об ошибках.

Слоупок – тормоз

perks (они же плюшки) — чистые углеводы, которыми надо кормить


сотрудников при отсутствии зп.

Bug (дословный перевод – жучок) – ошибка в программе, реже в


аппаратной части (железе).

Бодишоп — основная форма существования АйТи почти на всей


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

29