본문 바로가기
Development/log

개발자가 코딩테스트를 준비해야 하는 이유 (feat. 자바스크립트 코테 강의 추천)

by jojo 2023. 3. 30.

 

왜 기업은 코딩테스트를 볼까? 코테푸는 게 개발에 도움이 될까?

실제 내가 코테에 발을 들이기 전에 들었던 생각이다. 

이 글은 내가 코테 문제를 풀면서 배우고 느꼈던 것을 정리하는 글이다. 

 

우선 나는 코테 고수가 아님을 밝힌다! (이 세상엔 고수가 너무 많다...)

프로그래머스 level 2를 기준으로 정답률이 60% 정도 되는 것 같다. 5문제 풀면 3문제는 맞추는 정도다. 처음 문제를 풀기 시작했을 때는 level 2 문제는 평생 풀 일이 없겠다고 생각했을 정도로 자신이 없었다. 그때는 단지 취업을 목적으로 문제를 풀기 시작했다면 지금은 심심할 때 프로그래머스 홈페이지를 들락날락할 정도로 문제 푸는 것 자체를 좋아하게 되었다. 이제는 매일 시간을 들여 코테 문제를 푸는 것이 하나의 습관으로 자리잡았다.

 

현재 참여하고 있는 1일 1문제 코테 스터디

 

다음으로 내가 자바스크립트로 코테를 준비한 방법에 대해서 얘기해보고자 한다.

제일 처음으로 자바스크립트로 설명하는 알고리즘 강의를 수강했다. 유데미에서 진행하는 강의였고 가격이 비싸지 않아 부담이 없어 좋았다. 모든 강의가 영어로 진행된다. 자막을 제공하기 때문에 대부분의 내용을 이해할 수 있지만, 간혹 자막이 실제 내용과 다르거나 한글자막 자체를 이해할 수 없는 경우가 있었다. 한 때는 자막을 끄고 강의를 듣는 게 더 이해가 잘 된 적도 있었던 것 같다.

모든 강의를 다 듣지는 않았지만 빅오표기법, 재귀, 정렬과 같은 기초 지식들을 세세히 설명해 준 점이 좋았다.

나의 평가: ★★☆☆☆

 

두 번째로 들었던 강의는 인프런의 제주코딩베이스캠프 Code Festival: JavaScript 100제이다. 

100개의 문제를 자바스크립트로 해결하는 커리큘럼이다. 내용이 과하게 어렵지 않기 때문에 입문 강의로 적절하다. 

한 가지 아쉬운 부분을 뽑자면 유형에 대한 분류 없이 100문제를 푸는 식이어서 내가 원하는 파트를 연습하기에는 조금 어려움이 있었다. 

나의 평가: ★★☆☆☆

 

가장 추천하고 싶은 강의이다. 홍보대사처럼 스터디원들과 주변 지인들에게 추천하고 다녔다. 인프런에서 수강 가능하다. 

순서대로 모든 강의를 수강하기보다는 특히 빈출 되고 중요한 파트에 대해서 먼저 수강하는 방법을 더 추천한다.

개인적으로 DFS, BFS 파트가 도움이 많이 되었다. 자바스크립트 언어로 DFS, BFS를 구현하는 것에 막막함을 느끼던 차에 이 강의를 수강하고 지금은 가장 자신 있는 파트가 되었다.

한 가지 아쉬운 것이 있다면 강사님이 알려주시는 자바스크립트 코드가 개선할 점이 분명 있다는 것이다. 이 부분은 스터디를 하면서 같이 개선했던 부분이다. 스터디에 관련한 내용은 뒤에서 더 설명하겠다. 

나의 평가: ★★★★☆

 

다시 처음의 질문으로 돌아가보자. 코테푸는 게 개발에 도움이 될까?

결론적으로 코테준비는 개발에 도움이 된다! 는 게 나의 결론이다. 

가장 도움이 됐던 부분을 두 가지로 얘기할 수 있을 것 같다. 

첫 번째는 문제를 해결하는 자세에 대한 부분이다. 코테 한 문제를 풀려면 문제와 제한사항들을 이해하기 위해 최대한 노력하고, 동시에 문제를 해결할 방법을 구상해야 한다. 당장 내 눈앞에 있는 문제를 해결하기 위해 최소 1시간에서 최대 3시간까지 집중하는 경험이 실제 프로젝트에서 개발하면서 문제를 해결하는 것과 유사하다고 생각한다. 코테를 풀기 시작한 이후로 개발하면서 마주치는 에러에 대해 더 오랜 시간 동안 끈질기게 물고 늘어지게 자세를 가지게 되었다. 

두 번째는 자바스크립트 언어를 더 잘 사용하게 되었다. 자바스크립트는 정말 많은 메서드를 제공한다. 문제를 풀면서 map(), reduce(), trim(), filter() 등의 메서드를 활용하는 경험을 할 수 있었다. 처음보는 메서드를 이해하고 내 코드에 활용해보는 경험을 한다면 그것이 내가 가진 하나의 무기가 되어서 문제를 풀 때 필요한 메서드를 바로바로 떠올릴 수 있게 된다. 

 

코테와 관련하여 또 한 가지 꼭 추천하고 싶은 것은 코테 스터디에 조인하는 것이다. 주로 인프런에 스터디를 모집하는 글이 많이 올라온다. 

만약 당장 원하는 스터디가 없다면 직접 만드는 것도 좋다. 스터디원 모집글에 스터디 운영계획를 상세하게 작성하면 생각보다 많은 사람들이 지원하고 그 중에서 실력과 열정을 가지신 분과 팀을 꾸리는 것도 좋을 경험이 될 것이다.

문항수와 목표시간을 함께 정하고 같이 풀면 실제 코테를 보는 것과 유사한 경험을 할 수 있다. 또한 문제 푸는 것에서 그치는 것이 아니라 서로의 코드에 대한 피드백을 나누면서 내가 미처 발견하지 못한 내 코드의 허점을 알게 된다. 실제로 나는 변수를 선언할 때 const가 아닌 let를 남발하는 나쁜 습관이 있었는데 스터디원분들의 지속적인 피드백으로 재할당이 필요한 경우가 아니라면 반드시 const로 변수를 생성하도록 습관을 개선했다. 

개발자들의 최대 난제(?)인 변수 네이밍 같은 경우도 다른 분의 것을 차용하거나 더 좋은 변수명에 대해 함께 이야기 나눌 수 있었다.  

 

 

스터디원들과 함께 사용했던 repository

 

여러 사람들과 스터디를 하면서 나보다 월등히 잘 푸시는 분들도 많이 뵀지만 코테에 대한 막연한 두려움과 막막함을 가지신 분들도 많았던 것 같다. 그런 분에게 이 글이 도움되길 바란다. 문제 또 풀러 가야지!

댓글