Книги по программированию обычно бывают 2-х типов. Или это фундаментальный труд, где прописаны тысячи нюансов. Или это самоучитель в стиле, делай раз, делай два, делай три. Алготрейдерам же нужен ответ  на вопрос: Как это сделать? В идеале, вопрос должен трансформироваться в: Что я хочу? К сожалению, фундаментальные книги и самоучители не ответят на эти вопросы. Потому я просмотрел очень много книг по языку Python, чтобы понять, какие из них порекомендовать вам. И я такую книгу нашел.

Книга называется «Думать на языке Python» от Allen Downey. Эта книга проста по структуре и понятна по содержанию. Но прежде, чем я расскажу об особенностях книги, вот как ее получить.

Автор выложил книгу бесплатно на странице издательства здесь. Скачать оригинальную версию на английском языке в формате PDF можно отсюда. Я настоятельно рекомендую читать книги на языке оригинала. Но если у вас проблемы с английским языком, то русский перевод можете взять здесь. На всякий случай оставлю ссылку на исходники русского перевода книги. В репозитории GitHub есть код из книги и примеры решений задач.

Теперь, когда все необходимые материалы у вас под рукой, переходим к книге.

По структуре книга является учебником, который вас проведет с нуля до понимания сути языка Python. В каждой главе вы шаг за шагом будете не только изучать теорию, но и учиться на понятных примерах.

В каждой главе обстоятельно рассмотрена отладка. В довольно простой форме выдаются схемы отладки, которые используют профессиональные программисты. В следующий раз, когда в вашей торговой системе или индикаторе будет работать что-то не так, вы будете знать что делать.

Для закрепления материала в каждой главе есть упражнения для самостоятельного выполнения. Хотя в репозитории есть примеры решений задач, рекомендую сначала сделать свое решение, проверить его работоспособность, и только потом сверяться с ответом. Лично у меня часть задач была сделана не только другими способами, но и выполнялась гораздо быстрее.

Еще очень хорошей особенностью книги являются определения. Они вводятся именно тогда, когда нужны. Они лаконичны. Даже если вы читаете русский перевод книги, рекомендую выписать определения на английском языке. Если в будущем вам придется что-то искать по теме, то с правильными определениями вы быстрее и качественнее получите ответы. В конце каждой главы повторно выписываются все определения.

Несколько глав отходят от процесса обучения, и предлагают использовать все полученные знания для реализации небольшого проекта. Что прекрасно позволит закрепить материал пройденных глав.

Обучение идет от простого к сложному. Начинается все с понятия языка и простых конструкций на нем. Разбираются итерационные операторы, списки, словари, кортежи. Затем идет структурирование кода в классы с методами и функциями.

В последней главе дается обзор полезных «фишек», которые вы можете использовать для упрощения кода.

Отдельно порадовали приложения. В первом сведена воедино технология отладки кода. От «Шеф, все пропало!» до косметических правок. Во втором дается введение в анализ эффективности алгоритмов. Какие алгоритмы в каких случаях следует применять.

Рекомендую эту книгу как первую, начальную и основную для изучения языка Python.