필수적이지는 않다.
낭만주의 프로그래밍 시절의 수학은 산수적인 관점부터 고도의 수학까지 필수적인 시대가 분명 맞았으며, 전공을 하지 않고서는 접근할 수 없는 영역이 많았다.
16진수나 8진수 코드값을 순간적으로 암산하지 않고서는 데이터를 볼 수 없었고, 시각화가 거의 전무한 상황에서 머릿속에서 고도로 그 상황을 그려보려면, 다양한 수학적 개념들을 머릿속에 넣지 않았으면 안 되었다.
...
하지만, 대부분의 소프트웨어 개발은 그런 복잡한 수학적인 개념이 없어도, 기본적인 논리와 정기교육을 능숙하게 받아온 대부분의 사람이라면 그다지 어렵지 않게 접근할 수 있으며, 사용자의 요구사항과 욕구, 필요한 가치에 대한 접근만 충분하게 풀어낼 수 있다면, 생각 이상으로 괜찮은 프로그램을 만드는 것에 많은 수학적 개념이나 사고가 필요한 것은 아닌 시대가 되었다.
대부분의 개발 툴은 시각화되어있고, 수학보다는 통계에 가까운 데이터들을 분석하는 것이 대부분이고, 고도의 복잡한 개념들은 매우 손쉽게 이미지화가 되면서 시각화가 되고, 의미 있는 데이터를 추출하는데 오히려 감각적인 방법들도 많이 사용되고 있다.
실제, 필자 주변의 괜찮은 개발자들 대부분이 비전공자들인 경우가 태반인 것을 보면, 현대의 프로그래밍은 아주 대단한 수학적 개념이 필요한 것은 아니다. 물론, 수학적인 개념이 없으면 아예 접근조차 어려운 블록체인이나 ML과 관련된 분야가 아니라면...
대부분 비전공자라고 하더라도, 프로그래머가 되는 것이 불가능하지 않으며, 대부분 자신의 자리에서 충분학 역량을 발휘한다.
엄청 고도화된 인프라나, 개념적으로 기반에 해당되는 기술을 풀어낼 것이 아니라면... 수학 그 자체는 프로그래머에게 필수인 과정이 아는 시대라고 이야기해도 무방하며, 실제 대학의 전공과목에서 자료구조나, 컴파일러 이론, 대학 수학 등의 기본적인 과정들을 대충 배우더라도 졸업을 시켜주는 시대에서... 너무 많은 것을 그들에게 요구하는 것인지도 모른다.
실제 수학적인 개념이 풍부하게 이해된 사람들이 필요한 분야에서는 필수이겠지만, 대부분의 경우는 꼭, 수학을 잘할 필요까지는 없는 시대이지만, 분명한 것은 중심이 되거나 무언가를 선도하려는 사람들에게는 수학 개념은 필수라고 마지막 부연설명을 달아두겠다.
하지만...
역시, 수학적 개념이 필요한 프로그래밍 환경은 실제 일반적인 개발자들이 접근하는 영역은 아니며, 그 분야는 웬만한 개발자들 역시 선뜻 접근하기 어려운 분야이므로, 이 전제조건은 충분히 유효한 설명이라고 끄적거려본다.