[취업] 2022 하반기 백엔드 취업회고 : 14번의 면접 그리고 취뽀 - 3 (코딩테스트)

su_y2on·2023년 2월 18일
43

취업

목록 보기
10/14
post-thumbnail

14번의 면접 그리고 취뽀 - 3 (코딩테스트)

🤓코딩테스트

코딩테스트는 개발자 취업에서 매우 중요하고 생각한다. 요즘 대부분의 기업에서는 코테를 통과하지 않으면 내가 열심히 준비한 프로젝트와 CS지식을 뽐낼 기회조차 주지 않는다. 백준 플레이상의 알고리즘 장인들의 후기들을 나도 많이 보면서 준비했지만 나는 그에 비하면 정말 부족하다고 생각하기 때문에 이 부분은 간략하게 작성해보려고한다.

하지만 확실한 것은 대부분의 기업코테는 노력으로 가능하다는 것이다. 따라서 알고리즘 초 고수들을 보며 나는 못할 것이라고 낙담하지는 말자.






💎코딩테스트를 준비하며 느낀점

언어를 선택하자

먼저 내 주력언어를 결정해야한다. 백엔드 개발자는 주로 C++, JAVA, Python으로 결정을 하곤하는데 각각 장단점이 있다. 이 부분에 대해서는 많은 비교자료들이 있기때문에 찾아보고 결정하면 된다. 중간에 바꾸지 못할 건 없지만 처음부터 잘 선택해서 쭉 가는것이 아무래도 베스트이다.

나는 Python으로 주력언어를 정했고 후회한적은 없지만 아무래도 알고리즘 공부를 하다보면 언어에 익숙해지고 언어에 대해 공부할 기회가 많아서 JAVA로 했다면 어땠을까 라고 종종 생각한적은 있다.



플래폼의 특성을 파악하자

언어를 선택했다면 온라인 저지 플래폼을 선택하게 되는데 이 부분은 언어와 달리 특성을 이용해서 그때 그때 필요한 것을 적절하게 사용하면 좋다.

나는 이제까지 백준, 리트코드, 프로그래머스를 사용해봤으며 내가 느낀 각자의 특성은 아래와 같다.

  • 백준 : 문제집에 질 좋은 문제들이 모여있어 좋고, 삼성코테기출을 대비할 때 쓰게 된다. 또한 알고리즘 대회에서 주로 백준을 많이 이용한다. 티어를 올리는 즐거움이 있다. 무슨테케에서 틀린지 보여주지 않아서 왜맞틀을 자주 외치게 되지만 실력향상에 도움이 된다..

  • 리트코드 : 영어사이트로 해외취업을 준비중이라면 추천한다. 커뮤니티가 훨씬 크고 문제마다 discussion이라는 메뉴가 있는데 여기서 질 높은(?) 대화들이 오간다. 틀린테케를 볼 수 있어서 고민할 기회를 잃을 수 있다.

  • 프로그래머스 : 취준막바지에 제일 많이 썼다. 고득점 kit가 유용하고 SQL문제들도 좋다. 한국 기업들은 대부분 프로그래머스로 코테를 보기때문에 적어도 코테 일주일 전에는 익숙해지면 좋다. 카카오 기출이 다 있어서 대비할 때 쓰게된다.



질 그리고 양

내가 추천하는 공부방법은 시간적 여유가 있다면 먼저 문제 양보다 고민을 해보는 시간을 충분히 갖는 것이다. 자료구조와 알고리즘은 연결되게 되는데 이 부분에 대해 하나씩 이론을 익히고 해당하는 문제들을 풀어보면서 왜 문제를 해당 자료구조 혹은 알고리즘을 이용해서 풀어야하는지 고민하는 시간을 가져보자.

이렇게 하면 당장은 실력이 늘지 않는 것 같지만 나중에 본격적으로 취준을 할 때 이런시간을 갖기 어렵기 때문에 추천하는 방법이다. 이렇게 한번정도 돌리고 조금씩 문제양을 늘려나간 뒤에 코테 직전에는 하루에 한두문제씩 풀면서 폼을 올려놓자

또한 이때 했던 고민들이 면접에 도움이 될 때가 종종있다. 나는 면접에서 BFS로 문제를 풀때 어떤 점을 고려해야하나요?, 퀵소트가 N^2과 NlogN의 시간복잡도를 갖게되는 경우와 왜그렇게 되는지 설명해보세요 등의 질문을 받았었다.



선생각 후풀이

알고리즘은 생각하는게 90이고 코드는 그냥 그것을 옮겨적는 도구일뿐이라는 말을 나는 많이 들었다. 그런데 생각을 하고 풀려고해도 뭔가 잘 정리가 되지 않고 뭘 생각해야할지조차 몰라 일단 하고보자 라는 생각으로 코드부터 치게됐다.

하지만 실력이 조금씩 늘면서 나중에는 종이에 일단 어떻게 풀지 대략적으로 다 적어놓고 코드로 옮기는 일이 늘어났다. 그리고 이렇게하고난 후에는 나도 선생각 후풀이에 매우 동의한다.

물론 처음부터 하긴 어렵다. 알고리즘 이론과 풀이경험이 덜 쌓여서 그렇다고 생각한다. 나는 카카오나 삼성코테 같이 호흡이길고 생각을 많이 해야하는 문제들을 풀면서 이부분이 많이 늘었다. 특히 삼성코테는 지켜야할 사항들이 너무 많고 복잡해서 필기가 필수고 중간에 틀리면 방향을 다시 고칠 시간도 없어서 꼭 삼성에 지원하지 않아도 문제풀이를 추천한다.



트렌드를 파악하자

코테에도 트렌드가 있다. 처음부터 트렌드만 쫓아 단편적으로 공부하는 것은 추천하지 않고 기본기는 단단히 그리고 좀 넓게 다지고 코테에 가까워질수록 전략적으로 트렌드에 맞는 문제들을 푸는 것이 좋은 것 같다. 내가 한창 코테를 칠 때는 완탐으로도 풀 수 있지만 시간초과가 나서 그것을 어떻게 하면 효율적으로 풀어낼지에 대한 문제들이 많이 났다. 그리고 문자열을 조작해서 푸는 문제들도 많이 나왔다.

트렌드는 시간이 지나면서 조금씩 변하기도 하지만 회사마다 차이를 보이기도 한다. 따라서 취준시기에 전체적인 트렌드와 지원하는 회사마다의 트렌드를 모두 파악하면 좋다.



스터디를 활용하자

나는 알고리즘에 있어서는 스터디를 좀 강력추천하는 편이다. 이유는 두가지인데 하나는 강제성이고 다른하나는 다양한 풀이이다. 그리고 가능하다면 나보다 좀 실력있는 사람들이 좋다. 실력있는 사람들의 풀이와 그 과정을 듣다보면 빨리 늘기 때문이다. 아니면 비슷한 사람들과 함께 하는 것도 좋다.

문제를 푸는 것도 중요하지만 설명하는 시간을 모두 가지면 좋은 것 같다. 설명을 하다보면 시간이 정말 빨리가기 때문에 2-3명이 적합했던 것 같다. 그리고 같은 언어로 하는 사람이 있으면 좋다. 언어마다 문법이 다르다보니 다른 스킬들이 있는데 이를 서로 공유할 수 있기 때문에다.

나는 코테가 얼마 남지 않았을 때는 2-3명이서 시간을 재고 문제를 같이 푼다음에 해설까지 연달아 한적도 있고 평소에는 각자 문제를 풀어오고 모여서 1시간반정도 한문제씩 설명하는 시간을 가졌다. 같은 문제를 풀더라도 신기하게 똑같은 풀이가 나오는 경우가 별로 없다. 어려운 문제는 하나하나 집어가며 같이 되집어보는 시간을 가졌다.



좋은 풀이를 많이보자

온라인 저지 플랫폼마다 조금씩은 달라도 모두 풀이를 공유할 수 있는 기능들이 만들어져있다. 문제를 맞더라도 다른 사람의 풀이를 꼭 보자. 특히 혼자공부를 한다면 무조건 보자. 나는 제일 랭크가 높은 풀이부터 살펴봤다. 너무 마이너하게 풀었다거나 나라면 절대로 떠올릴 수 없을 만큼 감탄이 나오는 풀이들도 있는데 그런 것은 그냥 지나갔고 어느정도 이건 연습해보면 되겠다 싶은 것들을 익히며 내것으로 만들었다.



0개의 댓글