Ответы пользователя по тегу Книги
  • Какую книгу по С++ прочесть для новичка?

    @nirvimel
    Здесь вся основная литература по C++ структурирована по уровням.
    Ответ написан
  • Какие книги стоит прочить перед тем, как начинать торговать на (крипто)валюте?

    @nirvimel
    Что мне может помочь для наработок стратегий?

    Machine Learning. Only.

    А в ручную?

    Увы, никак. Это все равно, что с палками и камнями переть против танков. Машины рвали людей (чемпионов) в шахматы еще двадцать лет назад. За это время технологии очень сильно развились, а вычислительные мощности выросли на много порядков. Кроме того, призовые фонды в шахматах не идут в сравнение с теми суммами, которые можно выкачивать из биржи инвесторов и наивных ручных трейдеров.
    Суть любой биржи - цифры. А в мире цифр человек против бота - просто мясо.
    Ответ написан
    Комментировать
  • Какую литературу почитать по проектированию?

    @nirvimel
    1. Стив Макконнелл - Совершенный код.
    - почему еще никто не назвал эту очевидную классику? (я аж Ctrl+F-нул по странице, не поверил сначала).
    - также рекомендую его "Анализ алгоритмов. Вводный курс" (хоть это и в стороне от сабжа).

    2. Кент Бек - Экстремальное программирование. Разработка через тестирование.
    - многие считают этот подход антипаттерном, но прочесть, безусловно, стоит хотя бы ради того, чтобы иметь возможность самому поискать ошибки в рассуждениях автора (оно того стоит).

    Еще несколько очень разных книг, которые для меня стоят в одном ряду с Макконнеллом:
    3. Фредерик Брукс - Мифический человеко-месяц.
    4. Эндрю Хант, Дэвид Томас - Программист-прагматик. Путь от подмастерья к мастеру.
    5. Том Демарко, Тимоти Листер - Человеческий фактор: успешные проекты и команды.

    Далее, у Макконнелла в (1) после каждой главы приведен огромный список литературы по теме, большая часть - признанная классика, можно прямо брать списком и выкладывать в этот тред.
    Ответ написан
    Комментировать
  • Какие книги почитать по параллельному программированию на Scala?

    @nirvimel
    Параллельно программирование в основном касается рантайма, а не собственно языка.
    Поэтому, можно брать всю ту же литературу, что и для параллельного программирование на Java (а такой литературы достаточно). Принципы там одни, да и библиотеки в основном пересекаются. Другой язык никак не помешает пользоваться общим рантаймом. Единственное отличие: на Scala аналогичный код в итоге может выглядеть намного красивее (если при написании мыслить по-скаловски).
    Впоследствии стоит переходить к изучению документация к специфическим скалавским параллельным библиотекам/фреймворкам (Akka и др.). На более продвинутом уровне чтение исходников стандартной и сторонних библиотек будет давать гораздо более информации за более короткое время, а чтение книг (авторы которых просто пропустили через свою голову прочитанный код) покажется расточительным расходованием своего времени.

    Рецепт изучения (один из возможных): Если начинать с самых азов, то подойдет соответствующая глава (про concurrency) из книги Брюса Эккеля. Там дается очень неплохое введение в тему, раскрываются соответствующие данной области проблемы и показываются основные пути их решения.
    Далее следует выбрать более конкретное направление. В рамках темы параллельных вычислений существуют несколько различных подходов (смешивать их в одном проекте не только бессмысленно, но и опасно).
    1. Классический подход, основанный на потоках и блокировках ресурсов.
    1A. Разновидность (1), где вместо явных блокировок используются неблокирующие очереди.
    2. Подход, основанный на повсеместном использовании Promise/Future.
    3. Акторы (типизированные и нетипизированные (эти почему-то становятся более популярны)).
    4. STM.
    После выбора подхода к решению распараллеливания вычислений, следует выбрать конкретный инструмент (библиотеку) и углубится в изучение его официальной документации и любых примеров, найденных в Сети. На более продвинутом уровне можно будет перейти к чтению исходников и сторонняя литература больше не понадобится.

    UPD: Все-таки существует специальная книга по Scala Concurrecy. Я ее не читал. Но судя по оглавлению, все основные темы там раскрываются.
    Ответ написан
    Комментировать
  • Какие вы знаете книги по сложности (абстрактно)?

    @nirvimel
    В computer science понятие сложности никакое не абстрактное, а совершенно конкретное.

    Я изучал это по книге Седжвик. Фундаментальные алгоритмы на C++. Там бегло даются общие понятия о сложность (книга не для математиков все таки), а дальше тема раскрывается практически на примерах конкретных алгоритмов (для нас, кодеров - то, что нужно).
    Еще есть Седжвик. Алгоритмы на Java - я лично не читал, но там, вроде, тот же материал, только применительно к другому языку, но издание гораздо боллее современное.
    Ответ написан
    1 комментарий
  • Какую книгу посоветуете родителям для обучения компьютеру?

    @nirvimel
    хотят научиться работать за компьютером

    Книгу эту они читать не будут

    К сожалению вынужден вас огорчить: у вас вряд ли что-то получится. Невозможно обучить того, кто сам не готов прикладывать (даже минимальных) усилий к собственному обучению. Именно для этого в школах существуют домашние задания (а не для экономии времени преподавателей), чтобы отличить тех, кто реально стремиться к учебе от тех, кто просто посещает занятия.
    Ответ написан
    2 комментария
  • Есть ли книга «High Performance Python» на русском?

    @nirvimel
    Приветствую своих будущих конкурентов (и, возможно, заказчиков). Судя по описанию, сабж (почти каждый пункт в их списке) полностью соответствует моей специализации в последние несколько лет ("Solve large problems while using less RAM" - а на этой теме я вообще "собаку съел").
    Но даже по краткому описанию я могу заметить, что книга 2014 уже несколько устарела на сегодняшний день. Например, они упоминают мало кому известный Grasp, но нет совершенно ни слова о такой крутейшей технологии, как Numba, если только она не скрывается под этой фразой: "Use tools to compile Python down to machine code".
    И уж как скоро речь идет о performance, то нельзя было проходить мимо темы создания C/C++ расширений. Тем, кто профессионально занимается темой производительности, в любом случае придется столкнуться с этим рано или поздно.

    А пока вы ждете перевода, я постараюсь ответить на ваши вопросы по теме.
    Ответ написан
  • Что можно почитать про архитектуру клиент сервера?

    @nirvimel
    Где можно узнать больше о синхронизации клиента и сервера?

    Бывает синхронизация данных и синхронизация процессов. Задачи Синхронизации данных обычно сводятся или к контролю версий или к синхронизации файловых систем или к репликации БД . Для каждой из этих проблем существуют давно отточенные стандартные решения, велосипеды собственного производства тут неуместны.
    Задачи синхронизации процессов возникают когда есть некий разделяемый "ресурс" к которому пытаются получить доступ более одного "потребителя". В 99% случаев это касается синхронизации потоков/процессов на самом сервере, но не между клиентом и сервером.

    О целостности данных при синхронизации?

    За это обычно отвечает СУБД. Для прикладных задач достаточно правильно организовать собственные транзакции к БД, тут самое главное определиться с тем какую целостность вы собираетесь обеспечивать (что под этим понимается), это не такой простой вопрос, ответ на него позволит организовать собственные транзакции нужным образом.
    Ответ написан
    Комментировать