Python Requests анализ запроса
При составлении запроса стоит иметь в виду, что перед его фактической отправкой на целевой сервер библиотека requests выполняет определенную подготовку. Подготовка запроса включает в себя такие вещи, как проверка заголовков и сериализация содержимого JSON.
Если открыть .request, можно просмотреть PreparedRequest.
Проверка PreparedRequest открывает доступ ко всей информации о выполняемом запросе. Это может быть пейлоад, URL, заголовки, аутентификация и многое другое.
Подписывайтесь на канал 👉@pythonofff
При составлении запроса стоит иметь в виду, что перед его фактической отправкой на целевой сервер библиотека requests выполняет определенную подготовку. Подготовка запроса включает в себя такие вещи, как проверка заголовков и сериализация содержимого JSON.
Если открыть .request, можно просмотреть PreparedRequest.
Проверка PreparedRequest открывает доступ ко всей информации о выполняемом запросе. Это может быть пейлоад, URL, заголовки, аутентификация и многое другое.
Подписывайтесь на канал 👉@pythonofff
👍2
Использование time.sleep() в threading
Python Logging Cookbook является хорошим примером использования time.sleep(). Модуль логирования logging является потоко-безопасным, поэтому в данном примере он будет полезнее, чем операторы print().
Здесь для создания двух потоков используется модуль Python threading. Также создается объект входа, что будет вводить threadName в stdout. Затем начинаются оба потока и инициируется цикл для каждого входа из главного потока. Для фиксирования пользователя используется KeyboardInterrupt при нажатии ^Ctrl+C.
Подписывайтесь на канал 👉@pythonofff
Python Logging Cookbook является хорошим примером использования time.sleep(). Модуль логирования logging является потоко-безопасным, поэтому в данном примере он будет полезнее, чем операторы print().
Здесь для создания двух потоков используется модуль Python threading. Также создается объект входа, что будет вводить threadName в stdout. Затем начинаются оба потока и инициируется цикл для каждого входа из главного потока. Для фиксирования пользователя используется KeyboardInterrupt при нажатии ^Ctrl+C.
Подписывайтесь на канал 👉@pythonofff
Создаём свой контекстный менеджер
Привет, в четверг на канале вышел небольшой пост про контекстные менеджеры. Сейчас разберём, как их можно реализовать.
В любом контекстном менеджере должны быть определены методы __enter__ и __exit__. В качестве примера создадим подобие уже существующего open.
Метод __enter__ вызывается автоматически и возвращает объект файла. После того, как блок with заканчивается, также вызывается метод __exit__, который закрывает файл.
А более подробно мы рассказываем про эту тему в нашем курсе по продвинутым темам.
Подписывайтесь на канал 👉@pythonofff
Привет, в четверг на канале вышел небольшой пост про контекстные менеджеры. Сейчас разберём, как их можно реализовать.
В любом контекстном менеджере должны быть определены методы __enter__ и __exit__. В качестве примера создадим подобие уже существующего open.
Метод __enter__ вызывается автоматически и возвращает объект файла. После того, как блок with заканчивается, также вызывается метод __exit__, который закрывает файл.
А более подробно мы рассказываем про эту тему в нашем курсе по продвинутым темам.
Подписывайтесь на канал 👉@pythonofff
❤1👍1🔥1
Кэширование функций
Кэширование может сэкономить время, когда связанная с вводом или выводом функция периодически вызывается с одинаковыми аргументами. Раньше приходилось создавать свою реализацию, но в Python 3.2+ появился декоратор lru_cache, который позволяет нам быстро кэшировать и вскрывать возвращаемые значения функции.
Давайте реализуем калькулятор чисел Фибоначчи с использованием кэша. Советую попробовать запустить любую рекурсивную функцию с кэшированием и без него, прирост в скорости замечается сразу.
Подписывайтесь на канал 👉@pythonofff
Кэширование может сэкономить время, когда связанная с вводом или выводом функция периодически вызывается с одинаковыми аргументами. Раньше приходилось создавать свою реализацию, но в Python 3.2+ появился декоратор lru_cache, который позволяет нам быстро кэшировать и вскрывать возвращаемые значения функции.
Давайте реализуем калькулятор чисел Фибоначчи с использованием кэша. Советую попробовать запустить любую рекурсивную функцию с кэшированием и без него, прирост в скорости замечается сразу.
Подписывайтесь на канал 👉@pythonofff
👍2
Библиотека Numpy
При создании массивом мы получаем тип ndarray.
Рассмотрим наиболее часты атрибуты (не методы!) применимые к массивам:
ndim - число измерений (чаще их называют "оси") массива.
shape - размеры массива, его форма. Это кортеж натуральных чисел, показывающий длину массива по каждой оси. Для матрицы из n строк и m столбов, shape будет (n,m). Число элементов кортежа shape равно ndim.
size - количество элементов массива. Очевидно, равно произведению всех элементов атрибута shape.
dtype - объект, описывающий тип элементов массива
itemsize - размер каждого элемента массива в байтах.
data - буфер, содержащий фактические элементы массива. Обычно мы не используем этот атрибут, так как обращаться к элементам массива проще всего с помощью индексов.
Подписывайтесь на канал 👉@pythonofff
При создании массивом мы получаем тип ndarray.
Рассмотрим наиболее часты атрибуты (не методы!) применимые к массивам:
ndim - число измерений (чаще их называют "оси") массива.
shape - размеры массива, его форма. Это кортеж натуральных чисел, показывающий длину массива по каждой оси. Для матрицы из n строк и m столбов, shape будет (n,m). Число элементов кортежа shape равно ndim.
size - количество элементов массива. Очевидно, равно произведению всех элементов атрибута shape.
dtype - объект, описывающий тип элементов массива
itemsize - размер каждого элемента массива в байтах.
data - буфер, содержащий фактические элементы массива. Обычно мы не используем этот атрибут, так как обращаться к элементам массива проще всего с помощью индексов.
Подписывайтесь на канал 👉@pythonofff
👍3
Блок else в циклах.
Блок else в циклах for и while — это конструкция, которая позволяет выполнить определенный блок кода только в случае, если цикл завершился без использования оператора break. В цикле while условие проверяется перед каждой итерацией, и если оно истинно, то выполняется тело цикла. Цикл выполняется до тех пор, пока условие не станет ложным. В случае цикла for, он проходит по элементам последовательности (например, списку) и выполняет указанный блок кода для каждого элемента.
Давайте рассмотрим пример использования блока else в цикле for. Предположим, у нас есть функция find_needle, которая принимает на вход список haystack и элемент needle, и ищет needle в haystack. Мы хотим вывести сообщение, если элемент needle не найден в haystack. Для этого мы можем использовать цикл for для прохода по элементам haystack и проверки на равенство с needle. Если элемент найден, мы выводим сообщение и прерываем цикл с помощью оператора break. Если цикл завершается без прерывания, то выполняется блок else.
В данном примере, если элемент needle найден в haystack, то будет выведено сообщение «Needle found!». Если же элемент needle не найден, то будет выполнен блок else и выведено сообщение «Needle not found in haystack.». Это позволяет нам выполнить определенные действия в зависимости от результата поиска элемента в списке.
Таким образом, блок else в циклах for и while предоставляет удобный способ выполнения действий, которые должны произойти только в случае, если цикл завершился успешно, без дополнительных проверок условий. Это помогает улучшить читаемость и структуру кода, делая его более понятным и эффективным.
Подписывайтесь на канал 👉@pythonofff
Блок else в циклах for и while — это конструкция, которая позволяет выполнить определенный блок кода только в случае, если цикл завершился без использования оператора break. В цикле while условие проверяется перед каждой итерацией, и если оно истинно, то выполняется тело цикла. Цикл выполняется до тех пор, пока условие не станет ложным. В случае цикла for, он проходит по элементам последовательности (например, списку) и выполняет указанный блок кода для каждого элемента.
Давайте рассмотрим пример использования блока else в цикле for. Предположим, у нас есть функция find_needle, которая принимает на вход список haystack и элемент needle, и ищет needle в haystack. Мы хотим вывести сообщение, если элемент needle не найден в haystack. Для этого мы можем использовать цикл for для прохода по элементам haystack и проверки на равенство с needle. Если элемент найден, мы выводим сообщение и прерываем цикл с помощью оператора break. Если цикл завершается без прерывания, то выполняется блок else.
def find_needle(haystack, needle):
for item in haystack:
if item == needle:
print("Needle found!")
break
else:
print("Needle not found in haystack.")
В данном примере, если элемент needle найден в haystack, то будет выведено сообщение «Needle found!». Если же элемент needle не найден, то будет выполнен блок else и выведено сообщение «Needle not found in haystack.». Это позволяет нам выполнить определенные действия в зависимости от результата поиска элемента в списке.
Таким образом, блок else в циклах for и while предоставляет удобный способ выполнения действий, которые должны произойти только в случае, если цикл завершился успешно, без дополнительных проверок условий. Это помогает улучшить читаемость и структуру кода, делая его более понятным и эффективным.
Подписывайтесь на канал 👉@pythonofff
👍4
😎 Хотите стать Python-разработчиком и начать успешную карьеру в IT? Время действовать!
🐍 Python — самый востребованный язык. На курсе вы изучите синтаксис, фреймворки Django и FastAPI, научитесь работать с базами данных и создадите портфолио, которое привлекает топовые команды.
🚀 Программа составлена практикующими экспертами, а выпускники OTUS высоко ценятся среди ведущих компаний. Обучение с нуля до Junior-разработчика за 6 месяцев!
➡️ Старт уже близко — успейте занять место в группе! Узнать больше и получить скидку до 15% по промокоду PythonBasic_5 : https://vk.cc/cHTGuf
🐍 Python — самый востребованный язык. На курсе вы изучите синтаксис, фреймворки Django и FastAPI, научитесь работать с базами данных и создадите портфолио, которое привлекает топовые команды.
🚀 Программа составлена практикующими экспертами, а выпускники OTUS высоко ценятся среди ведущих компаний. Обучение с нуля до Junior-разработчика за 6 месяцев!
➡️ Старт уже близко — успейте занять место в группе! Узнать больше и получить скидку до 15% по промокоду PythonBasic_5 : https://vk.cc/cHTGuf
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Срок действия промокода до 30.01.2025
👍1
Как удалить пустые строки в списке на python?
array = ['Stephen King', '', 'J. K. Rowling', '', 'Oliver Bowden']
filtred_array = list(filter(None, array))
print(filtred_array)
# Вывод : ['Stephen King', 'J. K. Rowling', 'Oliver Bowden']
Подписывайтесь на канал 👉@pythonofff
array = ['Stephen King', '', 'J. K. Rowling', '', 'Oliver Bowden']
filtred_array = list(filter(None, array))
print(filtred_array)
# Вывод : ['Stephen King', 'J. K. Rowling', 'Oliver Bowden']
Подписывайтесь на канал 👉@pythonofff
👍4
Продвинутая работа со списками
При работе со списками крайне полезно знать как правильно формировать срезы списка. В приложениях, активно использующих группы данных - срезы незаменимый инструмент.
В общей форме формирования среза выглядит следующим образом:
list[start:end:step]
Комбинации параметров помогут достичь необходимого результата.
Подписывайтесь на канал 👉@pythonofff
При работе со списками крайне полезно знать как правильно формировать срезы списка. В приложениях, активно использующих группы данных - срезы незаменимый инструмент.
В общей форме формирования среза выглядит следующим образом:
list[start:end:step]
Комбинации параметров помогут достичь необходимого результата.
Подписывайтесь на канал 👉@pythonofff
👍3❤1🎉1
all и any
Полезные функции, которые помогут узнать есть ли определенные значения в объекте.
all возвращает True, если все объекты равны True или удовлетворяют условию.
any в свою очередь делает то же самое, но возвращает True, если хотя бы один равен True.
Теперь нет необходимости перебирать списки, достаточно использовать данные функции.
Подписывайтесь на канал 👉@pythonofff
Полезные функции, которые помогут узнать есть ли определенные значения в объекте.
all возвращает True, если все объекты равны True или удовлетворяют условию.
any в свою очередь делает то же самое, но возвращает True, если хотя бы один равен True.
Теперь нет необходимости перебирать списки, достаточно использовать данные функции.
Подписывайтесь на канал 👉@pythonofff
👍4❤2
Примеры использования модуля os в Python
os.chdir() и os.getcwd()
Функция os.chdir позволяет нам вносить изменения в каталоге, который мы в данный момент используем в сессии.
Если вам нужно знать, какой путь вы в данный момент используете, для этой нужно вызвать os.getcwd(). Указанный код демонстрирует нам, что мы открыли директорию по умолчанию в Пайтоне, после запуска данного кода в IDLE.
После этого мы изменили папки, при помощи os.chdir().
Подписывайтесь на канал 👉@pythonofff
os.chdir() и os.getcwd()
Функция os.chdir позволяет нам вносить изменения в каталоге, который мы в данный момент используем в сессии.
Если вам нужно знать, какой путь вы в данный момент используете, для этой нужно вызвать os.getcwd(). Указанный код демонстрирует нам, что мы открыли директорию по умолчанию в Пайтоне, после запуска данного кода в IDLE.
После этого мы изменили папки, при помощи os.chdir().
Подписывайтесь на канал 👉@pythonofff
Создание функций на основе других с "замороженными" параметрами
Привет, сегодня поговорим про очень важную функцию partial из пакета functools. Более подробно мы рассказываем про это в курсе, но сейчас дадим краткое описание работы.
Данная функция принимает в качестве первого аргумента любую другую функцию, а дальше параметры, которые будут автоматически переданы в эту функцию при вызове уже новой функции, которую вернёт partial.
Например, можем создать функцию, которая умножает два числа, а потом "заморозить" один аргумент, как на картинке.
Подписывайтесь на канал 👉@pythonofff
Привет, сегодня поговорим про очень важную функцию partial из пакета functools. Более подробно мы рассказываем про это в курсе, но сейчас дадим краткое описание работы.
Данная функция принимает в качестве первого аргумента любую другую функцию, а дальше параметры, которые будут автоматически переданы в эту функцию при вызове уже новой функции, которую вернёт partial.
Например, можем создать функцию, которая умножает два числа, а потом "заморозить" один аргумент, как на картинке.
Подписывайтесь на канал 👉@pythonofff
👍3
Как обрабатывать исключения?
Обработка исключений в Пайтон – это очень просто. Потратим немного времени и напишем несколько примеров, которые их вызовут. Мы начнем с одной из самых элементарных проблем: деление на ноль.
Если мы обратимся к урокам элементарной математики, то вспомним, что на ноль делить нельзя. В Пайтоне данная операция вызовет ошибку, как мы можем видеть в примере выше. Чтобы поймать ошибку, мы завернем операцию в оператор try/except.
Подписывайтесь на канал 👉@pythonofff
Обработка исключений в Пайтон – это очень просто. Потратим немного времени и напишем несколько примеров, которые их вызовут. Мы начнем с одной из самых элементарных проблем: деление на ноль.
Если мы обратимся к урокам элементарной математики, то вспомним, что на ноль делить нельзя. В Пайтоне данная операция вызовет ошибку, как мы можем видеть в примере выше. Чтобы поймать ошибку, мы завернем операцию в оператор try/except.
Подписывайтесь на канал 👉@pythonofff
❤2
Функция itertools.cycle
Напоминаю, что у нас всё ещё идёт набор на курс, который начинается уже в этот понедельник. А сейчас покажу вам кое-что интересное из курса.
В лекции, посвященной итераторам и генераторам, мы также показываем полезные функции из пакета itertools. К примеру, метод cycle из последовательности ['red', 'white', 'blue'] генерирует повторяющуюся бесконечную.
А далее, например, можно воспользоваться islice. Он возвращает конечный итератор из любой большой или даже бесконечной последовательности.
Подписывайтесь на канал 👉@pythonofff
Напоминаю, что у нас всё ещё идёт набор на курс, который начинается уже в этот понедельник. А сейчас покажу вам кое-что интересное из курса.
В лекции, посвященной итераторам и генераторам, мы также показываем полезные функции из пакета itertools. К примеру, метод cycle из последовательности ['red', 'white', 'blue'] генерирует повторяющуюся бесконечную.
А далее, например, можно воспользоваться islice. Он возвращает конечный итератор из любой большой или даже бесконечной последовательности.
Подписывайтесь на канал 👉@pythonofff
👍2
Класс collections.deque
Класс deque реализует двухконечную очередь, которая поддерживает добавление и удаление элементов с обоих концов в течение О(1) времени.
Объекты deque представлены в виде двусвязных списков, что дает им превосходную производительность для входящих и выходящих элементов, но при этом у него плохая производительность O(n) при работе со случайно принимаемыми элементами в середине очереди.
В связи с тем, что deque поддерживает вставку и удаление элементов одинаково хорошо, они могут поддерживать и очереди и стеки collections.deque это отличное решение, если вы ищите структуру данных очереди в Python в стандартной библиотеке.
Подписывайтесь на канал 👉@pythonofff
Класс deque реализует двухконечную очередь, которая поддерживает добавление и удаление элементов с обоих концов в течение О(1) времени.
Объекты deque представлены в виде двусвязных списков, что дает им превосходную производительность для входящих и выходящих элементов, но при этом у него плохая производительность O(n) при работе со случайно принимаемыми элементами в середине очереди.
В связи с тем, что deque поддерживает вставку и удаление элементов одинаково хорошо, они могут поддерживать и очереди и стеки collections.deque это отличное решение, если вы ищите структуру данных очереди в Python в стандартной библиотеке.
Подписывайтесь на канал 👉@pythonofff
❤2
Простая обрезка изображения в Pillow
Обозначим область обрезки изображения с помощью кортежа box=(left, upper, right, lower).
Верхней левой координате соответствует (x, y) = (left, upper), а нижней правой — (x, y) = (right, lower). Область, которую нужно обрезать — left <= x <right и upper <= y <lower, а пиксели x = right и y = lower не включаются.
Не забудьте, что box используется вместе со скобками ().
Подписывайтесь на канал 👉@pythonofff
Обозначим область обрезки изображения с помощью кортежа box=(left, upper, right, lower).
Верхней левой координате соответствует (x, y) = (left, upper), а нижней правой — (x, y) = (right, lower). Область, которую нужно обрезать — left <= x <right и upper <= y <lower, а пиксели x = right и y = lower не включаются.
Не забудьте, что box используется вместе со скобками ().
Подписывайтесь на канал 👉@pythonofff
👍3
Делаем многоуровневый словарь плоским при помощи собственной рекурсивной функции
Быстрый поиск в Google приводит нас на StackOverflow. Первый же ответ предлагает рекурсивную функцию, которая перебирает словарь и возвращает «уплощенный» экземпляр. Вдохновившись этой функцией, давайте создадим немного более продвинутую версию.
Можем начать с type hinting (явного указания типов). Это улучшит читаемость и сделает код типобезопасным.
Подписывайтесь на канал 👉@pythonofff
Быстрый поиск в Google приводит нас на StackOverflow. Первый же ответ предлагает рекурсивную функцию, которая перебирает словарь и возвращает «уплощенный» экземпляр. Вдохновившись этой функцией, давайте создадим немного более продвинутую версию.
Можем начать с type hinting (явного указания типов). Это улучшит читаемость и сделает код типобезопасным.
Подписывайтесь на канал 👉@pythonofff
👍3
Метод items()
Метод items() используется для возврата списка кортежей с парами всех ключей и значений словаря.
Синтаксис:dictionary.items()
Данный метод не принимает никаких аргументов.
Приведем пример использования данной функции.
Объявлен словарь с именем products. Ключи содержат названия продуктов, а значения — их цены. Используем для нашего словаря метод items() и сохраним в другой переменной с именем itemlist, а затем выведем на экран.
Подписывайтесь на канал 👉@pythonofff
Метод items() используется для возврата списка кортежей с парами всех ключей и значений словаря.
Синтаксис:dictionary.items()
Данный метод не принимает никаких аргументов.
Приведем пример использования данной функции.
Объявлен словарь с именем products. Ключи содержат названия продуктов, а значения — их цены. Используем для нашего словаря метод items() и сохраним в другой переменной с именем itemlist, а затем выведем на экран.
Подписывайтесь на канал 👉@pythonofff
👍3
Блок else в циклах for
Хауди хо, друзья. Практически все новички теряются при виде блока else после циклов, поэтому сейчас немного проясним ситуацию.
В Python блок else может быть представлен не только в условных конструкциях после if, но и в циклах после for и while. В данном случае код внутри else выполняется, только если цикл не был прерван с помощью break.
Типичный пример использования – поиск чего-либо в цикле с использованием ключевого слова break при нахождении, как показано на картинке. Исходный код текстом можете найти в нашем чате.
Подписывайтесь на канал 👉@pythonofff
Хауди хо, друзья. Практически все новички теряются при виде блока else после циклов, поэтому сейчас немного проясним ситуацию.
В Python блок else может быть представлен не только в условных конструкциях после if, но и в циклах после for и while. В данном случае код внутри else выполняется, только если цикл не был прерван с помощью break.
Типичный пример использования – поиск чего-либо в цикле с использованием ключевого слова break при нахождении, как показано на картинке. Исходный код текстом можете найти в нашем чате.
Подписывайтесь на канал 👉@pythonofff
❤4👍1
Подборка Telegram каналов для программистов
Системное администрирование 📌
https://t.me/sysadmin_girl Девочка Сисадмин
https://t.me/srv_admin_linux Админские угодья
https://t.me/linux_srv Типичный Сисадмин
https://t.me/linux_odmin Linux: Системный администратор
https://t.me/devops_star DevOps Star (Звезда Девопса)
https://t.me/i_linux Системный администратор
https://t.me/linuxchmod Linux
https://t.me/sys_adminos Системный Администратор
https://t.me/tipsysdmin Типичный Сисадмин (фото железа, было/стало)
https://t.me/sysadminof Книги для админов, полезные материалы
https://t.me/i_odmin Все для системного администратора
https://t.me/i_odmin_book Библиотека Системного Администратора
https://t.me/i_odmin_chat Чат системных администраторов
https://t.me/i_DevOps DevOps: Пишем о Docker, Kubernetes и др.
https://t.me/sysadminoff Новости Линукс Linux
1C разработка 📌
https://t.me/odin1C_rus Cтатьи, курсы, советы, шаблоны кода 1С
Программирование C++📌
https://t.me/cpp_lib Библиотека C/C++ разработчика
https://t.me/cpp_knigi Книги для программистов C/C++
https://t.me/cpp_geek Учим C/C++ на примерах
Программирование Python 📌
https://t.me/pythonofff Python академия. Учи Python быстро и легко🐍
https://t.me/BookPython Библиотека Python разработчика
https://t.me/python_real Python подборки на русском и английском
https://t.me/python_360 Книги по Python Rus
Java разработка 📌
https://t.me/BookJava Библиотека Java разработчика
https://t.me/java_360 Книги по Java Rus
https://t.me/java_geek Учим Java на примерах
GitHub Сообщество 📌
https://t.me/Githublib Интересное из GitHub
Базы данных (Data Base) 📌
https://t.me/database_info Все про базы данных
Мобильная разработка: iOS, Android 📌
https://t.me/developer_mobila Мобильная разработка
https://t.me/kotlin_lib Подборки полезного материала по Kotlin
Фронтенд разработка 📌
https://t.me/frontend_1 Подборки для frontend разработчиков
https://t.me/frontend_sovet Frontend советы, примеры и практика!
https://t.me/React_lib Подборки по React js и все что с ним связано
Разработка игр 📌
https://t.me/game_devv Все о разработке игр
Библиотеки 📌
https://t.me/book_for_dev Книги для программистов Rus
https://t.me/programmist_of Книги по программированию
https://t.me/proglb Библиотека программиста
https://t.me/bfbook Книги для программистов
https://t.me/books_reserv Книги для программистов
БигДата, машинное обучение 📌
https://t.me/bigdata_1 Data Science, Big Data, Machine Learning, Deep Learning
Программирование 📌
https://t.me/bookflow Лекции, видеоуроки, доклады с IT конференций
https://t.me/coddy_academy Полезные советы по программированию
https://t.me/rust_lib Полезный контент по программированию на Rust
https://t.me/golang_lib Библиотека Go (Golang) разработчика
https://t.me/itmozg Программисты, дизайнеры, новости из мира IT
https://t.me/php_lib Библиотека PHP программиста 👨🏼💻👩💻
https://t.me/nodejs_lib Подборки по Node js и все что с ним связано
https://t.me/ruby_lib Библиотека Ruby программиста
QA, тестирование 📌
https://t.me/testlab_qa Библиотека тестировщика
Шутки программистов 📌
https://t.me/itumor Шутки программистов
Защита, взлом, безопасность 📌
https://t.me/thehaking Канал о кибербезопасности
https://t.me/xakep_1 Статьи из "Хакера"
Книги, статьи для дизайнеров 📌
https://t.me/ux_web Статьи, книги для дизайнеров
Английский 📌
https://t.me/UchuEnglish Английский с нуля
Математика 📌
https://t.me/Pomatematike Канал по математике
https://t.me/phis_mat Обучающие видео, книги по Физике и Математике
Excel лайфхак📌
https://t.me/Excel_lifehack
https://t.me/tikon_1 Новости высоких технологий, науки и техники💡
https://t.me/mir_teh Мир технологий (Technology World)
Вакансии 📌
https://t.me/sysadmin_rabota Системный Администратор
https://t.me/progjob Вакансии в IT
Системное администрирование 📌
https://t.me/sysadmin_girl Девочка Сисадмин
https://t.me/srv_admin_linux Админские угодья
https://t.me/linux_srv Типичный Сисадмин
https://t.me/linux_odmin Linux: Системный администратор
https://t.me/devops_star DevOps Star (Звезда Девопса)
https://t.me/i_linux Системный администратор
https://t.me/linuxchmod Linux
https://t.me/sys_adminos Системный Администратор
https://t.me/tipsysdmin Типичный Сисадмин (фото железа, было/стало)
https://t.me/sysadminof Книги для админов, полезные материалы
https://t.me/i_odmin Все для системного администратора
https://t.me/i_odmin_book Библиотека Системного Администратора
https://t.me/i_odmin_chat Чат системных администраторов
https://t.me/i_DevOps DevOps: Пишем о Docker, Kubernetes и др.
https://t.me/sysadminoff Новости Линукс Linux
1C разработка 📌
https://t.me/odin1C_rus Cтатьи, курсы, советы, шаблоны кода 1С
Программирование C++📌
https://t.me/cpp_lib Библиотека C/C++ разработчика
https://t.me/cpp_knigi Книги для программистов C/C++
https://t.me/cpp_geek Учим C/C++ на примерах
Программирование Python 📌
https://t.me/pythonofff Python академия. Учи Python быстро и легко🐍
https://t.me/BookPython Библиотека Python разработчика
https://t.me/python_real Python подборки на русском и английском
https://t.me/python_360 Книги по Python Rus
Java разработка 📌
https://t.me/BookJava Библиотека Java разработчика
https://t.me/java_360 Книги по Java Rus
https://t.me/java_geek Учим Java на примерах
GitHub Сообщество 📌
https://t.me/Githublib Интересное из GitHub
Базы данных (Data Base) 📌
https://t.me/database_info Все про базы данных
Мобильная разработка: iOS, Android 📌
https://t.me/developer_mobila Мобильная разработка
https://t.me/kotlin_lib Подборки полезного материала по Kotlin
Фронтенд разработка 📌
https://t.me/frontend_1 Подборки для frontend разработчиков
https://t.me/frontend_sovet Frontend советы, примеры и практика!
https://t.me/React_lib Подборки по React js и все что с ним связано
Разработка игр 📌
https://t.me/game_devv Все о разработке игр
Библиотеки 📌
https://t.me/book_for_dev Книги для программистов Rus
https://t.me/programmist_of Книги по программированию
https://t.me/proglb Библиотека программиста
https://t.me/bfbook Книги для программистов
https://t.me/books_reserv Книги для программистов
БигДата, машинное обучение 📌
https://t.me/bigdata_1 Data Science, Big Data, Machine Learning, Deep Learning
Программирование 📌
https://t.me/bookflow Лекции, видеоуроки, доклады с IT конференций
https://t.me/coddy_academy Полезные советы по программированию
https://t.me/rust_lib Полезный контент по программированию на Rust
https://t.me/golang_lib Библиотека Go (Golang) разработчика
https://t.me/itmozg Программисты, дизайнеры, новости из мира IT
https://t.me/php_lib Библиотека PHP программиста 👨🏼💻👩💻
https://t.me/nodejs_lib Подборки по Node js и все что с ним связано
https://t.me/ruby_lib Библиотека Ruby программиста
QA, тестирование 📌
https://t.me/testlab_qa Библиотека тестировщика
Шутки программистов 📌
https://t.me/itumor Шутки программистов
Защита, взлом, безопасность 📌
https://t.me/thehaking Канал о кибербезопасности
https://t.me/xakep_1 Статьи из "Хакера"
Книги, статьи для дизайнеров 📌
https://t.me/ux_web Статьи, книги для дизайнеров
Английский 📌
https://t.me/UchuEnglish Английский с нуля
Математика 📌
https://t.me/Pomatematike Канал по математике
https://t.me/phis_mat Обучающие видео, книги по Физике и Математике
Excel лайфхак📌
https://t.me/Excel_lifehack
https://t.me/tikon_1 Новости высоких технологий, науки и техники💡
https://t.me/mir_teh Мир технологий (Technology World)
Вакансии 📌
https://t.me/sysadmin_rabota Системный Администратор
https://t.me/progjob Вакансии в IT
Telegram
Девочка Сисадмин
Канал по системному администрированию, который ведет девочка админ. Все о Linux, Windows и т.д.
По всем вопросам : @Sofiia_artamonova
По всем вопросам : @Sofiia_artamonova
👏3