А не синьор ли ты часом? О чем спрашивают на собеседованиях для синьоров

Десять лет назад Евгений Афонасьев, совсем еще зеленый джун, попал на первый в своей жизни PyCon, который проходил на турбазе под Екатеринбургом. С тех пор многое изменилось, PyCon вырос и перебрался в Москву, а Евгений превратился в опытного python-разработчика, который уже сам выступает на конференциях и проводит собеседования. Именно о том, как проводятся собеседования на позицию синьора, он рассказал на PyCon Russia 2022. Доклад признали лучшим докладом конференции, поэтому мы решили с вами поделиться его текстовой версией. Далее — от лица Евгения. 

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

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

Дисклеймер: все это — мое личное мнение, а не официальное мнение компании «Тинькофф». 

Кто такой синьор

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

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

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

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

Какие бывают собеседования

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

Стандартный вариант — когда у нас есть одна техническая встреча на всё. В рамках ее вас собеседует какое-то количество людей на любые тематики. Это самый распространённый вариант, чтобы сэкономить и свое время, и время кандидата. 

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

Самые распространенные тематики на собеседованиях

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

Алгоритмы 

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

Совет 1: уточняйте условия, прежде чем начать писать код. 

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

Python

Что ждут от синьора в рамках тематики по Python:

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

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

  3. Синьор понимает, как масштабировать приложение на Python. Как подобрать оптимальным образом количество процессов, потоков корутин, чтобы эффективно использовать инфраструктуру и не платить лишние деньги. 

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

Тесты

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

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

Совет 3: Даже если ваша текущая команда по какой-то причине не пишет тесты, но вы хотите в перспективе стать синьором, начинайте писать тесты! На свой код, в pet-project — как угодно. 

Контекстные менеджеры

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

Свободно владея языком, вы сможете делать то, ради чего Python создан — вы можете делать простое еще проще, а сложное — настолько простым, насколько это возможно. Вы можете использовать Pythonyc Way, следовать по пути Python. 

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

GIL — Global Interpreter Lock 

Что такое GIL? Этот теоретический вопрос может встретиться практически на каждом собеседовании. Надо понимать, зачем он вообще появился. Как именно он влияет на программу, когда он нам не мешает делать наши задачи, когда мешает. 

Asyncio

Теоретических вопросов может быть много, я хочу ещё один выделить. Мне он очень нравится, потому что на нём многие проваливаются. С версией 3.4 у нас появилась Asyncio, с версии 3.5 — Asyncio.wait. Все стало очень хорошо, все стали писать стильный модный молодежный код. Но многие, научившись писать Asyncio.wait в своем коде, не поняли, зачем они это делают. И это проблема. 

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

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

У многих может возникнуть вопрос, почему на собеседовании меня не спрашивают, допустим, как сделать на Django класс View или ещё что-нибудь? Для синьорных позиций понимание фреймворка — это настолько тривиальный навык, сродни с использованием библиотеки request. Никто же себя request программистом не называет? Поэтому и Django-программистами вам тоже быть не рекомендую. Вы должны быть python-разработчиками. Фреймворки уходят и приходят, а язык и его концепция всегда остаются. 

Базы данных и инфраструктура

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

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

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

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

Что я ожидаю услышать точно от каждого — что синьор понимает, как деплоится его приложение. Как развернуть его самым тривиальным способом на виртуалке. Самое главное, что вы понимаете, что это не просто программа на питоне, которую вы кому-то отдали и этот кто-то магическим образом куда-то его выкатил. И оно там начало перемалывать какие-то РПС. 

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

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

Архитектура

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

Архитектура приложения Application Design 

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

Совет (уже не для собеседований, а для практической жизни): Не копируйте паттерны. Изучайте проблемы, которые они решают, и контекст применения. 

Системный дизайн

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

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

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

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

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

От синьора на подобных секциях ждут:

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

  2. Умеет за короткое время накидать рабочий дизайн. Пусть даже он подходит только для обсуждения. 

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

  4. Знает, что происходит в краевых случаях.

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

Это сокращенная версия доклада, прослушать его целиком можно в YouTube 

В этом году мы решили вернуться к корням и организуем почти ту самую теплую ламповую python-конференцию в Екатеринбурге, о которой Евгений вспоминал в начале своего доклада. Теперь она называется EkbPy и пройдет 4 февраля. Участвовать можно офлайн или онлайн. Программа уже сформирована, а билеты можно купить на сайте.


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

6 минимальных стандартов клиентского сервиса

Недавно мы с Fiscal Times обсуждали улучшение качества обслуживания клиентов. Эта тема возникла на почве проблем, с которыми часто сталкивались клиенты при попытке получить доступ к онлайн-ресурсам медицинского страхования в соответствии с Законом федерального правительства о доступном здравоохранении (Federal Government’s Affordable Healthcare Act, USA). 

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

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

1. Доступность

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

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

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

Я подумал: замечательно! Такой подход перекликается с моей точкой зрения. Я кликнул на “Helpouts”, чтобы пообщаться с «настоящими людьми», и… Epic fail! После перехода по ссылке я получил ошибку: «500. Произошла ошибка. Повторите попытку позже. Это все, что мы знаем».

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

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

2. Вежливость и доброжелательность

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

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

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

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

3. Последовательность

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

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

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

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

4. Точность

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

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

5. Отзывчивость

Важно быстро и своевременно отвечать на потребности и запросы клиентов, а также постоянно информировать о прогрессе решения вопроса. Никто не хочет, чтобы их запросы канули в бездну — без обратной связи или хотя бы подтверждения получения вопроса. По крайней мере, сообщите клиенту, что вы получили его комментарии/просьбу/вопрос и что вы собираетесь с этим делать. Будете ли вы обсуждать этот вопрос с коллегой? Сможете ли вы ответить в течение 24 часов? Потребуется ли вам уточнить запрос? Что бы то ни было, обязательно сообщите об этом клиенту и продолжайте информировать его об этапах процесса и о том, чего стоит ожидать, пока проблема не будет решена.

Например: как-то раз у меня возник вопрос по EZPass (устройству для оплаты дорожных пошлин). Я пошел на сайт и не нашел там ответа, поэтому заполнил форму обратной связи, рассказав там о своей ситуации. Это было 6 недель назад. И я до сих пор не получил ответа. Я не знаю, работали ли они над моим вопросом. Я даже понятия не имею, получили ли они мое письмо. Может, мой вопрос просто ушел в никуда. Если бы у меня был выбор, я бы предпочел другой сервис — потому что этот производит на меня очень плохое впечатление.

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

6. Эффективность

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

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

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

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


Через пару дней пройдет открытое занятие «Основы работы руководителя поддержки с командой». Мы обсудим основные составляющие работы руководителя: подбор, обучение, матрица компетенций, взаимодействие с коллегами от первичного до exit-интервью. В результате урока научимся: формулировать требования к кандидату, понятно ставить задачи и роводить performance-review. Регистрация открыта на странице онлайн-курса «Руководитель поддержки пользователей в IT».


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

Минимальный геном как операционная система

Как знают мои постоянные читатели, кроме основного блога я веду на Хабре ещё один, где публикую переводы с английского, посвящённые строгим IT-темам. 21 января я вывесил там материал об игре «Жизнь» Джона Конвея, рассказывающий о создании минимальной жизнеспособной единицы по правилам этой игры. Активное обсуждение статьи, в котором поучаствовал даже уважаемый Павел Гранковский @Pavgran, коммиттер игры, упоминаемый в посте, вернуло меня к мыслям о сборке минимально жизнеспособного биологического генома. Очевидно, что современные возможности секвенирования ДНК и амплификации генов переводят такую задачу в разряд решаемых. На пути к созданию полностью синтетических организмов следовало бы освоить создание полусинтетических, основой для которых мог бы послужить именно такой минимальный геном. Ниже я расскажу о перепрограммировании геномов, искусственном и естественном редуцировании геномов, а также о перспективах таких исследований.

Прокариоты и эукариоты

Можно допустить, что в эукариотической клетке молекула ДНК выступает в качестве хранилища данных (storage), и для обработки этих данных применяется операционная система — трансляционный аппарат. Как сформулировано здесь, «самовоспроизведение генома включает в себя два взаимосвязанных аспекта: матричный («информационный») и конструктивный («операционный»)».

Обработка материи и обработка информации в клетке — это два неразрывных процесса. Клетка одновременно реагирует на два класса стимулов, которые постоянно воздействуют на неё в течение жизни. Во-первых, это поведенческие стимулы, диктуемые окружающей средой. Во-вторых — генетические; клетка подчиняется экспрессии генов, действующих в её ДНК.

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

Характеристика

Прокариоты                      

Эукариоты 

 Типы ядра

— Отсутствует полноценное ядро, окружённое мембраной
— Примитивное
— В качестве ядра может выступать нуклеоид или хроматиновый материал                      

 — Полноценное ядро, окружённое мембраной

 Мембрана ядра

— Нет

 — Есть

Хромосомы

 — Обычно одна кольцевая хромосома                          

 — В ядре заключено множество линейных хромосом

 ДНК

 — Не осложнена белками (гистонами).                                     

 — Осложнена простейшими белками (гистонами)

 Плазмиды

— очень распространены

 — редки или отсутствуют

 Упорядочивание генов

 — Линейное

 — В хромосомах присутствуют экзоны и интроны

 Клеточная стенка

— Основным веществом в составе клеточной стенки является муреин      
— у археев есть псевдомуреин                                                      

— Муреин отсутствует
— Клеточная стенка может либо отсутствовать, либо состоять из целлюлозы, хитина, кератинов, т.д.

 Цитоскелет

 — Зачаточный

 — цитоскелет состоит из микроволокон, промежуточных волокон и микротрубочек.

 Рибосомы

 — мелкие (70S)

 — крупные (80S)

 Газовые везикулы

 — Есть 

 — Не наблюдаются

 Жгутики

 — субмикроскопические. Жгутик состоит из единственного волокна белка-флагеллина.
— У некоторых прокариот есть аксиальные нити. 

 — Микроскопические. Мембранносвязанный комплекс состоит из множества микротрубочек.
— У некоторых клеток есть реснички

 Размер клетки

 — 0,2-2 мкм x 2-8 мкм

 — Диаметр более 5 мкм.

 Проницаемость мембраны ядра

 — отсутствует

 — селективная проницаемость

Хлоропласты

 — отсутствуют 

 — есть у растений

 Митохондрии

 — отсутствуют

 — есть у животных и грибов

 Лизосомы и пероксисомы

 — отсутствуют

 — есть

 Генетическая рекомбинация

 — частичная, однонаправленный перенос ДНК

 — мейоз и слияние гамет

Принцип деления клетки

 — Деление надвое

 — В соматических клетках происходит митоз, а при формировании гамет – мейоз.

 Метаболизм

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

 — Метаболизм идёт по общему паттерну. Для большинства организмов типичен гликолиз

 — Преимущественно аэробное дыхание, анаэробов очень мало.

 Встречаемость

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

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

 Филогенетические группы

 — Бактерии и археи

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

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

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

Минимальный геном

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

1)     Упрощённая система репликации и репарации ДНК (а также налаженная система транскрипции и трансляции для сохранения и корректного использования генетического материала)

2)     Самодостаточный метаболизм, обеспечивающий питание и структурную целостность

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

Разработкой и анализом минимальных геномов наиболее известен учёный и венчурный капиталист Крейг Вентер. Наиболее результативная стратегия по поиску минимального генома заключается либо в селекции с постепенным отсечением генов, либо в поиске такого генома у живого микроорганизма, который по каким-то причинам эволюционировал в сторону редукции генома. Как правило, это происходит при переходе организма к паразитическому или мутуалистическому образу жизни. Такие микроорганизмы в основном являются эндосимбионтами, то есть, их жизнь и обмен веществ полностью зависят от хозяина, но и своему хозяину они упрощают и диверсифицируют метаболизм. Эта эволюционная стратегия называется «синдромом редукции генома». В зависимости от длительности такого сосуществования и от конкретного хозяина геном паразита может ограничиваться сотнями тысяч пар оснований. Одним из самых маленьких геномов обладает бактерия Candidatus Hodgkinia cicadicola (эндосимбионт цикады), обходящаяся 144 тысячами пар оснований. Тем не менее, это экстремальные случаи, и в качестве «операционной системы» для свободноживущего организма не подходит. Крейг Вентер взял в качестве модельного организма бактерию Mycoplasma genitalium, в геном которой входит примерно 583 000 пар оснований.       

Синтез генома

В 2008 году геном микоплазмы впервые был химически синтезирован с нуля в институте Вентера. Процесс представлял собой последовательную сборку от олигонуклеотидов до полноценных хромосом. В 2010 году в том же институте на основе генома микоплазмы была создана первая синтетическая клетка.  Эта клетка называется Syn 3.0, она существует в идеальной «экосистеме» и содержит всего 473 гена (против 525 генов) у микоплазмы. Эта клетка нормально растёт, питается и размножается. Входящие в неё гены делятся на следующие функциональные категории:

1)      195 генов регулируют экспрессию: транскрипцию, регуляцию, трансляцию, работу РНК, фолдинг белков, биогенез рибосом, модификацию рРНК (рибосомных РНК) и тРНК (транспортных РНК)

2)      34 гена обеспечивают сохранение генома

3)      84 гена участвуют в поддержании архитектуры клетки

4)      81 ген отвечает за метаболизм

Функция ещё 79 генов пока остаётся невыясненной. 

Сравнение Syn 3.0 и операционной системы

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

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

Приём плазмид — это динамическая интеграция собственного генома с заимствованными компонентами, причём у некоторых бактерий генетический материал в плазмидах может превышать по объёму собственный бактериальный геном. Кроме того, прокариоты неприхотливы по части метаболических путей. Они могут эволюционировать из аэробных форм в анаэробные, а  энергию извлекать из источников, непригодных для питания эукариот. При всех подобных опытах важно минимизировать исходный геном, на котором будут надстраиваться дополнительные функции. Уменьшение и надстройка — это частные  случаи редактирования геномов при помощи технологий CRISPR и Cas9. Подробный разбор этих технологий выходит за рамки поста, на Хабре они хорошо рассмотрены, например, здесь.

ДНК-оригами и ДНК-домино

Наконец, создание минимальных геномов открывает путь к вычислениям на основе нуклеиновых кислот, где ДНК используется в качестве хранилища данных, а РНК — для передачи информации и реализации логических операторов. Такие исследования ведутся в Microsoft с середины 2010-х, причём рекорд по объёму информации, записываемой в ДНК, постоянно обновляется. Одна из наиболее перспективных технологий для таких вычислений — ДНК-оригами, позволяющая не только свёртывать ДНК в компактные фигуры, но и оптимизировать расположение нуклеотидов для быстрого неразрушающего считывания. Чем меньше геном, тем быстрее и надёжнее обеспечивается его масштабирование (амплификация), резервное копирование и версионирование.

В 2017 году специалисты Microsoft и Вашингтонского университета подготовили статью для журнала Nature Nanotechnology, в которой впервые продемонстрировали, как при помощи ДНК-оригами реализовать в ДНК логические вентили AND и OR. Поскольку эти операции объединяются в цепочки, авторы называют свой метод не «ДНК-оригами», а «ДНК-домино».

По-видимому, именно здесь проходит та граница, после которой микроорганизм начинает вести себя как компьютер. В том же 2017 году Александер Грин из Гарварда и его исследовательская группа продемонстрировали сложную вычислительную логику на основе рибосом, собрав первый «рибокомпьютер». РНК в таком наноустройстве начинает работу, только будучи активирована химическим сигналом. Она содержит команды не только для синтеза белков, но и для логических функций. В опытах Грина РНК собирала фосфоресцирующий белок (свечение служило индикатором успешного выполнения программы).   

Грин считает, что такие логические молекулы уже не уступают по сложности первым транзисторам, а значит, из них можно собирать и более сложные схемы. Он говорит о создании специальной «вентильной РНК» (gate RNA), которая может доставляться в клетку в плазмидах. Самая сложная конструкция, которую Грину удалось создать in vitro, включает 5 вентилей AND, 5 вентилей OR и 2 вентиля NOT. Впрочем, в клетке весь генетический материал перемешан, и для исключения «случайных срабатываний» может потребоваться целый новый класс алгоритмов, выполнение которых в клетке должно немедленно прекращаться или откатываться, если что-то пойдёт не так. Важнейшее условие для контроля над такими устройствами — поддержание генома в минимальной необходимой комплектации, которая при этом оставалась бы жизнеспособной и легко воспроизводимой.


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

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

3D-сканирование зубов – это прогрессивный и очень четкий способ диагностики, который разрешает дантисту увидеть челюсти и зубы больного под разными углами. При этом сканирование зубов проводится особым устройством — внутриротовым (интраоральным) 3D-сканером..

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

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

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

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

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

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

При цифровом сканировании врач получает цифровую 3D-модель зубов пациента.

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

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

Точность полученной 3D-модели обеспечивает идеальную посадку, прикус и, в конечном итоге, комфорт и долговечность ортопедического компонента.

Как и где используется эта технология

В современных клиниках процесс снятия индивидуальных слепков челюстей полностью заменен 3D-сканированием. Эти сканеры используются в различных областях стоматологии.
1. Ортодонтическая стоматология — использование сканов вместо традиционных слепков челюстей. Это самый современный метод изготовления мостов, коронок, виниров и вкладок с точностью до 1/100 миллиметра.

2. Имплантология — используется для диагностики перед операцией по установке имплантатов и для подготовки хирургических моделей.

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

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

Преимущества 3D-снимка зубов

Этот современный метод имеет много преимуществ.

  • Высокая точность: даже при получении очень точных слепков с помощью силиконового материала, при отливке модели наблюдается небольшая усадка материала. Максимальная ошибка в этом случае составляет 100 микрон. При использовании внутриротового сканера погрешность составляет всего 12 микрон, что в пять-шесть раз точнее обычных методов.

  • Простота использования. Стоматолог с помощью простых приемов получает высококачественную модель челюсти.

  • Процедура занимает совсем немного времени. Устройство сканирует оттиск за 24 секунды. Не нужно ждать, как при снятии слепка.

  • Комфорт пациента. Сканирование безболезненно и не вызывает дискомфорта или рвотных рефлексов.

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

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

Показания и противопоказания к 3D сканированию зубов

Показаниями для 3D сканирования полости рта является широкий спектр заболеваний и состояний:

  • аномалии прикуса

  • ненормальное положение, форма или размер зубов

  • кривые зубы, деформированные зубы

  • отсутствие одного, нескольких или всех зубов

  • дефекты твердых тканей зубов

  • заболевания височно-нижнечелюстного сустава

  • необходимость пластины, шины, спортивные капы и отбеливание

  • подготовка имплантатов и хирургия

  • проектирование элайнеров

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

Интраоральные сканеры

На рынке уже представлено множество типов стоматологических сканеров. Устройства различаются по скорости сканирования и размеру сканирующей головки, а также по интерфейсу, способу использования и качеству получаемых изображений. Наиболее популярными и высококачественными сканерами являются Omnicam от Dentsply Sirona и Trios 3 PlanScan Emerald от 3Shape, CS3600 от Carestream и DWO от Dental Wings. Лучшие сканеры демонстрируют низкий уровень шума, даже при сканировании вблизи ортопедических и ортодонтических металлических конструкций.

Одним из лучшим считается сканер 3 Shape. Производитель — датская компания, которая является пионером в области 3D-сканирования. Медицинское оборудование Shape 3 широко используется в развитых странах (Европа, США, Япония) и во всем мире.

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

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

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

Как проходит процедура сканирования

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

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

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


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

Подборка материалов для погружения в Angular: выбор сотрудников Selectel

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

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

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

Книга: Become a ninja with Angular

Никита, фронтенд-разработчик

Книга, в которой собраны теория и примеры из практики ее создателей. У нее есть большой плюс: постоянно обновляется в соответствии с текущей версией Angular.

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

Источник → официальную версию можно купить тут, но в сети есть и бесплатные варианты.

Статья: Learn to combine RxJS

Алексей, старший фронтенд-разработчик

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

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

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

Пример из статьи: работа SwitchAll.

Источник → погрузиться в RxJS можно по ссылке.

Канал: Decoded Frontend

Сергей, фронтенд-программист

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

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

Список плейлистов на канале Decoded Frontend.

Источник → запаситесь попкорном и смотрите видео по ссылке.

Статья: The Best Way To Unsubscribe RxJS

Максим, старший фронтенд-разработчик

Недавно наткнулся на основательную статью по утечкам памяти при использовании RxJS. Рекомендую: там разобраны, наверное, все нюансы отписок от потоков в Angular.

В своей статье Томас Траян, эксперт-разработчик из Google, подробно рассказал об особенностях работы с subscribe- и unsubscribe-методами, еще — об утечках памяти о том, как с ними бороться.

«Бесконечный» список статей в блоге Tomas Trajan.

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

Источник → статья доступна по ссылке.

Другие источники


Коллеги из корпоративного центра обучения Selectel посоветовали еще несколько материалов для погружения в Angular.

Туториал How To Use Reactive Forms in Angular

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

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

Источник → читайте туториал на сайте.

Статья Introduction to Observables (RxJS)

Еще один материал про потоки в RxJS — на этот раз, разбитый на части. В статье авторы рассказывают основное: о создании наблюдаемых объектов, подписках, потоки, про асинхронную и синхронную работу с Observables и другое.

Источник → статья доступна по ссылке.

Возможно, эти тексты тоже вас заинтересуют:

7 килограммов портативности, или ноутбук Amstrad ALT-386SX из 1988 года. Часть 2 — разбираем убердевайс
Крупнейший в Испании музей игровых консолей, видео- и компьютерных игр: идеальная суббота для гика
Еще больше подводных кабелей, хороших и разных: интернет-магистрали в России и мире

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Какой ресурс вам понравился больше?
50% Книга Become a ninja with Angular 2
25% Статья Learn to combine RxJS 1
0% Канал Decoded Frontend 0
25% Туториал How To Use Reactive Forms in Angular 1
0% Статья Introduction to Observables (RxJS) 0
Проголосовали 4 пользователя. Воздержался 1 пользователь.

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