Чи потрібна айтішнику математика і яка саме?

В одній із минулих статей ми вже говорили про важливість знань із галузі математики для становлення і розвитку айтішника. Але це питання не втрачає сьогодні своєї актуальності, бо все більше і більше людей переходять в ІТ із інших професій і не мають за плечима математичного бекграунду із технічного виша.

Тож продовжимо розбір – чи потрібна айтішнику математика і яка саме (матаналіз, дискретна математика, математична статистика, теорія алгоритмів, комбінаторика, теорія ймовірностей, математична логіка, теорія графів та ін.)?”

Перше, що потрібно зрозуміти: математика використовується у багатьох галузях комп’ютерних наук, зокрема у створенні графіків та візуалізацій, моделюванні, розв’язанні задач, розробці алгоритмів та кодуванні програм, створенні статистичних аналізаторів, machine learning тощо. 

По-друге, залежно від напрямку роботи (девелопер, тестувальник, security-інженер, архітектор мережі, game-дизайнер тощо) і відповідь на запитання буде відрізнятись. Для кожної галузі (тим паче – кожного окремого проєкту) справедливим буде твердження, що певний розділ математики є життєво необхідним, а інші знання можуть роками покриватися пилом. 

Почнемо з розробників та інших software-інженерів

Бінарна математика, теорія алгоритмів, структури даних, логіка, основи теорії ймовірностей – просто must-have для software developer, software architect, software engineer. Хороший спеціаліст, пов’язаний із розробкою програм, повинен:

– знати основні принципи побудови якісних алгоритмів та оцінювати їх ефективність, 

– застосовувати імовірнісний підхід, аби, наприклад, підігнати параметри свого алгоритму під ті запити, які найчастіше зустрічаються на практиці,

– вміти розробляти і досліджувати математичні моделі явищ, процесів та систем,

– швидко отримувати та аналізувати інформацію з великих сховищ даних, 

– оптимально зберігати дані у структурах, з якими зручно взаємодіяти,

– створювати максимально ефективний код, мінімізувати його і передбачати вузькі місця (bottleneck-і). Наприклад, формальні перетворення можуть скоротити обсяг коду і зробити його більш читабельним.

Тестування

Матлогіка, в тому числі булева алгебра та логіка першого порядку, теорія графів стануть в нагоді тестувальникам. Саме завдяки теорії графів, наприклад, можна сформулювати оптимальний короткий шлях, який можна пройти в графі, аби покрити його повністю. Перекладаючи на мову QA – скільки і які саме тести потрібно виконати, аби повністю перевірити роботу системи. Робимо 5 довгих тестів чи розбиваємо їх на 3 коротких і розпаралелюємо виконання? 

Знання комбінаторики теж полегшують життя QA-інженеру. Вельми відоме pair-wise тестування засноване саме на принципах цього розділу математики. Інженер з тестування повинен вибрати певні елементи вихідної множини, побудувати на їх основі таку конструкцію, при якій збережеться якість покриття і зменшиться кількість виконуваних тестів.

Статистика теж необхідна для розуміння принципів тестування. Наприклад, парадокс дня народження (birthday paradox) можна використовувати для зменшення кількості тестів, аналізу числових результатів тестів і тестів продуктивності або планування умов зупинки тестових прогонів.

Чи можна працювати тестувальником, не маючи математичних навичок? Звісно! Але не в разі, якщо ви проводите тестування на цикломатичну складність, припущення про критичні несправності або робастність вибірки, в яких використовуються складні алгебраїчні формули.

Бізнес-аналітики

Не обов’язково бути генієм математики, аби працювати у секторі бізнес-аналізу, як і у всіх вищенаведених ІТ-галузях. Багатьом вистачає елементарної арифметики, такої як дроби, відсотки, елементарної алгебри, статистики та теорії ймовірностей, яку вчать в школі. 

Але іноді відсутність математичного бекграунду може стати блокером для участі у деяких проєктах. Все ж таки управління бізнесом може бути більш ефективним, в разі якщо володієш більш складними математичними навичками, а бізнес-аналітики за своїм покликанням якраз і повинні використовувати математичне та статистичне моделювання для оптимізації бізнес-процесів. 

На цьому тлі статистика та лінійна алгебра є ключовими будівельними блоками бізнес-аналітики. З чим саме потрібно бути знайомим? З різними типами статистики та аналізу, включаючи дослідницькі, асоціативні, порівняльні, прогностичні та рецептурні моделі. А ще знати:

  • лінійні рівняння,
  • операції над скалярами, векторами та матрицями,
  • вимірювання центральної тенденції (мода, медіана тощо)
  • міри розсіяння (дисперсія), діапазон, куртоз.

Арізонський університет, наприклад, за посиланням пропонує таку програму з математики для тих, хто вирішив податись у бізнес-аналіз: диференціальне та інтегральне числення елементарних функцій, границя та неперервність функції, множники Лагранжа, лінійне програмування, лінійна алгебра, проміжна ймовірність, випадкові величини, дискретні та неперервні розподіли.

Data Science та Big Data

Зараз у світі налічується приблизно 44 зетабайтів даних, і їх кількість зростає щодня. Data scientist займається збереженням, обробкою та організацією даних в умовах великих обсягів і високого рівня паралелізму, він повинен вміти використовувати статистичні методи, методи інтелектуального аналізу даних і застосування штучного інтелекту для роботи з даними, а також методи проектування та розробки баз даних.

Робота data science-спеціаліста значною мірою залежить від знання математичних принципів: матстатистика, матаналіз, тензорний аналіз, лінійна алгебра, ймовірність і обчислення. Похідна, первісна, екстремуми, інтеграли, диференціали, логарифми – ці слова повинні бути рідними для вас.

Кому цікаво дізнатися більше про математичну підготовку DS-спеціалістів, рекомендуємо зазирнути на сайт УКУ і почитати про підготовчий курс для вступу на магістерську програму Data Science. Там, доречі, його можна і пройти за невеликі гроші (на травень 2023 року вартість до 1000 грн).

Спеціалісти по мережам

Бінарна математика (математична мова, яка використовує тільки поєднання “0” і “1”) лежить в основі всього, що пов’язано із комп’ютерами. Тож і комп’ютерні мережі “розмовляють” двійковим кодом, наприклад, в момент створення та маршрутизації IP-адрес в мережі. 

Булева алгебра описує логічні операції за допомогою двох значень: “істина” (позначається цифрою 0) і “хибність” (позначається цифрою 1), і маніпулює цими значеннями за допомогою логічних функцій І та АБО. Вона широко використовується при написанні bash-скриптів (як і будь-яких інших). 

Топологія, як розділ математики, значною мірою допомагає системним адміністраторам компонувати та конфігурувати мережі. 

Диференціальні обчислення, матриці, теорія графів – також стануть в нагоді спеціалістам по мережам. Пропонуємо для ознайомлення статтю Френка Келлі, професора Кембриджського університету, в якій автор показує, як саме теорія графів і матриці допомагають моделювати високонавантажені інтернет-мережі. 

Кібербезпека

Якісна освіта кібербезпечника базується, передусім, на математиці. Що ж саме потрібно? Теорія імовірностей (закони великих чисел, центральна гранична теорема, послідовність випробувань, дискретні та неперервні випадкові величини), математична статистика, комбінаторний аналіз, математична фізика (метод Фурє, Задача Коші, формули Гріна, рівняння Лапласа), теорія графів.

Ці знання формують вміння приймати рішення в умовах ризику і невизначеності, допомагають розробляти моделі загроз та порушника. Теорія графів, наприклад, допомагає робити криптографічні перетворення, проводити аудит безпеки, визначати шляхи атак, виявляти слабкі місця у системі захисту і прогнозувати дії порушника (так звані дерева атак).

Спеціаліст із кібербезпеки повинен мати хоча б базове уявлення про вектори, матриці, вміти обчислювати визначники; розв’язувати систем лінійних і диференційних рівнянь;

досліджувати форму і властивості прямих та площин, кривих другого порядку; знаходити границі функцій і досліджувати функції за допомогою диференціального числення.

Продовжуючи тему математичних навичків для айтішників, варто згадати дві вельмишановні американські організації, які видають рекомендації щодо компетенції випускників ІТ-ВНЗ, які вони повинні мати при закінченні університету.

Перша – Association for Computing Machinery публікує, серед іншого, так звані Curricula – навчальні плани для ІТ-студентів; друга – IEEE – Institute of Electrical and Electronics Engineers видає зводи знань (Body of Knowledge).

Нижче на малюнку наведений набір математичних дисциплін у айтішників саме від ACM та IEEE.

Які висновки можемо зробити? По факту – велика кількість різних математичних дисциплін відіграють значну роль у становленні айтішника-спеціаліста. Але, хоча математичні навички і є “must have” or “desire to have” в певних сферах ІТ, вони не обов’язково є вимогою для всіх ІТ-напрямків, тим паче в залежності від проекту. І якщо математика не є вашим найближчим другом зі шкільних або студентських років, не засмучуйтесь. Є безліч напрямків, де набагато кориснішими будуть інші навички та вміння, наприклад, комунікативні або менеджерські скіли.

Але тим, хто хоче підтягнути свої шкільні знання по математиці, рекомендуємо серію освітніх лекцій Introduction to Discrete Mathematics for Computer Science на Coursera. Вони безкоштовні і дають доволі гарне загальне уявлення про всі області дискретної математики – логіка, комбінаторика, теорії ймовірностей, теорія графів, теорію чисел та криптографію. Дискретна математика є фундаментальною для більшості областей програмування та інформатики, включаючи алгоритми, комп’ютерні системи, комп’ютерну архітектуру, комп’ютерну безпеку, бази даних, розподілені системи, функціональне програмування, операційні системи, машинне навчання та мережі.

Поділитися:FacebookTwitter