И да пребудет с тобой сила: как юному падавану правильно стажироваться в it

Алгоритм решения задачи

Обычно алгоритм решения задачи выглядит так:

  1. Получение задачи
  2. Уточнение задачи (задаешь вопросы куратору, если что-то непонятно).
  3. Поиск информации (предоставленные мануалы, гугл и прочие источники).
  4. Выполнение.
  5. Если все получилось, переход к п. 10. Если не получилось, к п. 6.
  6. Повторный поиск информации в Сети.
  7. Получилось? Если да, пункт 10, если нет, пункт 8.
  8. Задай вопрос наставнику.
  9. Получилось? Если да, пункт 10, если нет, пункт 6.
  10. Радуйся 🙂

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

Хочу в крутую компанию!

Теперь перейду уже к стажировке. Я понимал, что в 25+ устроиться без опыта работы в крутую it  компанию будет довольно непросто и уже пытался до этого попасть в школу программистов Хэдхантера и курсы от Тинькофф банка, после которых можно было попасть в штат, но там были очень сложные алгоритмические задачи, с которыми я не мог справиться полностью, обычно решая половину задач или меньше. В мэйл дорога была заказана сразу, потому что на свои стажировки они берут только выпускников своих образовательных программ. Про Яндекс я почему-то всё это время даже не думал, потому что считал, что там всё будет ещё гораздо страшнее. Но месяц назад в телеграм канале одного хорошего ютубера (S0ER) я наткнулся на пост о стажировке в Яндекс и подумал ну а почему бы и не попробовать, я вообще ни на что не расcчитывал и заполнил анкету указав честно все свои скромные достижения в виде одной курсовой, пачки сертификатов и резюме с указанием технологий, которые я освоил на тот момент.

Первые попытки заработать на разработке

Долгое время программирование было для меня эдаким хобби и я несильно видел себя в коммерческой разработке, я проходил курсы, делал разные учебные и личные проекты, изучал разные языки программирования (Haskell, java, golang, scheme etc) и парадигмы, в общем всё это было больше в интерес. В какой-то момент я решил попробовать сделать пару заказов на фрилансе, связанных с веб разработкой и мне удалось заработать первые деньги. После этого я начал помимо переводческой деятельности подрабатывать и веб разработкой, делал простые вещи: правки в вёрстке, подвязка сайта к crm через ajax, калькуляторы стоимостей услуг и товаров и всё в таком духе.

Совет 2: стажировка — не детский оздоровительный лагерь

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

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

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

Массовый набор стажеров

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

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

Оплата стажировки

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

Базы данных

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

Желательно знать, что базы данных бывают SQL и NoSQL (реляционные и нереляционные). Сейчас IT-специалисты используют оба типа, и кандидату полезно было бы понимать, какая база данных лучше подходит для конкретного случая, уметь привести примеры и SQL (Oracle, Microsoft SQL) и NoSQL (MongoDB, Apache CouchDB) баз данных, а также знать, что каждая из них умеет и какова её ключевая особенность. 

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

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

Ищи золотую середину

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

Когда будешь задавать вопросы, старайся делать это максимально конкретно (а не «я там что-то нажал, а оно развалилось»). Задавая вопрос по существу, есть вероятность и получения такого же ответа.

Совет 4: done is better than perfect

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

Всем нам хочется, чтобы результат работы жил и приносил пользу окружающим, поэтому необходимо помнить о конечной точке стажировки и поддерживать планы на всё оставшееся время в актуальном состоянии. Я рекомендую иметь как минимум 3–4 основных контрольных точки, но, если вы достаточно педантичны, попробуйте написать по 2–3 предложения с ожиданиями результатов и планом работ на каждую неделю. Максимальным уровнем мастерства будет вести актуальный план в письменном виде и раз в две недели сверяться с руководителем.

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

Version Control Systems и Git Flow

Git Flow и Version Control Systems в целом – это чуть более специфичная тема, но всё-таки потребуется абсолютно всем, так как сегодня никто уже не хранит проекты на флешке и не передаёт их по почте. Хорошо, если вы понимаете, что такое VCS, знаете команды Git Flow или любой другой системы, на которой вам довелось поработать, например, Mercurial, а также можете на примере какой-либо конкретной реализации рассказать, как в целом работают VCS. 

И аналитик, и тестировщик должны знать как минимум базовые программы, чтобы быть в состоянии посмотреть, выключить и запустить проект. К тому же необходимо понимать, как работать с репозиторием, как работают ветки в Git, почему на одном проекте ветки заводятся под каждую задачу, а на другом – нет, в чём разница между master и dev ветками, что такое Pull Request и т.п. Эти знания – важная часть каждодневной работы любого IT-специалиста, и, скорее всего, на техническом интервью вас об этом спросят.

Операционные системы

Среди современных программистов бытует мнение, что сегодня не особо-то и нужно знать, как вообще устроены операционные системы. Такое мнение возникает из-за того, что нынешние инструменты разработки (.NET, MS Visual Studio, Java и Java Virtual Machine) позволяют не работать напрямую с памятью или «железом» и не производить какие-то неуправляемые вызовы у API операционных систем. Ничего этого от нас не требуется – система делает всё сама, а мы как высокоуровневые программисты просто пишем команду. 

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

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

Литература:

  •  «Современные операционные системы», Эндрю Таненбаум – будет полезна для разработчиков, тестировщиков, специалистов по Data Science, DevOps и автоматизированному тестированию
  • «Компьютерные сети», Эндрю Таненбаум – будет полезна для разработчиков,тестировщиков и специалистов по Data Science, DevOps и автоматизированному тестированию
  • «Чистый код», Роберт Мартин – для разработчиков и специалистов по автоматизированному тестированию
  • «Сколько стоит программный проект», Стив Макконнелл – для бизнес-аналитиков, Data Science-специалистов и всех, кто хочет развиваться в менеджменте
  • «Мифический человеко-месяц», Фредерик Брукс – обязательна для бизнес-аналитиков, полезна для Data Science-специалистов и всех, кто хочет развиваться в менеджменте
  • «Работа с MySQL, MS SQL Server и Oracle в примерах», Святослав Куликов – обязательна для разработчиков и Data Science-специалистов, полезна для специалистов по DevOps и автоматизированному тестированию
  • «Реляционные базы данных в примерах», Святослав Куликов – обязательна для разработчиков и Data Science-специалистов, полезна для специалистов по DevOps и автоматизированному тестированию
  • «Тестирование программного обеспечения. Базовый курс», Святослав Куликов – обязательна для тестировщиков и полезна для специалистов по автоматизированному тестированию

Совет 5: помните, что синдром самозванца действительно существует

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

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

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

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

Оценивать свой индивидуальный вклад в решение задач. Это легко, если вы работаете над отдельным проектом. Он только ваш, и всё хорошее, что в нём происходит, принадлежит лично вам. Более того, именно вы являетесь в нём самым компетентным человеком. Если вы работаете над проектом вместе с коллегами, старайтесь, чтобы сделанные вами задачи всегда оформлялись в отдельные тикеты.
Получать обратную связь регулярно. Так или иначе вы хотите знать, как вашу работу оценивает непосредственный руководитель и коллеги. Если вы получаете обратной связи меньше, чем нужно, эта потребность заполнится вашими представлениями о том, что же они думают. Обсуждая с руководителем задачу, полезно уточнить, какого результата и в какие сроки он ожидает. А после выполнения попросить оценить уровень качества и затраченное время, и посоветовать, что можно было сделать лучше.
Больше неформального общения. Если поставить себе цель общаться с коллегами не только по работе, поводов для этого окажется немало. Совместный обед, small talk на кухне во время перерыва, чей-нибудь день рождения с пиццей. Обычно это укрепляет доверие, и после вам будет проще просить помощь по рабочим вопросам, а также будет реже казаться, что вам чего-то недоговаривают.
Найдите себе ментора. Как правило, это человек старше вас, давно работающий в компании и имеющий за плечами какие-то достижения, словом, непререкаемый авторитет для стажёра. С ментором можно встречаться на обеде или за кофе раз в пару недель, обсуждать, как идут дела и какие вопросы вас беспокоят

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

В диких условиях придётся действовать самостоятельно или попросить о помощи руководителя.

Подводные камни буквы закона

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

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

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

Если облака для вас
не просто теория

Широкий спектр услуг
по выделенным северам
и мультиклауд-решениям

Конфигурация VPS и бесплатный тест уже через 2 минуты

Сконфигурировать VPS

Организация вашей IT-инфраструктуры на основе мультиклауд-решения

Запросить КП

Совет 3: люди не кусаются, с ними можно и нужно разговаривать

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

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

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

  1. Встреча 1:1 не реже раза в неделю. Если такой встречи нет, о ней надо явно попросить. Если руководителю совсем некогда, такой встречей может быть обед. Убедитесь, что эта встреча имеет формат opt-out, а не opt-in, иначе по факту она будет проходить не чаще раза в месяц.

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

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

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

Руководитель руководителя (aka step). Представляет особый интерес для любопытного стажёра. Скорее всего, это очень занятой человек, но, если вы попросите (например, через своего руководителя), он не откажет вам в одной–двух встречах 1:1 в течение стажировки.

Смена профессии

После этого я начал задумываться о том, что нужно сменить таки профессию и стать полноценным разработчиком, специализироваться я решил на javaScript по причине его гибкости и возможности программировать во всех возможных парадигмах, а также его присутствию, как на клиенте, так и на сервере. Нужно было освоить какой-нибудь фреймворк, научиться тестировать код, верстать адаптивно, кроссбраузерно, валидно и семантично, освоить препроцессор для css, node js, typescript, webpack. Если до этого моё изучение программирования было в большей степени академичным, то теперь я решил взяться за дело всерьёз. Выбор пал на react за счёт того, что это javaScript first библиотека с минимумом магии и функциональным подход в построении интерфейсов – ui, как чистая функция от состояния и свойств, переданных компоненту. На данный момент я также знаю на базовом уровне vue js, который меня восхитил своей магией и скоростью разработки, но опечалил отладкой и поиском ошибок, когда что-то ломается в шаблоне.

Глубже в технологии

Тем временем я понял, что мне также интересна it сфера и я начал думать, как бы мне продолжить её осваивать и что выучить в первую очередь. Уже не помню почему, но выбор пал на курсеровский курс “ HTML, CSS and JavaScript”  Гонконгского университета. Так я впервые познакомился с языком гипертекстовой разметки, каскадными таблицами стилей и языком программирования javaScript. Мне показалось интересным манипулировать различными объектами на web странице, менять стили, расположение элементов и добавлять разную интерактивность. Затем было много разных других курсов с курсеры, edx, степика, главным курсом первого времени был наверное знамений курс Гарвардского университета cs50 на котором я впервые познакомился с алгоритмами и структурами данных и языком си. Это был очень непростой, но интересный курс по основам computer science.

Письмо счастья

В ответ мне пришла ссылка на контест. Я не буду говорить о том какие там были задания, но я был приятно удивлён тому, что на алгоритмы там была ровно одна задача из четырёх и именно её я завалил, моё решение прошло только половину тестов, из остальных там было задание на вёрстку, оно было довольно жёстким, нужно было pixel perfect сверстать определённый рисунок, состоящий из геометрических фигур без использования svg и готовых картинок, только html и css. Две оставшиеся задачи проверяли базовые вещи для javaScript разработчика: асинхронность, контекст вызова, прототипы, замыкания. Надо отметить, что каким-то образом я умудрился все три этих задания сдать с первой попытки в контесте. На всё это было дано 6 часов.

На следующий день со мной связался рекрутёр Яндекса с предложением пройти 2 интервью в зуме, одно из них на общие навыки программирования и javaScript, другое на алгоритмы.

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

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

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

Это были команды картинок, лавки и маркета.

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

Совет 1: у стажировки есть важные отличия от работы — их нужно учитывать

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

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

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

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

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

  3. Технологии. Ищите и посещайте внутренние конференции, лекции приглашённых гостей, E2E семинары (технические рассказы об архитектуре сервиса) и рассказы об устройстве продуктов.