저 역시 비전공자 출신으로, 2년전 sw에 입문하여 계속 학습해 나가고 있습니다. 클러스터에 있다 보면, 크고 작은 채용들이 이어지면서 첫 관문인 코딩테스트에 대해 이야기가 오가는 것을 듣게 됩니다. 그리고 그 속에는 여러가지 걱정 근심이 담겨 있곤합니다.

코딩테스트의 역할은?

코딩테스트의 역할은 지원자를 필터링하는것입니다. 채용에 절대적인 역할을 하는 것은 아닙니다. 더욱이 최근에는 코딩테스트 결과와 서류를 함께 보는 경우도 많습니다. 코딩테스트의 역할에 대해 생각해 봐야하는 이유는, 그 역할에 맞게 코딩테스트에는 의도가 담기게 되고, 그 의도는 코딩테스트의 난이도로 나타나게 됩니다.

확인하고자 하는것은 문제해결 능력

코딩테스트의 역할은 지원자를 필터링하는 것이라 하였는데, 그 기준이 바로 문제해결 능력입니다. 그래서 특정 알고리즘을 사용하는 문제는 잘 나오지 않습니다. 보통 특정 알고리즘은 활용가능한 조건이 존재하고, 그것이 문제의 모양새를 결정하게 됩니다. 해당 유형의 문제를 접해본 이들에게는 쉽고, 그렇지 않은 이들에게는 어렵기 때문에, 코딩테스트의 역할에 맞는 문제가 되지 못합니다. 그래서 코딩테스트에는 적당한 자료구조를 선택하여 조건문과 반복문을 통해 구현하는 문제들로 이루어지게 됩니다.

코딩테스트를 준비하는 방법

코딩테스트를 준비하는 가장 확실한 방법은 많은 문제를 풀어보는것 입니다. 코딩테스트는 결국 어느정도 정해진 문제의 유형안에서 출제되는 만큼, 해당 유형의 문제를 접해본 유무가 중요합니다.

백준사이트를 만든 백준의 특강에서는 처음 본 유형의 문제를 푸는데 너무 많은 시간을 소요하지 말라고 권합니다. 처음 본 유형의 문제는 적당한 시간(30분)정도 고민 후 정답을 확인하여 문제를 푸는 방법을 익히고,

계속해서 더 많은 문제를 풀어가는것을 추천했습니다.

저는 이러한 관점에서 품질 좋은 문제를 접하기 위한 효과적인 방법으로 코딩테스트에 적극적으로 참여하는 것을 추천합니다. 많은 회사들에서 코딩테스트를 도입하고 있고, 여기에 활용될 문제 하나를 만드는데 상당한 시간과 비용이 드는것으로 알고 있습니다. 우리가 모의고사를 통해 수능을 준비하였듯이, 여러 코딩테스트에 참여하여 실전과 같은 경험을 쌓아가시길 추천합니다.

42에서는...?

42과정과 취업사이에서 어디에 포커스를 둘 것인지 고민하는 이야기를 듣기도 했습니다. 취업이 다급하다면 취업에 포커스를 맞추는것에 무어라 할 순 없지만, 42과정 속에서 문제해결 능력향상시킬 수 있다고 봅니다.

코딩테스트에서도 결국 주어진 문제를 어떻게 풀어나갈 것인지 설계해고 해결하는 과정을 거칩니다. 42의 CS와 관련된 과제를 해결해 나가는 과정에서 CS 배경 지식을 학습하고, 코드를 설계하여 해결하는 과정을 거칩니다.

글을 작성하는 시점에서, Libft & GNL & Printf & B2B & PIPEX를 완료했고, PUSH_SWAP을 진행중에 있습니다. 저는 해당 과제들을 수행하며, 저런 과제들을 해결한 경험이 있는데, 왜 코딩테스트를 걱정하는지 사실 의문입니다. 42과정을 충실히 해냈다면, 코딩테스트 문제들을 접하는 경험을 쌓은 이후에는 충분히 코딩테스트를 통과할 수 있다고 봅니다.