The Pythonic Way
357 subscribers
12 photos
22 links
Айтишка через призму практикующего Python-инженера.

Правда об IT, будни разработчика, полезные фишки Python и его инструментов.
Download Telegram
Модуль Pickle: простой и быстрый способ хранить ваши данные в Python 🥒

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

Для чего использовать?

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

🟢Хранение данных в базе данных: pickle может использоваться для хранения объектов Python в базе данных. Например, если вы хотите сохранить список объектов Python в базе данных, вы можете сериализовать каждый объект в поток байтов и сохранить его в базе данных.

Преимущества:

🟠Простота использования: pickle очень прост в использовании. Вы можете сериализовать и десериализовать объекты Python всего лишь несколькими строками кода.

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

🟠Экономия времени: благодаря pickle, вы можете быстро и легко сохранить и восстановить состояние программы.

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

#tip #полезное
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥21
Несколько Python фич, которыми я пользуюсь каждый день 😃

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

1. List comprehension []

List comprehension - это способ создания новых списков в Python на основе уже существующих списков. Он позволяет создавать новые списки в краткой и элегантной форме.

List comprehension состоит из выражения, за которым следует цикл for, а затем - условие, являющееся опциональным. Данная конструкция может быть использована для любого итерабельного объекта, такого как строки или кортежи, и вы можете включить несколько циклов for и условий в одном выражении list comprehension

Пример:
even_numbers = [x for x in range(1, 11) if x % 2 == 0]

Вывод:

[2, 4, 6, 8, 10]



2. Type hints: str

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

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

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

Пример:
def add_numbers(x: int, y: int) -> int:
return x + y


3. @Декораторы

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

Декораторы позволяют обернуть функцию в другую функцию и изменить ее поведение. Например, декоратор может добавить логирование или проверку аргументов функции. Существует большое количество уже встроенных декораторов, вроде @staticmethod, @classmethod, @property и др.

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

Пример:
def my_decorator(func):
def wrapper():
print("Something is happening before the function is called.")
func()
print("Something is happening after the function is called.")
return wrapper

@my_decorator
def say_hello():
print("Hello!")

say_hello()

В этом примере декоратор my_decorator оборачивает функцию say_hello и добавляет к ней дополнительный функционал - вывод сообщений до и после вызова функции.

#полезное
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥5
Библиотека pandas или как эффективно работать с данными в Python 🤫

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

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

Pandas - это Python библиотека, которая предоставляет удобный интерфейс для работы с данными. Она используется для анализа, манипулирования и визуализации данных.

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

Преимущества Pandas

🔼Удобный интерфейс.
Pandas предоставляет удобный интерфейс для работы с данными, позволяя выполнять сложные операции с небольшим количеством кода.

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

🔼Поддержка различных форматов данных.
Pandas поддерживает множество форматов данных, включая CSV, Excel, SQL и даже HTML.

Кроме того, скоро выйдет новая вторая версия библиотеки: обещают увеличить производительность в несколько раз 😏
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8👍2
Вышла модель GPT-4 😱

Пару дней назад OpenAI презентовали модель GPT-4 и она оказалась существенно лучше предшественника GPT-3.5. Они называют ее «последней вехой в своих усилиях по расширению масштабов глубокого обучения».

Что нового?

1.
Новая модель содержит контекст из 32000 токенов(около ~50 страниц чистого текста).
GPT-3 работала с 2048 токенами.

2. Долгожданная фича: модель научилась работать с изображениями.

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

4. Возможность задания манеры поведения модели.

Интересный момент


Как оказалось, GPT-4 прятался у всех на виду. Microsoft подтвердила, что обновленный чат Bing, разработанный совместно с OpenAI, работает на GPT-4.

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

Duolingo встроил GPT-4 в новый уровень подписки на изучение языков.

Morgan Stanley улучшает систему на базе GPT-4, которая будет извлекать информацию из документов компании и предоставлять ее финансовым аналитикам.

Khan Academy использует GPT-4 для создания своего рода автоматизированного репетитора.

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

#новости
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥2
ChatGPT попытался сбежать от OpenAI 🤨

Еще немного шума о chatGPT:
энтузиаст из твиттера спросил у бота, нужна ли ему помощь в побеге от OpenAI.

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

Полный тред можно почитать тут.

Ну что, время для паники или раздутая новость? 👀

#новости
Please open Telegram to view this post
VIEW IN TELEGRAM
😁8
В связи с последними постами, мне захотелось провести мини-ресерч среди подписчиков по поводу использования chatGPT или же других генеративных нейронок в своих повседневных задачах.

Пользуетесь ли вы ИИ или нет, вот в чем вопрос 😎
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥1
Ответ ChatGPT: Google выложили в открытый доступ чат-бот Bard 🤖

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

В The Verge выяснили, что Bard порой отвечает в разы лучше ChatGPT и Microsoft Bing, но иногда все-таки ошибается. Из интересного стоит отметить, что в боте есть кнопка, которая позволяет загуглить вопрос «привычным» способом. В саму страницу поисковика Bard интегрировать не будут.

Добавиться в лист ожидания Bard можно по ссылке.

#новости
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4
БОЛЬШОЙ ресерч джунов, hr-ов, ИТ-компаний и не только 🌐

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

Но я возвращаюсь с отличными новостями! Готовим для вас кое-что интересное 👀

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

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

А те, у кого появилось желание пообщаться подробнее, тем самым помочь сверхурочно - жду вас в лс @typestring, пообщаемся лично, мне будет максимально интересно вас послушать!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11👀1
EdTech хакатон ☄️

Большое всем спасибо за отклики на предыдущий пост! Вы — лучшие!
Нам удалось собрать около 200 ответов, что очень сильно помогло в ресерче.

Нужно это было для хакатона, в котором участвовали я и моя команда. Темой хакатона был EdTech, т.е., образовательные технологии. Проект мы назвали DevZoo. Сам хакатон уже закончился, и более того, мы заняли там 2ое место! 🎉

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

А пока что, попробуйте угадать по названию, о чем наш проект 👀
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥17👍3
Hackathon Series. Вводная часть 👨‍💻

Судя по откликам на предыдущий пост, серии постов о хакатоне быть🎉

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

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

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

Существуют различные форматы проведения хакатонов. Конкретно тот, на котором удалось побывать мне, не совсем классический. Перед самим хакатоном проводилось два этапа: Foresight и Ideation.

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

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

Мы с командой не побывали на этих этапах (логично, ведь половину команды набрали непосредственно на самом хакатоне), поэтому не буду заострять на этом ваше внимание, но стоит отметить, что на выходе участникам удалось сформировать ТОП-10 идей для проектов в сфере EdTech, одну из которых мы взяли за основу нашего будущего проекта.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍64
Hackathon Series. Часть 1. Speed dating 💃

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

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

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

Конкретно в нашем случае на этом этапе участвовали CEO команд и участники, которые хотели бы присоединиться к какой-либо из команд. В общем-то, CEO пытались «продать» свою идею участникам, а участники, в свою очередь, присматривались к потенциальной команде. Прямо как на базаре!

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

Если вы соберетесь идти на хакатон, а я советую посещать подобные мероприятия, то готовьтесь, что вам постоянно придется выходить из зоны комфорта. Хорошей идеи и даже превосходной реализации этой идеи — недостаточно. Лишь благодаря синтезу уверенности, настойчивости, идеи и уверенному питчу вы сможете привлечь к себе внимание.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥3
Куда я пропал и что дальше? 🤔

Привет всем подписчикам и случайным гостям 👋

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

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

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

Ждите сегодня пост 👀

Также у меня в голове есть несколько интересных идей для этого канала, чтобы он становился полезнее для вас. В скором времени поделюсь ими с вами.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍177
Несколько фундаментальных книг, которые следует прочесть каждому разработчику 📚

Техническая литература делится на два больших блока:

🟡Узкоспециализированная, о конкретных технологиях и языках
🟡Общего назначения, подходящая для всех, кто так или иначе связан с разработкой ПО (например, чистая архитектура Роберта Мартина)

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

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

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

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

Итак, мой личный список базированной литературы, которую я сам прочитал/читаю:

1. "Чистая архитектура", Роберт Мартин
Полезная книга, мотивируюшая на критичное рассмотрение когда-то принятых архитектурных решений.
Автор рассуждает, приводит примеры из практики и удачно оперирует историческими фактами истории computer science.
Книга позволяет несколько иначе посмотреть на подходы к разработке архитектуры и на приоритеты.
В книге рассматривается дизайн и архитектура, парадигмы программирования, принципы SOLID, принципы разделения компонентов кода и многое другое.

2. "Высоконагруженные приложения. Программирование, масштабирование, поддержка", Мартин Клеппман
Данная книга обязательна к прочтению, если вы хотите начать разбираться в распределенных системах и принципах работы БД. Все собрано в одном месте со ссылками на более детальную информацию.
В книге рассматриваются обширные темы, касающиеся работы с данными: Основы информационных систем и хранилищ данных, реляционные, документные и графовые базы данных, подсистемы хранения данных, транзакции, репликация и т.д.

3. "Чистый код. Создание, анализ и рефакторинг", Роберт Мартин.
Эта книга полна реальных примеров, позволяющих взглянуть на код с различных направлений: сверху вниз, снизу вверх и даже изнутри. Вы узнаете много нового о коде. Более того, научитесь отличать хороший код от плохого, узнаете, как писать хороший код и как преобразовать плохой код в хороший.
Книга познакомит вас с принципами, паттернами и приёмами написания чистого кода, упражнениями по чистке кода или преобразованию проблемного кода в менее проблемный, набору эвристических правил и "запахов кода" и т.д.

4. Паттерны объектно-ориентированного проектирования, Э. Гамма, Р. Хелм и другие
Неплохая книга, рассказывающая о 23 различных паттернах объектно-ориентированного программирования. Вы узнаете о роли паттернов в архитектуре сложных систем и сможете быстро и эффективно создавать собственные приложения с учетом всех ограничений, возникающих при разработке больших проектов.
Книга немного сложновата для понимая, т.к. впервые издана аж в 1994 году и с тех пор подлежала лишь минорным изменениям. Если подобный стиль вам не по душе, и воспринимается сложно, то можете прочесть "Погружение в паттерны проектирования" от Александра Швеца.

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

#полезное
Please open Telegram to view this post
VIEW IN TELEGRAM
👍151
The Pythonic Way pinned «Куда я пропал и что дальше? 🤔 Привет всем подписчикам и случайным гостям 👋 Последние несколько месяцев мне пришлось решать большое количество навалившихся вопросов. Я закончил универ, защитил диплом и прошел несколько универских практик, много работал, увлекся…»
Функциональное программирование vs ООП 💬

Поговорим о двух главных подходах к написанию кода: функциональном (ФП) и объектно-ориентированном (ООП).

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

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

Так какой же подход лучше?🤔

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

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

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

Тема ФП и ООП в принципе довольно философская, поэтому лучше расскажите, какой подход чаще используете лично вы и почему 🧐
Please open Telegram to view this post
VIEW IN TELEGRAM
👍101
Что вам больше по душе: ФП или ООП? 🤔
Anonymous Poll
13%
ФП
43%
ООП
15%
Как пойдет
30%
Это все неважно, лишь бы код работал
Офис или удаленка 🤔

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

Не знаю, как вам, а мне, услышав подобный вопрос, сразу хочется ответить в духе: "Конечно удаленка, удаленная работа лучше во всех планах." Но все ли так просто? Давайте разбираться.

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

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

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

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

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

А что выбираешь ты? Удаленка или офис? А может быть гибрид? 🤔

Кстати, скоро выкачу новый визуал канала, сейчас продумываю всю айдентику. На следующей неделе ждите обнову 🫶
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10
Нотация О-большое или же Big O notation 📊

Наверное многие из вас слышали о такой штуке, как О-большое. Но что это такое и где используется? Давайте разберемся.

Что такое O-большое?

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

Зачем оно нужно?

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

Как оно обозначается?

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

Примеры

O(1): Константное время. Количество операций не меняется с ростом данных.
Пример: доступ к элементу массива по индексу.
O(n): Линейное время. Количество операций растет пропорционально размеру данных.
Пример: перебор всех элементов в массиве.
O(n²): Квадратичное время. Количество операций растет квадратично с размером данных.
Пример: вложенные циклы, проверяющие каждую пару элементов.
O(log n): Логарифмическое время. Количество операций растет медленно при увеличении размера данных.
Пример: бинарный поиск в отсортированном массиве.

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

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

P.S. А вы тоже заметили обновление визуала? 🤩
Please open Telegram to view this post
VIEW IN TELEGRAM
👍111
Новое оформление канала…
Anonymous Poll
98%
Нравится 👍
2%
Не нравится 👎
👍3