Mad Devs Channel
Совсем скоро состоится HR Day#2! И сегодня мы готовы поделиться подробнее о программе ивента и приглашенных спикерах. Итак, Программа мероприятия: 🔹 10:00 - 10:30 - Регистрация участников, свободный нетворкинг. 🔹 10:30 - 11:10 - Открытие мероприятия и выступление…
HR Day #2 пройдет уже завтра!
Напоминаем, что это митап для HR специалистов разных направлений, работающих в ИТ. С агендой и расписанием вы можете ознакомиться в посте выше.
Ждем всех зарегистрировавшихся в 10:00 в ololo Planet по адресу город Бишкек, Юнусалиева 80. А если вы еще не успели зарегистрироваться, то у вас есть последняя возможность сделать это сегодня по ссылке.
Напоминаем, что это митап для HR специалистов разных направлений, работающих в ИТ. С агендой и расписанием вы можете ознакомиться в посте выше.
Ждем всех зарегистрировавшихся в 10:00 в ololo Planet по адресу город Бишкек, Юнусалиева 80. А если вы еще не успели зарегистрироваться, то у вас есть последняя возможность сделать это сегодня по ссылке.
👍3❤2🥰1
Основные принципы ООП: полиморфизм в программировании
Давайте разберемся, что такое полиморфизм, в каких случаях его используют и рассмотрим виды в ООП.
❓ Для чего нужен полиморфизм в программировании
Полиморфизм в ООП подразумевает, что разные объекты могут обрабатывать одинаковые запросы, но вести себя по-разному в зависимости от своего типа. Это способствует уменьшению дублирования кода, повышению читаемости и облегчению расширения программы.
❓ Какие преимущества принципа полиморфизма
📍 Позволяет добавлять новые объекты и операции без изменения существующего кода, интегрируя новые классы с общим интерфейсом в систему.
📍 Способствует уменьшению дублирования кода. Общий интерфейс/абстрактный класс позволяют описать общее поведение, а каждый класс реализует свою специфичную логику.
📍 Облегчает расширение функциональности, просто добавляя новые методы в классы, наследующие общий интерфейс.
📍 Позволяет использовать общие методы с разными типами данных, избегая дублирования кода.
📍 Обновление функциональности существующих классов упрощается: нужно лишь реализовать методы в новых классах с общим интерфейсом.
📍 Удобное тестирование через общие тестовые сценарии для классов с одним интерфейсом повышает качество и надежность программы.
📍 Позволяет абстрагироваться от конкретных реализаций, сфокусировавшись на общем поведении объектов и разделяя интерфейс и детали реализации.
📍 Позволяет разработчикам взаимодействовать через общие интерфейсы, не глубоко погружаясь во внутренние детали друг друга.
❓ Какие есть виды полиморфизма в ООП
📍 Полиморфизм подтипов (наследования)
Данный вид основан на наследовании и позволяет объектам дочерних классов использоваться как объекты родительского класса, что делает код более гибким и облегчает добавление новых типов.
📍 Параметрический полиморфизм (обобщённое программирование)
Позволяет создавать обобщенные функции и классы, которые могут работать с разными типами данных без знания их конкретной природы.
📍 Полиморфизм в интерфейсах
Позволяет объектам разных классов реализовывать общий интерфейс и предоставлять схожее поведение без явного наследования.
Полиморфизм является сущностью ООП, делая программы гибкими и расширяемыми. Владение этим принципом обогатит ваши навыки, чем вы улучшите код и свои программы.
Давайте разберемся, что такое полиморфизм, в каких случаях его используют и рассмотрим виды в ООП.
❓ Для чего нужен полиморфизм в программировании
Полиморфизм в ООП подразумевает, что разные объекты могут обрабатывать одинаковые запросы, но вести себя по-разному в зависимости от своего типа. Это способствует уменьшению дублирования кода, повышению читаемости и облегчению расширения программы.
❓ Какие преимущества принципа полиморфизма
📍 Позволяет добавлять новые объекты и операции без изменения существующего кода, интегрируя новые классы с общим интерфейсом в систему.
📍 Способствует уменьшению дублирования кода. Общий интерфейс/абстрактный класс позволяют описать общее поведение, а каждый класс реализует свою специфичную логику.
📍 Облегчает расширение функциональности, просто добавляя новые методы в классы, наследующие общий интерфейс.
📍 Позволяет использовать общие методы с разными типами данных, избегая дублирования кода.
📍 Обновление функциональности существующих классов упрощается: нужно лишь реализовать методы в новых классах с общим интерфейсом.
📍 Удобное тестирование через общие тестовые сценарии для классов с одним интерфейсом повышает качество и надежность программы.
📍 Позволяет абстрагироваться от конкретных реализаций, сфокусировавшись на общем поведении объектов и разделяя интерфейс и детали реализации.
📍 Позволяет разработчикам взаимодействовать через общие интерфейсы, не глубоко погружаясь во внутренние детали друг друга.
❓ Какие есть виды полиморфизма в ООП
📍 Полиморфизм подтипов (наследования)
Данный вид основан на наследовании и позволяет объектам дочерних классов использоваться как объекты родительского класса, что делает код более гибким и облегчает добавление новых типов.
📍 Параметрический полиморфизм (обобщённое программирование)
Позволяет создавать обобщенные функции и классы, которые могут работать с разными типами данных без знания их конкретной природы.
📍 Полиморфизм в интерфейсах
Позволяет объектам разных классов реализовывать общий интерфейс и предоставлять схожее поведение без явного наследования.
Полиморфизм является сущностью ООП, делая программы гибкими и расширяемыми. Владение этим принципом обогатит ваши навыки, чем вы улучшите код и свои программы.
👍3🔥2
Mad Devs Channel
Mad Devs Meetups: DevOps Night ⚡️ Мы продолжаем серию профессиональных митапов для Tech-специалистов и рады пригласить вас на наш первый DevOps Night, который состоится 12 сентября в Бишкеке! На DevOps Night - мы приготовили для вас 3 доклада от наших экспертов…
Уже завтра состоится Mad Devs Meetups: DevOps Night ⚡️
Напомним, что мы приготовили для вас 3 доклада от наших экспертов, которые могут быть интересны инженерам разных уровней и направлений, но прежде всего тем, кто является или желает стать DevOps-ом.
Cпикеры и доклады:
🎤 Иван Филянин: «Построение безопасной инфраструктуры для HIPAA и SOC2 с использованием Terraform и GKE в Google Cloud»
🎤 Денис Дудко: «Dockerfile: разбираем лучшие практики шаг за шагом»
🎤 Марат Бедиев: «PaaS: магия простого развёртывания приложений»
Ждем всех зарегистрировавшихся завтра, 12 сентября, в 18:00 по адресу: г.Бишкек, микрорайон Асанбай, 27/1 в ololo OrmonKhan. Конференц-зал на втором этаже.
Если вы еще не зарегистрировались, то у вас все еще есть возможность сделать это по ссылке. До встречи на ивенте!
Напомним, что мы приготовили для вас 3 доклада от наших экспертов, которые могут быть интересны инженерам разных уровней и направлений, но прежде всего тем, кто является или желает стать DevOps-ом.
Cпикеры и доклады:
🎤 Иван Филянин: «Построение безопасной инфраструктуры для HIPAA и SOC2 с использованием Terraform и GKE в Google Cloud»
🎤 Денис Дудко: «Dockerfile: разбираем лучшие практики шаг за шагом»
🎤 Марат Бедиев: «PaaS: магия простого развёртывания приложений»
Ждем всех зарегистрировавшихся завтра, 12 сентября, в 18:00 по адресу: г.Бишкек, микрорайон Асанбай, 27/1 в ololo OrmonKhan. Конференц-зал на втором этаже.
Если вы еще не зарегистрировались, то у вас все еще есть возможность сделать это по ссылке. До встречи на ивенте!
🔥4👍1🎉1
Ваш новый любимый рабочий инструмент — понимание задачи 📝
Новая полезная практика — "понимание задачи". Прежде чем начать работу, внимательно выслушивайте или прочитайте задачу, опишите свое понимание и действия в документе, и отдайте на согласование этот документ тому, кто вам это поручил. И ждите, пока не подтвердят. Данный инструмент помогает избегать переделок, обеспечивает ответственность и защищает от недобросовестного использования.
❓ Гипотетическая ситуация: у вас упали продажи на сайте, и вам нужно выгрузить статистику по всем страницам сайта — сколько там пришло людей и сколько из них купили.
👀 Как видит это специалист:
Он выгрузит эксельку, в которой будет список адресов страниц, число посещений и число кликов по кнопке "Купить". Сначала будут посещаемые, в конце — нет. Возможно, он уточнит, за какой период нужна статистика.
👀 Как видит это менеджер:
Менеджеру сообщили, что сайт не продаёт, и нужно срочно определить, какие направления на сайте нужно развивать. Он поручает аналитику сделать отчёт о том, какие страницы нужно развивать, и ждет его в форме презентации.
❌ Как результат, ожидание-реальность не совпадают и в субботу-воскресенье все будут на ушах. Аналитик будет переделывать данные, дизайнер — рисовать, менеджер — рулить процессом.
Этого можно было бы избежать, если:
✔️ Указать срок, за который нужно собрать информацию.
✔️ Написать/сказать для каких целей нужны эти данные.
✔️ Уточнить формат, в котором должен быть представлен отчет.
✔️ Указать, каким должен быть результат, какие данные должны быть представлены.
✔️ При необходимости указать кому нужно отдать.
❓ Почему это важно
Введя в свои рабочие процессы практику "понимания задачи", вы получаете, что:
✔️ У каждого человека будет общее представление о работе и результате.
✔️ При обсуждении задачи могут вскрыться детали, о которых кто-то не знал.
✔️ Менеджер видит нагрузку сотрудников и может перестроить задачу или процесс.
✔️ Через обсуждение вы можете снизить число переделок.
✔️ Исполнитель защищен, если заказчик отказывается принимать результат.
✔️ Заказчик защищен и может попросить исполнителя переделать задачу по ПЗ.
✔️ Альтернативный взгляд с учетом всех нюансов.
❓ Всегда ли это нужно
Необходимо документировать "понимание задачи" для новых, уникальных ситуаций и новых участников. Для типовых и хорошо известных задач это не требуется.
Новая полезная практика — "понимание задачи". Прежде чем начать работу, внимательно выслушивайте или прочитайте задачу, опишите свое понимание и действия в документе, и отдайте на согласование этот документ тому, кто вам это поручил. И ждите, пока не подтвердят. Данный инструмент помогает избегать переделок, обеспечивает ответственность и защищает от недобросовестного использования.
❓ Гипотетическая ситуация: у вас упали продажи на сайте, и вам нужно выгрузить статистику по всем страницам сайта — сколько там пришло людей и сколько из них купили.
👀 Как видит это специалист:
Он выгрузит эксельку, в которой будет список адресов страниц, число посещений и число кликов по кнопке "Купить". Сначала будут посещаемые, в конце — нет. Возможно, он уточнит, за какой период нужна статистика.
👀 Как видит это менеджер:
Менеджеру сообщили, что сайт не продаёт, и нужно срочно определить, какие направления на сайте нужно развивать. Он поручает аналитику сделать отчёт о том, какие страницы нужно развивать, и ждет его в форме презентации.
❌ Как результат, ожидание-реальность не совпадают и в субботу-воскресенье все будут на ушах. Аналитик будет переделывать данные, дизайнер — рисовать, менеджер — рулить процессом.
Этого можно было бы избежать, если:
✔️ Указать срок, за который нужно собрать информацию.
✔️ Написать/сказать для каких целей нужны эти данные.
✔️ Уточнить формат, в котором должен быть представлен отчет.
✔️ Указать, каким должен быть результат, какие данные должны быть представлены.
✔️ При необходимости указать кому нужно отдать.
❓ Почему это важно
Введя в свои рабочие процессы практику "понимания задачи", вы получаете, что:
✔️ У каждого человека будет общее представление о работе и результате.
✔️ При обсуждении задачи могут вскрыться детали, о которых кто-то не знал.
✔️ Менеджер видит нагрузку сотрудников и может перестроить задачу или процесс.
✔️ Через обсуждение вы можете снизить число переделок.
✔️ Исполнитель защищен, если заказчик отказывается принимать результат.
✔️ Заказчик защищен и может попросить исполнителя переделать задачу по ПЗ.
✔️ Альтернативный взгляд с учетом всех нюансов.
❓ Всегда ли это нужно
Необходимо документировать "понимание задачи" для новых, уникальных ситуаций и новых участников. Для типовых и хорошо известных задач это не требуется.
🔥6👍3
Большие языковые модели: стоит ли бояться больших калькуляторов 🧮
Сегодня разберемся, что такое большие языковые модели (LLM), какие есть плюсы и минусы и что это значит для человечества.
LLM представляют собой новый тип искусственного интеллекта, который может иметь как положительные, так и отрицательные последствия.
С одной стороны, LLM могут использоваться для решения многих задач, которые ранее были невозможны или трудоемки. Например, LLM можно использовать для перевода языков, написания различных видов творческого контента и даже для ответа на сложные вопросы. Это может привести к повышению производительности труда, улучшению качества жизни и открытию новых возможностей для бизнеса и науки.
С другой стороны, LLM могут использоваться для распространения дезинформации, манипуляции общественным мнением и даже для создания вредоносного контента. Существует реальный риск того, что LLM будут использованы для создания "информационного оружия", которое может использоваться для дестабилизации общества и даже для разжигания войн.
Важно осознавать потенциальные риски, связанные с использованием LLM, и принимать меры для их минимизации. Вот несколько советов, как это сделать:
📍 Будьте критически настроены к информации, полученной из LLM.
📍 Обучайте людей тому, как распознавать дезинформацию и манипуляции.
📍 Развивайте технологии, которые помогают защитить людей от вредоносного контента, созданного LLM.
LLM следует рассматривать как мощный инструмент, но не стоит делегировать им всё мышление. Несмотря на их улучшение и развитие, вам не следует чувствовать себя менее значимыми. Технологии, включая LLM, должны служить инструментами, а не угрожать нашему существованию.
Сегодня разберемся, что такое большие языковые модели (LLM), какие есть плюсы и минусы и что это значит для человечества.
LLM представляют собой новый тип искусственного интеллекта, который может иметь как положительные, так и отрицательные последствия.
С одной стороны, LLM могут использоваться для решения многих задач, которые ранее были невозможны или трудоемки. Например, LLM можно использовать для перевода языков, написания различных видов творческого контента и даже для ответа на сложные вопросы. Это может привести к повышению производительности труда, улучшению качества жизни и открытию новых возможностей для бизнеса и науки.
С другой стороны, LLM могут использоваться для распространения дезинформации, манипуляции общественным мнением и даже для создания вредоносного контента. Существует реальный риск того, что LLM будут использованы для создания "информационного оружия", которое может использоваться для дестабилизации общества и даже для разжигания войн.
Важно осознавать потенциальные риски, связанные с использованием LLM, и принимать меры для их минимизации. Вот несколько советов, как это сделать:
📍 Будьте критически настроены к информации, полученной из LLM.
📍 Обучайте людей тому, как распознавать дезинформацию и манипуляции.
📍 Развивайте технологии, которые помогают защитить людей от вредоносного контента, созданного LLM.
LLM следует рассматривать как мощный инструмент, но не стоит делегировать им всё мышление. Несмотря на их улучшение и развитие, вам не следует чувствовать себя менее значимыми. Технологии, включая LLM, должны служить инструментами, а не угрожать нашему существованию.
🔥2👍1
Почему пет-проект лучше для джуна, чем просто диплом курсов 🤖
Вы завершили курсы, но всё ещё не можете найти работу? Или у вас есть идея для пет-проекта, но вы не знаете, с чего начать? В этом посте мы расскажем, как найти идею для пет-проекта и использовать её вместо обычной записи в резюме.
❓ Где брать идеи для пет-проектов
Постарайтесь найти источник вдохновения в своей жизни или вокруг вас. Поищите то, что можно упростить или автоматизировать. Понаблюдайте за родителями, друзьями или партнерами.
❓ Как создать пет-проект
🔴 Сформулируйте идею.
🔴 Проведите исследование и определите, кому может быть полезен ваш продукт.
🔴 Составьте план действий, оцените, сколько времени это займет. Представьте, как будет работать ваш проект, какой функционал он будет иметь, как будет функционировать логика в разных сценариях, и какой стек технологий вы планируете использовать. Если в стеке есть незнакомые технологии, оцените их сложность.
🔴 Создайте MVP (минимально жизнеспособный продукт). Попросите друзей протестировать его, чтобы выявить слабые места и узнать, насколько удобен продукт для пользователей. Доработайте его на основе обратной связи.
🔴 Ведите проект на GitHub с самого начала. Будущий работодатель или рекрутер смогут просмотреть всю историю коммитов. Добавьте скриншоты или видео работы приложения в описание.
❓ Почему это важно
Пет-проекты на практике демонстрируют ваши навыки в разработке. Вы можете упомянуть их в резюме, на собеседовании, но лучше представить наглядное решение. Это более убедительно и быстрее, чем формальные тесты, и упрощает оценку экспертизы специалиста.
Так как задача рекрутера — найти подходящего специалиста, опираясь на требования к должности, то пет-проекты являются важным инструментом оценки соответствия специалиста. Пет-проекты позволяют продемонстрировать навыки и фактические результаты работы. Особенно это удобно, если вы уже работаете и у вас есть коммерческий проект под NDA.
Самое главное для вас и для вашего пет-проекта — регулярность. Вам нужно не потерять интерес к проекту, тогда и результат не заставит себя ждать, а завершённый проект станет важным пунктом в вашем резюме.
Вы завершили курсы, но всё ещё не можете найти работу? Или у вас есть идея для пет-проекта, но вы не знаете, с чего начать? В этом посте мы расскажем, как найти идею для пет-проекта и использовать её вместо обычной записи в резюме.
❓ Где брать идеи для пет-проектов
Постарайтесь найти источник вдохновения в своей жизни или вокруг вас. Поищите то, что можно упростить или автоматизировать. Понаблюдайте за родителями, друзьями или партнерами.
❓ Как создать пет-проект
🔴 Сформулируйте идею.
🔴 Проведите исследование и определите, кому может быть полезен ваш продукт.
🔴 Составьте план действий, оцените, сколько времени это займет. Представьте, как будет работать ваш проект, какой функционал он будет иметь, как будет функционировать логика в разных сценариях, и какой стек технологий вы планируете использовать. Если в стеке есть незнакомые технологии, оцените их сложность.
🔴 Создайте MVP (минимально жизнеспособный продукт). Попросите друзей протестировать его, чтобы выявить слабые места и узнать, насколько удобен продукт для пользователей. Доработайте его на основе обратной связи.
🔴 Ведите проект на GitHub с самого начала. Будущий работодатель или рекрутер смогут просмотреть всю историю коммитов. Добавьте скриншоты или видео работы приложения в описание.
❓ Почему это важно
Пет-проекты на практике демонстрируют ваши навыки в разработке. Вы можете упомянуть их в резюме, на собеседовании, но лучше представить наглядное решение. Это более убедительно и быстрее, чем формальные тесты, и упрощает оценку экспертизы специалиста.
Так как задача рекрутера — найти подходящего специалиста, опираясь на требования к должности, то пет-проекты являются важным инструментом оценки соответствия специалиста. Пет-проекты позволяют продемонстрировать навыки и фактические результаты работы. Особенно это удобно, если вы уже работаете и у вас есть коммерческий проект под NDA.
Самое главное для вас и для вашего пет-проекта — регулярность. Вам нужно не потерять интерес к проекту, тогда и результат не заставит себя ждать, а завершённый проект станет важным пунктом в вашем резюме.
👍10
5 важных книг для разработчика
Ловите небольшую, но очень качественную подборку книг, которые помогут вам расширить и углубить свои знания в программировании:
📚Чистый код: создание, анализ и рефакторинг. Роберт Мартин
Эта книга объясняет, почему важно писать чистый код и как это сделать. Автор предоставляет практические советы и примеры, делая материал доступным и интересным.
📚Чистая архитектура. Искусство разработки программного обеспечения. Роберт Мартин
Автор разбирает проблемы, связанные с проектированием архитектуры программного обеспечения, предоставляя принципы для создания устойчивых, гибких и тестируемых приложений.
📚Экстремальное программирование. Разработка через тестирование. Кент Бек
Книга вводит в методологию разработки через тестирование (TDD) и делает ее понятной через простой язык и примеры.
📚Паттерны объектно-ориентированного проектирования. Эрих Гамма, Ричард Хелм, Ральф Джонсон и Джон Влиссидес
Описывает паттерны проектирования, помогая разработчикам решать задачи при проектировании программного обеспечения. Она также предоставляет примеры использования паттернов.
📚Алгоритмы. Построение и анализ. Томас Кормен, Чарльз Лейзерсон, Рональд Ривест, Клиффорд Штайн
Эта книга является классическим источником знаний о алгоритмах. Она содержит глубокое объяснение алгоритмов с множеством примеров и иллюстраций.
Уверены, что многие из вас знакомы с этими авторами их и работами. Потому что это и есть «база».💪🏻 Но если все-таки пропустили, то горячо рекомендуем!
Ловите небольшую, но очень качественную подборку книг, которые помогут вам расширить и углубить свои знания в программировании:
📚Чистый код: создание, анализ и рефакторинг. Роберт Мартин
Эта книга объясняет, почему важно писать чистый код и как это сделать. Автор предоставляет практические советы и примеры, делая материал доступным и интересным.
📚Чистая архитектура. Искусство разработки программного обеспечения. Роберт Мартин
Автор разбирает проблемы, связанные с проектированием архитектуры программного обеспечения, предоставляя принципы для создания устойчивых, гибких и тестируемых приложений.
📚Экстремальное программирование. Разработка через тестирование. Кент Бек
Книга вводит в методологию разработки через тестирование (TDD) и делает ее понятной через простой язык и примеры.
📚Паттерны объектно-ориентированного проектирования. Эрих Гамма, Ричард Хелм, Ральф Джонсон и Джон Влиссидес
Описывает паттерны проектирования, помогая разработчикам решать задачи при проектировании программного обеспечения. Она также предоставляет примеры использования паттернов.
📚Алгоритмы. Построение и анализ. Томас Кормен, Чарльз Лейзерсон, Рональд Ривест, Клиффорд Штайн
Эта книга является классическим источником знаний о алгоритмах. Она содержит глубокое объяснение алгоритмов с множеством примеров и иллюстраций.
Уверены, что многие из вас знакомы с этими авторами их и работами. Потому что это и есть «база».💪🏻 Но если все-таки пропустили, то горячо рекомендуем!
👍8🫡3
Куда идти продакт- и проджект-менеджерам для успешной карьеры в стартап или корпорацию 🕵️
Сегодня мы затронем очень важную тему для тек, кто работает продакт- и проджект-менеджером. И привести доводы куда лучше идти работать в стартап или корпорацию.
❓ Кто такие проджект и продакт менеджеры и чем они занимаются
Проджект-менеджер и продакт-менеджер — это две разные роли в управлении проектами и продуктами.
Разница между этими ролями заключается в том, что проджект-менеджер управляет временными проектами с конкретными задачами и сроками, в то время как продакт-менеджер управляет продуктом или услугой на протяжении всего его жизненного цикла, определяя его стратегию и развитие.
В некоторых компаниях названия и обязанности могут пересекаться или размываться, но в большинстве случаев эти две роли имеют разные функции и задачи в организации.
🏢 Особенности корпорации
➕ В корпорациях четко определены обязанности и структура. Все делится на узкие задачи и отделы. Это упрощает понимание ролей, но может замедлить процессы.
➕ Корпорации могут участвовать в глобальных проектах с большими бюджетами, чего стартапы не могут себе позволить.
➕ Корпорации приветствуют новичков без опыта, предоставляя обучение и допуская небольшие ошибки.
➕ Корпорации имеют формальные требования, такие как дресс-код и лояльность к компании.
➕ Предоставляются корпоративные бонусы.
➖ Решения принимаются медленно из-за бюрократии и ожидания освобождения ресурсов. Много бумажной работы, возможность имитации активности.
➖ Сложно оценить ситуацию, так как много подразделений. Проджект не всегда видит ход выполнения задачи. Возможна потеря нюансов.
➖ Личные достижения растворяются в команде. Вклад каждого члена не всегда виден, как при успехе, так и при провале.
🏠 Особенности стартапов
➕ Решения принимаются быстро, без длительных согласований, но быстрые решения могут иметь негативные последствия, включая увольнение.
➕ Виден вклад каждого сотрудника из-за небольшой команды, что способствует поощрениям за усердный труд.
➕ Есть возможность быстрого карьерного роста, особенно в быстроразвивающихся стартапах, где ценят универсальность.
➖ В стартапах ожидается разносторонность. Надо готовиться к различным задачам, даже непрофильным, так как маленькая команда делает всё.
➖ В стартапах сложно начать без опыта. Необходимо сразу решать прикладные задачи и достигать результатов в ограниченные сроки.
❓ Как менеджеру выстроить карьерный путь
1. Можно начать в корпорации. Вы сможете развиваться линейно и стабильно, меняя при необходимости.
2. Можно начать работать в стартапе, но вам нужно подготовиться к интенсивной работе и быстрому обучению.
3. Можете получить опыт и в корпорации, и в стартапе, начиная с корпорации, где можно учиться, и затем перейти в стартап для дополнительных знаний.
Что думаете вы? Поделитесь своим мнением в комментариях 👇
Сегодня мы затронем очень важную тему для тек, кто работает продакт- и проджект-менеджером. И привести доводы куда лучше идти работать в стартап или корпорацию.
❓ Кто такие проджект и продакт менеджеры и чем они занимаются
Проджект-менеджер и продакт-менеджер — это две разные роли в управлении проектами и продуктами.
Разница между этими ролями заключается в том, что проджект-менеджер управляет временными проектами с конкретными задачами и сроками, в то время как продакт-менеджер управляет продуктом или услугой на протяжении всего его жизненного цикла, определяя его стратегию и развитие.
В некоторых компаниях названия и обязанности могут пересекаться или размываться, но в большинстве случаев эти две роли имеют разные функции и задачи в организации.
🏢 Особенности корпорации
➕ В корпорациях четко определены обязанности и структура. Все делится на узкие задачи и отделы. Это упрощает понимание ролей, но может замедлить процессы.
➕ Корпорации могут участвовать в глобальных проектах с большими бюджетами, чего стартапы не могут себе позволить.
➕ Корпорации приветствуют новичков без опыта, предоставляя обучение и допуская небольшие ошибки.
➕ Корпорации имеют формальные требования, такие как дресс-код и лояльность к компании.
➕ Предоставляются корпоративные бонусы.
➖ Решения принимаются медленно из-за бюрократии и ожидания освобождения ресурсов. Много бумажной работы, возможность имитации активности.
➖ Сложно оценить ситуацию, так как много подразделений. Проджект не всегда видит ход выполнения задачи. Возможна потеря нюансов.
➖ Личные достижения растворяются в команде. Вклад каждого члена не всегда виден, как при успехе, так и при провале.
🏠 Особенности стартапов
➕ Решения принимаются быстро, без длительных согласований, но быстрые решения могут иметь негативные последствия, включая увольнение.
➕ Виден вклад каждого сотрудника из-за небольшой команды, что способствует поощрениям за усердный труд.
➕ Есть возможность быстрого карьерного роста, особенно в быстроразвивающихся стартапах, где ценят универсальность.
➖ В стартапах ожидается разносторонность. Надо готовиться к различным задачам, даже непрофильным, так как маленькая команда делает всё.
➖ В стартапах сложно начать без опыта. Необходимо сразу решать прикладные задачи и достигать результатов в ограниченные сроки.
❓ Как менеджеру выстроить карьерный путь
1. Можно начать в корпорации. Вы сможете развиваться линейно и стабильно, меняя при необходимости.
2. Можно начать работать в стартапе, но вам нужно подготовиться к интенсивной работе и быстрому обучению.
3. Можете получить опыт и в корпорации, и в стартапе, начиная с корпорации, где можно учиться, и затем перейти в стартап для дополнительных знаний.
Что думаете вы? Поделитесь своим мнением в комментариях 👇
👍6🤔2
URL, URI и URN – в чем разница?
Сегодня быстро вспомним о том, чем отличаются аббревиатуры URL, URI и URN. На самом деле это очень просто:
⭐️ URL
URL - это сокращение от "Унифицированный Локатор Ресурса" и это основной элемент протокола HTTP. Он просто адрес уникального ресурса в интернете, будь то веб-сайт, файл или что-то еще. Его можно использовать и с другими протоколами, такими как FTP и JDBC.
⭐️ URN
URN - это сокращение от "Унифицированное Имя Ресурса". Он использует схему urn. Важно знать, что URN не может помочь найти местоположение ресурса. Проще говоря, он присваивает ресурсу уникальное имя. Например, это может быть как название книги или другого объекта.
⭐️ URI
Это сокращение от "Унифицированный Идентификатор Ресурса". Он помогает определить ресурс в интернете, будь то какой-то файл или веб-страница.
URL и URN - это как бы разновидности URI. URL помогает найти ресурс, а URN - дает ему имя.
Сегодня быстро вспомним о том, чем отличаются аббревиатуры URL, URI и URN. На самом деле это очень просто:
⭐️ URL
URL - это сокращение от "Унифицированный Локатор Ресурса" и это основной элемент протокола HTTP. Он просто адрес уникального ресурса в интернете, будь то веб-сайт, файл или что-то еще. Его можно использовать и с другими протоколами, такими как FTP и JDBC.
⭐️ URN
URN - это сокращение от "Унифицированное Имя Ресурса". Он использует схему urn. Важно знать, что URN не может помочь найти местоположение ресурса. Проще говоря, он присваивает ресурсу уникальное имя. Например, это может быть как название книги или другого объекта.
⭐️ URI
Это сокращение от "Унифицированный Идентификатор Ресурса". Он помогает определить ресурс в интернете, будь то какой-то файл или веб-страница.
URL и URN - это как бы разновидности URI. URL помогает найти ресурс, а URN - дает ему имя.
🔥8👍3🫡3❤1
Новый формат челленджей от команды Mad Security 🥷
Ребята из отдела кибербезопастности Mad Devs подготовили для наших подписчиков несколько интересных челленджей, в которых вам предстоит находить разного рода уязвимости или флаги запрятанные в коде. Мы планируем публиковать такие челленджи по средам пару раз в месяц и ждем вашей активности. Ну что, поехали?
🥷 JS/Express challenge🥷
Найдите уязвимость, опишите в чем она заключается и почему возникает. Фаил с кодом будет в комментариях под этим постом.
Важное условие: скрывайте свои ответы такимобразом , чтобы у других участников была возможность решить челлендж без спойлеров. Будем ждать ваших решений в комментариях.
Ребята из отдела кибербезопастности Mad Devs подготовили для наших подписчиков несколько интересных челленджей, в которых вам предстоит находить разного рода уязвимости или флаги запрятанные в коде. Мы планируем публиковать такие челленджи по средам пару раз в месяц и ждем вашей активности. Ну что, поехали?
🥷 JS/Express challenge🥷
Найдите уязвимость, опишите в чем она заключается и почему возникает. Фаил с кодом будет в комментариях под этим постом.
Важное условие: скрывайте свои ответы таким
👍6🔥2🤯2
Mad Devs Channel
Новый формат челленджей от команды Mad Security 🥷 Ребята из отдела кибербезопастности Mad Devs подготовили для наших подписчиков несколько интересных челленджей, в которых вам предстоит находить разного рода уязвимости или флаги запрятанные в коде. Мы планируем…
Видим, челлендж вас заинтересовал 🥷
Проверка буквально звучит так: если урл запроса начинается с /api, тогда проверяем токен и только если токен верный, пропускаем запрос дальше, после чего этот запрос уже упадет в код лежащий в api.js. НО, чтобы ваш запрос в итоге упал в api.js, необходимо соблюсти правило роутинга описанного на строчке 17.
Однако, пока спрятанную в коде уязвимость никто не нашел. Дадим вам подсказку: разгадка кроется в документации (параграф Application Settings): https://expressjs.com/en/api.html#app.settings.table
Проверка буквально звучит так: если урл запроса начинается с /api, тогда проверяем токен и только если токен верный, пропускаем запрос дальше, после чего этот запрос уже упадет в код лежащий в api.js. НО, чтобы ваш запрос в итоге упал в api.js, необходимо соблюсти правило роутинга описанного на строчке 17.
Однако, пока спрятанную в коде уязвимость никто не нашел. Дадим вам подсказку: разгадка кроется в документации (параграф Application Settings): https://expressjs.com/en/api.html#app.settings.table
Expressjs
Express 5.x - API Reference
Access the API reference for Express.js detailing all modules, methods, and properties for building web applications with this version.
🤔4🔥1
5 новых функций Pandas 2.0
Pandas 2.0 - новая версия библиотеки Python для обработки структурированных данных, названной по "панельным данным". Панельными данными называют информацию, полученную в результате исследований и структурированную в виде таблиц.
Что нового в Pandas 2.0?
📌Производительность, скорость и эффективность использования памяти
В этой версии 2.0 произошло важное изменение - внедрение серверной части Apache Arrow для обработки данных в pandas. Apache Arrow - это стандартизированный формат данных, хранящихся в памяти, который имеет библиотеки для нескольких языков программирования, включая C, C++, R, Python и другие. Для Python доступен PyArrow, который быстр и эффективен, так как основан на реализации Arrow на C++.
📌Типы данных со стрелками и числовые индексы
Внедрена поддержка типов данных "со стрелками" (Arrow types), что приводит к ряду улучшений, особенно в операциях, связанных со строковыми данными, благодаря эффективной реализации типа данных string в PyArrow. Фактически, Arrow поддерживает больше типов данных и предоставляет лучшую поддержку по сравнению с NumPy. Эти типы данных включают даты и время, длительность, двоичные числа, десятичные дроби, списки и карты. Также расширена поддержка числовых индексов. Это означает, что индексы могут быть более разнообразными числовыми типами данных, а не ограничиваться только int64, uint64 и float64. Таким образом, можно использовать, например, 32-разрядные числовые индексы.
📌Упрощенная обработка пропущенных значений
Появилась возможность использовать тип данных 'numpy_nullable', который позволяет учитывать пропущенные значения без изменения типа данных. Это означает, что вы можете сохранить исходные типы данных, не беспокоясь о потере информации при обработке отсутствующих значений.
📌Оптимизация копирования при записи
Добавили новый механизм отложенного копирования, который позволяет откладывать операции копирования данных внутри фреймов данных и объектов серии до тех пор, пока они не будут изменены.
Это означает, что определенные методы будут возвращать представления данных, а не фактические копии, когда функция "копирования при записи" (copy-on-write) активирована. Это улучшает эффективность использования памяти, так как минимизируется ненужное дублирование данных.
📌Дополнительные зависимости
Предоставляется гибкость в установке дополнительных зависимостей при использовании инструмента pip. Это позволяет адаптировать установку к конкретным требованиям проекта, избегая лишних зависимостей и экономя дисковое пространство.
Этот подход также снижает вероятность возникновения проблем совместимости и конфликтов с другими пакетами, что делает процесс разработки более гладким и уменьшает количество "головных болей с зависимостями".
Pandas 2.0 - новая версия библиотеки Python для обработки структурированных данных, названной по "панельным данным". Панельными данными называют информацию, полученную в результате исследований и структурированную в виде таблиц.
Что нового в Pandas 2.0?
📌Производительность, скорость и эффективность использования памяти
В этой версии 2.0 произошло важное изменение - внедрение серверной части Apache Arrow для обработки данных в pandas. Apache Arrow - это стандартизированный формат данных, хранящихся в памяти, который имеет библиотеки для нескольких языков программирования, включая C, C++, R, Python и другие. Для Python доступен PyArrow, который быстр и эффективен, так как основан на реализации Arrow на C++.
📌Типы данных со стрелками и числовые индексы
Внедрена поддержка типов данных "со стрелками" (Arrow types), что приводит к ряду улучшений, особенно в операциях, связанных со строковыми данными, благодаря эффективной реализации типа данных string в PyArrow. Фактически, Arrow поддерживает больше типов данных и предоставляет лучшую поддержку по сравнению с NumPy. Эти типы данных включают даты и время, длительность, двоичные числа, десятичные дроби, списки и карты. Также расширена поддержка числовых индексов. Это означает, что индексы могут быть более разнообразными числовыми типами данных, а не ограничиваться только int64, uint64 и float64. Таким образом, можно использовать, например, 32-разрядные числовые индексы.
📌Упрощенная обработка пропущенных значений
Появилась возможность использовать тип данных 'numpy_nullable', который позволяет учитывать пропущенные значения без изменения типа данных. Это означает, что вы можете сохранить исходные типы данных, не беспокоясь о потере информации при обработке отсутствующих значений.
📌Оптимизация копирования при записи
Добавили новый механизм отложенного копирования, который позволяет откладывать операции копирования данных внутри фреймов данных и объектов серии до тех пор, пока они не будут изменены.
Это означает, что определенные методы будут возвращать представления данных, а не фактические копии, когда функция "копирования при записи" (copy-on-write) активирована. Это улучшает эффективность использования памяти, так как минимизируется ненужное дублирование данных.
📌Дополнительные зависимости
Предоставляется гибкость в установке дополнительных зависимостей при использовании инструмента pip. Это позволяет адаптировать установку к конкретным требованиям проекта, избегая лишних зависимостей и экономя дисковое пространство.
Этот подход также снижает вероятность возникновения проблем совместимости и конфликтов с другими пакетами, что делает процесс разработки более гладким и уменьшает количество "головных болей с зависимостями".
👍4
Как работает OAuth 2.0 🖥️
В этом посте разберем описание потоков OAuth 2.0. Понимание различных способов авторизации и доступа к данным в ваших приложениях.
📍 Поток с использованием кода авторизации (Authorization Code Flow). Самый часто используемый поток в OAuth. После аутентификации пользователя, клиент получает код авторизации и обменивает его на маркер доступа и маркер обновления.
📍 Поток с использованием учетных данных клиента (Client Credentials Flow). Разработан для одностраничных приложений. Маркер доступа возвращается напрямую клиенту без промежуточного кода авторизации.
📍 Поток с неявным использованием кода (Implicit Code Flow). Разработан для одностраничных приложений. Маркер доступа возвращается напрямую клиенту без промежуточного кода авторизации.
📍 Поток с предоставлением учетных данных владельца ресурса (Resource Owner Password Grant Flow). Позволяет пользователям предоставить свое имя пользователя и пароль напрямую клиенту, который затем обменивает их на маркер доступа.
Какой из них выберете для своего следующего проекта? 👇
В этом посте разберем описание потоков OAuth 2.0. Понимание различных способов авторизации и доступа к данным в ваших приложениях.
📍 Поток с использованием кода авторизации (Authorization Code Flow). Самый часто используемый поток в OAuth. После аутентификации пользователя, клиент получает код авторизации и обменивает его на маркер доступа и маркер обновления.
📍 Поток с использованием учетных данных клиента (Client Credentials Flow). Разработан для одностраничных приложений. Маркер доступа возвращается напрямую клиенту без промежуточного кода авторизации.
📍 Поток с неявным использованием кода (Implicit Code Flow). Разработан для одностраничных приложений. Маркер доступа возвращается напрямую клиенту без промежуточного кода авторизации.
📍 Поток с предоставлением учетных данных владельца ресурса (Resource Owner Password Grant Flow). Позволяет пользователям предоставить свое имя пользователя и пароль напрямую клиенту, который затем обменивает их на маркер доступа.
Какой из них выберете для своего следующего проекта? 👇
👍3🔥1
🥷Nginx Config Misconfiguration challenge🥷
Продолжаем серию челленджей от нашего Mad Security отдела. И сегодня смотрим конфиг Nginx.
В данном конфиге серьезно налажали. Найдите ошибку и продемонстрируйте worst-case-scenario эксплойт.
Свои ответы маркируйтеспойлером , чтобы у других участников была возможность решить челлендж без спойлеров. Будем ждать ваших решений в комментариях.
Продолжаем серию челленджей от нашего Mad Security отдела. И сегодня смотрим конфиг Nginx.
В данном конфиге серьезно налажали. Найдите ошибку и продемонстрируйте worst-case-scenario эксплойт.
Свои ответы маркируйте
🔥4🤔3
Mad Devs Channel
🥷Nginx Config Misconfiguration challenge🥷 Продолжаем серию челленджей от нашего Mad Security отдела. И сегодня смотрим конфиг Nginx. В данном конфиге серьезно налажали. Найдите ошибку и продемонстрируйте worst-case-scenario эксплойт. Свои ответы маркируйте…
И у нас есть чемпион! Николай Кирнос разгадал загадку и правильный ответ: если ввести http://localhost/static../main.py, то можно выйти за пределы директории static. Давайте накидаем 🔥 Николаю!
🥷 До встречи в новом челлендже через неделю 🥷
🥷 До встречи в новом челлендже через неделю 🥷
🔥27
🔥 Горячие вакансии в Mad Devs или ML-инженеры, отзовитесь!
🧑💻 Machine Learning Engineer Middle. Откликнуться на вакансию.
Мы в поиске middle ML-инженера для одного из наших b2b-проектов — активно развивающегося продукта с широкой клиентской базой, штаб-квартира которого находится в Вашингтоне, округ Колумбия. В большой команде этого проекта уже работают профессиональные дизайнеры, продакт менеджеры, DevOps-инженеры и разработчики Mad Devs.
🧑💻 Machine Learning Engineer Junior. Откликнуться на вакансию.
Junior ML-инженера мы ждем в нашей команде, разрабатывающей маркетплейс сервис для рынка Юго-Восточной Азии. Цель данного проекта — создание и развитие сервиса объявлений для азиатского рынка, позволяющего пользователям легко и удобно размещать объявления о продаже товаров и услуг, адаптированных к местным потребностям и динамике рынка.
🧑💻 Machine Learning Engineer Intern. Откликнуться на вакансию.
А если вы только начинаете ваш путь в ML-инженерии, то мы ждем вас на стажировке в нашем собственном продукте - Enji.ai. Enji - это продукт, который обеспечивает прозрачную работу инженерных команд (и не только). На данный момент команда машинного обучения занимается построением систем - цифровых двойников, которые позволяют оптимально управлять распределенными командами разработчиков, анализировать состояние каждого отдельного члена команды и всей команды целиком.
🔥Эти и еще ряд проектов Mad Devs ждут инженеров с математическим бэкграундом, любящих работать с данными и постоянно развиваться.🔥
Но это еще не все. В Mad Devs открыто еще несколько вакансий в других направлениях. Мы в поиске:
- JavaScript Lead
- TechLead
- DevOps engineer
- Python Developer Senior
- Junior SEO Specialist
За актуальными вакансиями вы можете следить на нашем сайте, а если подходящей вашему стеку позиции пока нет - смело добавляйте ваше резюме в нашу базу через наш сайт, чтобы мы могли связаться с вами при появлении подходящей вакансии.
🧑💻 Machine Learning Engineer Middle. Откликнуться на вакансию.
Мы в поиске middle ML-инженера для одного из наших b2b-проектов — активно развивающегося продукта с широкой клиентской базой, штаб-квартира которого находится в Вашингтоне, округ Колумбия. В большой команде этого проекта уже работают профессиональные дизайнеры, продакт менеджеры, DevOps-инженеры и разработчики Mad Devs.
🧑💻 Machine Learning Engineer Junior. Откликнуться на вакансию.
Junior ML-инженера мы ждем в нашей команде, разрабатывающей маркетплейс сервис для рынка Юго-Восточной Азии. Цель данного проекта — создание и развитие сервиса объявлений для азиатского рынка, позволяющего пользователям легко и удобно размещать объявления о продаже товаров и услуг, адаптированных к местным потребностям и динамике рынка.
🧑💻 Machine Learning Engineer Intern. Откликнуться на вакансию.
А если вы только начинаете ваш путь в ML-инженерии, то мы ждем вас на стажировке в нашем собственном продукте - Enji.ai. Enji - это продукт, который обеспечивает прозрачную работу инженерных команд (и не только). На данный момент команда машинного обучения занимается построением систем - цифровых двойников, которые позволяют оптимально управлять распределенными командами разработчиков, анализировать состояние каждого отдельного члена команды и всей команды целиком.
🔥Эти и еще ряд проектов Mad Devs ждут инженеров с математическим бэкграундом, любящих работать с данными и постоянно развиваться.🔥
Но это еще не все. В Mad Devs открыто еще несколько вакансий в других направлениях. Мы в поиске:
- JavaScript Lead
- TechLead
- DevOps engineer
- Python Developer Senior
- Junior SEO Specialist
За актуальными вакансиями вы можете следить на нашем сайте, а если подходящей вашему стеку позиции пока нет - смело добавляйте ваше резюме в нашу базу через наш сайт, чтобы мы могли связаться с вами при появлении подходящей вакансии.
🔥6❤2
Уже не первый год мы в Mad Devs разрабатываем собственный продукт Enji, который обеспечивает прозрачную работу инженерных команд и помогает им улучшать свою производительность и эффективность. Миссия Enji — формирование у разработчиков и менеджеров инженерной культуры.
Команды, которые придерживаются инженерного подхода, обеспечивают свои проекты лучшим качеством кода, что по итогу приводит к меньшему количеству сорванных дедлайнов и перерасхода бюджета. Руководители — принимающие решения на основе фактов, данных и метрик меньше подвержены предвзятости и микроменеджменту.
Что умеет Enji?
Сейчас полноценно функционирует набор фичей, позволяющих командам лучше синхронизироваться друг с другом; а также базовый набор инструментов для работы с людьми — инструменты для сбора и анализа 360-фидбека, трекшена 1-1, работы со скилл-матрицами; полноценная аналитика ворклогов, которая позволяет командам выстраивать свое финансовое планирование и прогнозировать нагрузки; мониторинг достижения бизнес целей и еще несколько полезных фич.
Команде Enji предстоит многолетний марафон создания фичей расширяющих имплементацию инженерных практик в командах. Сейчас в разработке внедрение и работа с кодовыми и agile-метрики, аналитика техдолга, предикторы выгораний и много чего еще.
🎯 В Mad Devs мы полностью работаем под управлением Enji, а так же интегрируем в сервис наших клиентов, давая им возможность анализировали нашу работу. Недавно еще две компании — PricerBishkek и TimelySoft, доверились нам и тоже внедряют у себя Enji, чему мы безмерно рады.
Enji уже сейчас может существенно помочь компаниями, похожим на Mad Devs - которые занимаются разработкой софта по модели Time&Material (то есть продают часы инженеров), а также быть полезен большим Enterprise-компаниям, имеющим команды, работающие по Time&Material на них (то есть тем, кто покупает часы инженеров у других компаний).
Сейчас мы готовы предоставлять Enji подобным компаниям на тестовый период абсолютно бесплатно.
Мы будем рады помочь командам погрузиться в продукт, разобраться с фичами, понять смысл и начать использовать его в своей повседневной работе. Отметим, что Enji разворачивается внутри — на вашем co-location центре, клауде, сервере в вашем дата-центре, в общем, в любом месте так, чтобы данные, которые собирает и анализирует Enji были у вас (а не у нас).
📌 Если вам интересно узнать о продукте и его возможностях больше, заходите на сайт enji.ai. А если хотите познакомиться с продуктом поближе — жмите кнопку “Book a Demo” и мы вам в подробностях расскажем и покажем.
Команды, которые придерживаются инженерного подхода, обеспечивают свои проекты лучшим качеством кода, что по итогу приводит к меньшему количеству сорванных дедлайнов и перерасхода бюджета. Руководители — принимающие решения на основе фактов, данных и метрик меньше подвержены предвзятости и микроменеджменту.
Что умеет Enji?
Сейчас полноценно функционирует набор фичей, позволяющих командам лучше синхронизироваться друг с другом; а также базовый набор инструментов для работы с людьми — инструменты для сбора и анализа 360-фидбека, трекшена 1-1, работы со скилл-матрицами; полноценная аналитика ворклогов, которая позволяет командам выстраивать свое финансовое планирование и прогнозировать нагрузки; мониторинг достижения бизнес целей и еще несколько полезных фич.
Команде Enji предстоит многолетний марафон создания фичей расширяющих имплементацию инженерных практик в командах. Сейчас в разработке внедрение и работа с кодовыми и agile-метрики, аналитика техдолга, предикторы выгораний и много чего еще.
Enji уже сейчас может существенно помочь компаниями, похожим на Mad Devs - которые занимаются разработкой софта по модели Time&Material (то есть продают часы инженеров), а также быть полезен большим Enterprise-компаниям, имеющим команды, работающие по Time&Material на них (то есть тем, кто покупает часы инженеров у других компаний).
Сейчас мы готовы предоставлять Enji подобным компаниям на тестовый период абсолютно бесплатно.
Мы будем рады помочь командам погрузиться в продукт, разобраться с фичами, понять смысл и начать использовать его в своей повседневной работе. Отметим, что Enji разворачивается внутри — на вашем co-location центре, клауде, сервере в вашем дата-центре, в общем, в любом месте так, чтобы данные, которые собирает и анализирует Enji были у вас (а не у нас).
📌 Если вам интересно узнать о продукте и его возможностях больше, заходите на сайт enji.ai. А если хотите познакомиться с продуктом поближе — жмите кнопку “Book a Demo” и мы вам в подробностях расскажем и покажем.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9
Псс, не хочешь еще секьюрити челленджей от нашего Cybersecurity отдела?
🥷Сегодня у нас новый Python challenge🥷
Найдите уязвимость, опишите в чем она заключается и попробуйте описать эксплуатацию пошагово.
Свои ответы маркируйтеспойлером , чтобы у других участников была возможность решить челлендж без спойлеров. Будем ждать ваших решений в комментариях.
🥷Сегодня у нас новый Python challenge🥷
Найдите уязвимость, опишите в чем она заключается и попробуйте описать эксплуатацию пошагово.
Свои ответы маркируйте
🔥7❤1👨💻1
Синтаксический сахар: опаснее, чем кажется 💻
Синтаксический сахар — это способ сделать код более "читаемым". Данный прием был предложен еще в 1964 году и считается способствующим лучшему пониманию кода. Однако есть и оппоненты, полагающие, что язык программирования должен быть формальным и не нуждается в приукрашивании.
Например, в тернарном операторе условия true и false разделены двоеточием, что делает код более компактным.
🔺 Стандартная запись:
if (y < 5)
{
x = 5;
}
else x = y;
🔺 Запись с использованием синтаксического сахара:
x = ? (y < 5) 5 : y;
Вы, вероятно, уже используете синтаксический сахар, даже не задумываясь. Например, оператор switch является более удобной записью для нескольких if-else.
Использование синтаксического сахара в коде — это хорошо, но не всегда. Есть пара важных моментов, о которых стоит помнить:
⚫ "Дырявые" абстракции. Означает, что разработчик полагается на них, не имея возможности проверить, не вызывают ли они ошибок. Это может быть источником сложноуловимых ошибок.
⚫ Читаемость и уважение к другим. Хотя синтаксический сахар сокращает код, он может быть менее понятным для других разработчиков. Важно уважать время и усилия своих коллег, которые могут столкнуться с вашим кодом.
Синтаксический сахар улучшает читаемость и компактность кода, но использовать его следует с умом. Важно находить баланс между краткостью и ясностью кода.
Синтаксический сахар — это способ сделать код более "читаемым". Данный прием был предложен еще в 1964 году и считается способствующим лучшему пониманию кода. Однако есть и оппоненты, полагающие, что язык программирования должен быть формальным и не нуждается в приукрашивании.
Например, в тернарном операторе условия true и false разделены двоеточием, что делает код более компактным.
🔺 Стандартная запись:
if (y < 5)
{
x = 5;
}
else x = y;
🔺 Запись с использованием синтаксического сахара:
x = ? (y < 5) 5 : y;
Вы, вероятно, уже используете синтаксический сахар, даже не задумываясь. Например, оператор switch является более удобной записью для нескольких if-else.
Использование синтаксического сахара в коде — это хорошо, но не всегда. Есть пара важных моментов, о которых стоит помнить:
⚫ "Дырявые" абстракции. Означает, что разработчик полагается на них, не имея возможности проверить, не вызывают ли они ошибок. Это может быть источником сложноуловимых ошибок.
⚫ Читаемость и уважение к другим. Хотя синтаксический сахар сокращает код, он может быть менее понятным для других разработчиков. Важно уважать время и усилия своих коллег, которые могут столкнуться с вашим кодом.
Синтаксический сахар улучшает читаемость и компактность кода, но использовать его следует с умом. Важно находить баланс между краткостью и ясностью кода.
👍11
Как обеспечить безопасность телеграм-бота 🤖
Сегодня рассмотрим, как обеспечить безопасность вашего Telegram-бота на Python, чтобы предотвратить спам, фишинг и DDoS-атаки.
❓ Зачем обеспечивать безопасность ботов
- Боты обрабатывают чувствительные данные, поэтому утечка данных может нанести серьезный ущерб как вашей репутации, так и финансовому положению.
- Учтите законы и нормативные акты вашего региона, а также цели вашего бота, чтобы не нарушить правила о защите данных.
- Пользователи ожидают, что обработка и хранение их данных будет обеспечивать безопасность и конфиденциальность.
- Боты подвержены риску атак, таких как спам, фишинг и DDoS-атаки. Необеспеченный надежной защитой бот может стать уязвимой целью для злоумышленников.
❗ Обеспечение безопасности — это непрерывная практика. Угрозы постоянно меняются, и разработчики должны обновлять свой код, чтобы бороться с новыми уязвимостями.
❓ Какие существуют четыре основные угрозы безопасности
- Аутентификация и авторизация. Важно обеспечить надежную аутентификацию и авторизацию, чтобы предотвратить несанкционированный доступ.
- Защита от спама и фишинга. Спам и фишинг могут раздражать пользователей и создавать риски. Необходимы меры для борьбы с ними.
- Защита от вредоносных команд и скриптов. Боты могут стать инструментами для вредоносных действий. Важно контролировать их функциональность.
- Хранение конфиденциальных данных. Секреты бота, такие как API-токены, должны быть надежно защищены от утечек и несанкционированного доступа.
❗ Знание этих угроз — это первый шаг к их предотвращению.
❓ Какие есть меры по обеспечению безопасности
- Используйте уникальный токен для бота и защищайте его.
- Ограничьте доступ по IP для дополнительной защиты.
- Валидируйте и фильтруйте входящие данные, избегая SQL-инъекций.
- Реализуйте ролевую систему доступа и ограничьте опасные команды.
- Логируйте события и мониторьте аномалии для быстрого реагирования.
- Шифруйте конфиденциальные данные и используйте HTTPS при взаимодействии с сервером Telegram.
❗ Настоятельно рекомендуется периодически аудитировать безопасность вашего бота и реагировать на новые угрозы.
❓ Какие инструменты для тестирования безопасности телеграм-ботов:
- SAST (Static Application Security Testing). Анализ кода бота на этапе разработки для выявления потенциальных уязвимостей.
- DAST (Dynamic Application Security Testing). Проверка в реальном времени путем отправки запросов и анализа поведения бота.
- Pen Testing (Penetration Testing). Активные атаки на бота для обнаружения уязвимостей, проводимые специалистами по безопасности.
- Проверка на соответствие стандартам безопасности. Соблюдение стандартов безопасности, таких как рекомендации OWASP, для обеспечения надежности бота.
При разработке телеграм-ботов помните, что обеспечение безопасности — ваш главный приоритет.
Сегодня рассмотрим, как обеспечить безопасность вашего Telegram-бота на Python, чтобы предотвратить спам, фишинг и DDoS-атаки.
❓ Зачем обеспечивать безопасность ботов
- Боты обрабатывают чувствительные данные, поэтому утечка данных может нанести серьезный ущерб как вашей репутации, так и финансовому положению.
- Учтите законы и нормативные акты вашего региона, а также цели вашего бота, чтобы не нарушить правила о защите данных.
- Пользователи ожидают, что обработка и хранение их данных будет обеспечивать безопасность и конфиденциальность.
- Боты подвержены риску атак, таких как спам, фишинг и DDoS-атаки. Необеспеченный надежной защитой бот может стать уязвимой целью для злоумышленников.
❗ Обеспечение безопасности — это непрерывная практика. Угрозы постоянно меняются, и разработчики должны обновлять свой код, чтобы бороться с новыми уязвимостями.
❓ Какие существуют четыре основные угрозы безопасности
- Аутентификация и авторизация. Важно обеспечить надежную аутентификацию и авторизацию, чтобы предотвратить несанкционированный доступ.
- Защита от спама и фишинга. Спам и фишинг могут раздражать пользователей и создавать риски. Необходимы меры для борьбы с ними.
- Защита от вредоносных команд и скриптов. Боты могут стать инструментами для вредоносных действий. Важно контролировать их функциональность.
- Хранение конфиденциальных данных. Секреты бота, такие как API-токены, должны быть надежно защищены от утечек и несанкционированного доступа.
❗ Знание этих угроз — это первый шаг к их предотвращению.
❓ Какие есть меры по обеспечению безопасности
- Используйте уникальный токен для бота и защищайте его.
- Ограничьте доступ по IP для дополнительной защиты.
- Валидируйте и фильтруйте входящие данные, избегая SQL-инъекций.
- Реализуйте ролевую систему доступа и ограничьте опасные команды.
- Логируйте события и мониторьте аномалии для быстрого реагирования.
- Шифруйте конфиденциальные данные и используйте HTTPS при взаимодействии с сервером Telegram.
❗ Настоятельно рекомендуется периодически аудитировать безопасность вашего бота и реагировать на новые угрозы.
❓ Какие инструменты для тестирования безопасности телеграм-ботов:
- SAST (Static Application Security Testing). Анализ кода бота на этапе разработки для выявления потенциальных уязвимостей.
- DAST (Dynamic Application Security Testing). Проверка в реальном времени путем отправки запросов и анализа поведения бота.
- Pen Testing (Penetration Testing). Активные атаки на бота для обнаружения уязвимостей, проводимые специалистами по безопасности.
- Проверка на соответствие стандартам безопасности. Соблюдение стандартов безопасности, таких как рекомендации OWASP, для обеспечения надежности бота.
При разработке телеграм-ботов помните, что обеспечение безопасности — ваш главный приоритет.
👍3