Какие полезные книги по следующим направлениям вы знаете?
Приветствую, господа.
Мне нужны книги по следующим темам:
1. Алгоритмы. Без фанатизма, чтобы знать основы, определения. Т.к. я веб программист, то важнее безопасность и нагрузки. Будет ли эта книга хорошей Кормен Т.Х. "Алгоритмы. Вводный курс"?
2. Криптография. Чтобы знать основные алгоритмы, шифрование там, эцп, вот это вот всё. Советуют шнайнера, думаю в эту сторону также.
3. Mongodb, планирую ограничиться видеокурсом с официального сайта. Я знаю, умею с ней работать, но нужно знать полностью включая все нововведения, оптимизацию под нагрузки там, индексацию и т.п.
4. Искусственный интеллект . Нужно знать основы, простые вещи, которые мне понадобятся для работы с нейронными сетями.
5. Нейронные сети. Нужно как можно больше полезной информации по теме, чтобы я мог с OCR работать без проблем, определять геометрические фигуры.
6. Безопасность веб проектов. Всякие там SQL инъекции, php including, XXS и т.п.
7. Создание сети распределенных вычислений между линукс устройствами и серверами. При этом, чтобы я мог написать прослойку для этого, некое апи, которому можно скормить для определенных вычислений что-то.
8. Ну для пункта 7, наверное, будет лучше python. Поэтому нужно что-то, чтобы я мог освоить и его.
есть перевод на русский. Вообще про Hadoop книг много, но настраивается он плохо, хотя есть оперсоурсные и коммерческие готовые платформы. Для изучения этого достаточно, для продавлена - нет
Обрати внимание на Шторм, если Hadoop - это оффлайн анализ,то Storm - это онлайн. Аналог - Hadoop Streaming
Вообще стек Hadoop огромен (Pig Hbase Spark Kafka Hive ZooKeper Flume Oozie) тут можно утонуть
7. Создание сети распределенных вычислений между линукс устройствами и серверами - кури Hadoop Storm, хотя я читал Параллельное программирование на С++ - автор не помню (практически не применял) тут нужно курить CUDA & OpenMP
Питон под высоконагруженные вычисления? Только если очень внимательно смотреть чем же действительно питон будет заниматься и замерять реальное время выполнения питоньего кода. И уж точно не писать на питоне само вычислительное ядро... Посмотрите по питону книгу "Thinking python", благо есть и на русском.
globuzer: Ну это как раз исполнение нативного кода с оберткой на питоне :-) Но само вычислительное ядро я бы никогда не стал писать на интерпретируемом языке :-)
надо отделять мух от котлет: много данных и оффлайн обработка и быстрый поток но мало данных. Второе - это обработка данных в высоконагруженных проектах, где питон хорошо вписывается. Или это может быть принятие данных и подготовка их для дальнейшей обработки. Первое - это задачи обработки больших объемов, кластеризация и агрегация данных. Тут нужны другие инструменты (Hadoop & Storm), как правило - это Java, R (больше для анализа и интерпретации результатов)
akalend: У меня данных 16 байт, например, но надо на них провернуть определенные операции несколько миллиардов раз как можно быстрее. И для таких задач куда как правильнее применять C в самих вычислениях.
Владимир Мартьянов если мы считает клики (инфы где-то 16 - 64 байта), но они идут потоком по 250 - 350 штук в сек, то для первоночальной обработки можно использовать хоть питон, хоть яву или даже РНР; но если мы из этой информации выдернуть, какие пользовательские группы лучше реагируют на какие типы баннеров или при каком дизайне товар лучше покупается на тизере и на каких типах площадок продажи выше среди каких социальных групп, то тут необходимы совсем иные инструменты.
Alexandre: Я еще раз попробую объяснить: объем данных - десятки байт. Над этой порцией данных нужно выполнить одну и ту же операцию миллиарды раз, максимально быстро. И операции эти производятся сотни тысяч раз в секунду на каждом процессорном ядре, коих сотни. Это несколько иной порядок цифр и никакому интерпретируемому коду (Py, Java, .NET и т.п.) в вычислениях тут не место. И это, определенно, высоконагруженные вычисления.
По нейронным сетям рекомендую курс на курсере от Jeofrey Hinton и книгу Ian Goodfellow Deep Learning https://goodfeli.github.io/dlbook/
Если будут проблемы с пониманием содержания книги/курса, можно предварительно пройти курс по машинному обучению и линейной алгебре. Немного многомерного матана тоже не повредит. И курс по оптимизации тоже, но это по желанию