의식을 가지고 코딩하기 Computer Code

S/W 개발 분야의 프로그래밍을 하는 사람들에게 자신의 업무에 대해 설명을 하라면 아마 다음 단어들을 가장 많이 듣게 될 것이다. '지식', '창조', '노가다'.
지식과 창조는 알겠는데 노가다는 앞의 둘과 전혀 관련이 없어보인다. 사실 다른 분야의 모르는 사람들에게 왜 프로그램을 만드는 일이 노가다성 작업인지를 이해시키는 것은 쉽지 않다.

하지만 이 분야에서 일해본 사람은 알 것이다. 별 고민없이 그냥 키보드에 손가는 대로 프로그램을 짜본 적이 아무리 없더라도 한 두번 정도는 있지 않은가? 마치 가야할 길이 뻔한 길을 달려가는 것처럼 말이다.
별로 복잡한 것 없이 당연한 변수들과 뻔한 제어구조만으로도 충분히 프로그램을 짤 수 있는 경우가 많기 때문에, 경험이 쌓일 수록 아무 생각없이-즉, 무의식적으로 프로그램을 개발할 가능성은 더 커지게 된다.

무의식적인 개발의 가장 큰 단점은 그것이 습관화되기 쉽다는 것이다. 의식적으로 사고하는 습관을 길러두지 않으면 정작 깊은 사고가 필요할 때 많이 힘들게 될 것이다. (생각없이 단순히 손가락만으로 만들 수 있는 프로그램이라면 정교한 인공지능 프로그램이 더 빨리 만들 수 있을지도 모른다.)

그러나 항상 의식적으로 사고하는 것은 비용이 큰 문제이기 때문에 쉽지 않다. 그리고 사실 무의식만으로 프로그램을 짠다는 것은 불가능하기 때문에, 대부분의 프로그래머들은 의식과 무의식의 세계를 왔다갔다하면서 필요할 때 집중력을 높이기 마련이다. 그래서 프로그램을 짜고 있을 때도 지금 내가 의식속에 있는 것인지 무의식속에 있는지를 구분하는 것은 사실 알기 어렵다.

주의해야 할 것은 개발이 무의식적으로 흘러가는 것을 방치하면 안된다는 것이다. 만약 단순한 디버깅이 반복되고 끼워넣기, 때려넣기식으로 코드 수정이 계속 일어나고 있다면 그건 개발이 무의식속에서 이루어지고 있다는 신호이다.

덧글

댓글 입력 영역