Есета по математика

Съдържанието на статията
Трудна задача ми беше поставена от редакторите на списанието: като действащ програмист и учител на висше училище, за да се боря с уеб програмисти и други дизайнери на оформление, да разкрия темата за необходимостта от изучаване на математика:). Е - предизвикателството е прието, въпреки че не е толкова лесно. Освен това наскоро на въпроса "Трябва ли програмист да знае класическа математика?" добави още едно: „Трябва ли учен по данни да може да програмира?“
В това има известна ирония - оказва се, че хората, които познават добре математиката, не винаги програмират добре. В тази статия няма да възкресявам митове като този, за да се превърна в гуру по програмиране, трябва да прочетете прочутата четиритомна творба на Кнут. В Съветския съюз също имаше книга, която всички имаха и която никой не четеше - столицата на Маркс. Това е просто: камшикът не е за всеки и може би най-важното нещо, което може да се научи от първия том, е, че байтът не винаги е имал осем бита.
На първо място, има различни задачи, които изискват различни нива на обучение. Познаването на алгебрична геометрия е малко вероятно да помогне при решаването на ежедневни проблеми, ако правите уеб разработка. Строго погледнато, наистина са необходими само две
математическите умения за програмист са способност за броене и умение работа с булеви изрази.
Разбира се, има математически просторни области за програмиране, като криптография и компютърна графика. Но една тема възниква във всички раздели на програмирането, макар и в различна степен, е сложност. В известен смисъл, с каквото и да програмираме, постоянно се сблъскваме задача за контрол на трудността. Това може да бъде изчислителна сложност, когато трябва да можете да внедрите ефективни алгоритми или сложност на кода и тогава е необходимо рефакторинг и т.н. Следователно по-голямата част от математиката, която се използва горе-долу навсякъде, е математиката, необходима за алгоритмите и кодовия анализ като цяло.
Тук, преди да говоря за алгоритми, ще дам няколко примера на напълно абстрактна тема.
Нещо за числата
За да бъда напълно честен, трябва да се отбележи, че познанията по математика не винаги помагат на програмиста, защото математиката, свързана директно с числата, често работи по различен начин, отколкото изглежда, поради особеностите на представянето на числата в компютър.
Нека започнем с нещо много просто, но много забележително - случи се така, че опитни разработчици, завършили математически факултет, по време на интервю отговориха неправилно на този въпрос (има значително повече хора, които пишат това в код, отколкото може да изглежда на пръв поглед). Например трябва да намерите всички числа в масив, равен на 0,9, или да преброите броя им. Какво може да бъде по-лесно?