[기획 연재]프로그래머의 길_프로그래머의 수학 공부
프로그래머의 수학 공부, 어디서부터 해야할지 찾아오신 여러분,
안녕하세요? 사이냅소프트 입니다.
오늘은 Skill Set 의 기본 체력인 공부, 그중에서도 수학공부에 대해 이야기하겠습니다.
많은 지원자들은 종종 질문을 던집니다. “수학 잘 해야 하나요?” 그 질문을 하기 전에 몇 가지 생각해야 할 것들이 있답니다.
[Skill Set for Programmers]
1부 공부편
– 프로그래머의 수학 공부
2부 실무역량편
– Homo Loquens : 언어적 인간
– 출근 첫날, 나는 회사에 어떤 기여를 할 수 있습니까?
– Communication을 합시다.
[Mind Set for Programmers]
– 이런 사람을 뽑고 싶다.
– Don’t Stop OO, 프로그래머로서 지속할 것!
[Skill & Mind Set + a]
프로그래머의 수학 공부 , 100점 점수제가 아니다.
프로그래머의 수학 공부, 이전과 무엇이 다를까요? 지금까지 시험 점수를 잘 받기 위해서 수학 공부를 했다면 이제는 그 목표를 달리해야 합니다. 학교에서 수학을 잘해서 얻는 건 수학 점수 뿐이었고, 그게 증명하는 건 수학을 잘한다는 사실이었어요.
工夫 : 학문이나 기술을 배우고 익히는 것
프로그래머에게 공부는 목적이 아닌 수단입니다. 보통은 목적이 가치 있다고 이야기하니 의아해 하실텐데. 프로그래머는 자신의 의도를 구현하기 위한 수단으로써 앞으로 다양한 것들을 공부하게 됩니다. 수학도 그 중에 하나죠. 이건 우리가 밥을 먹고 숨을 쉬듯 개발자라면 당연히 받아들여야 해요.
그렇다면 우리 공부 잘했었나요? 고등 교육기관에서 배운 Computer Science는 생각만큼 즐겁지 않았고, 방대해서 힘들었을 수 있습니다.
어떤게 있을까요? 이산수학, 자료구조, 알고리즘, 운영체제, 오토마타이론, 프로그래밍언어, 컴파일러, 데이터베이스,인공지능,컴퓨터그래픽스,컴퓨터 구조, 데이터통신, 컴퓨터네트워크…
그 중에서도 다음의 주제는 여러분을 끊임없이 따라다닐 가능성이 많아요.
수학 기초는 중학교부터 고등학교까지 소환하면 된다.
컴퓨터사이언스 분야의 세부 과목을 들여다보며 전공자는 “내가 이것을 잘했었나?”, 비전공자는 할 수 있을까? 라고 한번 곰곰이 생각하는 순간 아마도 막막할 겁니다. 그런데 우리가 중학교 시절의 수학 이야기를 하면 조금 안심이 됩니다.
고맙게도 개발자 DNA는 중학 수학을 기억하고 있습니다. 설마 그것을 완벽히 기억 못 한다 하더라도 중학교 수학은 쉽게 받아들여 지시죠? 금방 그 기억을 소환할 수 있습니다.
그리고 고등학생 시절 존재감이 남달랐던 공통수학, 수1, 수2, 기억나시나요?
결론적으로 체력이 있는 프로그래머로서 고1 수학, 수학1(공통) 부분은 기초라고 할 수 있습니다. 부족하다면 체워야 하는 부분이죠.
프로그래머의 수학 공부, 업무 분야 따라 달라진다
그리고 업무분야에 따라 공부를 통해 내공을 키워야 하는 분야가 있습니다.
순열/조합, 수열/급수, 점화식, 수학적 귀납법은 Computer Science 의 이산수학,알고리즘과 연관되어 있습니다.
Data Science 쪽에 관심이 있다면 선형대수, 확률/통계 부분과 연계가 있으니 더 집중해야겠지요.
빅데이터, 게임, 정보 검색, 이미지 처리 분야에서 프로그래머로 성장하고 싶다면 기본 이상의 심화 학습 과정이 필요하답니다.
The Art of Computer Programming 을 집필한 Computer Science의 Guru인 Donald Knuth (도널드 크누스, 1938~ )선생은 “실제로 나는 프로그래밍의 주요 측면들 거의 전부가 정렬과 검색의 맥락 어딘가에서 나온다고 믿는다.”라고 했습니다. 컴퓨터 공학의 시작은 응용수학이라고 할 수 있지요.
자! 여러분은 이제 시험 점수와 학점이 없는 프로의 세계에 들어왔습니다. 수학 시험 보고 점수를 비교할 필요도 없습니다. 다만 일을 하다 보면 어느 순간 알고 싶어 미치겠다는 생각이 들 것이에요. 그때 읽는 전문서적의 한 글자는 시험 전날 벼락치기로 공부했던 때와 다르게 다가올 것입니다. 그리고 기초체력이 붙을수록 야근 없이 일을 스마트하게 할 수 있을 겁니다.
사이냅소프트에는 수학을 좋아하는 분들이 확실히 많은 것 같습니다.
도서 신청 게시판에 수학관련된 책이 많이 보여요. 그리고 오목 두듯이 서로에게 수학문제를 내서 한 수씩 푸는 동료들을 목격하기도 했답니다.
프로젝트 오일러: http://euler.synap.co.kr/
사이냅소프트는 또한 Project Euler (한국어) 사이트를 자발적으로 운영하고 있습니다.
수학적인 문제들을 컴퓨터 프로그래밍으로 하나씩 해결해가는 퀴즈 풀이 사이트인데요, 서로 풀이를 확인해 보면서 왠지 모를 매력에 빠져 ‘안 해본 개발자는 있지만 한 번만 해본 사람은 없다’라고 하네요.
자 이제 맨 처음으로 돌아가서 ‘수학 잘해야 되나요?’라는 질문에 대해 다시 이야기해 봅시다. 이 질문에 대한 대답은 프로그래머의 길 초입에서 진로를 고민하고 있는 지원자가 진정 알고 싶은 것이 아닌 거 같아요. 그들이 진정으로 묻고 싶은 것은 ‘수학에 흥미를 느껴야 하나요?’라는 질문 같습니다. 그리고 그 질문에 대한 답변을 드리자면 ‘Yes!, Of course, Sure, 당근’ 입니다.
감사합니다.