코딩: 컴퓨터가 이해할 수 있는 언어 사용하기

Seungwon Go
4 min readJan 28, 2021

회사에 신입개발자가 입사를 하게되면, 꼭 시간을 내서 신입개발자와 함께 짝 프로그래밍을 하는 시간을 가졌다.

아마 대다수의 신입개발자들은 나처럼 경력이 오래된 사람이 옆에서 지켜보고 있으면, 잘 할 수 있는 코딩도 많은 실수를 저지르게 된다.

내가 짝 프로그래밍을 하는 시간을 갖는 이유는 다음과 같다.

첫번째, 입사한 신입 개발자의 프로그래밍 역량이 어느정도인지 알고 싶어서이다.

두번째, 신입 개발자에게 코딩을 좀 더 쉽게, 좀 더 재미있게 짜는 방법을 알려주기 위해서이다.

세번째, 만약에 코딩 역량이 부족하다면, 단지 코딩 기술이 부족한 것인지 아니면 사고 체계가 아직 코딩을 제대로 할 수 있는 체계로 변환이 안된것 인지 확인하기 위해서이다.

구현해야 할 프로그램이 정해지고 신입 개발자들은 코딩을 시작하지만, 제대로된 코딩을 하지 못한다. 그건 너무나도 당연하게도 아직 그들은 신입이기 때문이다.

그런데 문제는 코딩 기술에 있지 않다.

나는 신입 개발자들에게 이번에는 코딩을 하지 말고, 구현해야 할 코드의 흐름을 한글로 작성해 보라고 했다.

프로그램 코드로 작성했을 때 보다, 한글로 작성을 하게 되면, 기술에 구애받지 않고 신입 개발자가 구현해야 할 프로그램을 어떻게 이해하고 있고, 어떤 것들을 처리해야 하는지 순수한 개발자의 사고를 통해 이루어지게 된다.

나는 항상 신입 개발자를 평가할 때 지금 당장 가지고 있는 코딩 역량 보다 앞으로 발전 가능성이 있는지를 더 높게 평가한다.

발전 가능성이 있는지는 지금 당장의 코딩 기술 보다 구현해야 할 프로그램에 대한 이해도와 기능 구현을 위한 순서의 흐름, 그리고 프로그램을 완성하기 위해 필요한 모든 경우의 수를 잘 찾아내는지 본다.

이런 사고가 잘 갖춰져 있다면, 코딩은 그 다음으로 열심히 익히면 된다라고 생각하고 있다.

누구나 개발자가 될 필요는 없다.

처음에 개발자로 회사에 입사를 했다고 해서 꼭 개발자가 되어야 할 필요는 없다는 것이다.

누군가는 기획자가 더 적합할수 있고, 또 누군가는 디자이너, 또 누군가는 전문 테스터가 적합할지 모른다.

특히나 신입 개발자의 경우는 지금 당장 작성할 수 있는 코드가 많은 것 보다, 프로그램에 대한 이해도가 더 높은 신입이 결국 빠르게 발전하는 모습을 많이 봐왔다.

그리고 신입일 때는 오히려 이런 역량을 가질 수 있는 기회를 주는 것이 더 필요하다.

신입과 짝 프로그래밍을 하면서, 신입은 한글로 프로그램 내부 기능을 작성을 하고, 작성된 한글을 바탕으로 나는 그 내용을 더 세분화해주거나, 한글 내용을 내가 코드로 작성을 해주면서, 코드를 기능이 아닌 용도로 설명을 해주었다.

그렇게 하면, 신입 개발자들은 그동안 문법 위주로 프로그래밍 언어를 배우면서 느꼈던 한계를 벗어나, 실제 코드가 어떤 용도로 사용되는지 보면서 큰 발전을 이룬다.

이미 짝 프로그래밍이 얼마나 좋은지는 여러 채널을 통해서 알려져 있다.

신입과 짝 프로그래밍을 하되, 신입은 한글로 경력이 많은 개발자 분들은 코드로 한다면, 더 큰 효과를 볼 수 있을 것이다.

나는 틈이 날때 마다 이런시간을 많이 가졌고, 이런 활동을 통해 개발자 역량이 높아지는 것을 직접 목격하고 오랜기간 체험하였다.

프로그래밍의 시작이 꼭 코드(코딩) 일 필요는 없다. 우선 중요한건 내가 풀어야 할 문제를 다각도로 살펴보고, 무엇을, 어떻게 만들어야할지, 누구를 위해 만들어야 할지 이해하는 것이 더 중요하다.

그리고 그 안에서 발생할 수 있는 모든 경우의 수를 추출해 내고, 각각에 대한 대응책을 고민할 수 있는 것이 더 중요하다.

이런 과정을 거치다 보면, 자연스럽게 프로그래밍 씽킹 사고를 가질 수 있고, 실력은 당연히 높아지게 된다.

컴퓨터와 소통하기 위해서는 언어(Language)를 배워야 하는데 이를 ‘프로그래밍 언어’라고 한다. 프로그래밍 언어를 배우기 위해서는 외국어를 배우는 것처럼, 우리의 언어를 컴퓨터가 이해할 수 있는 언어 식 표현으로 변환하는 훈련이 필요하다. – ‘디자인 씽킹을 넘어 프로그래밍 씽킹’

나는 20년이 넘는 시간을 IT에 종사하면서 훌륭한 프로그래머는 단지 소프트웨어 프로그램을 개발하는 역량을 넘어서 프로그램 뿐만 아니라 모든 문제에 대한 접근 방법 및 이를 해결하는 방법에 있어서 탁월한 모습을 보게 되었다. 그래서 프로그래머가 문제를 해결하는 방법에 대해서 관찰하고, 이를 비즈니스에 적용할 수 있는 방법을 고민하게 되었고 “프로그래밍 씽킹” 이라는 방법론을 만들게 되었다.

--

--