# BAaC (Books, articles and courses)
Книги, статьи и курсы которые я использовал или буду использовать для самообучения. Напомню что самообучение сугубо личное дело и в данной заметке собраны самые годные (по моему субъективному мнению) образцы. Заметка активно дополняется.
###### tags: `Useful stuff`
---
:::spoiler Содержание
[TOC]
:::
## Books :book:
### Python :snake:
1) Марк Лутц - Изучаем Python
> Пожалуй самая лучшая книга чтобы начать знакомство c Python. Очень много полезной информации для начинающего, или уже имеющего опыт программиста. Включает в себя ведомости о внутреннем устройстве Python, все основные типы данных и методы работы с ними, синтаксические особенности языка.
==КРАЙНЕ РЕКОМЕНДУЮ К ПРОЧТЕНИЮ==
2) Марк Лутц - Программирование на Python (1, 2 томы)
> Весьма информативные книги, но советую читать избирательно, т.к. очень много вспомогательной информации, не всегда необходимой на практике.
3) Романьо Лучано - Python к вершинам мастерства (Fluent Python) **
> Advanced уровень изучения Python. Очень много продвинутой информации по языку. НО! Очень важно до этого изучить хотя бы одну из предыдущих книг.
4) Марьяно Анная - Clean Code in Python
> Кратко но очень доступно (с весьма хорошими примерами), рассказывается о правиах хорошего кодинга на Python.
#### Математика с реализацией на Python
1) Адитья Бхаргава - Грокаем алгоритмы(Серия "грокаем" в целом)
> Книга в которой с азов обьясняется теория алгоритмов с примерами на Python и иллюстрациями. Затронуты темы стандартных алгоритмов(сортировки, бинарный поиск), графов, сложных структур данных. Также в конце книги вскользь упоминаются некоторые алгоритмы МО.
...
### Математика :heavy_division_sign:
1) Александр Киркинский - Линейная алгебра/Мат. анализ
> Очень хорошие пособия для повторения забытого материала
2) Тарас Панов - Линейная алгебра и геометрия
> ...
3) Евгений Тыртышников - Матричный анализ и линейная алгебра **
> ...
4) Григорий Михайлович Фихтенгольц - Курс дифференциального и интегрального исчисления ( в 3 томах )
> Пожалуй лучший курс по мат. анализу. Очень помагает в дальнейшем.
5) Дональд Кнут, Роналд Грэхем и Орен Паташник - Конкретная математика
> Собственно незыблемая классика которую стоит знать.
6) Владимир Гмурман - Теория вероятностей и математическая статистика
> Прекрасное введение в теорвер и статистику
7) Уильям Феллер - Введение в теорию вероятностей и её приложения(1, 2 томы)**
> Продвинутый и более сложный учебник по теорверу нежеди у Гмурмана
8) Род Хаггарти - Дискретная математика для программистов
> Хорошая книга для программистов и обычных людей, интересующихся дискретной математикой.
9) Владимир Савельев - Статистика и котики :smile_cat:
> Исходя из названия очень фановое и тем не менее полезное пособие, годиться чтобы быстро вспомнить статистику
10) Фоменко А.Т., Фукс Д.Б. - Курс гомотопической топологии
> ...
11) Don S. Lemons - A Student's Guide to Entropy
12) James V Stone - Imformation Theory A Tutorial Introduction
### ML, DL :zero::one:
1) Орельен Жерон - Прикладное машинное обучение с помощью Scikit-Learn и TensorFlow 2
> Прекрасная во всех смыслах книга с введением в классику МО, недавно вышло второе издание
2) Питер Брюс, Эндрю Брюс - Практическая статистика для специалистов Data Science
> Книга "от практиков, теоретикам". Недостатком является то, что весь код на R. Тем не менее не возникает проблем переписать его на Python.
:::info
Недавно вышло второе издание с примерами на Python.
:::
3) Джек Вандер Плас - Python для сложных задач. Наука о данных и машинное обучение
> Пособие для желающих вспомнить/выучить как работать с NumPy, matplotlib, Pandas
4) Иен Гудфеллоу, Джошуа Бенджио, Аарон Курвиль - Глубокое обучение(Предпочтительно читать в оригинале)
> Сильнейшая книга по глубокому обучению. Не слишком сложно подан материал, читать интересно, классика.
5) Тревор Хасти, Роберт Тибширани, Жером Фридман - Основы статистического обучения (The Elements of Statistical Learning)
> ...
6) Роб Хиндман, Джордж Атаносаполус - [Forecasting: Principles and Practice](https://otexts.com/fpp2/index.html)
> ...
### Linux/UNIX
1) Андрей Столяров - Программирование. Введение в профессию
> Хорошие книги для тех кто вообще ничего не знает про UNIX системы, основные Я.П. и компьютерные сети.
2) Уильям Шоттс - Коммандная строка Linux
> Advanced Linux пособие, так сказать
3) Сричаран Вадапалли - Hands-on DevOps
> Полезные знания для деплоя моделей
4) Арнольд Роббинс - Bash Карманный Справочник
> Основы Bash
### Вспомогательные материалы
1) Сергей Львовский - Набор и верстка в пакете Latex
> Хорошая книга по Latex(совет опытного человека)
:::info
Вот ещё очень удобный ресурс и вроде как неплохие туторы ++[источник](https://www.overleaf.com/learn/latex/Articles/The_TeX_family_tree:_LaTeX,_pdfTeX,_XeTeX,_LuaTeX_and_ConTeXt)++
:::
### Годнота :+1:
1) Макс Тегмарк - Life 3.0
> Автор высказывает свои опасения в связи с появление в жизни человека искусственного интеллекта.
2) Филип Дик - Мечтают ли андроиды об электроовцах?
> Классический вопрос, так ли сильно андроиды отличаются от людей?
3) Уильям Паундстоун - Достаточно ли вы умны, чтобы работать в Google?
> Книга которая представляет собой некий сборник вопросов с собеседований в топовых компаниях мира сего и ответами на них. Также присутствует повествовательная часть с разными историями от реальных людей.
## Courses :computer:
### ML, DL
1) [Основы статистики](https://stepik.org/course/76)
> Курс состоящий из 3х частей, отличный по всем параметрам за исключнеием примеров кода на R (что на самом деле не так уж и плохо)
2) [Нейронные сети и компьютерное зрение](https://stepik.org/course/50352)
> Весьма недурное введение в DL
3) [Нейронные сети и обработка текста](https://stepik.org/course/54098)
> От создателей предыдущего курса. Также весьма хорош, особенно радует введение в NLP
4) [Andrew Ng - Машинное обучение](https://ru.coursera.org/learn/machine-learning)
> Это классика, это знать нужно
5) [Andrew Ng - Deep Learning Specialization](https://www.coursera.org/specializations/deep-learning?)
> Божественный курс по глубокому обучению
7) [Data Visualization with Python](https://ru.coursera.org/learn/python-for-data-visualization)
> Курс от IBM по визуализации данных в Python
8) [Interactive Python Dashboards with Plotly and Dash](https://www.udemy.com/course/interactive-python-dashboards-with-plotly-and-dash/?utm_source=adwords&utm_medium=udemyads&utm_campaign=Python_v.PROF_la.EN_cc.ROW_ti.7380&utm_content=deal4584&utm_term=_._ag_85724077624_._ad_386274912907_._kw__._de_c_._dm__._pl__._ti_dsa-774930046209_._li_1012866_._pd__._&matchtype=b&gclid=CjwKCAiAhc7yBRAdEiwAplGxXzNLXg9FMd3QmrYRM5zx4oKv1h5kG3DQ1axlA54xjGqF5-3Qgywn7BoCB6EQAvD_BwE)
> Непонятно почему дорогой, но очень годный курс по "последнему слову" в визуализации данных. Либа очень годная, не раз использовал. Активно развивается и обрастает фичами.
~~P.S. Запираченую полную версию курса можно скачать [тут](https://mega.nz/#F!jjwQ3KYD!a2wgwmvQpkoHeB8nQVc_Sg):smile:~~
### Useful
1) [RegExp](https://regexone.com/lesson/misc_meta_characters?)
## Articles :notebook:
### Python
1) [Как работает память в Python](https://habr.com/ru/company/domclick/blog/530804/)**
2) [How to Use Generators and yield in Python](https://realpython.com/introduction-to-python-generators/)
3) [10 tricks for a better Google Colab experience](https://towardsdatascience.com/10-tips-for-a-better-google-colab-experience-33f8fe721b82)
4) [Faster Lists In Python](https://levelup.gitconnected.com/faster-lists-in-python-4c4287502f0a)
5) [How Python Manages Memory](https://realpython.com/courses/how-python-manages-memory/)
6) [PyPy: Faster Python With Minimal Effort](https://realpython.com/pypy-faster-python/)
7) [Don’t Use Recursion In Python Any More](https://link.medium.com/hphArUFYEbb)
### Статистика
1) [Violin plots explained](https://towardsdatascience.com/violin-plots-explained-fb1d115e023d)
2) [p-value](http://datascientist.one/p-value/)
3) [Q Q plot explained](https://www.statisticshowto.datasciencecentral.com/q-q-plots/)
4) [Covariance and Correlation](https://towardsdatascience.com/let-us-understand-the-correlation-matrix-and-covariance-matrix-d42e6b643c22)
5) [A Gentle Introduction to Information Entropy](https://machinelearningmastery.com/what-is-information-entropy/)
6) [Мой конспект по статистике (активно дополняется)](https://hackmd.io/@gUKZpjtcSMKgth4GCV58Pg/r1LlST-3r)
### ML
1) [Preprocessing with sklearn](https://towardsdatascience.com/preprocessing-with-sklearn-a-complete-and-comprehensive-guide-670cb98fcfb9)
2) [A Gentle Introduction to Cross-Entropy for Machine Learning](https://machinelearningmastery.com/cross-entropy-for-machine-learning/)
3) [A Conceptual Explanation of Bayesian Hyperparameter Optimization for Machine Learning](https://towardsdatascience.com/a-conceptual-explanation-of-bayesian-model-based-hyperparameter-optimization-for-machine-learning-b8172278050f)**
4) [Hyper-parameter optimization algorithms: a short review](https://medium.com/criteo-labs/hyper-parameter-optimization-algorithms-2fe447525903)
5) [Using Optuna to Optimize TensorFlow Hyperparameters](https://medium.com/optuna/using-optuna-to-optimize-tensorflow-hyperparameters-57b6d4d316a2)
6) [Optuna vs Hyperopt](https://towardsdatascience.com/optuna-vs-hyperopt-which-hyperparameter-optimization-library-should-you-choose-ed8564618151)
7) [Understanding 8 types of Cross-Validation](https://towardsdatascience.com/understanding-8-types-of-cross-validation-80c935a4976d)
### DL
1) [7 Types of Neural Network Activation Functions](https://missinglink.ai/guides/neural-network-concepts/7-types-neural-network-activation-functions-right/)
2) [First contact with TensorFlow Estimator](https://towardsdatascience.com/first-contact-with-tensorflow-estimator-69a5e072998d)
### NLP
1) [Understanding LSTM Networks](https://colah.github.io/posts/2015-08-Understanding-LSTMs/)
2) [Illustrated Guide to LSTM’s and GRU’s: A step by step explanation](https://towardsdatascience.com/illustrated-guide-to-lstms-and-gru-s-a-step-by-step-explanation-44e9eb85bf21)
3) [Understanding LSTM and its diagrams](https://medium.com/mlreview/understanding-lstm-and-its-diagrams-37e2f46f1714)
4) [Intuition Behind Transformers Architecture in NLP](https://towardsdatascience.com/intuition-behind-transformers-architecture-nlp-c2ac36174047)
5) [Attention Is All You Need](https://arxiv.org/abs/1706.03762)
6) [The Illustrated Transformer](http://jalammar.github.io/illustrated-transformer/)
7) [The Positional Encoding](https://kazemnejad.com/blog/transformer_architecture_positional_encoding/)
8) [Compressive Transformer vs LSTM](https://medium.com/ml2b/introduction-to-compressive-transform-53acb767361e)
9) [Attention Mechanism](https://blog.floydhub.com/attention-mechanism/)
10) [Introduction of Self-Attention Layer in Transformer](https://medium.com/lsc-psd/introduction-of-self-attention-layer-in-transformer-fc7bff63f3bc)
11) [Illustrated: Self-Attention](https://towardsdatascience.com/illustrated-self-attention-2d627e33b20a)
### Полезные материалы
1) [Sphinx-RTD-Tutorial](https://sphinx-rtd-tutorial.readthedocs.io/en/latest/index.html)
2) [Documentation autogeneration using sphinx](https://hackmd.io/lwTsFNSdQ7mbgigLe_Yb_Q?view)
3) [Software Licenses in Plain English](https://tldrlegal.com/)
4) [Load Average в Linux: разгадка тайны](https://habr.com/ru/company/mailru/blog/335326/)
5) [Makefile Tutorials](https://makefiletutorial.com/#getting-started)
### Асинхронное программирование
1) [Understanding CPU and I/O bound for asynchronous operations](https://www.hellsoft.se/understanding-cpu-and-i-o-bound-for-asynchronous-operations/)
2) [Python Concurrency: Making sense of asyncio](https://www.educative.io/blog/python-concurrency-making-sense-of-asyncio)
3) [Async IO in Python: A Complete Walkthrough](https://realpython.com/async-io-python/)
4) [Coroutine in Python](https://www.geeksforgeeks.org/coroutine-in-python/#:~:text=Coroutines%20work%20cooperatively%20multi%20task,at%20set%20points%20by%20programmer.&text=In%20Python%2C%20coroutines%20are%20similar,coroutines%20can%20also%20consume%20data.)
5) [How are coroutines implemented?](https://discuss.python.org/t/how-are-coroutines-implemented/1106/4)
*[**]: Продвинутый уровень