코딩 테스트를 방금 마무리해서 어떤 심정으로 테스트에 임했고, 어떤게 부족했는지를 적어나갈 것이다. 제목은 코딩 테스트 회고지만 그냥 지금까지의 전체적인 기록이다. 행여나 진행상황이 더 나아간다면 내용이 추가될 것이다.


서류

들뜸

최근 줌인터넷에 지원했는데 감격스럽게도 서류는 통과가 되었다. 큰 기대를 안했던 이유는 기업에 이력서를 제출하는 것은 난생 처음이었고 수상기록이나 마땅히 경쟁력있는 무언가 없었다. ‘내가 창업자라면 나를 뽑지 않을까?’ 라는 막연한 생각은 해왔지만 역시 증명할 무언가(수상기록, 실사용이 가능하고 사용자가 존재하는 서비스 or 소프트웨어)가 정말 중요한 것 같다. 자기소개서도 첨삭없이 직접 작성한 것이라 살짝 불안한 마음은 들었다. 자기소개서 항목은 아래와 같다.



  • 회사에 지원할 때 가장 먼저 보는 것
    • 이 항목에는 그간 살면서 해왔던 나의 생각을 정말 솔직하게 풀어적었기에 큰 어려움이 없었다. 나는 이제껏 이기적으로 오롯이 나만 생각하며 살았다. ‘니가 하고 싶은 일’에 대한 질문을 끈임없이 던져왔고 지금도 여전히 그렇다고 작성했다.
  • 살면서 실패 또는 좌절했던 경험
    • 이 항목은 작성하기가 매우 난감했다. 난 살면서 크게 실패한 경험은 없다. 최근 하나가 생겼는데 인공지능에 대한 과제다. 인공지능은 감히 내가 건드릴 만큼 쉬운 주제는 아니었다. 하지만 이 과제는 해결하지 못한 과제라 작성할 수 없는 주제였다. 그래서 ‘대실패’까진 아니더라도 ‘실망’정도의 경험을 바탕으로 작성했다.
  • 지원분야에 본인이 적합한 이유
    • 이 항목에 위에서 겪었던 인공지능에 대한 이야기를 풀어갔다. 아직 여전히 진행형이라고… 이 항목에는 회사에서 원하는 인재상에 포커스를 맞추어 작성했다.
  • 본 회사에서 이루고 싶은 꿈
    • 이 항목에는 단기적인 목표와 장기적인 목표를 각각 나열했는데, 내가 생각해도 글을 참 잘 썻지 싶다. 단기적인 목표는 커뮤니케이션 능력에 대한 이야기를 장기적으로는 개발자로써의 야망을 서술했다.


코딩테스트

코딩테스트는 너무 불안했다. 필자는 백준을 가끔 풀어보는데 조금만 난이도가 올라가도 시간초과같은 오류가 자주 발생한다. 즉 시간복잡도나 공간복잡도에 대해서 효율적인 알고리즘을 작성하는 지능이 부족한 것 같다. 그래서 이번엔 최대한 자료구조를 복습하고 다양한 솔루션을 생각하고자 공부를 한 뒤 시험을 치루고 싶었다.

하지만 공부를 해도 끝이 없고, 단기적으로 공부를 한다해도 적용하는데 어려움이 있기 때문에 우선 지금 실력으로 문제를 풀고 시험을 망친다면 스스로를 자책하며 코딩테스트만 주구장창 공부할 생각이었다. 안내 문서에는 https://app.codility.com/programmers/ 에서 간단한 사용법을 알아보라고 되어있어서 들어갔다.

들어갔는데 왠 걸 문제가 영어였다. 하… 한글로 된 문제도 어려운데 영어라… 근데 잘 살펴보니 인풋과 아웃풋을 보고 문제를 보면 약간 정처기의 전산영어처럼 문제를 이해하는데 큰 어려움이 있는 것 같지는 않았다. 그리고 데모 문제도 하나 있어서 풀어보았다.

이 정도 난이도로 나오려나?

솔직히 데모나 테스트 문제 수준으로 나왔다면 성능을 올리는데 신경쓸 수 있겠거니 싶었다. 문제가 쉬우니까 최대한 성능만 생각하고 풀면 되는 것 아닌가? 그런데 예상과 틀렸다. 솔직히 어려웠다고 해야할지 쉽다고 해야할지 모르겠다.

  • 어렵다고 생각하는 이유 : 생소한 문제 유형과 영어라는 압박감
  • 쉬웠다고 생각하는 이유 : 어떤 문제인지는 파악이 되었다

문제를 전부 읽고 대충 이해하기로는 10분이 걸렸다. “아~ 이렇게~ 이렇게~” 하면 되겠구나 싶은 생각으로 코딩테스트를 진행했다. 내 머릿속에서 모니터로 나오고있던 코드들은 이미 시간 복잡도는 저리가라 식으로 나열되고 있었다. 알고리즘을 풀때는 최대한 A, B, C, D의 솔루션을 가지고 젤 좋은걸 선택해야 한다지만 제한시간이 있었기에 빨리 코드를 적기에 급급했다.

여하간 2문제는 빠르게 풀었지만 다른 2문제가 정말 문제였다. 인공지능을 공부할때의 기분 같았다. 머리론 이해가 가지만 모니터에선 커서만 깜빡이고 있었다. 뭔지 알겠는데 이걸 어떻게 코드로 구현할 수 있을까? 한 문제는 아예 성능은 신경끄고 정확도만 올리래서 나름 재밌었지만 다른 하나는 제시한 케이스에만 맞춘 함수가 된 것 같아서 아쉽다.

하… 솔직히 모르겠다. 전체적으로 다른 문제들도 제시된 케이스엔 다 통과됐지만 모든 경우에 맞춰진 것 같진 않다. 또 성능 역시… 공부하자…


필기시험 (9/5)

공부하겠다는 다짐 후 지속적으로 자료구조를 공부하고 있었다. 근데 그 와중에, 코딩테스트 합격을 통지받았다. 오… 마침 시험에 나온다는 것도 자료구조와 사용 언어의 기본… 오…

나 진짜 개발자 될 수 있는거 아닐까?

빗길

이 사진을 찍을때만 하더라도 “빗길을 뚫고 시험 잘봤다고 적어야지 ㅋㅋ”라고 생각한 나였지만… 컴퓨터 과학의 전체적인 문제가 등장한다. 한마디로 “너 공부 제대로 했어?”라는 문제들이 나왔다. 나름 열심히 공부한 편이라고 생각했지만 답을 적는 공간은 넓고 내가 쓴 답은 적었고 확실치 않았기에 헛공부를 했다는 생각이 들었다.

난 기초도 안됐으면서 장고니 노드니 설쳤던 걸 생각하면 정말… 부끄럽기 짝이 없다. 오늘부터 다시 처음으로 돌아갈 것이다. 자료구조를 다 공부하고 난다면 다시 처음으로 돌아가 언어론부터 컴퓨터 과학의 역사를 학습할 생각이다.

슬픔

읽을 책

  • 클린 아키텍처
  • 소프트웨어 장인
  • 파이썬 클린 코드
  • 인공지능을 위한 수학


1차 면접 (9/10)

맨날 망했다 망했다 노래를 불렀는데 여기까지 온 것은 운이었을까? 여하지간 여기까지 왔다는게 스스로 대견하다. 절대적으로 또한 심리적으로는 완벽한 지원자가 아니라 생각했지만 상대적으로는 나름 괜찮은 사람이었는지도?

기업에선 원하는 인재상과 원하는 실력이 있다. 떨어져도 속상해 할 필요가 전혀 없다. - Pope Kim -

면접에서 약간 아쉬운 점도 있었지만 후회되거나 응어리가 될 만한 것은 없다고 생각한다. 되돌아가도 결과는 똑같았을 것이다. 어떤 결과가 나오던 숙연하게 받아들일 것이다. 포프님의 말씀이면 언제나 옳다… 지나친 자기 합리화인가…?

면접에 가기전에 매우 심란하게 고민했던 것은 복장에 대한 걱정이었다. 실제로 면접 보기 전날 회사에 미리 파견 나가서 ‘직원들의 드레스 코드를 살펴보고 올까‘하는 계획을 세웠지만 늦잠을 자는 바람에 실패하고 말았다. 여하지간 면접 전날 저녁까지 ‘옷을 새로 사러가? 말아?’ 하는 고민으로 많은 시간을 보냈다. 공부나 할 걸 결과적으로 편한옷을 입고오라는 멘트를 수용하고 편하게 입고 갔는데 출근하시는 직원분들의 복장이 매우 자유로웠고 같이 면접을 봤던 분들도 편한 복장이라 안심이었다 :)

이름표

질문의 수준은 매우 어려운 것은 아니었다.

  • 그동안 해봤던 프로젝트(들 중에 하나)
  • 기본적인 컴퓨터, 프로그래밍 지식
  • 최근 읽은 기술서적
  • 사용해 본 디자인 패턴

그 외에도 여러가지가 있었지만 기억이 안나서 회사의 지적 재산권을 보호하는 차원에서 밝히지 않을 것이다!

WRITTEN BY

배진오

소비적인 일보단 생산적인 일을 추구하며, 좋아하는 일을 잘하고 싶어합니다 :D
im@baejino.com