@youkerni
Unity3D developer

В каком порядке изучать математические дисциплины?

Всем доброго времени суток. Начал учить программирование год назад (давалось легко, было интересно). Сейчас устроился джуном (C# Unity) и разрабатываю игру на плеймаркет. Особых знаний математики не требуется. Но сейчас начинаю осознавать, что с моим текущим уровнем знаний далеко мне в отрасли не уйти (да и хочется решать задачи посложнее). Сейчас мои знания находятся на уровне: умею производить элементарные операции с векторами, немного знаком с матрицами, где-то слышал о графах.

Образование - техникум. Учился нормально до 8 класса, дальше знания поверхностные. Возможно стоит предварительно все повторить. На какие дисциплины стоит обращать внимание? В перспективе хотел бы уйти в 3D (может и в VR). Если возможно - посоветуйте литературу, курсы. Но самое главное - порядок изучения. Остальное могу найти и сам :) Гугл в помощь.

P.S. Самоучка. Нигде не учусь. Заочное обучение считаю глупостью (особоенно в IT), а очное не потяну.
  • Вопрос задан
  • 3203 просмотра
Решения вопроса 1
BasmanovDaniil
@BasmanovDaniil
Геймдизайнер-телепат
В старших классах проходят степенные функции, тригонометрию, производные и интегралы, без этих знаний ни вектор в плоскости не повернёшь, ни кружок в шейдере не нарисуешь, так что лучше повторить. Чтобы закрепить эти знания, погуглите или возьмите в библиотеке сборник задач по математике для поступающих в вузы. В подобных книжках обычно задачи слишком сложные, на практике такие не встречаются, так что решать всё не обязательно.

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

Кроме того, для расширения кругозора советую погулять по ссылкам википедии про вычислительную геометрию. Какие-то вещи стоит попробовать написать самому (например, алгоритм пересечения отрезков), а про какие-то достаточно просто знать - с той же триангуляцией можно месяцами возиться, для таких вещей лучше брать готовую библиотеку.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@potan
Функциональный программист
Основа математики и ее приложений к программированию - теория множеств. То есть начинать надо с нее, хотя особо углубляться не обязательно - достаточно понимание концепций множества, функции, прямого произведения и несвязанной суммы. Для 3D, а так же для ML, полезно будет хорошо разобраться в линейной алгебре. Неплохо бы разобраться с теорией графов и познакомиться с общей алгеброй (группы, моноиды, кольца, поля). Если есть желание глубже копать в computer science, то стоит изучать логику, теорию категорий и переходить к теории типов.
Ответ написан
Комментировать
@polybook
Приглашаю на свой ресурс nerepetitor.ru. Выбираете тему, в которой хотите разобраться - и получаете мини-курс, начиная от азов. Это бесплатно, и регистрации не надо.
***
Советую изучать параллельно и комплексно: мат.анализ+линейная алгебра+статистика+численные методы. После ликбеза - разбирайтесь в машинном обучении. Или сразу с него начинайте, а если базовых знаний не хватает - разбирайтесь в азах по ходу. Еще совет - выберите мат.пакет (mathcad, python, matlab или т.п.) и учитесь на практике, а не просто книжки читайте.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы