«Алгоритмы» для начинающих
- хранение чисел в памяти (Int32Array как мотивация)
- линейный поиск, бинарный поиск, пересечение массивов
- big O, проверка на простоту за логарифм, быстрое возведение в степень
- рекурсия с кэшированием, генерация разложений на слагаемые
- квадртатичная сортировка (например, выбором), квиксорт, мержсорт, хипсорт (куча)
- односвязные, двусвязные списки (общий интерфейс с массивом)
- бинарное дерево поиска, балансировка
- обход графа (dfs, bfs), стек, очередь
- динамическое программирование (на одномерных и двумерных массивах)
- поиск подстроки в строке (КМП)
Актуальная информация о занятиях
Это список тем, которые проходят в первом семестре профильного вуза. Или 20% тем из полноценного курса, которые дадут вам покрытие 80% на собеседовании на должность фронтенд-разработчика. Математика требуется в основном уровня 2 класса (сложение и умножение), 6 класса (натуральные степени и квадратный корень) и в одном месте уровня 10 класса (понимание, что такое логарифм).
«Алгоритмы» — маркетинговое название. Во-первых, первичны структуры данных (курс называется «Алгоритмы и структуры данных»), важнее понимать, чем список отличается от массива, а дерево от хэш-таблицы, чем уметь реализовывать методы на этих структурах данных. Во-вторых, большую часть алгоритмов и называть алгоритмами неловко (шестилетний ребенок интуитивно реализует бинарный поиск, когда ищет в толковом словаре непонятное слово). Но в массовом сознании этот список тем ассоциируется с термином «алгоритмы».
В идеале программы лучше писать на C. Но c фронтендерами мы используем тайпскрипт, чтобы заодно потренироваться писать интерфейсы и дженерики, а с джавистами — вы не поверите — джаву.