Нужна ли математика программисту

Можно ли стать программистом, не зная математики

Основы программирования
Каждый профессионал когда-то был чайником.

Наверняка вам знакомо состояние, когда “не знаешь как начать думать, чтобы до такого додуматься”.

Наверняка вы сталкивались с ситуацией, когда вы просто не знаете, с чего начать. Эта книга ориентирована как раз на таких людей, кто хотел бы стать программистом, но совершенно не знает, как начать этот путь. Подробнее…

В предыдущей статье я уже касался этой темы. В общем случае, можно добиться неплохих результатов, не зная математики.

Разумеется, речь идёт о математике старших классов средней школы и высшей математике. Если здесь вы “плаваете”, то программистом стать вам это не помешает.

Ну а математику начальных классов, вы, конечно, должны знать.

Высшая математика будет необходима только в том случае, если вы выберете конкретные направления программирования, где без неё никак не обойтись.

Например, захотите изучить сложные алгоритмы.

Или будете создавать какие-нибудь сложные вычислительные системы.

Для большинства же программистов математика не так уж и нужна.

Давайте посмотрим, какие наиболее популярные профессии программистов сегодня в России:

  1. Программист 1С
  2. Веб-программист (JavaScript, PHP и т.п.)
  3. Программист баз данных (это вопрос спорный, но я могу и поспорить)))

Пожалуй, это самые популярные направления. И практически в каждом из них можно обойтись без математики.

Ну и даже если математика вам потребуется, то изучить её можно позже. Ведь главное — это стать программистом. И начать этот путь можно

ЗДЕСЬ

P.S. Вообще говоря, математика не помешает никому. Если у вас есть время и возможность, то следует её изучить. Ну а если пока нет, то сделайте это при первой же возможности. А какие-то вещи можно освоить в процессе изучения программирования.

Основы программирования
Каждый профессионал когда-то был чайником. Наверняка вам знакомо состояние, когда “не знаешь как начать думать, чтобы до такого додуматься”. Наверняка вы сталкивались с ситуацией, когда вы просто не знаете, с чего начать. Эта книга ориентирована как раз на таких людей, кто хотел бы стать программистом, но совершенно не знает, как начать этот путь. Подробнее…

Математика и программирование: нужны ли они друг другу?

2014-01-16

Это пост-размышление Dan Luu, старшего разработчика в Google. Работал научным сотрудником в Университете Техаса и во многих исследовательских лабораториях.

Как-то он услышал фразу: «Зачем учить матан и линейную алгебру, если уже есть Вольфрам Альфа?». Эти слова поначалу повергли Дэна в ужас, ведь он никогда не сожалел о том курсе высшей математики, который изучил в университете.

Однако, когда первые эмоции сменились трезвым взглядом на вещи, Дэн задумался: а действительно, может ли знание высшей математики быть одним из главных критериев успешности в работе программиста?

Может ли программист быть хорошим специалистом, не имея этих знаний?

Вот его мысли.

Проще вспомнить те случаи, когда мне пригодилась математика. Их гораздо меньше, чем тех, когда я обходился без неё. Если исключить мои должности, бывшие абсолютно математическими (где требовалось знание математики, информационных технологий и фемтосекундной оптики), и рассматривать только тот мой опыт, который не был напрямую связан с высшей математикой, можно получить вот что:

  • из девяти преподаваемых в университете математических дисциплин только три дисциплины я использовал постоянно (дифференциальное и интегральное исчисления, линейная алгебра, теория рядов и многомерных интегралов);

  • три дисциплины из девяти несколько раз пригодились для решения краткосрочных задач (комбинаторика, корректирующие коды, теория вычислительного обучения);

  • одна из девяти дисциплин мне бы пригодилась, если бы у меня не было под руками Интернета (матричный анализ);

  • одна из девяти дисциплин мне пригодилась один раз (математическая экономика);

  • и одна из девяти дисциплин мне не пригодилась ни разу (действительный анализ).

Можно рассмотреть подробней, какие из академических дисциплин я использовал в течение своей долгой службы на страже компьютерных технологий.

Дифференциальное и интегральное исчисления: абсолютно необходимы при работе с физическими явлениями и алгоритмами, связанными с физическим миром.

А ещё один из моих самых эффектных фокусов ― это замена рядов Тэйлора (или другой приближающей функции) сложными функциями, где не очень высоки пределы ошибок и требуется высокая скорость.

Линейная алгебра: и пусть я мог обходиться без нё годами, сложно представить мою жизнь без неё и без матриц общего вида.

Теория рядов и многомерных интегралов: см. Дифференциальное и интегральное исчисления.

Комбинаторика: с её помощью можно произвести впечатление на людей на собеседовании, не более того. Максимум, для чего она мне пригодилась – помогла упростить кажущиеся сложными проблемы. Комбинаторные алгоритмы незаменимы.

Корректирующие коды: если вам понадобились корректирующие коды, вам однозначно пригодятся корректирующие коды.

Матричный анализ: с тех пор, как я закончил его изучение и наконец отыскал возможность применить его, прошло десять лет. Тем не менее, оно того стоило.

Действительный анализ: не могу вспомнить, где я его применял, но он полезен для понимания теории меры.

Теория вычислительного обучения: именно она является фундаментом для той интуиции, которая превращает сферу машинного обучения в алхимию.

Математическая экономика: однажды она мне пригодилась, когда проблему решило применение множителей Лагранжа.

Итак, восемь из девяти дисциплин сослужили мне неплохую службу. Недурно.

Был ли такой уклон в сторону использования математических алгоритмов обусловлен моим выбором компаний для работы? Ведь, как правило, меня к себе хотели как раз такие, весьма «математичные» компании, работающие на грани исследований и инженерии.

И я твёрдо верю, что нет, такое активное использование математических алгоритмов в моей работе не было следствием узкой направленности моей карьеры. Даже в сферах, достаточно удалённых от математики, зачастую приходится искать простое комбинаторное доказательство, которое покажет, что именно данное решение является оптимальным с высокой вероятностью. А иногда оказывается, что проблемным местом оказывается  функция, которую гораздо быстрее можно вычислить с помощью ряда Тейлора или метода Ньютона.

Если посмотреть на мою карьеру, конечно, гораздо больше прикладной пользы мне принесло понимание архитектуры компьютера, а не высшей математики, но при этом я лично чертовски рад тому, что полюбил математику и работаю вместе с ней.

В итоге я понял, что к выпадам в стиле «Да зачем программисту этот матан?» я отношусь гораздо спокойней, чем думал.

Вывод таков: если вам нравится математика, вы можете заниматься ей всё свободное время; но если вашей целью не являются научные изыскания, а работа программистом ― математика для вас вряд ли станет лучшим выбором для изучения.

Перевод: Люся Ширшова.

По мотивам поста Dan Luu. 


Читайте также: 

Рейтинг востребованности языков программирования

Не так важен код, как его рисуют

Записки по Дейкстре: Методология программирования

.

Добавить комментарий

Закрыть меню