코딩테스트는 정말 필요한가?

koeunyeon·2021년 4월 3일
20

스타트업

목록 보기
10/12

십년쯤 전인가 디자인 패턴이 유행하면서 모든 면접 예상 질문에 디자인 패턴이 필수였던 적이 있어요.
분명 디자인 패턴이 더 좋은 설계를 위한 가이드이지만 언제 어디서든 사용 가능한 절대 철칙이 아니라는 것을 간과한 채 누가 더 많은 패턴 이름을 외우고 있는지가 면접의 당락을 결정하던 주객 전도의 상황도 있었죠.

지금 코딩테스트는 디자인 패턴의 전철을 밟고 있는 것 같아요.

최근 주니어/시니어를 불문하고 취업/이직시에 코딩테스트를 준비하는 것이 당연한 것이 되어 가는 분위기인데요.

코딩 테스트를 준비하는 과정 자체는 좋다고 생각해요. 논리적으로 생각하는 방법을 익히고, 프로그래밍을 (반강제로 ~~여유 시간을 할애해 가면서~~) 조금이라도 더 할 수 있게 해 주죠.
게다가 코딩 테스트를 준비하면서 여러가지 문제에 대한 문제점을 고민해 보는 것은 굉장히 바람직해요.

의외로 문제는 다른 곳에서 발생해요.
첫번째로는 실무와 코딩 테스트간의 괴리인데요.
실무에서 일하시는 분들에게 코딩 테스트를 준비없이 풀어보라고 하면, 아마 많은 수의 개발자들이 탈락의 고배를 마시리라 생각해요.
실제로 돌아가고 있는 프로그램을 만드는 사람들이 탈락하는 테스트는 무슨 의미가 있는 것일까요?

마치 미국인에게 토익 점수가 낮다고 영어를 못한다고 하는 모양새같아요.

이런 괴리가 발생하는 건 실무에서 필요한 능력과 주어진 문제를 푸는 능력은 사실상 별 관계가 없기 때문인데요. 문제은행에서 연습한 문제를 외외서 치는 것이 코딩 테스트라면 더욱 그렇죠.

운전면허를 땄다고 바로 그다음날 혼자 운전을 하고 나간다면 어떻게 될까를 생각해보면 쉽죠. ~~우리 모두 운전면허 시험 필기 내용은 면허증을 받는 순간 잊어버리잖아요?~~
"문제 패턴과 답만 외우니까요."

실무에서 팩토리얼을 손으로 작성하고 있는 경우는 없어요. 오히려 팩토리얼이 어떤 라이브러리나 모듈에 있는지 어떻게 사용하는지 익히는 것이 뭔가를 만드는 데 훨씬 큰 도움이 되어요.
길찾기 알고리즘이나 이진 트리 탐색 같은 건 지적 유희로는 좋겠지만 네비게이션 회사 같은 데 입사하지 않는 한 아마 평생 그 코드를 짤 일은 없을 꺼에요.

두번째, 오히려 더 큰 문제라고 생각하는 건, 코딩테스트가 일반화되고 풀이가 많아질 수록, 자신이 똑똑하다고 착각하게 되는 점이에요.

원래 공부의 본질은 무언가 깨달음을 얻는 것이에요. 이 깨달음을 통해 "같은 문제"가 아닌 "비슷한 상황"에서의 해결책을 찾을 수 있는 통찰력을 얻는 거죠.
하지만 최근 코딩 테스트 문제와 그 답을 올리는 일부 사람들의 글을 보면 꼭 그렇지만도 않은 것 같아요. 그저 많은 문제를 풀었다고, 정답을 외웠다고 기뻐하고 있어요.
깨달음 없이 특정한 패턴의 문제에 대해 해답을 외우고 있다고 해서 "똑똑해지는 것"일까요? 아니면 그저 코딩기계를 만들어내고 있는 것일까요?

중고등학교때 시험을 위한 공부를 하듯이 많은 문제를 풀어서 높은 점수를 받은 사람이 개발을 잘 할 수 있다면 좋겠어요.
그렇지만 인생은 만만하지 않답니다. 이게 가능하다면 개발자의 역할은 기계를 대신해서 코드를 치는 직업밖에 안될 꺼에요.

저는 다양한 경험이 다채로운 생각을 만든다는 점에서 최대한 많은 것을 해보라고 장려하지만 문제를 풀고 점수를 높이 받는 것에 촛점을 맞추는 것. 즉 "코딩"이 아니라 "테스트"에 더 방점을 두는 것은 좋지 않다고 생각해요.

코딩 테스트는 어디까지나 "정"이 아니라 "부"가 되어야 해요. 서류 심사 및 면접만으로 개발자의 실력을 판가름할 수가 없으니 코딩 테스트를 통해 확인하자.. 정도면 괜찮을 것 같아요.

하지만 코딩 테스트의 결과로 취업/이직의 당락을 결정하는 것이라면, 여러분은 안전한 대신 더 큰 기회를 놓칠 수도 있지 않을까요?

profile
스타트업에 관심이 많은 10 + n년차 웹 개발자. 자바 스프링 (혹은 부트), 파이썬 플라스크, PHP를 주로 다룹니다.

12개의 댓글

comment-user-thumbnail
2021년 4월 3일

취준하는 입장에서 보면 공감되네요!

포트폴리오와 이력서에는 실무능력을 얼마나 잘 해낼수 있는지 나타내야 하는데

코테를 공부하다보면 그거랑 동떨어져있다는 생각이 많이 들어요

1개의 답글
comment-user-thumbnail
2021년 4월 6일

동일한 생각입니다. 이직 준비를 할 때도 늘 몇 개월은 코딩테스트 준비에 할애하게 되는 것 같네요. 심지어 실무에 사용하는 언어가 테스트 시에 시험언어로 선정되지 않아서 실무에서는 사용하지도 않을 C++이나 파이썬 문법을 다시 들여다봐야하는 것도있구요. 그 시간에 차라리 포트폴리오나 코드 리팩토링을 하고싶은데 참 아까운 시간이라는 생각이 드는 건 어쩔 수 없는 것 같아요.

1개의 답글
comment-user-thumbnail
2021년 4월 6일

늘 하던 생각인데 이렇게 한번더 읽으니
내가 아주 잘못된 생각을 하는건 아니구나 싶네요 좋은글 잘읽고 갑니다:)

1개의 답글
comment-user-thumbnail
6일 전

구독과 좋아요가 있다면 박고 가겠습니다.

1개의 답글
comment-user-thumbnail
1일 전

반대로 회사에서 1000개의 이력서가 들어왔을때 그걸 다 보는건 쉽지 않으니
필터링 과정을 추가하여 그 수를 줄이는 목적이 있겠죠!
코딩 테스트를 잘하는 사람은 대체로 실무를 잘한다는 믿음아래서 말이죠!
물론 제가 그 필터링을 통과 못하지만요 😨...

1개의 답글