나는 무슨 일을 하는 사람인가.
첫 글은 가볍게, '프로그래밍을 하는 방법'을 말하려고 한다.
나는 직업 프로그래머다. 경력은 미천하다. 하지만, '프로그래밍을 하는 방법'을 글을 적을 수는 있을 것 같다.
프로그래밍을 하는 방법은 몹시 단순하다.
내가 무엇을 할 것인지 생각한다.
내 생각을 논리에 맞게 적는다.
키보드를 눌러 무엇을 이루고 싶은지 골몰히 생각한다. 그 골몰함 속에는 '생각에 오류는 없는지', '내가 하려는 방법이 맞는지' 등이 들어있다.
'무엇'이 간단한 경우(정수 a와 정수 b를 더해서 정수 c를 만들어야지 등), 생각의 전개가 매우 빠르게 진행된다. 이견 또한 없다.
'무엇'이 간단하지 않을 경우, 생각을 완결 짓기 위해서 시간이 많이 들뿐더러 명제 간의 인과, 절차상의 순서를 머릿속으로만 기억하기 힘들어진다. 이럴 때 필요한 것이 각종 필기도구다. 화이트보드와 보드마카 종이와 연필. 가시적으로 볼 수 있게 생각을 나열한다. 표, 그림, 다이어그램, 마인드 맵 할 수 있는 모든 방법을 동원해서 생각을 정리한다. 때론 낙서도 매우 도움이 된다.
무엇을 할 것인지 정리가 되면 생각을 논리에 맞게 적는다. 편한 방법으로 적으면 된다. 프로그래밍 언어에 대한 지식이 있다면 해당 프로그래밍 언어로 적는다. 실제로 구현을 해야 하기에 프로그래머들은 대부분 자신이 원하는(혹은 원하지 않은) 프로그래밍 언어로 논리를 풀어나간다. 프로그래밍 언어를 몰라도 프로그래밍을 할 수 있다. 의사 코드로 자신의 의사를 표현하면 된다. 다이어그램을 글자로 표현한 것과 같다. 컴퓨터에 대한 기초지식, 프로그래밍 언어에 대한 지식이 있으면 일련의 과정이 좀 더 수월해진다.
사실 생각을 논리적으로 적는 것이 프로그래밍이다.