🐧 Пингвин, покоривший мир: история взлета Linux – ОС, управляющей 96% серверов
В 1991 году на компьютере с 4 мегабайтами памяти родилась программа, которая сегодня управляет большей частью интернета, смартфонами и даже космическими аппаратами. Это история Linux, рассказанная одним из первых свидетелей.
➡️ Читать статью
➡️ Зеркало
В 1991 году на компьютере с 4 мегабайтами памяти родилась программа, которая сегодня управляет большей частью интернета, смартфонами и даже космическими аппаратами. Это история Linux, рассказанная одним из первых свидетелей.
➡️ Читать статью
➡️ Зеркало
Ответьте на 3 вопроса, чтобы получить вводные занятия к курсу «Алгоритмы и структуры данных»
🔥 Получите вводные занятия, ответив на 3 вопроса
https://proglib.io/w/bcf2fefa
На вводной части вас ждут:
1. Лекция «Производительность алгоритмов» от руководителя разработки Яндекс.Самокатов;
2. Лекция «Итеративные сортировки и линейные сортировки» от аспирант департамента искусственного интеллекта ВШЭ;
3. Практические задания после лекций;
4. Ссылки на дополнительные материалы для самостоятельного изучения.
⚡️Переходите и начинайте учиться уже сегодня –
https://proglib.io/w/bcf2fefa
🔥 Получите вводные занятия, ответив на 3 вопроса
https://proglib.io/w/bcf2fefa
На вводной части вас ждут:
1. Лекция «Производительность алгоритмов» от руководителя разработки Яндекс.Самокатов;
2. Лекция «Итеративные сортировки и линейные сортировки» от аспирант департамента искусственного интеллекта ВШЭ;
3. Практические задания после лекций;
4. Ссылки на дополнительные материалы для самостоятельного изучения.
⚡️Переходите и начинайте учиться уже сегодня –
https://proglib.io/w/bcf2fefa
Что такое глубокая и поверхностная копии? Для чего они нужны?
⚫ Поверхностная копия создаёт новый объект, который содержит ссылки на внутренние объекты из оригинала. Если вы измените внутренние объекты оригинала, эти изменения отразятся и в поверхностной копии. Поверхностное копирование полезно, когда вы хотите создать новый экземпляр коллекции, но сохранить элементы коллекции неизменными. Это copy.copy(x).
⚫ Глубокая копия, напротив, создаёт новый объект и рекурсивно копирует все внутренние объекты, найденные в оригинале. В результате, внутренние объекты глубокой копии являются полностью независимыми от оригинальных объектов. Это полезно, когда нужно, чтобы исходный объект и его копия были полностью изолированы друг от друга. Это copy.deepcopy(x).
Библиотека собеса по Python
⚫ Поверхностная копия создаёт новый объект, который содержит ссылки на внутренние объекты из оригинала. Если вы измените внутренние объекты оригинала, эти изменения отразятся и в поверхностной копии. Поверхностное копирование полезно, когда вы хотите создать новый экземпляр коллекции, но сохранить элементы коллекции неизменными. Это copy.copy(x).
⚫ Глубокая копия, напротив, создаёт новый объект и рекурсивно копирует все внутренние объекты, найденные в оригинале. В результате, внутренние объекты глубокой копии являются полностью независимыми от оригинальных объектов. Это полезно, когда нужно, чтобы исходный объект и его копия были полностью изолированы друг от друга. Это copy.deepcopy(x).
Библиотека собеса по Python
🤔 Почему не стоит использовать изменяемые объекты как параметры по-умолчанию?
В Python не рекомендуется использовать изменяемые объекты в качестве значений параметров по умолчанию по следующим причинам:
— Значения по умолчанию вычисляются один раз при определении функции, а не при каждом вызове.
— Если использовать изменяемый объект (список, словарь), то изменения в нем будут сохраняться между вызовами функции. Это может привести к неочевидному поведению и трудноуловимым ошибкам при многократном вызове функции.
В качестве альтернативы можно задавать значение по умолчанию как None, а в теле функции создавать новый изменяемый объект, если значение не передано.
Такой подход позволяет избежать «эффекта переноса» состояния между вызовами и делает код более понятным и предсказуемым.
Библиотека собеса по Python
— Значения по умолчанию вычисляются один раз при определении функции, а не при каждом вызове.
— Если использовать изменяемый объект (список, словарь), то изменения в нем будут сохраняться между вызовами функции. Это может привести к неочевидному поведению и трудноуловимым ошибкам при многократном вызове функции.
В качестве альтернативы можно задавать значение по умолчанию как None, а в теле функции создавать новый изменяемый объект, если значение не передано.
Такой подход позволяет избежать «эффекта переноса» состояния между вызовами и делает код более понятным и предсказуемым.
Библиотека собеса по Python
👾 Что такое шаблоны в Django?
Шаблон Django — это текстовый документ, который используется для создания внешнего вида и макета нашего веб-сайта. Это третий и наиболее важный аспект структуры MVT Django. В Django шаблон — это HTML-файл, содержащий HTML, CSS и Javascript. Django эффективно управляет и генерирует динамически генерируемые HTML-страницы для просмотра конечным пользователем. Это в основном внутренний фреймворк, поэтому мы используем шаблоны для создания макета нашего веб-сайта. Есть два способа включить шаблон в наш веб-сайт:
✍🏻 Мы можем использовать единый каталог шаблонов, который будет распределен по всему проекту;
✍🏻 Мы можем создать отдельный каталог шаблонов для каждого приложения в нашем проекте.
Библиотека собеса по Python
✍🏻 Мы можем использовать единый каталог шаблонов, который будет распределен по всему проекту;
✍🏻 Мы можем создать отдельный каталог шаблонов для каждого приложения в нашем проекте.
Библиотека собеса по Python
👾 Что делает whylogs?
whylogs — это библиотека для профилирования и анализа данных в Python. Она предоставляет средства для сбора статистики о данных, визуализации этой статистики и создания профилей данных для мониторинга и анализа.
Библиотека собеса по Python
Библиотека собеса по Python
📊 Собес по Data Science: 10 вопросов, которые разделяют джунов от мидлов
Залетай на тест, который валит даже мидлов! Собрали для тебя 10 каверзных вопросов, которые тимлиды обожают подкидывать на собесах. Здесь нет простых задачек — только те, на которых спотыкаются 80% кандидатов. Пройди этот челлендж, чтобы быть во всеоружии на следующем интервью.
✅ Пройти тест
Библиотека мобильного разработчика #свежак
Залетай на тест, который валит даже мидлов! Собрали для тебя 10 каверзных вопросов, которые тимлиды обожают подкидывать на собесах. Здесь нет простых задачек — только те, на которых спотыкаются 80% кандидатов. Пройди этот челлендж, чтобы быть во всеоружии на следующем интервью.
✅ Пройти тест
Библиотека мобильного разработчика #свежак
В нашем чате работает бот Shieldy — он защищает от спама, запрашивая у новых участников решение простой капчи.
⚠️ Проблема, с которой сталкиваются многие: вы нажимаете под постом «Прокомментировать», пишете что-то, а потом получаете бан и не можете писать комментарии.
❓Почему так: Shieldy отправляет капчу в сам чат, а не в комментарии под конкретный пост. Из-за этого капчу можно не увидеть, не отправить ответ на нее, и бот автоматически заблокирует вас.
— Зайдите в описание канала с телефона и нажмите кнопку Discuss / Чат
— Нажмите Join / Присоединиться
— Сразу обратите внимание на сообщение от бота Shieldy
— Решите простой пример и отправьте ответ в чат
После этого бот отправит приветственное сообщение и вы сможете оставлять комментарии. Эту проверку нужно пройти только один раз при вступлении в чат.
❗️ Если вас все-таки забанили
— Это временная блокировка на несколько минут
— Подождите и попробуйте зайти позже, бот снова отправит вам капчу
Админы канала никак не могут ускорить процесс, бот автоматически снимает с вас блокировку через пару минут. Мы понимаем, что эта система неидеальна, и ищем более удобное решение.
👾 Спасибо, что активно участвуете в обсуждении наших постов!
Please open Telegram to view this post
VIEW IN TELEGRAM
✍🏻 Как изменить тип данных списка?
Для изменения типа данных в списке можно использовать встроенные функции:
1. map() — применяет указанную функцию к каждому элементу списка и возвращает новый список с измененными элементами:
old_list = [1, 2, 3]
new_list = map(str, old_list)
В новом списке все элементы будут строкового типа.
2. Использование генераторного выражения:
old_list = [1, 2, 3]
new_list = [str(x) for x in old_list]
Здесь мы преобразуем элементы в строку и помещаем в новый список.
Также можно применить конструкцию map к генераторному выражению:
new_list = list(map(str, [1, 2, 3]))
Библиотека собеса по Python
1. map() — применяет указанную функцию к каждому элементу списка и возвращает новый список с измененными элементами:
old_list = [1, 2, 3]
new_list = map(str, old_list)
В новом списке все элементы будут строкового типа.
2. Использование генераторного выражения:
old_list = [1, 2, 3]
new_list = [str(x) for x in old_list]
Здесь мы преобразуем элементы в строку и помещаем в новый список.
Также можно применить конструкцию map к генераторному выражению:
new_list = list(map(str, [1, 2, 3]))
Библиотека собеса по Python
Forwarded from Библиотека дата-сайентиста | Data Science, Machine learning, анализ данных, машинное обучение
🤖 IT-выживание 2025: как не вылететь с рынка труда в эпоху LLM
В 2025-м айтишникам приходится несладко: старые скиллы уже не в цене, LLM наступают на пятки, а работодатели хотят все и сразу.
👍 Делимся инсайдами, как выжить в новой реальности и не потерять работу в эпоху тотальной оптимизации.
👉 Ссылка на статью: https://proglib.io/sh/zEruLHxYno
Библиотека дата-сайентиста
В 2025-м айтишникам приходится несладко: старые скиллы уже не в цене, LLM наступают на пятки, а работодатели хотят все и сразу.
👍 Делимся инсайдами, как выжить в новой реальности и не потерять работу в эпоху тотальной оптимизации.
👉 Ссылка на статью: https://proglib.io/sh/zEruLHxYno
Библиотека дата-сайентиста
Зимний режим OFF. Весна начинается с апгрейда.
Если чувствуешь, что за зиму навыки подзастыли — пора их разморозить.
📦 Включили весеннюю распродажу: скидка –35% на курсы до конца марта.
Выбирай направление и выходи из спячки:
— Алгоритмы и структуры данных — чтобы собеседования в Яндекс, Ozon и другие были как уровень easy
— Математика для Data Science — для тех, кто не хочет просто «жать на кнопки», а понимать, что под капотом
— Архитектуры и шаблоны — если хочется мыслить как senior и прокачать системное мышление
— Python, Frontend, основы IT — для тех, кто стартует путь в разработке
👾 Proglib Academy — это как старая добрая 8-битная игра, но вместо врагов — практические задачи и собеседования.
Мы просто упаковали сложное обучение в пиксельную обёртку, чтобы тебе было чуть веселее прокачиваться.
🧠 Отогревай мозги, прокачивай скиллы и хватай свой power-up до конца марта.
👉 Выбрать курс
Если чувствуешь, что за зиму навыки подзастыли — пора их разморозить.
📦 Включили весеннюю распродажу: скидка –35% на курсы до конца марта.
Выбирай направление и выходи из спячки:
— Алгоритмы и структуры данных — чтобы собеседования в Яндекс, Ozon и другие были как уровень easy
— Математика для Data Science — для тех, кто не хочет просто «жать на кнопки», а понимать, что под капотом
— Архитектуры и шаблоны — если хочется мыслить как senior и прокачать системное мышление
— Python, Frontend, основы IT — для тех, кто стартует путь в разработке
👾 Proglib Academy — это как старая добрая 8-битная игра, но вместо врагов — практические задачи и собеседования.
Мы просто упаковали сложное обучение в пиксельную обёртку, чтобы тебе было чуть веселее прокачиваться.
🧠 Отогревай мозги, прокачивай скиллы и хватай свой power-up до конца марта.
👉 Выбрать курс
✍🏻 Что такое каррирование?
Каррирование — это техника преобразования функции с несколькими аргументами в цепочку функций, каждая из которых принимает только один аргумент.
Это позволяет зафиксировать некоторые аргументы функции и создать новую функцию с меньшим количеством аргументов.
Каррирование часто используется в функциональном программировании для создания более гибких и переиспользуемых функций.
Оно помогает избежать дублирования кода и упростить работу с функциями высшего порядка.
Библиотека собеса по Python
Это позволяет зафиксировать некоторые аргументы функции и создать новую функцию с меньшим количеством аргументов.
Каррирование часто используется в функциональном программировании для создания более гибких и переиспользуемых функций.
Оно помогает избежать дублирования кода и упростить работу с функциями высшего порядка.
Библиотека собеса по Python
Что такое list comprehension?
List comprehension — это удобный способ создания списков за счет компактной записи.
Синтаксис list comprehension выглядит так: [выражение for элемент in итерируемый_объект if условие]
List comprehension позволяет за одну строку кода:
— Пройти циклом по итерируемому объекту.
— Отфильтровать элементы по нужному условию.
— Сформировать результирующий список.
По сравнению с обычным циклом, list comprehension более компактен, читабелен и эффективен.
Это идиоматичный прием, широко используемый для создания списков.
Библиотека собеса по Python
Синтаксис list comprehension выглядит так: [выражение for элемент in итерируемый_объект if условие]
List comprehension позволяет за одну строку кода:
— Пройти циклом по итерируемому объекту.
— Отфильтровать элементы по нужному условию.
— Сформировать результирующий список.
По сравнению с обычным циклом, list comprehension более компактен, читабелен и эффективен.
Это идиоматичный прием, широко используемый для создания списков.
Библиотека собеса по Python
Это означает, что в пределах одного модуля или функции не следует смешивать низкоуровневые детали реализации и высокоуровневые абстракции.
Пример нарушения SLAP:
— Использование в цикле сырых индексов вместо итераторов.
— Работа с базой данных через SQL-запросы в бизнес-логике вместо ORM.
— Прямой вызов системных функций вместо высокоуровневых интерфейсов.
Соблюдение SLAP делает код:
— Понятным: уровень абстракции соответствует контексту.
— Переносимым: можно заменить низкоуровневую реализацию.
— Тестируемым: легче имитировать высокоуровневые интерфейсы.
— Гибким: проще расширять высокоуровневую абстракцию.
Библиотека собеса по Python
Please open Telegram to view this post
VIEW IN TELEGRAM
S — Single-responsibility principle (Принцип единственной ответственности).
O — Open-closed principle (Принцип открытости/закрытости).
L — Liskov substitution principle (Принцип подстановки Лисков).
I — Interface segregation principle (Принцип разделения интерфейса).
D — Dependency Inversion Principle (Принцип инверсии зависимостей).
Основные идеи SOLID:
— Каждый класс должен нести единственную ответственность.
— Классы должны быть открыты для расширения, но закрыты для модификации.
— Подклассы должны быть взаимозаменяемы со своими базовыми классами.
— Множество узких интерфейсов лучше, чем один широкий.
— Зависимости должны строиться на абстракциях, а не конкретных классах.
Библиотека собеса по Python
Please open Telegram to view this post
VIEW IN TELEGRAM
Хорошая связанность означает, что разные части кода логически объединены по функциональности и работают вместе как единое целое для выполнения определенной задачи или набора связанных задач.
Плохая связанность в свою очередь создает код, который трудно понять и поддерживать.
Библиотека собеса по Python
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Proglib.academy | IT-курсы
🧐 Разбираемся: FAANG — не мечта, а капкан
Раньше работа в Google или Meta казалась вершиной айтишной карьеры. Сейчас — всё чаще звучат слова «стресс», «сокращения», «выгорание».
➡️ В статье разбираем
— Почему бывшие сотрудники бегут из FAANG
— Как изменилась культура внутри Big Tech
— Где теперь искать стабильность и уважение
— Реальные комментарии от действующих инженеров
— И что на самом деле стоит за блестящей обёрткой FAANG
Если вы всё ещё решаете LeetCode ради «заветной должности» — обязательно прочитайте нашу статью.
📎 Ссылка
🔵 Включайся в обучение и устраивайся куда хочешь, тебя ждет продвинутый этап нашего курса «Алгоритмы и структуры данных»
Раньше работа в Google или Meta казалась вершиной айтишной карьеры. Сейчас — всё чаще звучат слова «стресс», «сокращения», «выгорание».
— Почему бывшие сотрудники бегут из FAANG
— Как изменилась культура внутри Big Tech
— Где теперь искать стабильность и уважение
— Реальные комментарии от действующих инженеров
— И что на самом деле стоит за блестящей обёрткой FAANG
Если вы всё ещё решаете LeetCode ради «заветной должности» — обязательно прочитайте нашу статью.
Please open Telegram to view this post
VIEW IN TELEGRAM
✍🏻 Что такое wheel и eggs в Python? Какая между ними разница?
✍🏻 Python wheel — это стандартный формат установки дистрибутивов Python, который содержит все файлы и метаданные, необходимые для установки. Файл WHL также содержит информацию о версиях и платформах Python, поддерживаемых этим файлом. Расширение файла wheel — .whl
✍🏻 Python egg — это сжатый архив ZIP, содержащий исходные файлы приложения Python вместе с метаинформацией о дистрибутиве. Расширение файла egg — .egg
Основная разница заключается в том, что wheel предоставляет более простой и надежный способ установки пакетов. В отличие от eggs, он не требует установки дополнительных зависимостей и обеспечивает более быстрое время установки. Кроме того, wheel поддерживает все платформы, на которых может работать Python.
Библиотека собеса по Python
✍🏻 Python egg — это сжатый архив ZIP, содержащий исходные файлы приложения Python вместе с метаинформацией о дистрибутиве. Расширение файла egg — .egg
Основная разница заключается в том, что wheel предоставляет более простой и надежный способ установки пакетов. В отличие от eggs, он не требует установки дополнительных зависимостей и обеспечивает более быстрое время установки. Кроме того, wheel поддерживает все платформы, на которых может работать Python.
Библиотека собеса по Python
✍🏻 Как установить индекс в pandas dataFrame?
Мы можем установить индекс для фрейма данных Pandas с помощью метода set_index(), который используется для установки списка, серии или фрейма данных в качестве индекса датафрейма.
Библиотека собеса по Python
Мы можем установить индекс для фрейма данных Pandas с помощью метода set_index(), который используется для установки списка, серии или фрейма данных в качестве индекса датафрейма.
DataFrame.set_index('Column_Name')
Библиотека собеса по Python
✍🏻 Что такое shallow copy и как используется?
Shallow copy — это создание нового объекта путем копирования ссылки на вложенный объект, вместо создания полной копии вложенного объекта.
Если мы копируем список, который содержит другие списки, при shallow copy будут скопированы только внешние списки.
Если изменить внутренний список в копии, то это отразится и на оригинале.
Основное отличие от deep copy в том, что при полном копировании создаются копии всех вложенных объектов до самого нижнего уровня.
Библиотека собеса по Python
Если мы копируем список, который содержит другие списки, при shallow copy будут скопированы только внешние списки.
Если изменить внутренний список в копии, то это отразится и на оригинале.
Основное отличие от deep copy в том, что при полном копировании создаются копии всех вложенных объектов до самого нижнего уровня.
Библиотека собеса по Python