#expert
⚡️ Всем привет! Сегодня у нас в гостях Мария Котляревская — DevOps инженер во Wrike, а также преподаватель курса «Инфраструктурная платформа на основе Kubernetes» в OTUS.
Маша поделилась с нами своим топом неочевидных функций в Kubernetes.
⎈Читать в OTUS Journal⎈
⚡️ Всем привет! Сегодня у нас в гостях Мария Котляревская — DevOps инженер во Wrike, а также преподаватель курса «Инфраструктурная платформа на основе Kubernetes» в OTUS.
Маша поделилась с нами своим топом неочевидных функций в Kubernetes.
⎈Читать в OTUS Journal⎈
#expert
⚡️Всем привет! Сегодня у нас в гостях Аня Подображных — Ведущий менеджер продукта в Авито и автор телеграм-канала @product_weekdays.
Поговорили с Аней про важность продуктового мышления.
***
С чего начинать, если хочешь стать продактом: с инструментов или мышления? Я верю, что с мышления. И чтобы объяснить, что это, зачем и, самое главное, как его развивать, я придумала небольшую историю (прямо как школьное сочинение)!
Наслаждайтесь 🙂
***
💬 Мы ищем гостей для новых выпусков рубрики.
Пиши мне, если есть, что рассказать.
Обсудить
⚡️Всем привет! Сегодня у нас в гостях Аня Подображных — Ведущий менеджер продукта в Авито и автор телеграм-канала @product_weekdays.
Поговорили с Аней про важность продуктового мышления.
***
С чего начинать, если хочешь стать продактом: с инструментов или мышления? Я верю, что с мышления. И чтобы объяснить, что это, зачем и, самое главное, как его развивать, я придумала небольшую историю (прямо как школьное сочинение)!
Наслаждайтесь 🙂
***
💬 Мы ищем гостей для новых выпусков рубрики.
Пиши мне, если есть, что рассказать.
Обсудить
#expert
⚡️ Всем привет! Сегодня в гостях у OTUS News Артемий Козырь — Analytics Engineer в компании Wheely, автор телеграмм-канала Technology Enthusiast, а также преподаватель курсов Data Engineer, Hadoop Ecosystem в OTUS.
Поговорили с Артемием про принципы, лежащие в основе решений, работающих с Big Data ⬇️
***
Большие данные, кластерные вычисления, MPP базы данных – всё это может звучать так сложно и загадочно не только для обывателя, но и для ИТ-специалистов.
Однако, принципы, лежащие в основе решений, работающих с Big Data, логичны и интуитивно понятны. Они одинаково применимы и к инструментам экосистемы Hadoop (Hive, Spark, HBase, Kafka), и к аналитическим движкам корпоративного уровня (Teradata, Vertica, Oracle, Exasol), и к современным облачным решениям (Snowflake, Databricks, Redshift, BigQuery).
⏺ Параллелизация вычислений. Распределение большого объема данных на ноды кластера и обеспечение независимой параллельной обработки каждой из частей. MapReduce – классический пример.
⏺ Структурирование данных. Сегментация пользователей и их транзакций по идентичному ключу, например, по user_id. А также партиционирование – деление данных на логические части, например, в зависимости от даты транзакции (горячие, теплые, холодные)
⏺ Оптимизация физического хранения. Запись данных на диск в колоночном формате, применение алгоритмов кодирования и сжатия. Предварительная сортировка данных.
⏺ Актуализация статистических данных (метаданные). Это гистограммы распределения, количество уникальных значений, минимумы, максимумы, наличие NULL. Такая метаинформация критически важна для построения оптимального плана выполнения и выбора алгоритмов.
⏺ Управление ресурсами и мониторинг. Выделение ресурсных пулов, квот на использование мощностей, разграничение прав доступа и полномочий. Мониторинг поможет со своевременным реагированием на инциденты и проблемные места.
Новый запуск курса Data Engineer, стартующий 31 мая, приобретает кейс-ориентированный подход. Каждый модуль посвящен разбору отдельного сценария: Architecture, Data Lake, DWH, NoSQL, MLOps.
На подходе курс DWH Analyst, в котором основной фокус делается на направление Analytics Engineering: углубленная аналитика, моделирование данных, Business Intelligence, Data Quality.
***
💬 Мы ищем гостей для новых выпусков рубрики.
Пиши мне, если есть, что рассказать.
Обсудить
⚡️ Всем привет! Сегодня в гостях у OTUS News Артемий Козырь — Analytics Engineer в компании Wheely, автор телеграмм-канала Technology Enthusiast, а также преподаватель курсов Data Engineer, Hadoop Ecosystem в OTUS.
Поговорили с Артемием про принципы, лежащие в основе решений, работающих с Big Data ⬇️
***
Большие данные, кластерные вычисления, MPP базы данных – всё это может звучать так сложно и загадочно не только для обывателя, но и для ИТ-специалистов.
Однако, принципы, лежащие в основе решений, работающих с Big Data, логичны и интуитивно понятны. Они одинаково применимы и к инструментам экосистемы Hadoop (Hive, Spark, HBase, Kafka), и к аналитическим движкам корпоративного уровня (Teradata, Vertica, Oracle, Exasol), и к современным облачным решениям (Snowflake, Databricks, Redshift, BigQuery).
⏺ Параллелизация вычислений. Распределение большого объема данных на ноды кластера и обеспечение независимой параллельной обработки каждой из частей. MapReduce – классический пример.
⏺ Структурирование данных. Сегментация пользователей и их транзакций по идентичному ключу, например, по user_id. А также партиционирование – деление данных на логические части, например, в зависимости от даты транзакции (горячие, теплые, холодные)
⏺ Оптимизация физического хранения. Запись данных на диск в колоночном формате, применение алгоритмов кодирования и сжатия. Предварительная сортировка данных.
⏺ Актуализация статистических данных (метаданные). Это гистограммы распределения, количество уникальных значений, минимумы, максимумы, наличие NULL. Такая метаинформация критически важна для построения оптимального плана выполнения и выбора алгоритмов.
⏺ Управление ресурсами и мониторинг. Выделение ресурсных пулов, квот на использование мощностей, разграничение прав доступа и полномочий. Мониторинг поможет со своевременным реагированием на инциденты и проблемные места.
Новый запуск курса Data Engineer, стартующий 31 мая, приобретает кейс-ориентированный подход. Каждый модуль посвящен разбору отдельного сценария: Architecture, Data Lake, DWH, NoSQL, MLOps.
На подходе курс DWH Analyst, в котором основной фокус делается на направление Analytics Engineering: углубленная аналитика, моделирование данных, Business Intelligence, Data Quality.
***
💬 Мы ищем гостей для новых выпусков рубрики.
Пиши мне, если есть, что рассказать.
Обсудить
#expert
Всем привет! Сегодня в гостях у OTUS News Михаил Альфа — Ведущий разработчик в РСХБ-ИНТЕХ и преподаватель курса Flutter Mobile Developer в OTUS.
Поговорили с Михаилом о том, как помогать сообществу, решая свои задачи. Передаем ему слово.
﹏﹏﹏
💭Все разработчики пользуются чужим умственным трудом каждый день и воспринимают это как должное — хочешь получить некий функционал — скачиваешь «зависимость» — он у тебя есть. Хочешь что-то посложнее — пара зависимостей. Что-то ну совсем сложное — придется написать код.
Речь идет про Open Source-решения, которые экономят всем нам десятки тысяч человеко-часов разработки, миллиарды долларов денег и избавляют нас от миллионов багов. Вы только представьте: вы начинаете новый проект и вам придется с 0 переизобретать Backend-фреймворк для того, чтобы написать простой CRUD. Читать продолжение в Otus Journal.
﹏﹏﹏
💬 Мы ищем гостей для новых выпусков рубрики.
Пиши мне, если есть, что рассказать.
Обсудить
Всем привет! Сегодня в гостях у OTUS News Михаил Альфа — Ведущий разработчик в РСХБ-ИНТЕХ и преподаватель курса Flutter Mobile Developer в OTUS.
Поговорили с Михаилом о том, как помогать сообществу, решая свои задачи. Передаем ему слово.
﹏﹏﹏
💭Все разработчики пользуются чужим умственным трудом каждый день и воспринимают это как должное — хочешь получить некий функционал — скачиваешь «зависимость» — он у тебя есть. Хочешь что-то посложнее — пара зависимостей. Что-то ну совсем сложное — придется написать код.
Речь идет про Open Source-решения, которые экономят всем нам десятки тысяч человеко-часов разработки, миллиарды долларов денег и избавляют нас от миллионов багов. Вы только представьте: вы начинаете новый проект и вам придется с 0 переизобретать Backend-фреймворк для того, чтобы написать простой CRUD. Читать продолжение в Otus Journal.
﹏﹏﹏
💬 Мы ищем гостей для новых выпусков рубрики.
Пиши мне, если есть, что рассказать.
Обсудить
#expert
⚡️ Всем привет! Сегодня в гостях у OTUS News Артемий Козырь — Analytics Engineer в компании Wheely, автор телеграмм-канала Technology Enthusiast, а также преподаватель курсов Data Engineer, Hadoop Ecosystem в OTUS.
Поговорили с Артемием про Data Build Tool – Мультитул для построения Аналитического Хранилища⬇️
***
DBT — это всё о букве T в акрониме ELT (Extract — Load — Transform). Сегодня это бурно развивающийся Open Source проект, который используют уже в 2,100+ компаний. Что делает это решение таким востребованным?
⏺Фокус инженеров и аналитиков на создании ценности и результатах, а не написании boilerplate code
⏺Лучшие практики из мира Software Engineering – Version Control, Unit Testing, Continuous Integration
⏺SQL на стероидах с языком шаблонизации Jinja – больше никакого хардкода
⏺Модульная структура – импортируйте готовые библиотеки, от утилит и календаря до facebook & google ads. А в случае необходимости – напишите свою
⏺Граф зависимостей (Data Lineage) и автоматически генерируемая документаця (Static Website) из коробки
⏺7 official + 7 community адаптеров для СУБД, среди которых: Snowflake, Clickhouse, Redshift, BigQuery, Databricks, SQL Server
После 2 лет работы с dbt и преподавания на курсе Data Engineer мне есть чем поделиться в области DWH / Analytics Engineering. Детальная программа на 35+ занятий сайте курса Data Warehouse Analyst.
Я верю в то, что у dbt большое будущее. Изучая современные подходы и практики Analytics Engineering сегодня, вы делаете большую инвестицию в свое развитие. Напоследок несколько фактов в подтверждение:
➖November 11, 2020 – Fishtown Analytics raises $29.5M Series B
➖June 30, 2021 – Dbt Labs raises $150M Series C
➖15.000+ участников в Slack community
➖42 доклада за 2020 год на ежегодной конференции Coalesce
***
💬 Мы ищем гостей для новых выпусков рубрики.
Пиши мне, если есть, что рассказать.
Обсудить
⚡️ Всем привет! Сегодня в гостях у OTUS News Артемий Козырь — Analytics Engineer в компании Wheely, автор телеграмм-канала Technology Enthusiast, а также преподаватель курсов Data Engineer, Hadoop Ecosystem в OTUS.
Поговорили с Артемием про Data Build Tool – Мультитул для построения Аналитического Хранилища⬇️
***
DBT — это всё о букве T в акрониме ELT (Extract — Load — Transform). Сегодня это бурно развивающийся Open Source проект, который используют уже в 2,100+ компаний. Что делает это решение таким востребованным?
⏺Фокус инженеров и аналитиков на создании ценности и результатах, а не написании boilerplate code
⏺Лучшие практики из мира Software Engineering – Version Control, Unit Testing, Continuous Integration
⏺SQL на стероидах с языком шаблонизации Jinja – больше никакого хардкода
⏺Модульная структура – импортируйте готовые библиотеки, от утилит и календаря до facebook & google ads. А в случае необходимости – напишите свою
⏺Граф зависимостей (Data Lineage) и автоматически генерируемая документаця (Static Website) из коробки
⏺7 official + 7 community адаптеров для СУБД, среди которых: Snowflake, Clickhouse, Redshift, BigQuery, Databricks, SQL Server
После 2 лет работы с dbt и преподавания на курсе Data Engineer мне есть чем поделиться в области DWH / Analytics Engineering. Детальная программа на 35+ занятий сайте курса Data Warehouse Analyst.
Я верю в то, что у dbt большое будущее. Изучая современные подходы и практики Analytics Engineering сегодня, вы делаете большую инвестицию в свое развитие. Напоследок несколько фактов в подтверждение:
➖November 11, 2020 – Fishtown Analytics raises $29.5M Series B
➖June 30, 2021 – Dbt Labs raises $150M Series C
➖15.000+ участников в Slack community
➖42 доклада за 2020 год на ежегодной конференции Coalesce
***
💬 Мы ищем гостей для новых выпусков рубрики.
Пиши мне, если есть, что рассказать.
Обсудить
#expert
⚡️ Всем привет! Сегодня в гостях у OTUS News адепт менторства и коучинга Георгий Могелашвили — Lead Developer в Booking.com, а также преподаватель курса Team Lead в OTUS.
На уровне руководителя важно развивать не только себя, но и свою команду. Поговорили с Георгием о том, как сделать это наиболее эффективно.⬇️
***
Я веду два урока: Разговоры 1-на-1 и Развитие. А ещё когда-то предложил ввести публичные сессии коучинга, и с тех пор они включены в курс.
Для собственного роста советую следовать следующим шагам:
➖Понять, куда именно вы хотите расти. Тут как раз поможет коучинг и рефлексия, чтобы определиться с целью.
➖ Оценить свои текущие знания и умения, чтобы затем сформировать список того, чего вам не хватает (дельта).
➖ Сделать план развития, исходя из дельты. Обязательные атрибуты плана: SMART цель и контрольные точки.
➖Заручиться поддержкой руководителя или ментора. Этот человек поможет вам пройти путь развития наиболее оптимальным путем.
Как раз для того, чтобы работа с ментором была проще, Георгий cоздал стартап GetMentor.dev — сообщество наставников, готовых делиться знанием и опытом. Через его сервис можно найти подходящего ментора и получить совет — или наоборот, стать ментором и поделиться с другими своей экспертизой. Это некоммерческий проект — сервис не берёт деньги за услуги, а многие менторы готовы помогать бесплатно.
В своём Телеграме @getmentor_dev команда публикует интервью менторов, истории и советы от наставников — советуем подписаться.
***
💬 Мы ищем гостей для новых выпусков рубрики.
Пиши мне, если есть, что рассказать.
Обсудить
⚡️ Всем привет! Сегодня в гостях у OTUS News адепт менторства и коучинга Георгий Могелашвили — Lead Developer в Booking.com, а также преподаватель курса Team Lead в OTUS.
На уровне руководителя важно развивать не только себя, но и свою команду. Поговорили с Георгием о том, как сделать это наиболее эффективно.⬇️
***
Я веду два урока: Разговоры 1-на-1 и Развитие. А ещё когда-то предложил ввести публичные сессии коучинга, и с тех пор они включены в курс.
Для собственного роста советую следовать следующим шагам:
➖Понять, куда именно вы хотите расти. Тут как раз поможет коучинг и рефлексия, чтобы определиться с целью.
➖ Оценить свои текущие знания и умения, чтобы затем сформировать список того, чего вам не хватает (дельта).
➖ Сделать план развития, исходя из дельты. Обязательные атрибуты плана: SMART цель и контрольные точки.
➖Заручиться поддержкой руководителя или ментора. Этот человек поможет вам пройти путь развития наиболее оптимальным путем.
Как раз для того, чтобы работа с ментором была проще, Георгий cоздал стартап GetMentor.dev — сообщество наставников, готовых делиться знанием и опытом. Через его сервис можно найти подходящего ментора и получить совет — или наоборот, стать ментором и поделиться с другими своей экспертизой. Это некоммерческий проект — сервис не берёт деньги за услуги, а многие менторы готовы помогать бесплатно.
В своём Телеграме @getmentor_dev команда публикует интервью менторов, истории и советы от наставников — советуем подписаться.
***
💬 Мы ищем гостей для новых выпусков рубрики.
Пиши мне, если есть, что рассказать.
Обсудить
https://getmentor.dev
GetMentor – открытое сообщество IT-наставников
GetMentor – это открытое комьюнити IT-наставников, готовых делиться своими опытом и знаниями. Наша задача – помогать людям находить ответы на свои вопросы в работе или жизни через прямой доступ к экспертизе в разговоре 1-на-1.
#expert
⚡️ Всем привет! Сегодня в гостях у OTUS News Евгений Аристов, преподаватель многочисленных курсов в OTUS.
***
Евгений выпустил новую книгу «PostgreSQL 14. Оптимизация, Kubernetes, кластера, облака».
⏺ В книге подробно изучается внутреннее устройство PostgreSQL 14, начиная с вариантов установки, физического устройства этой системы управления базами данных, заканчивая современными бэкапами и репликацией, а также разбираются кластерные и облачные решения на основе PostgreSQL. Книга написана понятным языком с использованием подробных примеров; а исходные коды и ссылки, используемые в книге, выложены на github.
⏺ Главы логически выстроены по пути усложнения материала и позволяют разобраться, как правильно развернуть кластер PostgreSQL с нуля на отдельных серверах, в виртуальном и облачном исполнении. Подробно рассматриваются настройки, отвечающие за производительность, безопасность и варианты их тюнинга. Отдельно выделены несколько глав, где рассматриваются варианты оптимизации с использованием различных механизмов: индексы, секционирование, джойны и другое.
⏺ Книга будет интересна и полезна разработчикам, администраторам баз данных, архитекторам программного обеспечения, в том числе микросервисной архитектуры.
На сайте автора можно бесплатно прочитать первые 5 глав, а также заказать печатный вариант с доставкой по России или электронную версию в pdf.
***
💬 Мы ищем гостей для новых выпусков рубрики.
Пиши мне, если есть, что рассказать.
Обсудить
⚡️ Всем привет! Сегодня в гостях у OTUS News Евгений Аристов, преподаватель многочисленных курсов в OTUS.
***
Евгений выпустил новую книгу «PostgreSQL 14. Оптимизация, Kubernetes, кластера, облака».
⏺ В книге подробно изучается внутреннее устройство PostgreSQL 14, начиная с вариантов установки, физического устройства этой системы управления базами данных, заканчивая современными бэкапами и репликацией, а также разбираются кластерные и облачные решения на основе PostgreSQL. Книга написана понятным языком с использованием подробных примеров; а исходные коды и ссылки, используемые в книге, выложены на github.
⏺ Главы логически выстроены по пути усложнения материала и позволяют разобраться, как правильно развернуть кластер PostgreSQL с нуля на отдельных серверах, в виртуальном и облачном исполнении. Подробно рассматриваются настройки, отвечающие за производительность, безопасность и варианты их тюнинга. Отдельно выделены несколько глав, где рассматриваются варианты оптимизации с использованием различных механизмов: индексы, секционирование, джойны и другое.
⏺ Книга будет интересна и полезна разработчикам, администраторам баз данных, архитекторам программного обеспечения, в том числе микросервисной архитектуры.
На сайте автора можно бесплатно прочитать первые 5 глав, а также заказать печатный вариант с доставкой по России или электронную версию в pdf.
***
💬 Мы ищем гостей для новых выпусков рубрики.
Пиши мне, если есть, что рассказать.
Обсудить
#expert
⚡️ Всем привет! Сегодня в гостях у OTUS News Филипп Игнатенко, преподаватель OTUS на курсах “Инфраструктурная платформа на основе Kubernetes”, “DevOps практики и инструменты”, “Administrator Linux. Professional”.
- Если пофантазировать, то каким будет будущее образование IT специалистов? Именно об этом порассуждали с Филиппом в данном посте.
***
Думаю, что в будущем образования должен остаться человек. Преподаватель, который воспринимает себя не как учитель и наставник, не как сотрудник выше рангом, супергерой. Это человек, который все знает, на все грабли наступил и вас научит, их обходить. Это просто человек, который выспался, отдохнул, у которого хорошее настроение и он может и хочет объяснить материал. Мне кажется, мы слишком критически относимся к обучению, к себе. Было бы здорово, если бы мы могли уделять дополнительное внимание психологии, философии. Если бы мы знали больше о нас самих, нам было бы гораздо легче и учиться, и преподавать.
Какой студент может помочь сам себе в обучении?
Это студент, который понял, что получение опыта нельзя ускорить. Это связано с философией. Опыт будет наслаиваться с той скоростью, которая ему определена. И это важно.
Ничего страшного нет, если не удалось полностью рассмотреть все, что было дано на курсе - это нормально, особенно в первый подход. Если бы студент пересматривал курсы и лекции, то он бы каждый раз открывал все больше и больше, смог бы перенять образ мыслей преподавателя, чтобы быстрее находить решение сложностей, возникающих в процессе работы.
Многократно подтверждено исследованиями, что успех студента зависит в бОльшей степени от него самого. Если студент неправильно подходит к обучению, многого или совсем не того от него ждет, то даже самый классный на свете преподаватель ему не поможет.
Без преподавателя сам процесс теряет смысл. Но именно обучение зависит от самого студента. Он будет сталкиваться с проблемами, как и преподаватель сталкивается с проблемами, которые он как-то решает, и это нормально. Все проблемы как в обучении, так и в преподавании решаемы.
Я тоже обучаюсь и мне становится легче самому, если не держу зла на состав преподавателей или программу курса. Я просто понимаю, что успех моего обучения зависит от меня больше, чем от преподавателя.
Поэтому рекомендую брать ответственность за свое обучение на себя, а команда OTUS поддержит вас в вашем стремлении к обучению
***
💬 Мы ищем гостей для новых выпусков рубрики.
Пиши мне, если есть, что рассказать.
Обсудить
⚡️ Всем привет! Сегодня в гостях у OTUS News Филипп Игнатенко, преподаватель OTUS на курсах “Инфраструктурная платформа на основе Kubernetes”, “DevOps практики и инструменты”, “Administrator Linux. Professional”.
- Если пофантазировать, то каким будет будущее образование IT специалистов? Именно об этом порассуждали с Филиппом в данном посте.
***
Думаю, что в будущем образования должен остаться человек. Преподаватель, который воспринимает себя не как учитель и наставник, не как сотрудник выше рангом, супергерой. Это человек, который все знает, на все грабли наступил и вас научит, их обходить. Это просто человек, который выспался, отдохнул, у которого хорошее настроение и он может и хочет объяснить материал. Мне кажется, мы слишком критически относимся к обучению, к себе. Было бы здорово, если бы мы могли уделять дополнительное внимание психологии, философии. Если бы мы знали больше о нас самих, нам было бы гораздо легче и учиться, и преподавать.
Какой студент может помочь сам себе в обучении?
Это студент, который понял, что получение опыта нельзя ускорить. Это связано с философией. Опыт будет наслаиваться с той скоростью, которая ему определена. И это важно.
Ничего страшного нет, если не удалось полностью рассмотреть все, что было дано на курсе - это нормально, особенно в первый подход. Если бы студент пересматривал курсы и лекции, то он бы каждый раз открывал все больше и больше, смог бы перенять образ мыслей преподавателя, чтобы быстрее находить решение сложностей, возникающих в процессе работы.
Многократно подтверждено исследованиями, что успех студента зависит в бОльшей степени от него самого. Если студент неправильно подходит к обучению, многого или совсем не того от него ждет, то даже самый классный на свете преподаватель ему не поможет.
Без преподавателя сам процесс теряет смысл. Но именно обучение зависит от самого студента. Он будет сталкиваться с проблемами, как и преподаватель сталкивается с проблемами, которые он как-то решает, и это нормально. Все проблемы как в обучении, так и в преподавании решаемы.
Я тоже обучаюсь и мне становится легче самому, если не держу зла на состав преподавателей или программу курса. Я просто понимаю, что успех моего обучения зависит от меня больше, чем от преподавателя.
Поэтому рекомендую брать ответственность за свое обучение на себя, а команда OTUS поддержит вас в вашем стремлении к обучению
***
💬 Мы ищем гостей для новых выпусков рубрики.
Пиши мне, если есть, что рассказать.
Обсудить
#expert
🤟 Сегодня в гостях у OTUS News Андрей Кравчук – разработчик с 14-летним опытом и преподаватель курса OTUS “Python Developer. Professional”. Андрей рассказал о пользе изучения функционального программирования.
О функциональном программировании к 2023 году не слышал только ленивый. Мейнстримные языки (Python, JavaScript) по ходу развития приобретают всё больше функциональных черт, а нишевые языки, изначально ориентированные на ФП (Clojure, Rust) завоёвывают всё большую популярность. Кроме того, функциональные языки-мастодонты вроде Common Lisp и Haskell также не пропадают с горизонта индустрии. Первый сейчас популярен среди компаний, исследующих квантовые вычисления, а второй часто используется в блокчейн-стартапах.
С чего же начать, если хочется одной ногой попробовать воду в море функционального программирования?
Я бы рекомендовал обратить взор на Scheme, входящий в семейство LISP-подобных языков. Лисп, в свою очередь, является вторым старейшим языком программирования высокого уровня, уступая лишь на год Фортрану. Scheme – его более поздний минималистичный диалект, который в своё время даже использовался для обучения программированию в институте MIT.
😉 Язык этот, хоть и сначала поражает непривычным синтаксисом, лёгок для освоения, так как по характеристикам совпадает со многими современными мейнстримными языками – он является динамически сильно типизированным языком с лексическими областями видимости, замыканиями и сборкой мусора, что ставит его в один ряд с такими языками, как Python, Ruby и C# старше 4.0. При написании кода на Scheme часто преследует чувство узнавания. Например, все манипуляции со списками на нём принято выполнять с помощью «трёх столпов»
👉 Для погружения в Scheme я рекомендую бесплатный веб-сервис Exercism, который предлагает для решения набор упражнений с постоянно возрастающей сложностью, а также возможность обсудить своё решение с сообществом и даже получить фидбек от ментора. Каждое упражнение снабжено пачкой автоматических тестов. У Scheme огромное количество реализаций, каждая со своими плюсами и минусами. Для решения упражнений на Exercism хорошо подойдёт популярная и универсальная реализация Scheme под названием Guile. Под Linux она есть в репозиториях большинства дистрибутивов, под MacOS её можно установить из Homebrew, а под Windows можно воспользоваться WSL.
Чтобы ознакомиться с основами языка и успешно решать упражнения, достаточно будет первых шести пунктов быстрого введения “Learn Scheme in 15 minutes”. Более обстоятельное и подробное введение для новичка – “A Scheme Primer”. Наконец, если тема функционального программирования вас заинтересовала, не могу не порекомендовать книгу “Structure and Interpretation of Computer Programs”, уже ставшую легендарной – недаром её называют The Wizard book; есть также её перевод на русский. Эта книга в своё время раскрыла мне глаза как на ФП, так и на индустрию программирования в целом.
_
Андрей ведёт Telegram-канал «Лисп в изгнании», посвящённый разработке видеоигр на языках LISP-семейства.
🤘Присоединяйтесь, если интересно!
🤟 Сегодня в гостях у OTUS News Андрей Кравчук – разработчик с 14-летним опытом и преподаватель курса OTUS “Python Developer. Professional”. Андрей рассказал о пользе изучения функционального программирования.
О функциональном программировании к 2023 году не слышал только ленивый. Мейнстримные языки (Python, JavaScript) по ходу развития приобретают всё больше функциональных черт, а нишевые языки, изначально ориентированные на ФП (Clojure, Rust) завоёвывают всё большую популярность. Кроме того, функциональные языки-мастодонты вроде Common Lisp и Haskell также не пропадают с горизонта индустрии. Первый сейчас популярен среди компаний, исследующих квантовые вычисления, а второй часто используется в блокчейн-стартапах.
С чего же начать, если хочется одной ногой попробовать воду в море функционального программирования?
Я бы рекомендовал обратить взор на Scheme, входящий в семейство LISP-подобных языков. Лисп, в свою очередь, является вторым старейшим языком программирования высокого уровня, уступая лишь на год Фортрану. Scheme – его более поздний минималистичный диалект, который в своё время даже использовался для обучения программированию в институте MIT.
😉 Язык этот, хоть и сначала поражает непривычным синтаксисом, лёгок для освоения, так как по характеристикам совпадает со многими современными мейнстримными языками – он является динамически сильно типизированным языком с лексическими областями видимости, замыканиями и сборкой мусора, что ставит его в один ряд с такими языками, как Python, Ruby и C# старше 4.0. При написании кода на Scheme часто преследует чувство узнавания. Например, все манипуляции со списками на нём принято выполнять с помощью «трёх столпов»
map
, filter
и reduce
, так хорошо известным JS-программистам. Корень этого явления состоит в вышеупомянутом факте. Лисп, являясь одним из старейших ЯП, был колыбелью инноваций на протяжении многих лет. Многие языковые фичи – условный оператор if/else
, рекурсия, сборка мусора, функции как объекты первого класса – впервые появились именно в нём. К тому же, история циклична, и многие парадигмы, разработанные в рамках семейства LISP-подобных языков, казавшиеся бесполезной академической игрушкой тогда, во второй половине XX века, сейчас заново обретают свою важность в прикладном смысле. Например, иммутабельные структуры данных на порядки упрощают написание многопоточного кода, необходимого для задействования всех вычислительных ядер современных CPU.
👉 Для погружения в Scheme я рекомендую бесплатный веб-сервис Exercism, который предлагает для решения набор упражнений с постоянно возрастающей сложностью, а также возможность обсудить своё решение с сообществом и даже получить фидбек от ментора. Каждое упражнение снабжено пачкой автоматических тестов. У Scheme огромное количество реализаций, каждая со своими плюсами и минусами. Для решения упражнений на Exercism хорошо подойдёт популярная и универсальная реализация Scheme под названием Guile. Под Linux она есть в репозиториях большинства дистрибутивов, под MacOS её можно установить из Homebrew, а под Windows можно воспользоваться WSL.
Чтобы ознакомиться с основами языка и успешно решать упражнения, достаточно будет первых шести пунктов быстрого введения “Learn Scheme in 15 minutes”. Более обстоятельное и подробное введение для новичка – “A Scheme Primer”. Наконец, если тема функционального программирования вас заинтересовала, не могу не порекомендовать книгу “Structure and Interpretation of Computer Programs”, уже ставшую легендарной – недаром её называют The Wizard book; есть также её перевод на русский. Эта книга в своё время раскрыла мне глаза как на ФП, так и на индустрию программирования в целом.
_
Андрей ведёт Telegram-канал «Лисп в изгнании», посвящённый разработке видеоигр на языках LISP-семейства.
🤘Присоединяйтесь, если интересно!
👏2👍1🔥1
⚡️ Всем привет! Сегодня в гостях у Otus News Мария Тихонова – Senior Data Scientist в SberDevices и преподаватель курса OTUS “Machine Learning. Professional”.
Маша поделилась вредными советами по общению, которые пригодятся начинающим, да и не только, айтишникам. Только не перепутайте 😉
Совет 1: Напишите коллеге в Whatsapp, а еще лучше – отправьте голосовуху.
Совет 2: Всегда сидите в Zoom с включенным микрофоном, из которого доносятся странные неприятные шумы.
Совет 3: Поставьте коллегам встречу на 9 утра, лучше накануне вечером.
Совет 4: Читать документацию – для слабаков! Замучайте вопросами коллег (конечно, в Whatsapp по совету №1). Лучше всего при этом путать раскладку клавиатуры и писать капсом.
Совет 5: Залейте в git-репозиторий файл на много гигов, лучше – прямо в main.
Совет 6: Используйте случайные комбинации букв для названий переменных, а то вдруг конкуренты увидят ваш код?
Совет 7: Громко заявите, что трушные прогеры работают только через Github Desktop и под виндой, а Linux, Ubuntu и консоль – прошлый век.
Совет 8: Попросите всех срочно откомментить google-док, но не давайте доступ.
Совет 9: Напишите коллеге «Привет, как дела?» и дальше долго держите тишину.
Совет 10: Назначьте созвон без темы с пометкой «Крайне важный митап» и забудьте прийти на него.
Совет 11: Используйте максимально нетипичные версии библиотек и никогда не пишите requirements.txt.
Совет 12: Зайдите на сервер, где крутится обучение ваших коллег и сделайте restart всего.
Совет 13: Хейтите фоточки котиков, которые коллеги скидывают в общий чат.
С вредными советами разобрались, а вот полезные можете прочитать в этом посте на Хабр. А если интересно следить за новостями в мире IT, приглашаем в Telegram-канал Марии “Mashkka про Data Science”.
#expert
Маша поделилась вредными советами по общению, которые пригодятся начинающим, да и не только, айтишникам. Только не перепутайте 😉
Совет 1: Напишите коллеге в Whatsapp, а еще лучше – отправьте голосовуху.
Совет 2: Всегда сидите в Zoom с включенным микрофоном, из которого доносятся странные неприятные шумы.
Совет 3: Поставьте коллегам встречу на 9 утра, лучше накануне вечером.
Совет 4: Читать документацию – для слабаков! Замучайте вопросами коллег (конечно, в Whatsapp по совету №1). Лучше всего при этом путать раскладку клавиатуры и писать капсом.
Совет 5: Залейте в git-репозиторий файл на много гигов, лучше – прямо в main.
Совет 6: Используйте случайные комбинации букв для названий переменных, а то вдруг конкуренты увидят ваш код?
Совет 7: Громко заявите, что трушные прогеры работают только через Github Desktop и под виндой, а Linux, Ubuntu и консоль – прошлый век.
Совет 8: Попросите всех срочно откомментить google-док, но не давайте доступ.
Совет 9: Напишите коллеге «Привет, как дела?» и дальше долго держите тишину.
Совет 10: Назначьте созвон без темы с пометкой «Крайне важный митап» и забудьте прийти на него.
Совет 11: Используйте максимально нетипичные версии библиотек и никогда не пишите requirements.txt.
Совет 12: Зайдите на сервер, где крутится обучение ваших коллег и сделайте restart всего.
Совет 13: Хейтите фоточки котиков, которые коллеги скидывают в общий чат.
С вредными советами разобрались, а вот полезные можете прочитать в этом посте на Хабр. А если интересно следить за новостями в мире IT, приглашаем в Telegram-канал Марии “Mashkka про Data Science”.
#expert
🤣9🔥6👍3🤔1
⚡️ Всем привет!
Сегодня в гостях у Otus News Алина Романова – Information Analyst в голландской компании bol.com и преподаватель курса OTUS «Системный аналитик. Advanced».
Алина поделилась полезными рекомендациями для всех, кто ищет работу за рубежом: как прокачать LinkedIn-профиль, правильно написать CV, найти релевантные вакансии и подготовиться к интервью. ⬇️
Статья в Otus Journal
#expert
Сегодня в гостях у Otus News Алина Романова – Information Analyst в голландской компании bol.com и преподаватель курса OTUS «Системный аналитик. Advanced».
Алина поделилась полезными рекомендациями для всех, кто ищет работу за рубежом: как прокачать LinkedIn-профиль, правильно написать CV, найти релевантные вакансии и подготовиться к интервью. ⬇️
Статья в Otus Journal
#expert
👍5🔥3👎1👏1
⚡️ Всем привет! Сегодня в гостях у OTUS News Антон Губарев — руководитель буткемпа “DevOps”.
Поговорили с Антоном о том, какие требования предъявляют работодатели к роли техлида.
Для многих инженеров техлид — желаемая и почетная должность. Это признак высокой квалификации и доверия со стороны руководства, а также возможность оказывать максимальное влияние на продукт и технические/архитектурные решения. Приятным бонусом станет и более высокая зарплата. Однако техлид — это еще и высокий уровень ответственности и большое количество предъявляемых требований и обязанностей.
Я несколько лет работал в роли техлида и в роли архитектора, и в этом посте собрал для вас основные требования, которые предъявляют работодатели для этой роли:
✔️ Автономность. Вам можно поручить задачу/проект и быть уверенным, что все будет доведено до конца без пинаний и контроля, даже если потребуется подключать другие команды и организовывать людей.
✔️ Ориентация на бизнес-результат. В первую очередь надо понимать, какую пользу для бизнеса принесет ваше решение. Нередко для этого необходимо срезать углы в технических решениях. А по окончании задачи/проекта самостоятельно убеждаться в достижении цели.
✔️ Коммуникабельность. Для техлида нет понятия «это их недоработка/проблема». Для реализации проекта часто будет требоваться договориться с другой командой или отделом о внесении нужных вам правок, в идеале без привлечения вышестоящего руководителя. А иногда и внутри своей команды надо проявлять умение убеждать.
✔️ Высокая квалификация. Умение выбрать и спроектировать наиболее подходящее решение, нарезать на этапы, при необходимости провести исследование, и, конечно, аргументированно донести все это до команды.
Это самые основные, но далеко не единственные качества, которые нужны, чтобы успешно справляться с ролью техлида. В разных компаниях они могут незначительно различаться. О них и не только я регулярно пишу в своем канале Техлидошная, где делюсь личным опытом. Присоединяйтесь, если интересно 😉
#expert
Поговорили с Антоном о том, какие требования предъявляют работодатели к роли техлида.
Для многих инженеров техлид — желаемая и почетная должность. Это признак высокой квалификации и доверия со стороны руководства, а также возможность оказывать максимальное влияние на продукт и технические/архитектурные решения. Приятным бонусом станет и более высокая зарплата. Однако техлид — это еще и высокий уровень ответственности и большое количество предъявляемых требований и обязанностей.
Я несколько лет работал в роли техлида и в роли архитектора, и в этом посте собрал для вас основные требования, которые предъявляют работодатели для этой роли:
Это самые основные, но далеко не единственные качества, которые нужны, чтобы успешно справляться с ролью техлида. В разных компаниях они могут незначительно различаться. О них и не только я регулярно пишу в своем канале Техлидошная, где делюсь личным опытом. Присоединяйтесь, если интересно 😉
#expert
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥2
👋 Всем привет! Сегодня в гостях у OTUS Илья Прахт — опытный менеджер в IT, консультант и тренер, автор телеграмм-канала Седой Директор, а также руководитель курсов Delivery Manager, COO и преподаватель курсов TeamLead и Senior Product Manager в OTUS.
Поговорили с Ильей про инструменты аудита команды — как понять, на что способна ваша команда, какие у нее есть проблемы, и как добиться эффективности в ее работе.
***
Сегодня будет много инструментов в штуках, но мало в глубине погружения. Поэтому пишите, что заинтересовало больше всего, сделаем подробный разбор.
Итак, есть команда. Она есть, что называется AS IS, и с ней нужно как-то работать. Какой линейкой можно ее измерить, чтобы это информация была хоть сколько-нибудь полезной?
Очевидно, есть две основные плоскости: аудит команды целиком, именно как команды, как единого организма, и аудит каждого конкретного сотрудника в отдельности.
💁♂Начнем со второго – с сотрудника. У сотрудника есть 3 основных параметра, с которых следует начинать:
1. Компетенции – понять, что он умеет, и какого качества и количества работы от него ожидать. Хорошо помогают здесь матрицы/карты компетенций и некий ассессмент по этой матрице. Лучше варианта я и не знаю.
2. Мотивация – ради чего сотрудник будет работать хорошо. Мне нравится здесь модель Герчикова. Она относительно простая, но очень наглядная. Понимая истинную мотивацию, понимаешь, как сотрудником управлять.
3. Психотип – как сотрудник будет работать и какого поведения от него ожидать. Хорошим инструментом является DISC. Да, он простоват, но зато понятный и наглядный.
Важно!📎 Прям обращаю внимание! Все 3 типа инструментов (да-да, даже матрица компетенций!) – это упрощенные модели. Не бывает одного ярко выраженного типа, всегда есть комбинация: и в психотипах, и в мотивации, и в компетенциях. Поэтому и использовать эти инструменты нужно как некоторую базу, которую потом нужно натягивать на реальных людей. Как ту самую сову на ту самую уменьшенную модель мира.
✊ Теперь про команду. Здесь есть 4 основных параметра, характеризующих команду:
1. Общая цель – куда и ради чего команда идет. Плохо, если цели нет. Лучше, если она есть, но не та, что нужна бизнесу. Ну и хорошо, когда и бизнес и команда смотрят в одну сторону. Неплохой инструмент придумал Стратоплан и обозвал его Мамонт. Цель должна выглядеть, как мамонт, которого нужно всем вместе завалить, чтобы утолить голод и обогатиться рогами и шкурами.
2. Командная динамика – в каком состоянии находится команда. Пресловутые шторминги, норминги, перформинги по Такману. Для каждого этапа свои подходы и инструменты, путать не стоит.
3. Закрытость команды – какие у команды внешние границы, насколько она открыта для взаимодействия и коммуникаций наружу. Модель Берна с ее кружками хорошо иллюстрирует эту идею.
4. Роли в команде – какие роли есть, каких не хватает, каков баланс/перекос на данный момент. Неплохо роли описал Белбин (подробнее можно прочитать в моей статье на Хабр). Есть еще модель Бенна и Шитса, направленная больше на выявление деструктивных ролей, но тоже полезно.
Вот такие 7 основных параметров и 7 основных инструментов, которые сильно помогают в аудите команды. Есть много других, не менее полезных. Но начать можно с этих 7 – они дают полную и комплексную картину, кто перед вами, что может ваша команда.
👊 Удачи в работе с вашими командами!
#expert
Поговорили с Ильей про инструменты аудита команды — как понять, на что способна ваша команда, какие у нее есть проблемы, и как добиться эффективности в ее работе.
***
Сегодня будет много инструментов в штуках, но мало в глубине погружения. Поэтому пишите, что заинтересовало больше всего, сделаем подробный разбор.
Итак, есть команда. Она есть, что называется AS IS, и с ней нужно как-то работать. Какой линейкой можно ее измерить, чтобы это информация была хоть сколько-нибудь полезной?
Очевидно, есть две основные плоскости: аудит команды целиком, именно как команды, как единого организма, и аудит каждого конкретного сотрудника в отдельности.
💁♂Начнем со второго – с сотрудника. У сотрудника есть 3 основных параметра, с которых следует начинать:
1. Компетенции – понять, что он умеет, и какого качества и количества работы от него ожидать. Хорошо помогают здесь матрицы/карты компетенций и некий ассессмент по этой матрице. Лучше варианта я и не знаю.
2. Мотивация – ради чего сотрудник будет работать хорошо. Мне нравится здесь модель Герчикова. Она относительно простая, но очень наглядная. Понимая истинную мотивацию, понимаешь, как сотрудником управлять.
3. Психотип – как сотрудник будет работать и какого поведения от него ожидать. Хорошим инструментом является DISC. Да, он простоват, но зато понятный и наглядный.
Важно!
1. Общая цель – куда и ради чего команда идет. Плохо, если цели нет. Лучше, если она есть, но не та, что нужна бизнесу. Ну и хорошо, когда и бизнес и команда смотрят в одну сторону. Неплохой инструмент придумал Стратоплан и обозвал его Мамонт. Цель должна выглядеть, как мамонт, которого нужно всем вместе завалить, чтобы утолить голод и обогатиться рогами и шкурами.
2. Командная динамика – в каком состоянии находится команда. Пресловутые шторминги, норминги, перформинги по Такману. Для каждого этапа свои подходы и инструменты, путать не стоит.
3. Закрытость команды – какие у команды внешние границы, насколько она открыта для взаимодействия и коммуникаций наружу. Модель Берна с ее кружками хорошо иллюстрирует эту идею.
4. Роли в команде – какие роли есть, каких не хватает, каков баланс/перекос на данный момент. Неплохо роли описал Белбин (подробнее можно прочитать в моей статье на Хабр). Есть еще модель Бенна и Шитса, направленная больше на выявление деструктивных ролей, но тоже полезно.
Вот такие 7 основных параметров и 7 основных инструментов, которые сильно помогают в аудите команды. Есть много других, не менее полезных. Но начать можно с этих 7 – они дают полную и комплексную картину, кто перед вами, что может ваша команда.
#expert
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4👍2
⚡️ Всем привет! 👋
Сегодня в гостях у OTUS News наш преподаватель Александр Миленькин — Team Lead Machine Learning Engineer в компании Dodo Brands, автор телеграмм-канала Data Feeling, а также преподаватель курсов ML Advanced/Basic/Professional в OTUS. Kaggle Expert.
Поговорили с Александром про три неочевидных цель ML «фичей» в сервисе ⬇️
***
Фича — это, по сути, какое-то новое решение, которая делает ваш сервис лучше. Например, рекомендательная система или любая другая система персонализации.
Парадоксально, но не всегда ML решения должны иметь цель принести больше денег. Да, бизнес хочет получать больше прибыли. Однако, если мы говорим про долгосрочную стратегию, то иногда лучше смотреть на другие долгосрочные метрики успеха.
Вот два неочевидных слушая, когда после A/B теста имеет смысл выбрать ML модель, которая проигрывает по принесенной прибыли.
🍕 Первый клиентский опыт. Суть такая, если с моделью A удалось значимо улучшить конверсию в заказы при первом опыте использования вашего сервиса, тем такая модель лучше модели B, которая имеет меньшую конверсию, но такую же принесенную суммарно прибыль.
🌯 Разнообразие клиентского опыта. Есть такое наблюдение, что чем более разнообразен опыт клиента, то ниже вероятность его оттока. Очень условно: если вы заказываете пиццу в Додо, то ваша вероятность заказать в следующий раз ниже, чем у человека, который заказывал не только пиццу, но и куриные кусочки.
☕️Частотность. Тоже хороший путь, где вы целитесь в то, чтоб вашим сервисом пользовались часто, нежели заказали один раз и ушли навсегда.
Конечно, в зависимости от сервиса и политики компании, решения по выбору итоговых ML моделей могут быть иными. Приведенные выше примеры позволяют мыслить стратегически. А вообще, это все очень короткие выжимки из теории A/B тестирования и продуктовой аналитики.
#expert
Сегодня в гостях у OTUS News наш преподаватель Александр Миленькин — Team Lead Machine Learning Engineer в компании Dodo Brands, автор телеграмм-канала Data Feeling, а также преподаватель курсов ML Advanced/Basic/Professional в OTUS. Kaggle Expert.
Поговорили с Александром про три неочевидных цель ML «фичей» в сервисе ⬇️
***
Фича — это, по сути, какое-то новое решение, которая делает ваш сервис лучше. Например, рекомендательная система или любая другая система персонализации.
Парадоксально, но не всегда ML решения должны иметь цель принести больше денег. Да, бизнес хочет получать больше прибыли. Однако, если мы говорим про долгосрочную стратегию, то иногда лучше смотреть на другие долгосрочные метрики успеха.
Вот два неочевидных слушая, когда после A/B теста имеет смысл выбрать ML модель, которая проигрывает по принесенной прибыли.
🌯 Разнообразие клиентского опыта. Есть такое наблюдение, что чем более разнообразен опыт клиента, то ниже вероятность его оттока. Очень условно: если вы заказываете пиццу в Додо, то ваша вероятность заказать в следующий раз ниже, чем у человека, который заказывал не только пиццу, но и куриные кусочки.
☕️Частотность. Тоже хороший путь, где вы целитесь в то, чтоб вашим сервисом пользовались часто, нежели заказали один раз и ушли навсегда.
Конечно, в зависимости от сервиса и политики компании, решения по выбору итоговых ML моделей могут быть иными. Приведенные выше примеры позволяют мыслить стратегически. А вообще, это все очень короткие выжимки из теории A/B тестирования и продуктовой аналитики.
#expert
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥3❤2
👋 Всем привет! Сегодня в гостях у OTUS Светлана Черникова — бизнес-тренер, консультант по выводу на рынок IT-продуктов, автор канала «Давайте уже запускаться» и руководитель курса Product Marketing Manager в IT в OTUS.
7 СМЕРТНЫХ ГРЕХОВЪ ПРИ ЗАПУСКЕ ПРОДУКТА
✊ Гордыня: если вас осеняет гениальная идея нового стартапа, немедленно берите её в работу, даже если это спецпитание для одного-единственного шерстяного псына Илона Маска, которого он решил взять на Старшип.
🤑 Чревоугодие: не жалейте денег, чтобы казаться суперуспешным и сделать идеально вылизанный продукт — он должен выглядеть дорохо и быть роскошен, как Линда Евангелиста на обложке Vogue . Ведь людям важна красота и эстетика, а не польза и актуальность.
😠 Зависть: ваши конкуренты стали успешными благодаря шаману/вспышке на Марсе/25 кадру. Вы точно-преточно лучше, поэтому поднимите правую руку вверх и махните на них хорошенько, упаси бог ещё изучать, что они там делают.
😡 Гнев: вы имеете полное право злиться на ваших клиентов, которые никак не могут разобраться в вашем очумительном продукте. Вы ведь так для них старались: запилили блокчейн, подключили искусственный интеллект, добавили 3D-аватары… Простота — она же для бедняков, а у нас тут такой супер-пупер, что даже в 10 абзацах его не опишешь.
💃 Блуд: будьте всегда впереди — придумайте себе ещё один проект и начните заниматься им параллельно. А ещё обязательно меняйте гипотезы во всех проектах как только, так сразу. Что-что, не окончили проверять ещё прошлые? В топку, часики-то тикают.
🤷♀️ Жадность: экономьте на персонале. На рынке полно «сеньоров» с международным опытом, и это недорого. Перед сном представляйте, как они с ночи занимают очередь перед дверьми вашего офиса, ведь ваша идея такая крутая. А если выгорает текущая команда, снова поднимите руку вверх и махните. Некогда отдыхать, сам Джобс велел ходить голодным!
🤪 Лень: ух, страшно представить, сколько сил и времени пришлось бы вбухать в предварительный ресёч, тестирование MVP и валидацию спроса, аж ладошки потеют от ужаса. Гораздо лучше эти ладошки да на клавиатуру и кодить, ведь как может не продаться блокчейн с искусственным интеллектом да ещё и с 3D-аватарами?!
🙏 Хорошо, что в грехах всегда можно покаяться и встать на истинный путь исправления вместе с продактарианкой @redhead_product
Аминь!
#expert
7 СМЕРТНЫХ ГРЕХОВЪ ПРИ ЗАПУСКЕ ПРОДУКТА
Аминь!
#expert
Please open Telegram to view this post
VIEW IN TELEGRAM
❤7😁5🔥4👎1
Всем привет!
🤟 Сегодня в гостях у OTUS News — Евгений Жильцов, Head of QA с более чем 11-летним опытом в IT и преподаватель курса OTUS "QA Lead". Евгений расскажет, как эффективно организовать процесс Code Review в команде.
Вот 7 стратегий Code Review, которые помогут оптимизировать работу вашей команды:
🔹 Стратегия «Патруль»
Ревьюер назначается менеджером, исходя из текущей загруженности команды. Это помогает равномерно распределять работу и поддерживать процесс ревью даже в напряженные дни.
🔹 Стратегия «Напарники»
На старте спринта назначаются пары для взаимного ревью. Постоянная смена напарников способствует обмену знаниями и улучшению взаимодействия между разработчиками.
🔹 Стратегия «Спецгруппа»
Если в вашей команде много новичков, создайте небольшую группу опытных разработчиков, которая будет заниматься ревью. Это ускорит обучение и адаптацию новичков, готовя их к более сложным процессам.
🔹 Стратегия «Доверенное лицо»
Назначьте одного опытного разработчика, чье мнение принимается автоматически. Это идеально подходит для команд с большим количеством младших специалистов, нуждающихся в наставничестве.
🔹 Стратегия «Экспертная зона»
При изменении в конкретной области кода приглашайте специалиста по этому домену. Это поможет получить точную и полезную обратную связь.
🔹 Стратегия «Открытый стол»
Приглашайте всех желающих участвовать в ревью. Этот подход стимулирует обсуждение и повышает вовлеченность команды.
🔹 Стратегия «Свежий взгляд»
Пригласите ревьюера из другого проекта или команды, чтобы получить объективный взгляд на изменения и избежать эффекта «замыленного глаза».
📌 Больше идей из арсенала тимлида можно найти в канале
#expert
🤟 Сегодня в гостях у OTUS News — Евгений Жильцов, Head of QA с более чем 11-летним опытом в IT и преподаватель курса OTUS "QA Lead". Евгений расскажет, как эффективно организовать процесс Code Review в команде.
Вот 7 стратегий Code Review, которые помогут оптимизировать работу вашей команды:
Ревьюер назначается менеджером, исходя из текущей загруженности команды. Это помогает равномерно распределять работу и поддерживать процесс ревью даже в напряженные дни.
На старте спринта назначаются пары для взаимного ревью. Постоянная смена напарников способствует обмену знаниями и улучшению взаимодействия между разработчиками.
Если в вашей команде много новичков, создайте небольшую группу опытных разработчиков, которая будет заниматься ревью. Это ускорит обучение и адаптацию новичков, готовя их к более сложным процессам.
Назначьте одного опытного разработчика, чье мнение принимается автоматически. Это идеально подходит для команд с большим количеством младших специалистов, нуждающихся в наставничестве.
При изменении в конкретной области кода приглашайте специалиста по этому домену. Это поможет получить точную и полезную обратную связь.
Приглашайте всех желающих участвовать в ревью. Этот подход стимулирует обсуждение и повышает вовлеченность команды.
Пригласите ревьюера из другого проекта или команды, чтобы получить объективный взгляд на изменения и избежать эффекта «замыленного глаза».
📌 Больше идей из арсенала тимлида можно найти в канале
#expert
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5🔥2👍1
Всем привет!
🤟 Сегодня в гостях у OTUS Дмитрий Панкрашов — Python Backend Developer в Сбере, автор канала DevIO | IT | GameDev и преподаватель курса “Python Developer. Professional” в IT в OTUS.
Дмитрий поделился личным опытом проектирования и внедрения системы автоматизации без четкого ТЗ и менторской поддержки, с какими ошибками он столкнулся в процессе и какие выводы сделал.
Обычно дети думают, что знают всё лучше родителей, а начинающие разработчики в этом смысле чем‑то похожи на детей. Они всегда всё знают лучше, чем их старшие коллеги. Но иногда бывает так, что джун на первой работе получает задачу спроектировать и реализовать систему целиком, и тогда его уверенность в том, что он точно знает, как и что надо делать, укрепляется, потому что он‑то сделал систему, а остальные только и могут рассказывать, что «хорошо делать хорошо, а плохо делать — плохо».
Когда‑то и я таким был. Устроившись на должность разработчика к подведу местного МинОбра (образования, не обороны!), мне поручили реализовать и внедрить в работу систему, рассчитанную на массовое использование. Система предназначалась для автоматизации процесса аттестации педагогических работников. Сотрудники школ, детских садов и других организаций могут подать заявление на присвоение категории, которая дает некоторую прибавку к зарплате. Заявление сопровождается отправкой портфолио, содержащим подтверждающие документы. Портфолио рассматривают эксперты, по результатам принимается решение о присвоении, либо отказе в присвоении категории.
Процесс, как водится, был «в бумаге» и требовалось перенести его и все данные «в компьютер». Технических заданий, дизайн‑документов, UML‑диаграмм, и прочего аналитического добра у меня, конечно же, не было. Были только утвержденные формы портфолио, и объяснения, как оно работает «на пальцах».
Как вы понимаете, этот текст не об успешном успехе и результатах внедрения, превосходящих все самые смелые ожидания, а о допущенных ошибках.
Ошибки — важная часть процесса обучения. Можно заучить «как правильно», и не понимать, почему же правильно именно так, а не по‑другому. А может, «правильно» делать надо не во всех случаях? А где можно срезать углы, и чем это черевато?
Как вы понимаете, ошибок, допущенных мною, было много. Какие‑то были чисто техническими, какие‑то связаны с коммуникацией. Что‑то всплывало сразу, что‑то удалось увидеть и понять значительно позже. Несмотря на то, что проект живет, он мог бы быть лучше. В общем смысле все ошибки можно разделить на ошибки проектирования, ошибки реализации, ошибки выстраивания коммуникации.
Ошибки проектирования
Все слышали поговорку «Семь раз отмерь — один раз отрежь»? Она в том числе и про проектирование.
Ошибка1️⃣ - Не проектировать вообще.
Максимум, что было у меня в голове после изучения бумажной формы портфолио — примерная концепция пользовательского интерфейса с деревом папок‑критериев оценки. На тот момент я мог еще нарисовать диаграмму потоков данных (по сути, схему базы данных, с таблицами и отношениями между ними), но, как я посчитал, без этого можно обойтись. Да и вообще, что там программировать?!
Ошибка2️⃣ -Проектировать только техническое решение.
Как показала практика, учитывать взаимодействие «пользователь — сотрудник — проверяющий», особенно, если оно может происходить в обход системы, все же нужно. Хотя бы для планирования возможных «дырок в заборе».
Ошибка3️⃣ - Я вообще‑то разработчик, а не эти ваши…
Любой разработчик минимально тестирует то, что пишет. Но «протыкал кнопки по предполагаемому user‑flow» и реальное использование — разные вещи, как выяснилось позже.
Спустя время кажется, что при отсутствии внятного ТЗ и желания его писать, можно было на неделю погрузиться в будни сотрудников, работающих по автоматизируемым процессам. Тем более, что после разработки всплыли дополнительные «хотелки», не учтенные изначально, и работа стала напоминать на строительство рельс перед несущимся паровозом.
➡️ В следующем посте поговорим про технические ошибки.
#expert
🤟 Сегодня в гостях у OTUS Дмитрий Панкрашов — Python Backend Developer в Сбере, автор канала DevIO | IT | GameDev и преподаватель курса “Python Developer. Professional” в IT в OTUS.
Дмитрий поделился личным опытом проектирования и внедрения системы автоматизации без четкого ТЗ и менторской поддержки, с какими ошибками он столкнулся в процессе и какие выводы сделал.
Обычно дети думают, что знают всё лучше родителей, а начинающие разработчики в этом смысле чем‑то похожи на детей. Они всегда всё знают лучше, чем их старшие коллеги. Но иногда бывает так, что джун на первой работе получает задачу спроектировать и реализовать систему целиком, и тогда его уверенность в том, что он точно знает, как и что надо делать, укрепляется, потому что он‑то сделал систему, а остальные только и могут рассказывать, что «хорошо делать хорошо, а плохо делать — плохо».
Когда‑то и я таким был. Устроившись на должность разработчика к подведу местного МинОбра (образования, не обороны!), мне поручили реализовать и внедрить в работу систему, рассчитанную на массовое использование. Система предназначалась для автоматизации процесса аттестации педагогических работников. Сотрудники школ, детских садов и других организаций могут подать заявление на присвоение категории, которая дает некоторую прибавку к зарплате. Заявление сопровождается отправкой портфолио, содержащим подтверждающие документы. Портфолио рассматривают эксперты, по результатам принимается решение о присвоении, либо отказе в присвоении категории.
Процесс, как водится, был «в бумаге» и требовалось перенести его и все данные «в компьютер». Технических заданий, дизайн‑документов, UML‑диаграмм, и прочего аналитического добра у меня, конечно же, не было. Были только утвержденные формы портфолио, и объяснения, как оно работает «на пальцах».
Как вы понимаете, этот текст не об успешном успехе и результатах внедрения, превосходящих все самые смелые ожидания, а о допущенных ошибках.
Ошибки — важная часть процесса обучения. Можно заучить «как правильно», и не понимать, почему же правильно именно так, а не по‑другому. А может, «правильно» делать надо не во всех случаях? А где можно срезать углы, и чем это черевато?
Как вы понимаете, ошибок, допущенных мною, было много. Какие‑то были чисто техническими, какие‑то связаны с коммуникацией. Что‑то всплывало сразу, что‑то удалось увидеть и понять значительно позже. Несмотря на то, что проект живет, он мог бы быть лучше. В общем смысле все ошибки можно разделить на ошибки проектирования, ошибки реализации, ошибки выстраивания коммуникации.
Ошибки проектирования
Все слышали поговорку «Семь раз отмерь — один раз отрежь»? Она в том числе и про проектирование.
Ошибка
Максимум, что было у меня в голове после изучения бумажной формы портфолио — примерная концепция пользовательского интерфейса с деревом папок‑критериев оценки. На тот момент я мог еще нарисовать диаграмму потоков данных (по сути, схему базы данных, с таблицами и отношениями между ними), но, как я посчитал, без этого можно обойтись. Да и вообще, что там программировать?!
Ошибка
Как показала практика, учитывать взаимодействие «пользователь — сотрудник — проверяющий», особенно, если оно может происходить в обход системы, все же нужно. Хотя бы для планирования возможных «дырок в заборе».
Ошибка
Любой разработчик минимально тестирует то, что пишет. Но «протыкал кнопки по предполагаемому user‑flow» и реальное использование — разные вещи, как выяснилось позже.
Спустя время кажется, что при отсутствии внятного ТЗ и желания его писать, можно было на неделю погрузиться в будни сотрудников, работающих по автоматизируемым процессам. Тем более, что после разработки всплыли дополнительные «хотелки», не учтенные изначально, и работа стала напоминать на строительство рельс перед несущимся паровозом.
#expert
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2🔥1😁1
Всем привет!
Сегодня пост-продолжение рассказа Дмитрия Панкрашова (Python Backend Developer в Сбере, автор канала DevIO | IT | GameDev) про опыт проектирования и внедрения системы автоматизации.
Первая часть
Самое вкусное и интересное — технические ошибки. Именно они во многом определили для меня отношение к этому проекту, как к неудачному. С одной стороны, мне можно и посочувствовать. Что я знал и умел на тот момент? И указать на ошибки было, в общем‑то, некому. С другой стороны, наделавшись велосипедов, столкнувшись с последствиями принятых мной решений, я могу проще относиться к начинающим разработчикам, которые точно знают, как надо. Потому что помню, как сам таким был.
Ошибка1️⃣ - Хранить файлы в базе данных
Как вам идея? Почему‑то мне показалось, что нет особой разницы между хранением на диске и в базе. В базе даже поудобнее, сразу связи видно, а на диске — вдруг чего где потеряется или затрётся? Загружаемые файлы, конечно, были ограничены по размеру. Сначала это было ограничение в 100Мб, потом приняли решение ограничить размер одного файла до 1Мб, но не ограничивать количество файлов. И что же стали делать люди, которым нужно отправить 100-страничный скан рукописных тетрадей? Конечно же, паковать все в архивы, с разбиением на тома. 300 томов по 1Мб, да еще и загружать это полдня, стараясь не пропустить том, и не загрузить одно и то же два раза (потом же не откроется ничего). Гвозди из этих людей можно делать! Но вернемся к базам. Хранить файлы в базе — решение плохое, в том числе и потому, что файл будет вычитан куда? Правильно. В память. А убирается он кем? Правильно. Сборщиком мусора. В результате на ровном месте получили тормозной и падающий по непонятным причинам хайлоад. Вот надо оно было?
Ошибка2️⃣ - Не учитывать поток пользователей
Сколько RPS (запросов в секунду) выдержит ваш сервис? А как вы это посчитали? Я был ответил — не знаю, никак не считал. Придут пользователи — разберемся. Пользователи пошли — начались ошибки. Тратя время на борьбу с ними, я все никак не мог прийти к мысли — а ведь можно было взять статистику за предыдущие годы и посчитать распределение аттестуемых по месяцам! В RPS это, конечно, никак не пересчитывается, но понять, даже примерно, к чему готовиться, и проверить приложение под нагрузкой перед его релизом возможность все же была.
Ошибка3️⃣ - Не собирать ошибки и метрики производительности
Это сейчас я знаю, что такое Sentry, ELK, Jaeger и т. д., а в то время анализ ограничивался постулатом «раз не пишут, значит, и проблем нет». А если проблемы были — сначала нужно было ошибку воспроизвести, потом исправить, и потом воспроизвести еще раз, чтобы провалидировать ее исправление. А уж про метрики производительности говорить даже не буду. До сих пор никто не знает, сколько там операции с базой времени занимают.
Ошибка4️⃣ - Бэкапы
Классика. Ситуация: в 2 часа ночи вспомнил, что обещал с утра сделать фичу. Естественно, забыл про обещание напрочь. Выхода нет — надо делать, раз обещал. И что‑то в систему войти не получается, сейчас себе в базе пароль поменяю. UPDATE users set password = «mYp@$$w0rd»; Поменял, отлично, работаем. С утра звонок — люди не могут войти в систему. Ну я‑то вхожу, вот смотрите, набираю mYp@$$W0rd, и я внутри. И только потом дошло, что кто‑то забыл написать WHERE id = 123. Мем смешной, ситуация страшная, да. Но ничего страшного по итогу не случилось, все, кто хотел, сбросили себе пароль через почту, а меня попросили так больше не делать. А был бы бэкап — можно было бы восстановиться, пусть даже перенося пароли из другой БД скриптом.
Описанное выше — далеко не всё, но самое яркое и запоминающееся. В свое оправдание говорить ничего не буду, но опыт был полезным и позволил изменить свое отношение к работе — в частности, научиться рефлексировать и задаваться вопросом «а не делаю ли я сейчас какую‑то ерунду?».
➡️ Про ошибки коммуникации поговорим в следующем посте.
#expert
Сегодня пост-продолжение рассказа Дмитрия Панкрашова (Python Backend Developer в Сбере, автор канала DevIO | IT | GameDev) про опыт проектирования и внедрения системы автоматизации.
Первая часть
Самое вкусное и интересное — технические ошибки. Именно они во многом определили для меня отношение к этому проекту, как к неудачному. С одной стороны, мне можно и посочувствовать. Что я знал и умел на тот момент? И указать на ошибки было, в общем‑то, некому. С другой стороны, наделавшись велосипедов, столкнувшись с последствиями принятых мной решений, я могу проще относиться к начинающим разработчикам, которые точно знают, как надо. Потому что помню, как сам таким был.
Ошибка
Как вам идея? Почему‑то мне показалось, что нет особой разницы между хранением на диске и в базе. В базе даже поудобнее, сразу связи видно, а на диске — вдруг чего где потеряется или затрётся? Загружаемые файлы, конечно, были ограничены по размеру. Сначала это было ограничение в 100Мб, потом приняли решение ограничить размер одного файла до 1Мб, но не ограничивать количество файлов. И что же стали делать люди, которым нужно отправить 100-страничный скан рукописных тетрадей? Конечно же, паковать все в архивы, с разбиением на тома. 300 томов по 1Мб, да еще и загружать это полдня, стараясь не пропустить том, и не загрузить одно и то же два раза (потом же не откроется ничего). Гвозди из этих людей можно делать! Но вернемся к базам. Хранить файлы в базе — решение плохое, в том числе и потому, что файл будет вычитан куда? Правильно. В память. А убирается он кем? Правильно. Сборщиком мусора. В результате на ровном месте получили тормозной и падающий по непонятным причинам хайлоад. Вот надо оно было?
Ошибка
Сколько RPS (запросов в секунду) выдержит ваш сервис? А как вы это посчитали? Я был ответил — не знаю, никак не считал. Придут пользователи — разберемся. Пользователи пошли — начались ошибки. Тратя время на борьбу с ними, я все никак не мог прийти к мысли — а ведь можно было взять статистику за предыдущие годы и посчитать распределение аттестуемых по месяцам! В RPS это, конечно, никак не пересчитывается, но понять, даже примерно, к чему готовиться, и проверить приложение под нагрузкой перед его релизом возможность все же была.
Ошибка
Это сейчас я знаю, что такое Sentry, ELK, Jaeger и т. д., а в то время анализ ограничивался постулатом «раз не пишут, значит, и проблем нет». А если проблемы были — сначала нужно было ошибку воспроизвести, потом исправить, и потом воспроизвести еще раз, чтобы провалидировать ее исправление. А уж про метрики производительности говорить даже не буду. До сих пор никто не знает, сколько там операции с базой времени занимают.
Ошибка
Классика. Ситуация: в 2 часа ночи вспомнил, что обещал с утра сделать фичу. Естественно, забыл про обещание напрочь. Выхода нет — надо делать, раз обещал. И что‑то в систему войти не получается, сейчас себе в базе пароль поменяю. UPDATE users set password = «mYp@$$w0rd»; Поменял, отлично, работаем. С утра звонок — люди не могут войти в систему. Ну я‑то вхожу, вот смотрите, набираю mYp@$$W0rd, и я внутри. И только потом дошло, что кто‑то забыл написать WHERE id = 123. Мем смешной, ситуация страшная, да. Но ничего страшного по итогу не случилось, все, кто хотел, сбросили себе пароль через почту, а меня попросили так больше не делать. А был бы бэкап — можно было бы восстановиться, пусть даже перенося пароли из другой БД скриптом.
Описанное выше — далеко не всё, но самое яркое и запоминающееся. В свое оправдание говорить ничего не буду, но опыт был полезным и позволил изменить свое отношение к работе — в частности, научиться рефлексировать и задаваться вопросом «а не делаю ли я сейчас какую‑то ерунду?».
#expert
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥2
Всем привет!
Завершаем рассказ Дмитрия Панкрашова про его опыт проектирования и внедрения системы автоматизации.
Сегодняшний пост посвящен ошибкам коммуникации.
Первая часть
Вторая часть
Ошибки коммуникации я долгое время вообще не воспринимал как ошибки и не думал, что можно делать по‑другому. И только спустя несколько лет (и компаний, в которых довелось поработать), понял, как было бы эффективнее выстроить коммуникацию с коллегами и пользователями.
Ошибка❤️ - Рабочий телефон для работы, личный — НЕ для работы
Хотите, чтобы ваш телефон превратился в справочную? У меня так было. 2 телефона и 3 сим‑карты. Звонили везде одновременно, и даже ночью. Никому не рекомендую повторять такой опыт. И будет лучше, если вы не понимаете, чем может закончиться раздача своего личного номера телефона, пусть даже вам и кажется, что ничего страшного не случится, завести отдельный телефон только для рабочих коммуникаций.
Ошибка❤️ - Нет каналов коммуникации
Вот представьте, отключили у вас электричество, и все никак не включат. Будете звонить? Конечно, будете. А куда? Сначала в УК\ТСЖ, потом в диспетчерскую, потом еще куда‑нибудь. А если никто не берет трубки — то и до администрации президента дозвонитесь. Собственно, дать пользователям единственный и живой канал коммуникации — важно. Если канал живой — пользователи будут туда писать. Если канал единственный — это исключает дубли и «сломанный телефон». Конечно, я стоял в конце этой цепочки и решений не принимал. Но сейчас предложил бы сделать пусть даже самого простого бота для подачи заявок и ответов на вопросы.
Ошибка❤️ - Иерархия бизнес‑заказчиков
Что делать, если задачи вам ставят все кому не лень? Особенно прикольно, когда эти задачи еще и взаимоисключающие. Эталонная ситуация — когда два равных друг другу по должности и влиянию на продукт лица ставят вам в работу эти самые взаимоисключающие задачи. В моем случае было не так, и, хотя сами требования к продукту и хаос в их описании больше относятся к ошибкам проектирования, все же хорошей практикой считается задать вопрос «Кто мне ставит задачи?» — при условии, что ответ «Все» не принимается.
Резюме: если вы начинающий разработчик и оказались в компании, где у вас есть ментор или хотя бы старшие коллеги, у которых можно проконсультироваться — скорее всего, в подобной ситуации вы не окажетесь. Если же вы один, и на вас возлагают большие надежды — то с высокой долей вероятности из‑за отсутствия опыта, даже если вы читали статьи про то, как делать «правильно», вы все равно сделаете что‑то неправильно или не идеально. Вопрос — столкнетесь ли вы с последствиями своих решений и какие уроки из этого извлечете.
Чтобы узнать больше полезного из мира IT и разработки, подписывайтесь на канал Дмитрия: DevIO | IT | GameDev
#expert
Завершаем рассказ Дмитрия Панкрашова про его опыт проектирования и внедрения системы автоматизации.
Сегодняшний пост посвящен ошибкам коммуникации.
Первая часть
Вторая часть
Ошибки коммуникации я долгое время вообще не воспринимал как ошибки и не думал, что можно делать по‑другому. И только спустя несколько лет (и компаний, в которых довелось поработать), понял, как было бы эффективнее выстроить коммуникацию с коллегами и пользователями.
Ошибка
Хотите, чтобы ваш телефон превратился в справочную? У меня так было. 2 телефона и 3 сим‑карты. Звонили везде одновременно, и даже ночью. Никому не рекомендую повторять такой опыт. И будет лучше, если вы не понимаете, чем может закончиться раздача своего личного номера телефона, пусть даже вам и кажется, что ничего страшного не случится, завести отдельный телефон только для рабочих коммуникаций.
Ошибка
Вот представьте, отключили у вас электричество, и все никак не включат. Будете звонить? Конечно, будете. А куда? Сначала в УК\ТСЖ, потом в диспетчерскую, потом еще куда‑нибудь. А если никто не берет трубки — то и до администрации президента дозвонитесь. Собственно, дать пользователям единственный и живой канал коммуникации — важно. Если канал живой — пользователи будут туда писать. Если канал единственный — это исключает дубли и «сломанный телефон». Конечно, я стоял в конце этой цепочки и решений не принимал. Но сейчас предложил бы сделать пусть даже самого простого бота для подачи заявок и ответов на вопросы.
Ошибка
Что делать, если задачи вам ставят все кому не лень? Особенно прикольно, когда эти задачи еще и взаимоисключающие. Эталонная ситуация — когда два равных друг другу по должности и влиянию на продукт лица ставят вам в работу эти самые взаимоисключающие задачи. В моем случае было не так, и, хотя сами требования к продукту и хаос в их описании больше относятся к ошибкам проектирования, все же хорошей практикой считается задать вопрос «Кто мне ставит задачи?» — при условии, что ответ «Все» не принимается.
Резюме: если вы начинающий разработчик и оказались в компании, где у вас есть ментор или хотя бы старшие коллеги, у которых можно проконсультироваться — скорее всего, в подобной ситуации вы не окажетесь. Если же вы один, и на вас возлагают большие надежды — то с высокой долей вероятности из‑за отсутствия опыта, даже если вы читали статьи про то, как делать «правильно», вы все равно сделаете что‑то неправильно или не идеально. Вопрос — столкнетесь ли вы с последствиями своих решений и какие уроки из этого извлечете.
Чтобы узнать больше полезного из мира IT и разработки, подписывайтесь на канал Дмитрия: DevIO | IT | GameDev
#expert
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2🔥2
Всем привет!
Сегодня в гостях у OTUS Александр Романов — карьерный ментор, TechLead разработки в Сбере, автор канала AlexProIT | Александр Романов и преподаватель курсов Microservice Architecture и Java Developer Professional в OTUS.
ТОП-5 ОШИБОК DESIGN SYSTEM ⚠️
Сегодня процесс найма на ведущие позиции в IT — это долгий и сложный процесс. Даже несмотря на явный дефицит кандидатов на позиции middle+ и выше!
Одним из самых важных этапов является секция системного дизайна, результаты прохождения которой во многом определяют итоговый грейд.
И сегодня я хочу рассказать о самых частых ошибках кандидатов, которые приводят к низкой оценке за секцию и закрывают возможность попадания на желаемую должность:
⚡ Ложное понимание требований
Как правило, интервьюер дает только базовые требования, которых не достаточно для полноценного проектирования. При этом, кандидат вместо уточняющих вопросов сразу начинает проектировать решение «своего понимания» требований.
⚡ Отсутствие четких границ
Четко очертить границы — значит понять, что входит в скоуп задачи, а что — нет. Отсутствие этого понимания приводит к попытке спроектировать более сложную систему, чем требовалось изначально. А это значительно сложнее сделать качественно за отведенное время.
⚡ Работа под нагрузкой
Кандидат либо вообще не рассматривает вопрос работы системы под нагрузкой, либо не может правильно собрать и интерпретировать не функциональные требования. В результате, спроектированная система оказывается не масштабируемой.
⚡ Узкий технический кругозор
При всем многообразии различных видов хранилищ и типов интеграции между сервисами, кандидат использует только те, с которыми он работал. Это является единственным аргументом при их выборе и лишь добавляет системе «узких мест».
⚡ Отсутствие вопросов
Интервьюер изначально дает кандидату большую степень свободы. Но вместо активного ведения диалога и демонстрации своих сильных сторон, кандидат практически не задает вопросов. В результате все сводится к ответам на вопросы интервьюера без какой-либо инициативы.
Вывод
Все это, как правило, отражено в методических рекомендациях для интервьюеров как признаки минимального опыта проектирования распределенных систем. Именно поэтому так важно не совершать подобных ошибок в ходе секции дизайна, чтобы у интервьюера не было сомнений в компетенции кандидата.
AlexProIT | Александр Романов
#expert
Сегодня в гостях у OTUS Александр Романов — карьерный ментор, TechLead разработки в Сбере, автор канала AlexProIT | Александр Романов и преподаватель курсов Microservice Architecture и Java Developer Professional в OTUS.
ТОП-5 ОШИБОК DESIGN SYSTEM ⚠️
Сегодня процесс найма на ведущие позиции в IT — это долгий и сложный процесс. Даже несмотря на явный дефицит кандидатов на позиции middle+ и выше!
Одним из самых важных этапов является секция системного дизайна, результаты прохождения которой во многом определяют итоговый грейд.
И сегодня я хочу рассказать о самых частых ошибках кандидатов, которые приводят к низкой оценке за секцию и закрывают возможность попадания на желаемую должность:
⚡ Ложное понимание требований
Как правило, интервьюер дает только базовые требования, которых не достаточно для полноценного проектирования. При этом, кандидат вместо уточняющих вопросов сразу начинает проектировать решение «своего понимания» требований.
⚡ Отсутствие четких границ
Четко очертить границы — значит понять, что входит в скоуп задачи, а что — нет. Отсутствие этого понимания приводит к попытке спроектировать более сложную систему, чем требовалось изначально. А это значительно сложнее сделать качественно за отведенное время.
⚡ Работа под нагрузкой
Кандидат либо вообще не рассматривает вопрос работы системы под нагрузкой, либо не может правильно собрать и интерпретировать не функциональные требования. В результате, спроектированная система оказывается не масштабируемой.
⚡ Узкий технический кругозор
При всем многообразии различных видов хранилищ и типов интеграции между сервисами, кандидат использует только те, с которыми он работал. Это является единственным аргументом при их выборе и лишь добавляет системе «узких мест».
⚡ Отсутствие вопросов
Интервьюер изначально дает кандидату большую степень свободы. Но вместо активного ведения диалога и демонстрации своих сильных сторон, кандидат практически не задает вопросов. В результате все сводится к ответам на вопросы интервьюера без какой-либо инициативы.
Вывод
Все это, как правило, отражено в методических рекомендациях для интервьюеров как признаки минимального опыта проектирования распределенных систем. Именно поэтому так важно не совершать подобных ошибок в ходе секции дизайна, чтобы у интервьюера не было сомнений в компетенции кандидата.
AlexProIT | Александр Романов
#expert
Telegram
TeamLead говорит
Руковожу разработкой в IT. Пишу про архитектуру, java-разработку и менеджмент. Делюсь опытом и лучшими практиками.
Менторство и консультации.
Менторство и консультации.
👍3🔥3❤2