Software Engineering2006. 3. 6. 02:51
The Joys of Programming(프로그래밍의 기쁨)
-"The Tar Pit", "Mythical Man-Month (Fred Brooks)" 중에서


왜 프로그래밍이 즐거운가? 어떤 기쁨이 프로그래머를 기다리고 있는가?

첫번째로는 무언가를 만드는 기쁨이 있다. 아이가 진흙으로 파이를 만들면서, 어른들이 무언가를 만들면서(특히 자신의 디자인으로) 기뻐하는 것과 같다. 이 기쁨은 아마도 조물주의 기쁨과 비슷한 것일꺼라 생각하는데, 각각의 잎새나 눈송이의 새로움과 독특함에서 우리가 엿볼 수 있는 그런 기쁨이다.

두번째는 다른 사람에게 유용한 무언가를 만들었을 때의 기쁨이다. 마음 깊은 곳으로부터, 우리는 우리가 만든 것을 다른 사람이 사용하고 그것이 유용하길 바란다. 이런 관점에서 본다면 프로그래밍은 아이가 첫번째로 만든 찰흙 연필 꽂이("아빠 사무실 용")과 다르지 않다.

세번째는 복잡한 퍼즐을 풀어서 그것이 처음에 만들어졌던 원리에 따라서 움직이는 것을 보는 즐거움이다. 프로그래밍된 컴퓨터는 핀볼 기계나 쥬크박스가 가지고 있는 모든 매력을 가지고 있으며, 그러한 매력의 극한을 보여준다.

네번째로는 항상 배워나가는 즐거움이 있다. 항상 새로운 문제들이 나오고, 그것을 풀면서 우리는 새로운 것(때로는 실용적인, 때로는 이론적인, 가끔은 양쪽 모두인)들을 배우게 된다.

마지막으로, 뭔가 마음대로 할 수 있는 것을 가지고 일하는 즐거움이 있다. 프로그래머는 마치 시인처럼 순전히 머리 속에 있는 것들 사이에서 이동하며 일한다. 프로그래머는 허공에 성을 세우고, 그 허공에서부터 상상력을 발휘한다. 다른 창조의 작업들은 이것만큼 유연하지도 않고, 허물고 다시 만들기도 쉽지 않으며, 그래서 거대한 개념 구조를 만들기도 쉽지 않다.
그러나 프로그램이 만들어지면, 시인의 시와는 달리 실제적인 모습을 드러낸다. 프로그램은 결과를 출력하기도 하고, 그림을 그리기도 하고 소리를 만들어내기도 한다. 신화와 전설의 마법이 우리 시대에 출현한 것이다. 누군가가 키보드로 정확한 주문을 입력하면 스크린이 현실에 전에 없었던 것들을 보여주는 것이다.

프로그래밍은 우리 내부의 깊은 곳에 있는, 그리고 모든 인간이 갖고 있는 창조의 욕망을 만족시킨다는 점에서 정말로 재미있다.  
Posted by kkongchi