Програмування та математика!

Програмування та математика!

Чи потрібно програмісту знати математику?

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

Деякі вивчають складні розділи математики, які рідко бувають корисними. У той же час є розділи математики, які вважаються нетривіальними, наприклад, теорія ймовірностей. І хотілося б, щоб її знало якомога більше людей, тому що вона приблизно так само корисна, як і звичайна арифметика. Перша дає всім можливість порахувати кошти, а друга дозволить порахувати шанси (на кращу роботу, відпустку … ) Відповідно – знати математику необхідно, і взагалі, математика – цариця наук, одна з найбільш абстрактних наук, яка взагалі буває.

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

Математика – це велика область знань, де є частини, які в програмуванні потрібні і не потрібні. Чи існує щось в математиці, що потрібно знати програмісту, то так, звичайно. Чи є щось у математиці, що програмісту знати необов’язково? – то відповідь буде теж так і такого багато. Наприклад, дискретна математика дуже потрібна програмісту, а матаналіз за багато років в програмуванні може ні разу не знадобитися.

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

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

Математика дозволяє прикидати в голові ефективність алгоритмів, те, за який час вони будуть виконуватися, дозволяє краще описувати об’єкти реального світу. В програмуванні без математики неможливо створити надзвичайні алгоритми.

Програмісту знати математику потрібно обов’язково. Звичайно, буває різне програмування, різні проекти, в деяких математики потрібно більше, в деяких – менше, в деяких потрібна спеціальна якась математика. Але базову освіту, базове розуміння математики необхідно просто тому, що вона вибудовує мізки. У програміста розвивається абстрактне мислення, він може краще дивитися на завдання, розбивати його на логічні частини, шукати нові підходи до вирішення. Ще є оцінка складності алгоритмів. Її потрібно вміти проводити в будь-якій ситуації – яку б програму ви не писали, вам треба вміти її оцінити. Причому заздалегідь, до того, як ви напишете код, щоб просто розуміти, потрібно цей алгоритм використовувати або взагалі взяти якийсь інший, щоб він був більш ефективним.

Але є різні програмісти: ті, хто просто за заданими алгоритмами щось кодує і може обійтися без математики, і всі ті, хто займається аналізом великих даних – їм математика потрібна. Іноді навіть не можна уявити заздалегідь, яка математика їм знадобиться. Як і в творчості – хтось може бути величним художником і  намалювати портрет Мони Лізи, а хтось звичайним малярем і фарбувати стіни.

Є певні розділи в програмуванні (такі, як алгоритми), які вимагають досить глибокого знання математики і взагалі частково математикою і являються. Алгоритми на якомусь базовому рівні повинні знати усі розробники.

Висновок.

Чи потрібна математика програмісту? Потрібна. А, крім неї, потрібна сферична геометрія, географія, музика і банківська справа.

 

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

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

Світлини курсу “Програмування на C ++”

Світлини курсу “Програмування Python”