Математика без попсы: три бесплатных книги для тех, кто хочет настоящий фундамент
Три бесплатные книги Аллена Хатчера по математике
Если хочется нормального фундамента по топологии, K-theory и теории чисел, у Аллена Хатчера есть отличный бесплатный набор.
1. Algebraic Topology
Классический учебник по алгебраической топологии. Книга вышла в Cambridge University Press, но онлайн-версия доступна бесплатно по соглашению с издателем. На сайте есть полный PDF, главы отдельно, исправления и дополнительные упражнения.
https://pi.math.cornell.edu/~hatcher/AT/AT.pdf
Дополнительно: Spectral Sequences - отдельная расширенная глава к этой книге.
https://pi.math.cornell.edu/~hatcher/AT/ATch5.pdf
2. Vector Bundles & K-Theory
Короткая книга про векторные расслоения, топологическую K-теорию и характеристические классы. Сейчас онлайн выложено около 120 страниц: основы vector bundles, часть K-theory, Bott periodicity, characteristic classes и stable J-homomorphism.
https://pi.math.cornell.edu/~hatcher/VBKT/VB.pdf
3. Topology of Numbers
Необычное введение в теорию чисел через геометрию и картинки. Много внимания уделено квадратичным формам, диаграмме Фарея, цепным дробям, уравнению Пелля, quadratic reciprocity и topograph Конвея. PDF примерно на 350 страниц доступен бесплатно.
https://pi.math.cornell.edu/~hatcher/TN/TNbook.pdf
Три бесплатные книги Аллена Хатчера по математике
Если хочется нормального фундамента по топологии, K-theory и теории чисел, у Аллена Хатчера есть отличный бесплатный набор.
1. Algebraic Topology
Классический учебник по алгебраической топологии. Книга вышла в Cambridge University Press, но онлайн-версия доступна бесплатно по соглашению с издателем. На сайте есть полный PDF, главы отдельно, исправления и дополнительные упражнения.
https://pi.math.cornell.edu/~hatcher/AT/AT.pdf
Дополнительно: Spectral Sequences - отдельная расширенная глава к этой книге.
https://pi.math.cornell.edu/~hatcher/AT/ATch5.pdf
2. Vector Bundles & K-Theory
Короткая книга про векторные расслоения, топологическую K-теорию и характеристические классы. Сейчас онлайн выложено около 120 страниц: основы vector bundles, часть K-theory, Bott periodicity, characteristic classes и stable J-homomorphism.
https://pi.math.cornell.edu/~hatcher/VBKT/VB.pdf
3. Topology of Numbers
Необычное введение в теорию чисел через геометрию и картинки. Много внимания уделено квадратичным формам, диаграмме Фарея, цепным дробям, уравнению Пелля, quadratic reciprocity и topograph Конвея. PDF примерно на 350 страниц доступен бесплатно.
https://pi.math.cornell.edu/~hatcher/TN/TNbook.pdf
🔥 Хочешь быстрее расти в IT? Хватит учиться в одиночку
В IT прокачивается тот, кто каждый день видит сильные идеи, новые инструменты, реальные задачи, вакансии и разборы.
Окружение решает больше, чем кажется.
Собрал папки и каналы, где можно быстрее влиться в нужное направление, следить за трендами и не вариться в своём пузыре.
AI: t.me/ai_machinelearning_big_data
Python: t.me/pythonl
Linux: t.me/linuxacademiya
Хакинг: t.me/linuxkalii
DevOps: t.me/DevOPSitsec
Docker: t.me/DevopsDocker
Golang: t.me/Golang_google
Rust: t.me/rust_code
C++: t.me/cpluspluc
C#: t.me/csharp_1001_notes
Java: t.me/java_library
JavaScript: t.me/javascriptv
React: t.me/react_tg
Frontend: t.me/front
PHP: t.me/phpshka
Android: t.me/android_its
Мобильная разработка: t.me/mobdevelop
Базы данных: t.me/sqlhub
Data Science: t.me/data_analysis_ml
Big Data: t.me/bigdatai
Математика: t.me/data_math
Физика: t.me/fizmat
Kubernetes: t.me/kubernetc
GameDev: https://t.me/gamedev
Haskell: t.me/haskell_tg
Собеседования и карьера:
DS собеседования: t.me/machinelearning_interview
Python собеседования: t.me/python_job_interview
Папка с вакансиями: t.me/addlist/_zyy_jQ_QUsyM2Vi
Папка Go разработчика: t.me/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: t.me/addlist/eEPya-HF6mkxMGIy
Папка ML: https://t.me/addlist/2Ls-snqEeytkMDgy
Папка Frontend: https://t.me/addlist/mzMMG3RPZhY2M2Iy
Полезное сверху:
ИТ-мемы: t.me/memes_prog
Английский для программистов: t.me/english_forprogrammers
ИИ и технологии: t.me/vistehno
954 ГБ open-source курсов: @courses
ИТ-книги бесплатно: https://t.me/addlist/BkskQciUW_FhNjEy
Max Ai: https://max.ru/ai_machinelearning_big_data
Max python: https://max.ru/pythonl
ТЕХНО: https://max.ru/vistehno
Max Go: https://max.ru/Golang_google
Max Linux: https://max.ru/linuxkalii
Devops: https://max.ru/DevOPSitsec
C#: https://max.ru/csharp_ci
C++: https://max.ru/cpluspluc
SQL: https://max.ru/sqlhub
Java: https://max.ru/javatg
Подписывайся на нужные направления и собирай себе ленту, которая реально двигает вперёд.
Пока кто-то листает шум, ты будешь видеть инструменты, задачи и идеи, которые помогают расти в профессии.
В IT прокачивается тот, кто каждый день видит сильные идеи, новые инструменты, реальные задачи, вакансии и разборы.
Окружение решает больше, чем кажется.
Собрал папки и каналы, где можно быстрее влиться в нужное направление, следить за трендами и не вариться в своём пузыре.
AI: t.me/ai_machinelearning_big_data
Python: t.me/pythonl
Linux: t.me/linuxacademiya
Хакинг: t.me/linuxkalii
DevOps: t.me/DevOPSitsec
Docker: t.me/DevopsDocker
Golang: t.me/Golang_google
Rust: t.me/rust_code
C++: t.me/cpluspluc
C#: t.me/csharp_1001_notes
Java: t.me/java_library
JavaScript: t.me/javascriptv
React: t.me/react_tg
Frontend: t.me/front
PHP: t.me/phpshka
Android: t.me/android_its
Мобильная разработка: t.me/mobdevelop
Базы данных: t.me/sqlhub
Data Science: t.me/data_analysis_ml
Big Data: t.me/bigdatai
Математика: t.me/data_math
Физика: t.me/fizmat
Kubernetes: t.me/kubernetc
GameDev: https://t.me/gamedev
Haskell: t.me/haskell_tg
Собеседования и карьера:
DS собеседования: t.me/machinelearning_interview
Python собеседования: t.me/python_job_interview
Папка с вакансиями: t.me/addlist/_zyy_jQ_QUsyM2Vi
Папка Go разработчика: t.me/addlist/MUtJEeJSxeY2YTFi
Папка Python разработчика: t.me/addlist/eEPya-HF6mkxMGIy
Папка ML: https://t.me/addlist/2Ls-snqEeytkMDgy
Папка Frontend: https://t.me/addlist/mzMMG3RPZhY2M2Iy
Полезное сверху:
ИТ-мемы: t.me/memes_prog
Английский для программистов: t.me/english_forprogrammers
ИИ и технологии: t.me/vistehno
954 ГБ open-source курсов: @courses
ИТ-книги бесплатно: https://t.me/addlist/BkskQciUW_FhNjEy
Max Ai: https://max.ru/ai_machinelearning_big_data
Max python: https://max.ru/pythonl
ТЕХНО: https://max.ru/vistehno
Max Go: https://max.ru/Golang_google
Max Linux: https://max.ru/linuxkalii
Devops: https://max.ru/DevOPSitsec
C#: https://max.ru/csharp_ci
C++: https://max.ru/cpluspluc
SQL: https://max.ru/sqlhub
Java: https://max.ru/javatg
Подписывайся на нужные направления и собирай себе ленту, которая реально двигает вперёд.
Пока кто-то листает шум, ты будешь видеть инструменты, задачи и идеи, которые помогают расти в профессии.
700+ страниц алгебры, после которых слово “абстрактная” перестаёт пугать
Есть бесплатная PDF-версия Basic Algebra Энтони Кнаппа — большой учебник для сильных студентов старших курсов и первого года магистратуры. Digital Second Edition доступна для личного образовательного использования.
Внутри почти весь фундамент современной алгебры:
* целые числа, многочлены, матрицы
* векторные и евклидовы пространства
* группы и действия групп
* линейные операторы и жорданова форма
* тензоры и внешняя алгебра
* кольца, модули, поля
* теория Галуа
* категории и функторы
Особенно ценно, что это не «конспект на 100 страниц», а полноценный маршрут: от конкретных вычислительных примеров к общей теории. Сам Кнапп пишет, что читателям нравились именно широта книги, раннее введение линейной алгебры и большое количество задач.
Для новичка без опыта доказательств будет тяжеловато. Но если уже умеешь читать строгую математику и хочешь собрать мощную базу по алгебре — это прям серьёзная находка.
PDF: https://math.stonybrook.edu/~aknapp/download/b2-alg-coverandinside.pdf
Есть бесплатная PDF-версия Basic Algebra Энтони Кнаппа — большой учебник для сильных студентов старших курсов и первого года магистратуры. Digital Second Edition доступна для личного образовательного использования.
Внутри почти весь фундамент современной алгебры:
* целые числа, многочлены, матрицы
* векторные и евклидовы пространства
* группы и действия групп
* линейные операторы и жорданова форма
* тензоры и внешняя алгебра
* кольца, модули, поля
* теория Галуа
* категории и функторы
Особенно ценно, что это не «конспект на 100 страниц», а полноценный маршрут: от конкретных вычислительных примеров к общей теории. Сам Кнапп пишет, что читателям нравились именно широта книги, раннее введение линейной алгебры и большое количество задач.
Для новичка без опыта доказательств будет тяжеловато. Но если уже умеешь читать строгую математику и хочешь собрать мощную базу по алгебре — это прям серьёзная находка.
PDF: https://math.stonybrook.edu/~aknapp/download/b2-alg-coverandinside.pdf
Бесплатный учебник по геометрии на целый университетский курс 📐
Euclidean Plane and its Relatives Антона Петрунина, профессора Penn State, можно легально скачать бесплатно. Книга рассчитана примерно на один семестр и строит геометрию строго через определения, аксиомы и доказательства.
Внутри:
евклидова геометрия: треугольники, подобие, параллельность;
инверсивная геометрия;
гиперболическая и нейтральная геометрия;
аффинная, проективная и сферическая геометрии;
комплексные координаты, построения и площади.
Автор специально сделал книгу минималистичной и достаточно строгой, предполагая, что читатель уже знаком с матанализом, вещественными числами и непрерывностью. Учебник распространяется по лицензии CC BY-SA.
Скачать книгу бесплатно: https://arxiv.org/pdf/1302.1630v19
Euclidean Plane and its Relatives Антона Петрунина, профессора Penn State, можно легально скачать бесплатно. Книга рассчитана примерно на один семестр и строит геометрию строго через определения, аксиомы и доказательства.
Внутри:
евклидова геометрия: треугольники, подобие, параллельность;
инверсивная геометрия;
гиперболическая и нейтральная геометрия;
аффинная, проективная и сферическая геометрии;
комплексные координаты, построения и площади.
Автор специально сделал книгу минималистичной и достаточно строгой, предполагая, что читатель уже знаком с матанализом, вещественными числами и непрерывностью. Учебник распространяется по лицензии CC BY-SA.
Скачать книгу бесплатно: https://arxiv.org/pdf/1302.1630v19
One Day Offer: заходи в команду, которая двигает финансы на терабайтах данных! 🔥
На связи блок «Финансы» в Сбере! Мы строим системы, которые автоматизируют казначейство, риск‑менеджмент, отчётность — и добавляем AI для точных прогнозов.
На One Day Offer мы хотим найти коллег сразу в 3 продуктовые команды. Базовый стек и уровень задач одинаковы — выбирай направление по душе:
✔️ BigData: Spark (batch+streaming), сложные SQL‑оптимизации, DWH/Data Lake.
✔️ Микросервисы: Python (FastAPI/Django), API, интеграции с системами.
От тебя ждём: Python от 5 лет, экспертный SQL, PySpark, SOLID/asyncio, HDFS/Kafka.
👉 Регистрируйся по ссылке. Встречаемся 8 августа!
На связи блок «Финансы» в Сбере! Мы строим системы, которые автоматизируют казначейство, риск‑менеджмент, отчётность — и добавляем AI для точных прогнозов.
На One Day Offer мы хотим найти коллег сразу в 3 продуктовые команды. Базовый стек и уровень задач одинаковы — выбирай направление по душе:
✔️ BigData: Spark (batch+streaming), сложные SQL‑оптимизации, DWH/Data Lake.
✔️ Микросервисы: Python (FastAPI/Django), API, интеграции с системами.
От тебя ждём: Python от 5 лет, экспертный SQL, PySpark, SOLID/asyncio, HDFS/Kafka.
👉 Регистрируйся по ссылке. Встречаемся 8 августа!
interlock: Circuit Breaker That Trips on Failure Rate and Latency
https://github.com/bagowix/interlock
https://github.com/bagowix/interlock
One Day Offer для Python-разработчиков!💚
15 августа открываем двери в команду Agent Execution Framework ⚡️
Коллеги создают платформу для GenAI‑агентов в банке — делают так, чтобы ИИ реально работал в серьёзных финпроцессах: с безопасностью, нагрузкой и пользой.
Чем предстоит заниматься:
✔️ развивать backend на Python
✔️ подключать LLM, инструменты, базы знаний и RAG
✔️ строить пайплайны оценки качества агентов
✔️ участвовать в архитектуре и ревью кода
Встречаемся 15 августа онлайн.
Регистрируйся по ссылке
15 августа открываем двери в команду Agent Execution Framework ⚡️
Коллеги создают платформу для GenAI‑агентов в банке — делают так, чтобы ИИ реально работал в серьёзных финпроцессах: с безопасностью, нагрузкой и пользой.
Чем предстоит заниматься:
✔️ развивать backend на Python
✔️ подключать LLM, инструменты, базы знаний и RAG
✔️ строить пайплайны оценки качества агентов
✔️ участвовать в архитектуре и ревью кода
Встречаемся 15 августа онлайн.
Регистрируйся по ссылке
Бесплатный учебник по математике — 850 страниц.
«The Rising Sea: Foundations of Algebraic Geometry» Рави Вакила.
Книга предлагает подробное введение в алгебраическую геометрию и множество упражнений, позволяющих учиться на практике.
Требуется минимум предварительных знаний: необходимые инструменты вводятся по ходу материала — от теории категорий и пучков до коммутативной и гомологической алгебры.
Подход построен на примерах и помогает развить математическую интуицию.
Самодостаточный учебник для студентов магистратуры и аспирантуры, а также важный справочник для исследователей.
Link: https://math.stanford.edu/~vakil/216blog/
«The Rising Sea: Foundations of Algebraic Geometry» Рави Вакила.
Книга предлагает подробное введение в алгебраическую геометрию и множество упражнений, позволяющих учиться на практике.
Требуется минимум предварительных знаний: необходимые инструменты вводятся по ходу материала — от теории категорий и пучков до коммутативной и гомологической алгебры.
Подход построен на примерах и помогает развить математическую интуицию.
Самодостаточный учебник для студентов магистратуры и аспирантуры, а также важный справочник для исследователей.
Link: https://math.stanford.edu/~vakil/216blog/
🔴 Завтра тестовое собеседование на Middle Python с разработчиком из Авито
Уже завтра вечером в 19:00 по мск приходи онлайн на открытое собеседование, чтобы посмотреть на настоящее интервью на Middle Python-разработчика.
Как это будет:
📂 Даня, старший разработчик в Авито, будет задавать реальные вопросы и задачи разработчику-добровольцу
📂 Даня будет комментировать каждый ответ респондента, чтобы дать понять чего от вас ожидает собеседующий на интервью
📂 В конце можно будет задать любой вопрос Дане
Это бесплатно. Эфир проходит в рамках менторской программы от ШОРТКАТ для Python-разработчиков, которые хотят повысить свой грейд, ЗП и прокачать скиллы.
Переходи в нашего бота, чтобы получить ссылку на эфир → @shortcut_py_bot
Реклама.
О рекламодателе.
Уже завтра вечером в 19:00 по мск приходи онлайн на открытое собеседование, чтобы посмотреть на настоящее интервью на Middle Python-разработчика.
Как это будет:
📂 Даня, старший разработчик в Авито, будет задавать реальные вопросы и задачи разработчику-добровольцу
📂 Даня будет комментировать каждый ответ респондента, чтобы дать понять чего от вас ожидает собеседующий на интервью
📂 В конце можно будет задать любой вопрос Дане
Это бесплатно. Эфир проходит в рамках менторской программы от ШОРТКАТ для Python-разработчиков, которые хотят повысить свой грейд, ЗП и прокачать скиллы.
Переходи в нашего бота, чтобы получить ссылку на эфир → @shortcut_py_bot
Реклама.
О рекламодателе.
🐍 Как правильно запускать внешние команды из Python
Для большинства задач не нужны
Что здесь происходит:
-
-
-
-
Ошибки лучше обрабатывать явно:
Передавайте команду списком аргументов.
Подробнее:
https://pythonmorsels.com/running-subprocesses-in-python/
Для большинства задач не нужны
os.system() или низкоуровневый Popen. Достаточно subprocess.run() - он запускает программу, передаёт аргументы, возвращает код завершения и позволяет получить вывод.
import subprocess
result = subprocess.run(
["git", "status", "--short"],
capture_output=True,
text=True,
check=True,
timeout=10,
)
print(result.stdout)
Что здесь происходит:
-
capture_output=True сохраняет stdout и stderr-
text=True возвращает строки вместо bytes-
check=True выбрасывает CalledProcessError, если команда завершилась с ошибкой-
timeout=10 не позволяет процессу зависнуть навсегдаОшибки лучше обрабатывать явно:
import subprocess
try:
result = subprocess.run(
["git", "status", "--short"],
capture_output=True,
text=True,
check=True,
timeout=10,
)
except subprocess.TimeoutExpired:
print("Команда выполнялась слишком долго")
except subprocess.CalledProcessError as error:
print(error.stderr)
else:
print(result.stdout)
Передавайте команду списком аргументов.
shell=True нужен редко и может создать уязвимость к внедрению команд, особенно если строка содержит пользовательские данные.subprocess.run() - простой и надёжный мост между Python и системными утилитами, Git, компиляторами, CLI-инструментами и другими программами.Подробнее:
https://pythonmorsels.com/running-subprocesses-in-python/
Лето, ИТ-Пикник и музыка известных артистов уже через несколько дней!
8 августа в Коломенском пройдет ИТ-Пикник.
В программе — выступления проекта LAB Антона Беляева, IOWA, Cream Soda, Pompeya, мартина и Совы.
А днем — научпоп-лекции, дискуссии об ИИ и больших языковых моделях, мастер-классы и интерактивы. Полезные знакомства и развлечения тоже будут.
Зарегистрироваться и узнать подробности можно на сайте мероприятия.
В билет входит +1 — можно позвать близких и друзей.
До встречи в месте притяжения ИТ.
8 августа в Коломенском пройдет ИТ-Пикник.
В программе — выступления проекта LAB Антона Беляева, IOWA, Cream Soda, Pompeya, мартина и Совы.
А днем — научпоп-лекции, дискуссии об ИИ и больших языковых моделях, мастер-классы и интерактивы. Полезные знакомства и развлечения тоже будут.
Зарегистрироваться и узнать подробности можно на сайте мероприятия.
В билет входит +1 — можно позвать близких и друзей.
До встречи в месте притяжения ИТ.
🐍 Free-threaded Python убрал GIL, но NumPy всё равно упирался во внутренние блокировки
Казалось бы, Python 3.13+ без GIL должен позволить нескольким потокам одновременно выполнять численные операции.
Но на практике параллельные
В NumPy 2.5 разработчики устранили несколько ключевых узких мест:
- таблицу диспетчеризации
- часть общих служебных объектов сделали «бессмертными», снизив конкуренцию при подсчёте ссылок;
- выделение памяти перевели на
Теперь независимые операции можно масштабировать обычными потоками:
Главное преимущество перед
Потоки работают в одном адресном пространстве, поэтому могут эффективнее использовать многоядерный CPU и общую память.
Но есть важная оговорка:
free-threaded не означает автоматически thread-safe.
Одновременное изменение одного
Безопаснее использовать:
- отдельный массив для каждого worker;
- общий массив только для чтения;
- явную синхронизацию при записи.
Удалить GIL оказалось недостаточно. Чтобы Python действительно масштабировался по ядрам, пришлось перепроектировать и внутренности NumPy.
Подробнее:
https://labs.quansight.org/blog/scaling-numpy-on-free-threaded-python
Казалось бы, Python 3.13+ без GIL должен позволить нескольким потокам одновременно выполнять численные операции.
Но на практике параллельные
ufunc начинали конкурировать за внутренние структуры NumPy, счётчики ссылок и выделение памяти.В NumPy 2.5 разработчики устранили несколько ключевых узких мест:
- таблицу диспетчеризации
ufunc заменили на lock-free concurrent hash map;- часть общих служебных объектов сделали «бессмертными», снизив конкуренцию при подсчёте ссылок;
- выделение памяти перевели на
PyMem_RawMalloc и PyMem_RawFree.Теперь независимые операции можно масштабировать обычными потоками:
from concurrent.futures import ThreadPoolExecutor
import numpy as np
arrays = [
np.random.rand(5_000_000)
for _ in range(8)
]
with ThreadPoolExecutor(max_workers=8) as pool:
results = list(pool.map(np.sin, arrays))
Главное преимущество перед
multiprocessing - массивы не нужно сериализовать и копировать между процессами.Потоки работают в одном адресном пространстве, поэтому могут эффективнее использовать многоядерный CPU и общую память.
Но есть важная оговорка:
free-threaded не означает автоматически thread-safe.
Одновременное изменение одного
ndarray из нескольких потоков всё ещё может привести к гонкам, повреждённым данным и падению интерпретатора.Безопаснее использовать:
- отдельный массив для каждого worker;
- общий массив только для чтения;
- явную синхронизацию при записи.
Удалить GIL оказалось недостаточно. Чтобы Python действительно масштабировался по ядрам, пришлось перепроектировать и внутренности NumPy.
Подробнее:
https://labs.quansight.org/blog/scaling-numpy-on-free-threaded-python