Откопал полезный репо — коллекция шпаргалок для разработчиков
Здесь есть буквально всё, короткие удобные шпаргалки по самым нужным темам. Git, SQL-запросы, Docker, RegEx, Bash, Python, JS, HTTP-коды, архитектура REST и многое другое.
Держи под рукой чтобы ускорить рабочий процесс⌨️
☝️ Ссылка источник
✈️ Python Ninja
Здесь есть буквально всё, короткие удобные шпаргалки по самым нужным темам. Git, SQL-запросы, Docker, RegEx, Bash, Python, JS, HTTP-коды, архитектура REST и многое другое.
Держи под рукой чтобы ускорить рабочий процесс
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3
Ловите подгон «101 Linux Commands» системный путеводитель команд Linux
Представьте опытный админ садится рядом и подробно объясняет вам, как устроен Linux. «101 Linux Commands» именно эта книга: дружный проводник, который шаг за шагом открывает мир терминала, не пугая сложностями
Практичный справочник для новичков и специалистов нуждающихся в мини компактном источнике базовых и часто используемых команд📖
☝️ Ссылка источник
✈️ Python Ninja
Представьте опытный админ садится рядом и подробно объясняет вам, как устроен Linux. «101 Linux Commands» именно эта книга: дружный проводник, который шаг за шагом открывает мир терминала, не пугая сложностями
Практичный справочник для новичков и специалистов нуждающихся в мини компактном источнике базовых и часто используемых команд
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5
Динамическая диспетчеризация функций
Динамическая диспетчеризация функций означает принятие решения во время выполнения программы о том, какую функцию вызвать, основываясь на некоторых динамических условиях — часто на типе аргумента, значении или атрибутах объекта. Это можно представить как более «умную» версию конструкции
Замена длинных цепочек
В примере ниже, вместо того чтобы использовать громоздкие
Вывод:
✈️ Python Ninja
Динамическая диспетчеризация функций означает принятие решения во время выполнения программы о том, какую функцию вызвать, основываясь на некоторых динамических условиях — часто на типе аргумента, значении или атрибутах объекта. Это можно представить как более «умную» версию конструкции
if-elif, в которой Python сам решает, какую функцию исполнить, исходя из контекста, а не заранее заданного потока кода. Это является ключевой идеей полиморфизма и гибкого проектированияЗамена длинных цепочек
if-else на словарь диспетчеризации (dispatch dictionary) дает значительные преимущества в читаемости, масштабируемости и сопровождаемости кодаВ примере ниже, вместо того чтобы использовать громоздкие
if-else мы используем карту команд (command map), которую можно легко обновить, если потребуется добавить новые команды. Никаких вложенных условий или «адского» отступа. Такой подход делает код более читаемым, масштабируемым и простым в обновленииdef start_engine():
return "Запуск двигателя..."
def stop_engine():
return "Остановка двигателя..."
def pause_engine():
return "Приостановка двигателя..."
# Диспетчер команд
command_map = {
"start": start_engine,
"stop": stop_engine,
"pause": pause_engine,
# Здесь можно добавить больше команд
}
def handle_command(command):
action = command_map.get(command)
if action:
return action()
else:
return "Неверная команда"
print(handle_command("pause"))
Вывод:
Приостановка двигателя...
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5
Совет по Python
Метод
Если у вас есть список строк и вы хотите получить все строки, которые начинаются с определённого значения, вы можете использовать метод списка
В приведённом ниже примере мы хотим получить все строки из списка, начинающиеся с буквы "a"
Важные уточнения:
Чувствительность к регистру – метод
Если нужно искать строки, начинающиеся на
Проверка нескольких префиксов – можно передавать кортеж префиксов:
✈️ Python Ninja
Метод
startswith()Если у вас есть список строк и вы хотите получить все строки, которые начинаются с определённого значения, вы можете использовать метод списка
startswith()В приведённом ниже примере мы хотим получить все строки из списка, начинающиеся с буквы "a"
a = ['Lemon', 'Orange', 'apple', 'apricot']
list1 = [i for i in a if i.startswith('a')]
print(list1)
# Вывод:
['apple', 'apricot']
Важные уточнения:
Чувствительность к регистру – метод
startswith('a') проверяет строго с маленькой буквыЕсли нужно искать строки, начинающиеся на
'a' или 'A' используйте:[i for i in a if i.lower().startswith('a')]Проверка нескольких префиксов – можно передавать кортеж префиксов:
[i for i in a if i.startswith(('a', 'A'))]Please open Telegram to view this post
VIEW IN TELEGRAM
❤5👍2
Хочешь строить приложение на Python и избежать фронтенда
Тогда тебе безусловно понравится этот современный декларативный UI‑фреймворк на Python, без HTML/CSS/JS. Он реализует модель в духе React/Flutter, где все компоненты — Python‑классы с атрибутами‑dataclass и методом
Более 50 встроенных компонентов:
Автодополнение и type safety благодаря полным аннотациям типов
Запуск: локально (окно) или веб (через WebSocket, FastAPI/Uvicorn) — один и тот же код
Dev‑фичи: hot reload, встроенный devtools, интеграция с Python debugger
Лично мне он нравится уже даже по описанию😏
☝️ Ссылка источник
✈️ Python Ninja
Тогда тебе безусловно понравится этот современный декларативный UI‑фреймворк на Python, без HTML/CSS/JS. Он реализует модель в духе React/Flutter, где все компоненты — Python‑классы с атрибутами‑dataclass и методом
build()Более 50 встроенных компонентов:
rio.Button, rio.Text, rio.Switch и др. Автодополнение и type safety благодаря полным аннотациям типов
Запуск: локально (окно) или веб (через WebSocket, FastAPI/Uvicorn) — один и тот же код
Dev‑фичи: hot reload, встроенный devtools, интеграция с Python debugger
Лично мне он нравится уже даже по описанию
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3
Полезная тулза «Port Kill» приложение для быстрого управления процессами
Помогает разработчикам быстро находить и завершать процессы, мешающие работе на нужных портах
Автоматически определяет активные процессы ( Docker), показывает статус цветными индикаторами и позволяет завершать их выборочно или все сразу
Сохраняем пригодится❓
☝️ Ссылка источник
✈️ Python Ninja
Помогает разработчикам быстро находить и завершать процессы, мешающие работе на нужных портах
Автоматически определяет активные процессы ( Docker), показывает статус цветными индикаторами и позволяет завершать их выборочно или все сразу
Сохраняем пригодится
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4
Подарок новичкам самый наглядный и дружелюбный инструмент изучения Git
Learn Git Branching настоящий подарок для новичков: интерактивные задания и живое визуальное дерево коммитов превращают изучение Git в игру, здесь каждое твоё действие тут же оживает на экране, делая даже сложные темы лёгкими и понятными
Каждый коммит это шаг. Главное начать идти💪
☝️ Ссылка источник
✈️ Python Ninja
Learn Git Branching настоящий подарок для новичков: интерактивные задания и живое визуальное дерево коммитов превращают изучение Git в игру, здесь каждое твоё действие тут же оживает на экране, делая даже сложные темы лёгкими и понятными
Каждый коммит это шаг. Главное начать идти
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5
Эффективное освоение алгоритмов через паттерны LeetCode
Ресурс группирует задачи LeetCode по фундаментальным паттернам решения, превращая разрозненные задачи в понятную систему подходов
Каждый паттерн объяснён, подкреплён примерами и визуализациями что помогает не просто «зубрить» задачи, а понимать сам подход, который легко переносится на новые задачи
Есть треки для пошаговой подготовки от новичка до продвинутого. Это экономит время: вместо хаотичного выбора задач вы двигаетесь по структурному пути, который закрывает все ключевые темы для собесов💪
☝️ Ссылка источник
✈️ Python Ninja
Ресурс группирует задачи LeetCode по фундаментальным паттернам решения, превращая разрозненные задачи в понятную систему подходов
Каждый паттерн объяснён, подкреплён примерами и визуализациями что помогает не просто «зубрить» задачи, а понимать сам подход, который легко переносится на новые задачи
Есть треки для пошаговой подготовки от новичка до продвинутого. Это экономит время: вместо хаотичного выбора задач вы двигаетесь по структурному пути, который закрывает все ключевые темы для собесов
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
Совет по Python
Возвращаем несколько значений из функции с помощью
По умолчанию функция возвращает одно значение, но иногда нужно вернуть несколько. Один из удобных способов — использовать
Пример:
Вывод:
Преимущества:
Четкая структура: поля
Доступ к значениям по именам (
Улучшает читаемость и поддерживаемость кода
✈️ Python Ninja
Возвращаем несколько значений из функции с помощью
namedtupleПо умолчанию функция возвращает одно значение, но иногда нужно вернуть несколько. Один из удобных способов — использовать
namedtuple из модуля collections. Это позволяет задать структуру возвращаемых значений, делая код более читаемым и понятнымПример:
from collections import namedtuple
def multiple_values():
MyTuple = namedtuple("MyTuple", ["name", "age", "car"])
name = "Mark"
age = 21
car = "Ford"
return MyTuple(name, age, car)
# Использование функции
result = multiple_values()
print(f"Name: {result.name}, Age: {result.age}, Car: {result.car}")
Вывод:
Name: Mark, Age: 21, Car: Ford
Преимущества:
Четкая структура: поля
name, age и car заданы явноДоступ к значениям по именам (
result.name), а не по индексамУлучшает читаемость и поддерживаемость кода
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2🔥2
Трюк в Python: Последовательность Фибоначчи
Классический способ
Вывод:
В первом способе используются переменные
Компактный способ (с использованием list comprehension)
Вывод:
Второй способ короче и использует list comprehension. Создается начальный список
✈️ Python Ninja
Классический способ
f1 = 0
f2 = 1
fib = []
for i in range(0, 10):
fib.append(f1)
temp = f1 + f2
f1 = f2
f2 = temp
print(fib)
Вывод:
[0, 1, 1, 2, 3, 5, 8, 13, 21, 34]В первом способе используются переменные
f1 и f2, которые изначально равны 0 и 1 — первым двум числам последовательности. В цикле for текущее значение f1 добавляется в список fib, после чего вычисляется следующее число как сумма f1 и f2. Затем значения переменных обновляются: f1 принимает значение f2, а f2 — вычисленную сумму. Этот процесс повторяется 10 раз, в результате чего формируется список из первых 10 чисел ФибоначчиКомпактный способ (с использованием list comprehension)
fib = [0, 1]
[fib.append(fib[-2] + fib[-1]) for _ in range(8)]
print(fib)
Вывод:
[0, 1, 1, 2, 3, 5, 8, 13, 21, 34]Второй способ короче и использует list comprehension. Создается начальный список
fib = [0, 1], а затем в цикле 8 раз (поскольку первые два числа уже заданы) добавляется новое число, равное сумме двух последних элементов списка (fib[-2] + fib[-1]). Таким образом, list comprehension модифицирует список "на лету", добавляя очередное число Фибоначчи на каждой итерацииPlease open Telegram to view this post
VIEW IN TELEGRAM
❤6
This media is not supported in your browser
VIEW IN TELEGRAM
А вы знали что внутри в VS Code можно пройти курс по Git
GitByBit предлагает практический формат обучения прямо внутри VS Code: задания выполняются в рабочей среде, где каждое действие проверяется автоматически
Такой подход позволяет быстро и эффективно освоить Git, укрепить навыки работы с репозиториями и научиться уверенно управлять историей проекта без скучной теории💯
☝️ Ссылка источник
✈️ Python Ninja
GitByBit предлагает практический формат обучения прямо внутри VS Code: задания выполняются в рабочей среде, где каждое действие проверяется автоматически
Такой подход позволяет быстро и эффективно освоить Git, укрепить навыки работы с репозиториями и научиться уверенно управлять историей проекта без скучной теории
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4
Запускаем эксперимент обычный «Hello world» на разных языках и с секундомером
Тестировали всё в один поток, в контейнерных песочницах и на старом процессоре так что цифры не про рекорды, а про сравнение между собой
У интерпретируемых языков измеряли только старт, без компиляции. Kotlin, как обычно, размахнулся полоску пришлось подрезать, чтобы она влезла в 80 символов😅
Да, в настоящих проектах с зависимостями всё будет иначе. Но даже такой примитивный тест показывает, как по-разному ведут себя языки
✈️ Python Ninja
Тестировали всё в один поток, в контейнерных песочницах и на старом процессоре так что цифры не про рекорды, а про сравнение между собой
У интерпретируемых языков измеряли только старт, без компиляции. Kotlin, как обычно, размахнулся полоску пришлось подрезать, чтобы она влезла в 80 символов
Да, в настоящих проектах с зависимостями всё будет иначе. Но даже такой примитивный тест показывает, как по-разному ведут себя языки
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3