Как читать бинарные файлы на python?
Вы можете читать бинарные файлы с помощью режима чтения "rb"
with open('index.dat', 'rb') as binary_file:
info = binary_file.read()
Как читать большие файлы в python?
Самый простой метод чтения больших файлов - чтение построчно. При таком методе оперативная память не забивается.
with open('data.txt', 'r') as file:
for line in file:
print(line)
Подписывайтесь на канал 👉@pythonofff
Вы можете читать бинарные файлы с помощью режима чтения "rb"
with open('index.dat', 'rb') as binary_file:
info = binary_file.read()
Как читать большие файлы в python?
Самый простой метод чтения больших файлов - чтение построчно. При таком методе оперативная память не забивается.
with open('data.txt', 'r') as file:
for line in file:
print(line)
Подписывайтесь на канал 👉@pythonofff
👍5🔥1
Функции map(), filter() и reduce() используют, чтобы привнести в Python немного функционального программирования.
Все три из них являются удобными функциями, которые можно заменить на списки или циклы. Но они
обеспечивают более элегантный и краткий подход к некоторым задачам.
1. map() - функция map перебираeт все элементы в данном итеративном объекте и выполняeт функцию, которую мы передали в качестве аргумента для каждого из них.
2. filter() - Подобно map(), filter() принимает объект функции и итерацию и создает новый список. Как следует из названия, filter() формирует новый список, содержащий только элементы, удовлетворяющие определенному условию.
3. reduce() - reduce работает иначе, чем map() и filter(). Он не возвращает новый список, основанный на функции и итерации, которые мы передали.
Вместо этого он возвращает одно значение. На картинке мы приводим пример сложения чисел. Но это самое простейшее. Можно перемножать, возводить в квадрат и многое другое (и не обязательно с числами).
Подписывайтесь на канал 👉@pythonofff
Все три из них являются удобными функциями, которые можно заменить на списки или циклы. Но они
обеспечивают более элегантный и краткий подход к некоторым задачам.
1. map() - функция map перебираeт все элементы в данном итеративном объекте и выполняeт функцию, которую мы передали в качестве аргумента для каждого из них.
2. filter() - Подобно map(), filter() принимает объект функции и итерацию и создает новый список. Как следует из названия, filter() формирует новый список, содержащий только элементы, удовлетворяющие определенному условию.
3. reduce() - reduce работает иначе, чем map() и filter(). Он не возвращает новый список, основанный на функции и итерации, которые мы передали.
Вместо этого он возвращает одно значение. На картинке мы приводим пример сложения чисел. Но это самое простейшее. Можно перемножать, возводить в квадрат и многое другое (и не обязательно с числами).
Подписывайтесь на канал 👉@pythonofff
👍5
Как правильно создавать классы в python?
Вы можете придерживаться синтаксиса
class <Название_Класса>:
def __init__(<Аргументы_Класса>):
pass
(Конструктор класса не всегда обязателен)
Создание класса вы можете увидеть на примере :
class Axe: # Создаем класс с названием "Axe"
def __init__(self, x : int, y : int): # Создаем конструктор класса, который принимает "x" и "y"
self.x = x
self.y = y
def increment(self): # Создаем метод класса
print(self.x + self.y)
Подписывайтесь на канал 👉@pythonofff
Вы можете придерживаться синтаксиса
class <Название_Класса>:
def __init__(<Аргументы_Класса>):
pass
(Конструктор класса не всегда обязателен)
Создание класса вы можете увидеть на примере :
class Axe: # Создаем класс с названием "Axe"
def __init__(self, x : int, y : int): # Создаем конструктор класса, который принимает "x" и "y"
self.x = x
self.y = y
def increment(self): # Создаем метод класса
print(self.x + self.y)
Подписывайтесь на канал 👉@pythonofff
👍7
Как скачать видео с youtube с помощью python?
Вы можете использовать библиотеку pytube для скачки видео с youtube
import pytube
link = "../" # Ссылка на видео
path = "../" # Путь, куда будет сохранятся видео
YT_parser = pytube.YouTube(link)
video_with_highest_resolution = YT_parser.streams.get_highest_resolution()
video_with_highest_resolution.download(path)
Подписывайтесь на канал 👉@pythonofff
Вы можете использовать библиотеку pytube для скачки видео с youtube
import pytube
link = "../" # Ссылка на видео
path = "../" # Путь, куда будет сохранятся видео
YT_parser = pytube.YouTube(link)
video_with_highest_resolution = YT_parser.streams.get_highest_resolution()
video_with_highest_resolution.download(path)
Подписывайтесь на канал 👉@pythonofff
👍8
Как в Python удалить файл или папку
Для простого удаления файлов и папок используется стандартная библиотека os.
— Для удаления файлов используем функцию remove()
— Для удаления папки используем функцию rmdir()
— Для удаления папки и в ней содержимого используем shutil.rmtree()
Подписывайтесь на канал 👉@pythonofff
Для простого удаления файлов и папок используется стандартная библиотека os.
— Для удаления файлов используем функцию remove()
— Для удаления папки используем функцию rmdir()
— Для удаления папки и в ней содержимого используем shutil.rmtree()
Подписывайтесь на канал 👉@pythonofff
👍2
Как удалить каждый второй элемент списка в python?
Вы можете использовать индексирование [::2] (2 означает шаг) для удаления каждого второго элемента.
array = [1, 2, 3, 4, 5, 6, 7, 8, 9]
print(array[::2])
# Вывод : [1, 3, 5, 7, 9]
Подписывайтесь на канал 👉@pythonofff
Вы можете использовать индексирование [::2] (2 означает шаг) для удаления каждого второго элемента.
array = [1, 2, 3, 4, 5, 6, 7, 8, 9]
print(array[::2])
# Вывод : [1, 3, 5, 7, 9]
Подписывайтесь на канал 👉@pythonofff
🔥2👍1
Как в Python используется оператор +
Прежде чем приступить к методам append() и extend(), давайте посмотрим, как происходит конкатенация (объединение) списков при помощи оператора +.
Допустим, у нас есть два списка, list1 и list2, которые мы хотим объединить (то есть склеить вместе два целых списка).
Если вы внимательно прочтете приведенный выше код, вы заметите следующие вещи:
• list1 + list2 не добавляет элементы из list2 в list1.
• Вместо этого создается новый список, содержащий элементы из list1 и list2.
• В результате сами списки list1 и list2 остаются в первозданном виде.
Есть методы с использованием append() и extend().
Подписывайтесь на канал 👉@pythonofff
Прежде чем приступить к методам append() и extend(), давайте посмотрим, как происходит конкатенация (объединение) списков при помощи оператора +.
Допустим, у нас есть два списка, list1 и list2, которые мы хотим объединить (то есть склеить вместе два целых списка).
Если вы внимательно прочтете приведенный выше код, вы заметите следующие вещи:
• list1 + list2 не добавляет элементы из list2 в list1.
• Вместо этого создается новый список, содержащий элементы из list1 и list2.
• В результате сами списки list1 и list2 остаются в первозданном виде.
Есть методы с использованием append() и extend().
Подписывайтесь на канал 👉@pythonofff
👍3
Блок else в циклах for и while
Цикл while используется для выполнения условия до тех пор, пока оно не будет оценено как истинное.
Цикл for используется для повторения определенных строк кода в программе. Предположим, вы хотите напечатать числа до 10, вы можете сделать это, набрав 10 операторов печати или используя цикл for. Цикл for повторяет часть программы на основе последовательности.
В Python циклы for и while могут содержать блок else, который выполнится, только если цикл завершится без применения break.
Рассмотрим это на примере функции, ищущей иголку (needle) в стоге сена (haystack).
Подписывайтесь на канал 👉@pythonofff
Цикл while используется для выполнения условия до тех пор, пока оно не будет оценено как истинное.
Цикл for используется для повторения определенных строк кода в программе. Предположим, вы хотите напечатать числа до 10, вы можете сделать это, набрав 10 операторов печати или используя цикл for. Цикл for повторяет часть программы на основе последовательности.
В Python циклы for и while могут содержать блок else, который выполнится, только если цикл завершится без применения break.
Рассмотрим это на примере функции, ищущей иголку (needle) в стоге сена (haystack).
Подписывайтесь на канал 👉@pythonofff
👍4
Как импортировать класс из другого файла в python?
Вы можете использовать from "<Название_Файла>" import "<Название_Класса>"
from math_function import Axe
axe = Axe(x = 10, y = 13)
print(axe.summ())
# Вывод : 23
Файл "math_function.py"
class Axe:
def __init__(self, x : int, y : int):
self.x = x
self.y = y
def summ(self):
return x + y
Подписывайтесь на канал 👉@pythonofff
Вы можете использовать from "<Название_Файла>" import "<Название_Класса>"
from math_function import Axe
axe = Axe(x = 10, y = 13)
print(axe.summ())
# Вывод : 23
Файл "math_function.py"
class Axe:
def __init__(self, x : int, y : int):
self.x = x
self.y = y
def summ(self):
return x + y
Подписывайтесь на канал 👉@pythonofff
👍3🔥2
Как удалить папку с файлами в Python?
Вы можете использовать shutil.rmtree() метод, чтобы удалить директорию со всеми файлами в ней на Python, посмотрите небольшой код ниже:
import shutil
path = "/tmp/test_folder"
# Удалить папку и все файлы в ней
shutil.rmtree(path)
Подписывайтесь на канал 👉@pythonofff
Вы можете использовать shutil.rmtree() метод, чтобы удалить директорию со всеми файлами в ней на Python, посмотрите небольшой код ниже:
import shutil
path = "/tmp/test_folder"
# Удалить папку и все файлы в ней
shutil.rmtree(path)
Подписывайтесь на канал 👉@pythonofff
👍2
Ускоряем код при помощи векторизации?
Лучшее решение — векторизация вычислений. Простыми словами: использование функций, которые поддерживают операцию над векторами.
По сути, самым лучшим способом для ускорения любого цикла - это полный отказ от него. В примере выше для работы с функцией my_func мы легко могли бы обойтись вызовом ее в цикле для каждого элемента списка, но еще проще будет использовать vectorize.
Вообще, vectorize преображает функцию таким образом, что она целиком принимает весь вектор, а не ее отдельные элементы. Только знайте, что такой прием не всегда ускорит ее в значительной степени.
Подписывайтесь на канал 👉@pythonofff
Лучшее решение — векторизация вычислений. Простыми словами: использование функций, которые поддерживают операцию над векторами.
По сути, самым лучшим способом для ускорения любого цикла - это полный отказ от него. В примере выше для работы с функцией my_func мы легко могли бы обойтись вызовом ее в цикле для каждого элемента списка, но еще проще будет использовать vectorize.
Вообще, vectorize преображает функцию таким образом, что она целиком принимает весь вектор, а не ее отдельные элементы. Только знайте, что такой прием не всегда ускорит ее в значительной степени.
Подписывайтесь на канал 👉@pythonofff
👍3
Как удалить строку из файла в Python?
filename = "test.txt"
delete_string = "строка 2"
lines = []
with open(filename, 'r') as file:
for line in file:
if line.strip() != delete_string:
lines.append(line)
with open(filename, "w") as file:
file.writelines(lines)
Подписывайтесь на канал 👉@pythonofff
filename = "test.txt"
delete_string = "строка 2"
lines = []
with open(filename, 'r') as file:
for line in file:
if line.strip() != delete_string:
lines.append(line)
with open(filename, "w") as file:
file.writelines(lines)
Подписывайтесь на канал 👉@pythonofff
👍4
Простой веб-фреймворк
На сегодняшний день упрощенным вариантом веб-фреймворка WSGI для Python, является Bootle.
Это своего рода файловый модуль в единственном числе не имеющий сторонних библиотек, кроме стандартной Python.
Модуль Bootle вполне реализует себя в работах как с малыми, так и большими проектами, хотя его функционал состоит не из самых обширных возможностей: обработка форм, routing, POST-routing, сервер и cookies.
Для более точного рассмотрения результата, достаточно запустить данный модуль, прописать пять строк кода и перейти по адресной строке в браузере: localhost:5000/hello/world
Подписывайтесь на канал 👉@pythonofff
На сегодняшний день упрощенным вариантом веб-фреймворка WSGI для Python, является Bootle.
Это своего рода файловый модуль в единственном числе не имеющий сторонних библиотек, кроме стандартной Python.
Модуль Bootle вполне реализует себя в работах как с малыми, так и большими проектами, хотя его функционал состоит не из самых обширных возможностей: обработка форм, routing, POST-routing, сервер и cookies.
Для более точного рассмотрения результата, достаточно запустить данный модуль, прописать пять строк кода и перейти по адресной строке в браузере: localhost:5000/hello/world
Подписывайтесь на канал 👉@pythonofff
😐2❤1
Функции sleep() и time()
Чтобы понять смысл функции sleep(), разберём простой пример. Три строки выводятся в определённый промежуток времени – задержку обеспечивает sleep.
Сперва выводится первая строка, затем идёт функция sleep(), которая задерживает вывод на 2 секунды. Точно так же для следующего print мы используем sleep на 5 секунд.
Рассмотрим пример использования sleep() для создания промежутка времени. Мы используем функцию time(), чтобы узнать текущее время, и localtime(), чтобы получить текущие дату и время в конкретной местности. Кроме того, есть функция strftime() («string from time»), которая возвращает время в виде строки в указанном формате.
В результате интервал между двумя моментами времени составил две секунды.
Подписывайтесь на канал 👉@pythonofff
Чтобы понять смысл функции sleep(), разберём простой пример. Три строки выводятся в определённый промежуток времени – задержку обеспечивает sleep.
Сперва выводится первая строка, затем идёт функция sleep(), которая задерживает вывод на 2 секунды. Точно так же для следующего print мы используем sleep на 5 секунд.
Рассмотрим пример использования sleep() для создания промежутка времени. Мы используем функцию time(), чтобы узнать текущее время, и localtime(), чтобы получить текущие дату и время в конкретной местности. Кроме того, есть функция strftime() («string from time»), которая возвращает время в виде строки в указанном формате.
В результате интервал между двумя моментами времени составил две секунды.
Подписывайтесь на канал 👉@pythonofff
👍2
Встроенная функция float в Python
Если строка, которую надо конвертировать в число, не является целым числом, здесь поможет метод float.
Float также можно использовать для преобразования целых чисел в числа с плавающей запятой.
В Python 2 такое преобразование необходимо, но в Python 3 целочисленное деление больше не является чем-то особенным (если вы специально не используете оператор «//»). Поэтому больше не нужно использовать float для этой цели, теперь float(x)/y можно легко заменить на x/y.
Подписывайтесь на канал 👉@pythonofff
Если строка, которую надо конвертировать в число, не является целым числом, здесь поможет метод float.
Float также можно использовать для преобразования целых чисел в числа с плавающей запятой.
В Python 2 такое преобразование необходимо, но в Python 3 целочисленное деление больше не является чем-то особенным (если вы специально не используете оператор «//»). Поэтому больше не нужно использовать float для этой цели, теперь float(x)/y можно легко заменить на x/y.
Подписывайтесь на канал 👉@pythonofff
Как прочитать определенную строку в файле на Python?
Вы можете открыть файл и читать его построчно до тех пор пока не найдете нужную строку.
lineNeeded = 5
i = 1
f = open('test.txt')
for line in f:
if i == lineNeeded:
print(line)
break
i = i + 1
Подписывайтесь на канал 👉@pythonofff
Вы можете открыть файл и читать его построчно до тех пор пока не найдете нужную строку.
lineNeeded = 5
i = 1
f = open('test.txt')
for line in f:
if i == lineNeeded:
print(line)
break
i = i + 1
Подписывайтесь на канал 👉@pythonofff
👍1🤔1🤡1
Фильтры NEAREST, BILINEAR и BICUBIC в Pillow
Параметр resample можно использовать для указания определенного фильтра, который будет использоваться при поворачивании изображения.
• Image.NEAREST (ближайший сосед / по умолчанию);
• Image.BILINEAR;
• Image.BICUBIC.
С помощью фильтра Image.BICUBIC детали изображения станут более четким, чем в случае использования фильтра по умолчанию Image.NEAREST.
Небольшие различия есть, но у данной картинки они не очень видны. Но, например фильтр Image.BILINEAR сделал картинку более гладкой.
Подписывайтесь на канал 👉@pythonofff
Параметр resample можно использовать для указания определенного фильтра, который будет использоваться при поворачивании изображения.
• Image.NEAREST (ближайший сосед / по умолчанию);
• Image.BILINEAR;
• Image.BICUBIC.
С помощью фильтра Image.BICUBIC детали изображения станут более четким, чем в случае использования фильтра по умолчанию Image.NEAREST.
Небольшие различия есть, но у данной картинки они не очень видны. Но, например фильтр Image.BILINEAR сделал картинку более гладкой.
Подписывайтесь на канал 👉@pythonofff
👍3
Проверка прав доступа через декораторы
Распространенным шаблоном при работе с веб-приложениями является проверка есть ли у клиента разрешение на выполнение запрашиваемого действия. Проверки включают получение значения из заголовка HTTP запроса (токен) или из cookie браузера, для идентификации клиента. Затем, когда клиент распознан, используется специальный метод для определения допустимых прав доступа у данного клиента.
Поскольку фактическая проверка разрешений зависит от приложения, здесь будет показан общий пример, в котором просто дает разрешение на выполнение запроса на основе значения из HTTP заголовка.
Подписывайтесь на канал 👉@pythonofff
Распространенным шаблоном при работе с веб-приложениями является проверка есть ли у клиента разрешение на выполнение запрашиваемого действия. Проверки включают получение значения из заголовка HTTP запроса (токен) или из cookie браузера, для идентификации клиента. Затем, когда клиент распознан, используется специальный метод для определения допустимых прав доступа у данного клиента.
Поскольку фактическая проверка разрешений зависит от приложения, здесь будет показан общий пример, в котором просто дает разрешение на выполнение запроса на основе значения из HTTP заголовка.
Подписывайтесь на канал 👉@pythonofff
👍4
Подборка Telegram каналов для программистов
Системное администрирование 📌
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
https://t.me/tikon_1 Новости высоких технологий, науки и техники💡
https://t.me/mir_teh Мир технологий (Technology World)
https://t.me/rust_lib Полезный контент по программированию на Rust
https://t.me/golang_lib Библиотека Go (Golang) разработчика
https://t.me/itmozg Программисты, дизайнеры, новости из мира IT.
https://t.me/phis_mat Обучающие видео, книги по Физике и Математике
https://t.me/php_lib Библиотека PHP программиста 👨🏼💻👩💻
https://t.me/nodejs_lib Подборки по Node js и все что с ним связано
https://t.me/ruby_lib Библиотека Ruby программиста
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/sysadmin_rabota Системный Администратор
https://t.me/progjob Вакансии в IT
Чат программистов📌
https://t.me/developers_ru
Библиотеки 📌
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 Полезные советы по программированию
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 Канал по математике
Excel лайфхак📌
https://t.me/Excel_lifehack
Системное администрирование 📌
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
https://t.me/tikon_1 Новости высоких технологий, науки и техники💡
https://t.me/mir_teh Мир технологий (Technology World)
https://t.me/rust_lib Полезный контент по программированию на Rust
https://t.me/golang_lib Библиотека Go (Golang) разработчика
https://t.me/itmozg Программисты, дизайнеры, новости из мира IT.
https://t.me/phis_mat Обучающие видео, книги по Физике и Математике
https://t.me/php_lib Библиотека PHP программиста 👨🏼💻👩💻
https://t.me/nodejs_lib Подборки по Node js и все что с ним связано
https://t.me/ruby_lib Библиотека Ruby программиста
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/sysadmin_rabota Системный Администратор
https://t.me/progjob Вакансии в IT
Чат программистов📌
https://t.me/developers_ru
Библиотеки 📌
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 Полезные советы по программированию
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 Канал по математике
Excel лайфхак📌
https://t.me/Excel_lifehack
👍1