Что такое и какая разница между паттернами и алгоритмами?
Паттерн проектирования - повторяемая архитектурная конструкция, представляющая собой решение проблемы проектирования в рамках некоторого часто возникающего контекста.
Алгоритм - набор инструкций, описывающих порядок действий исполнителя для достижения некоторого результата.
Статей и книг по первому и второму в интерете предостаточно.
https://addyosmani.com/resources/essentialjsdesign...
https://github.com/fbeline/Design-Patterns-JS
https://mgechev.github.io/javascript-algorithms/
В данном случае точнее говорить "паттерны проектирования", потому что просто патерн может быть чего угодно, это просто шаблон.
Паттерн проектирования дает шаблон решения часто встречаемых однотипных задач, он может быть абстрактым и больше как рекомендация, он не дает точных указаний и порядок действий. 
Паттерн от алгоритма отличается так же, как проект дома от пошагового процесса его постройки.