Теперь Кью работает в режиме чтения

Мы сохранили весь контент, но добавить что-то новое уже нельзя

Должен ли продвинутый программист понимать в математике?

Какие разделы важны для роста, что нужно уметь? Где можно подучиться этому?
Вопрос задан в рамках подготовки материала для соцсетей и гипертемы. Подробности тут.
ТехнологииПрограммирование+3
Давид Кац
  ·   · 44,6 K
программист  · 12 мая 2022
План такой:
use-case когда математика нужна (для затравки)
почему математика почти всегда не нужна (и что нужно)
если нужна математика, то что наиболее часто
теория графов, что типовое нужно
Поехали.
  1. В принципе некоторые разделы Software Engineering проще переоткрыть (и немного доделать напильником) самому, чем штудировать мануалы (в которых часто "за деревьями леса не видно"
В системном программировании (чаще многопоточном) периодически возникают всякие хм… "микро-алгебры": вот если мы делаем такие операции с такими ограничениями - это условие всегда выполняется => ошибки нет.
Но это довольно специфичная область + специфичные условия:
  • вы должны работать в системном программировании
  • вы долж быть на уже вполне приличной позиции
  • совсем стандартные решения должны не подойти
  1. В подавляющем большинстве случаев программисту математика не нужна.
    Нужно именно "ремесленное умение программировать" + "знание предметной области".
Периодически нужно Computer Science (которое по-моему мнению уже не математика - как физика и химия в 17 веке это уже не натурфилософия)
Довольно редко нужна именно математика.
  1. Если нужна всё-таки математика, то что нужно:
  • формальная логика (есть в Computer Science)
  • формальные языки (есть в CS как бы не продвинутее math)
  • основы статистики (как делать не надо - полезно когда начинаешь измерять производительность системы, чтобы избежать ошибок)
  • теория графов - тут, наверное надо остановться поподробнее
  1. Теория графов, что нужно.
    Вообще программа живёт в 2х измерениях:
  • а) текст программы
  • б) state программы: эволюция состояния программы во времени (иногда делят на б) эволюция одного потока \ в) эволюция многопоточной программы)
    И вот нас обычно интересует вопрос: "какими свойствами должен обладать текст программы, чтобы state программы был хорошим"?
Ну например: если у нас есть множество упорядоченных блокировок и блокировки в одном потоке берутся в отношении порядка => в многопоточной программе не может возникнуть deadlock (рассматривается структура программы WaitForGraph => Resource Wait Graph => подкраф одного потока => (подграф одого потока обладает свойством => deadlock невозможен)).
Веб-разработчик, геймер, специалист по этике  · 16 янв 2022
"Должен" ли он? Если честно, вряд ли. Разработка ПО как таковая, сам процесс написания и структурирования исходного кода программы, не требует знания математики, ни школьной, ни университетской. Всё зависит от задач, которые вы... Читать далее
3 эксперта согласны
Вы случайно не Герман Греф? Просто его "философия". Математические дисциплины прежде всего тренируют мозг,... Читать дальше
Учёный, доктор наук, математика, информатика и...  · 19 янв 2022
Конечно, должен. Математика это не интегралы и диф. уравнения - это инструмент, язык описания моделей явлений и процессов. Много алгоритмов разработали именно математики. Нужны те разделы, которые требует решаемая задача... Читать далее
Образовательная платформа Хекслет  · 28 окт 2022  · ru.hexlet.io
Достаточно большая часть задач повседневных задач, которые встают перед программистами решается без применения математики. Набросать страницу, создать небольшое CRUD-приложение (приложение где происходят базовые действия над... Читать далее
Помогаем новичкам освоить профессию веб-разработчикаПерейти на ru.hexlet.io/webinars
Благотворитель, предприниматель, бизнесвумен...  · 9 янв 2022  · it-life74.ru
Думаю, что должен. Ведь само программирование, это и есть 90% математика и геометрия цифр в пространстве. Без неё не инженерии , а программирование , лично для меня это инженерное образование.
Ваш друг Павла ХейнПерейти на it-life74.ru
2 эксперта согласны
Научные заметки о жизни: zen.yandex.ru/id/5c434983...  · 10 мая 2022
"Программист" не профессия, а признак принадлежности к огромной отрасли с множеством разнообразных профессий. В этой отрасли есть свои ученые, инженеры, рабочие, подсобники, маркетологи и кустари-одиночки. И всех их называют про... Читать далее
1 эксперт согласен
Yriy
подтверждает
10 мая 2022
Мышление программиста это креативный процесс познания мира алгоритмами, системами и обязательным тестированием для... Читать дальше
Геймдизайнер. Мастер дискуссии и срачей. Имею...  · 13 мая 2022
Было бы странно, если б программист графики не знал, как работать с матрицами и кватернионами. Или программист ИИ не слышал бы про цепи Маркова. Или инженер высоконагруженных систем не владел бы комбинаторикой и матанализом.
1 эксперт согласен
Ответ реверсивный, но верный.
Увлечения: Аэродинамика, физика.  · 19 февр 2022
Вопрос скользкий и именно для нашей страны. Если программист живет и работает на западе, то не должен. В развитых странах существует такая профессия как: "Постановщик компьютерной программы". Это человек, который объясняет... Читать далее
4 эксперта согласны
по большей части так и есть… ответ скорее верен...
Первый
Программист java, javascript. Люблю программироват...  · 21 февр 2022
Программист для роста должен уметь учиться: бысто искать, обрабатывать и применять информацию из любой области. Технологии меняются очень быстро. И что бы именно рости, надо успевать за потребностями рынка. А математика как... Читать далее
3 эксперта согласны
Коротко и по делу. Согласен с каждым утверждением.
Член ММО - Московского математического Общества...  · 13 мая 2022
Математика как профессия, весьма многогранная, в основе содержит формулировку и доказательство / условно - делание теорем. В том числе решение естественно возникших просто формулируемых, трудно доказываемых, многие годы стоЯщих... Читать далее
3 эксперта согласны
Математика - царица наук. Да, я уже не помню очень многое, но черт подери, как же были увлекательны времена... Читать дальше