우선 나는 프로그래밍은 재즈 연주와 같다고 생각한다.
평소에 취미로 재즈 음악을 자주 듣고 또 연주하는데 내가 왜 위와 같은 말을 했는지 설명해보고자 한다.
우리가 프로그래밍하는 과정을 연주라고 하면 연주할 때는 서로가 같은 악보를 보지만 그 코드(이 코드는 피아노의 코드이다)안에서 각자의 개성을 담아 연주한다.
이는 악보대로 연주하지 않는 것이 아니라 재즈 자체가 그런 장르이다.
프로그래밍도 똑같다 같은 목표를 보고 개발하지만, 그 안에서 각자의 역할이 다르다. 서로의 코드가 조금씩 다른 특징을 갖는 것처럼 혹은 주석의 생김새에 저마다 차이가 있는 것처럼..
또한 재즈는 합주할 때 같은 악보의 코드를 보고 저마다의 연주를 하지만 그 안에서도 서로의 연주를 듣고 합을 맞출 때가 있다. 이를 세션을 넣는다라고도 한다.
이것 또한 프로그래밍도 똑같다. 각자가 같은 악보의 코드를 본다는 것은 개발의 목표를 본다는 것이며 그 안에서 각자가 개발 업무를 하는데 이 업무들이 서로 공유되는 과정이 합주하는 과정과 같다고 생각한다.
그렇다면 개발을 잘하기 위해서는 어떤 노력이 필요하겠는가
재즈로 비유하자면 나는 스케일이나 기법 코드 등에 대한 지식을 채우는 것이 가장 중요하다고 생각한다.
이는 새로운 곡들을 칠 때마다 그 곡의 구조에 대한 전반적인 이해가 빨라지며 이는 적응력으로 이어진다.
나는 이러한 과정 또한 프로그래밍에 똑같이 적용된다고 생각한다. 우리가 개발 경험 및 지식, 예를 들어 개발 환경에 대한 이해, 협업 과정에 대한 경험 또는 다양한 실패 사례들로 인한 피드백 같은 과정들이 개발에 대한 이해를 높이고 개발 업무 환경에 적응을 할 수 있게 도와주는 스케일이나 기법 코드인 것이다.
나는 개발 언어에 구애받지 않는 개발자가 되고 싶다. 그 언어의 원리와 그 언어만의 특징에 관심을 가지고 코드에 사용된 알고리즘이 무엇인지 왜 사용했는지를 중요하게 보고 이러한 지식들에 따라 다른 환경에서도 금방 이해하고 또 경험을 쌓아가는 사람. 조금 더 본질에 대한 지식을 늘려 높은 적응력을 가진 개발자가 되고 싶다