
프로그램은 어떻게 문제를 해결하는가문법보다 먼저 이해하는 사용자·입력·처리·출력의 원리
이승도 지음우리는 어릴 적부터 정답이 유일한 시험 문제를 푸는 데 길들여져 왔다. 그러나 우리가 학창 시절 풀었던 시험 문제를 제외한 세상의 모든 문제는 정답이 여럿이다. 현실의 문제를 해결하기 위한 누군가의 선택은 그 각각이 또 다른 정답이 될 수 있으며, 어느 한 사람의 선택이 옳다는 주장이 다른 누군가의 선택이 틀렸다는 주장을 의미하지 않는다.
정답이 유일하다는 강력한 믿음에 익숙해진 우리는 현실의 복잡한 문제와 수많은 사람의 선택, 감정, 처지, 가치관, 입장에 대한 판단마저 유일한 정답이 존재한다는 함정에 빠지곤 한다. 그러나 어떤 보편적인 현실의 문제를 해결하기 위한 대다수의 보편적인 방법과 다르게 이를 해결하려는 누군가의 한 번도 본 적 없는 발상 또한 또 다른 정답이기에, 그 생각 또한 보편적인 생각과 별개로 존중되어야 한다.
컴퓨터과학의 세계에서도 마찬가지다. 현실의 문제를 해결하는 도구인 프로그램의 가치와 유용성은 그 프로그램을 사용하는 사람의 관점에서 비로소 정해지게 된다. 프로그램을 만들고자 하는 누군가는 때때로 자신의 관점에서 벗어나 사용자의 관점과 시야에서 그 사람의 선택을 이해해야 한다. 세상의 모든 문제를 그 각자의 최선대로 해결하고자 노력하는 모두에게 도움이 되고자 하는 책이다.
정답이 유일하다는 강력한 믿음에 익숙해진 우리는 현실의 복잡한 문제와 수많은 사람의 선택, 감정, 처지, 가치관, 입장에 대한 판단마저 유일한 정답이 존재한다는 함정에 빠지곤 한다. 그러나 어떤 보편적인 현실의 문제를 해결하기 위한 대다수의 보편적인 방법과 다르게 이를 해결하려는 누군가의 한 번도 본 적 없는 발상 또한 또 다른 정답이기에, 그 생각 또한 보편적인 생각과 별개로 존중되어야 한다.
컴퓨터과학의 세계에서도 마찬가지다. 현실의 문제를 해결하는 도구인 프로그램의 가치와 유용성은 그 프로그램을 사용하는 사람의 관점에서 비로소 정해지게 된다. 프로그램을 만들고자 하는 누군가는 때때로 자신의 관점에서 벗어나 사용자의 관점과 시야에서 그 사람의 선택을 이해해야 한다. 세상의 모든 문제를 그 각자의 최선대로 해결하고자 노력하는 모두에게 도움이 되고자 하는 책이다.
