bisexual_computer_program_applesoft_basic

프로그래밍을 처음 시작하는 그 순간 두개의 다른 출발이 있다. 프로그래밍을 ‘목적’과 ‘수단’ 중 어떤 것으로 놓느냐 하는 것이다. 물론 이것이 불변은 아니다. 목적으로 출발했지만, 중간에 수단으로 바뀌기도 하고 반대도 가능하다.

이런 프로그래밍에 대한 두 가지 관점을 출발하기 전에 한 번 살펴보아야 할 필요가 있는 것은 그것에 따라 프로그래밍을 위한 첫 번째 도구를 무엇으로 선택하는 것이 좋은지, 어떤 방법으로 수련하는 것이 적절한지가 달라지기 때문이다.

프로그래밍을 처음 시작하려는 사람에게 다양한 의견이 제시되는 이유는 자신의 입장에서 어떤 사람은 목적으로서 답을 내놓고, 또 다른 사람은 수단으로서 답을 내놓기 때문이다. 나중에 바뀔 수 있는 것이라 하더라도 첫 걸음을 걷기 전에 프로그래밍을 배우려는 것이 목적과 수단 중 어떤 것에 해당하는지 살펴보는 것이 도움이 된다.

그럼 프로그래밍을 목적과 수단으로 바라본다는 것은 어떤 것일까?

프로그래밍을 목적으로 생각한다는 것은 그것이 가진 순수한 지적 유희로서의 기쁨을 원한다는 것이다. 프로그래밍은 수학처럼 지적 호기심을 채울 수 있으면서도 동시에 현실에 결과를 손쉽게 표현 할 수도 있다. 이처럼 순수하게 프로그래밍을 통해 어떤 결과를 만들어 내는 것 보다 그 과정 속에서 느낄 수 있는 몰입을 통한 행복감과 성취감이 주요 동기라면 프로그래밍을 목적으로 보고 있다 할 수 있겠다.

수단으로서의 프로그래밍은 위의 경우와는 달리 자신이 바라는 어떤 결과물이 있고, 그 결과물을 만들어 내는데 프로그래밍이 필수적이거나 유용하기에 배우려는 경우에 해당한다. 예를 들어 꾸준히 취미로 정리를 해 온 데이터가 있는데 이것을 인터넷에 공개하고 싶어 웹사이트를 만들려고 프로그래밍을 배우려고 할 때 이에 해당한다고 볼 수 있다.

다만 목적과 수단이 어느 정도 섞여 있는 경우도 많다. 이 경우 어느 쪽에 더 무게가 느껴지는지 스스로 마음을 살펴보는 것이 좋겠다. 반반씩 섞여있는 경우라도 출발점은 하나일 수밖에 없기 때문에 결정이 필요하기 때문이다.

Knuth Quote

목적과 수단 중 하나를 선택했다면 프로그래밍을 시작하기 위해 프로그래밍 언어를 하나 선택해야 한다. 여기서 목적과 수단 두 경우를 나눠서 살펴보겠다.

프로그래밍을 목적으로 두었다면 C 언어를 추천한다. C 언어는 현재 프로그래밍에 있어 가장 중요한 언어이고, 이것을 배운다면 그 뒤에 다른 언어들을 배워나갈 때도 좋은 지점에서 출발을 할 수 있는 자산이 된다.

또한 컴퓨터와 프로그래밍이라는 지적 호기심을 채우는데도 부족함이 없다. 다른 프로그래밍 언어라면 왜 그렇게 되는지 이유를 설명하기 위해 다시 더 깊은 단계로 내려가야 하지만, C 언어에 충분히 숙달된다면 그런 경우는 매우 적어진다. 즉, 컴퓨터란 세상의 법칙을 이해하는데 C 언어가 제일 좋다.

프로그래밍을 수단으로 하고 싶은 경우라면 일단 어떤 결과를 얻고 싶은지에 따라 조금 달라진다. 현재 많이 쓰이는 플랫폼으로 윈도우, 리눅스, OSX, iOS, 안드로이드가 있고 웹도 요즘은 플랫폼 중 하나로 보고 있다. 웹을 제외한 각 플랫폼들에는 널리 쓰이는 프로그래밍 언어와 개발 도구가 한두 개씩 있다. 해당 플랫폼에서 개발을 하려면 거의라고 해도 좋을 정도로 추천되는 언어와 도구가 있으니 그것을 배우면 된다.

아마 프로그래밍을 수단으로서 시작하는 많은 분들은 특정 운영체계에서 동작하는 애플리케이션 보다 웹에서 무언가 하고 싶은 경우일 것이다. 이 경우라면 PHP를 추천한다. PHP는 웹 서비스를 만드는데 매우 특화 된 도구다. 그렇기에 다양한 용도로 사용하는데 무리가 있지만 웹을 만드는데 있어서는 다른 언어보다 가장 빠르고 손쉽게 결과를 만들어 낼 수 있다.

프로그래밍 언어는 프로그래밍의 세계로 건너가기 위한 나무판과 같은 것이다. 눈앞에 놓인 절벽을 건너 프로그래밍 세계에 있는 ‘목적’이란 산으로 가거나 ‘수단’이란 바다로 가기 위해 놓인 긴 나무판이다. 그러므로 프로그래밍 언어를 고르느라 오래 고민 할 필요는 없다.

첫 번째 나무판으로 절벽을 몇 번 건너봤다면, 언제든지 다른 두께와 모양의 나무판으로 바꿔가며 건널 수 있다. 중요한 것은 어떻게 해야 나무판으로 절벽을 건널 수 있는가 하는 방법을 배우는 일이다. 그러므로 어떤 나무판을 써야 좋다는 시끄러운 소리에 혼돈스러워 하거나 시간을 낭비하지 않았으면 한다.

무작정 나무판을 손에 들고 절벽 건너편 프로그래밍의 세계를 향해 드리우기 시작 해보라. 그것으로 충분하다.