우아한테크코스 4기 최종합격 후기
정말 감사하게도 우테코 4기에 합류할 수 있게 되었습니다. 최종 테스트와 합격 발표 사이 2주 정도 되는 시간 동안 마음이 붕 뜬 상태로 지냈습니다. 최종 합격 여부가 자꾸 신경 쓰여서 공부가 손에 잡히질 않더라고요. 개발 관련 공부가 아얘 집중이 안됐습니다. 여태 나름 멘탈이 강하다고 스스로를 평가했었는데… 그만큼 간절했나 봅니다.
최종 코딩 테스트를 치고 나서 든 느낌은 ‘나쁘지 않게 잘했다’였습니다. 비록 예외처리 하나를 빼먹긴 했지만 미션의 대부분의 요구사항을 구현했고, 코드도 결코 좋은 코드라고 할 순 없지만 그래도 미션의 프로그래밍 제약사항과 프리코스 기간의 피드백 사항에서 많이 벗어나지 않았다고 생각했기 때문입니다.
뭐 개인적인 감상 같은 건 차치하고 두 번의 프리코스 과정을 거치면서 느낀 점들을 정리해보려고 합니다. 작년에는 탈락 후에 가슴이 너무 아파서 제대로 된 후기를 작성하지 않았는데, 이번에는 좀 공을 들여서 앞으로 우테코에 지원하실 분들에게 조금이나마 도움이 될 수 있는 글을 작성해보려고 합니다.
우선 우테코 크루 선발 과정은 다음과 같이 진행됩니다.
- 지원서와 1차 코딩테스트 -> 1.5 ~ 2배수의 인원 선발
- 3주간의 프리코스
- 최종 코딩테스트
지원서와 1차 코딩테스트
가장 중요한 단계입니다. 정확한 경쟁률을 발표한 적은 없지만 프리코스 과정을 1.5 ~ 2배수 정도밖에 선발하지 않기 때문에 아마 경쟁이 치열할 것으로 예상됩니다. 우아한테크코스 지원 페이지에서 어떤 질문 항목이 있는지 미리 확인해볼 수 있습니다.
(1차 합격을 두 번 해본 사람으로서...) 제가 생각하기에 가장 중요한 것은 학습을 지속할 수 있는 끈기가 있는가 그리고 개발에 얼마나 진심인가를 구체적인 사례로 풀어쓰는 것이라고 생각합니다.
“최소 1년을 투자해 결과물을 만들어낸 경험 “ 같은 경우는 굳이 개발 관련 이야기가 아니어도 됩니다. 저도 개발 관련 이야기를 쓰지 않았습니다. 다른 합격자 중 한 분은 재수생활 시절 이야기를 쓰셨다고 하더라구요. 근데 “군대에서 꾸준히 운동해서 몸을 만들었다” 이런 건 쓰지 마세요. 우테코 4기 온라인 설명회를 보시면 이유를 알 수 있을 겁니다. 중요한 건 간절한 무언가를 위해서 꾸준히 시간을 투자해 성과를 이뤄낸 경험을 구체적인 사례를 중심으로 어필하는 것입니다.
“프로그래머가 되려는 이유는 무엇인가”라는 문항에서 왜 개발자가 되려는 것인지 잘 풀어쓰시면 됩니다. 이때 “왜 굳이 개발이어야 하는가”를 중점적으로 고민하시면 좋을 것 같아요. 예를 들어, “무언가를 만들어서 사람들에게 도움을 주는 것을 좋아한다”라면 굳이 개발이 아니어도 다른 것들이 많을 텐데 (방송국 pd, 크리에이터 등) 왜 굳이 굳이 개발이어야 하는지를 스스로 고민을 해보고, 특히 가장 중요한 건 역시 구체적인 사례를 함께 들어서 이를 증명해야 합니다. 사람들에게 도움이 되는 소프트웨어를 만들고 싶어서 개발자가 되려고 한다고 말하면서 정작 스스로 그런 소프트웨어를 만들어본 경험(혹은 시도해본 경험)이 없이 피상적인 단어들로만 글이 채워져있다면 설득력이 떨어진다고 생각합니다. 지원서를 읽는 사람 입장에서도 어떠한 감동도 느낄 수 없겠죠. 항상 구체적인 사례를 중심으로 항목을 채워나가시길 바랍니다.
또 말 뿐만 아니라 사례를 증명할만한 자료도 있다면 첨부하는게 무조건 좋습니다. 내가 거짓말을 하는게 아니라는 걸 증명할 수 있으니까요. 저 같은 경우 구글 독스에 지원서에 적은 활동과 그에 대한 결과물들을 정리해서 링크로 제출했습니다.
주관적인 생각입니다만 1차 코딩 테스트의 경우 자소서보다는 중요도가 떨어지는 것 같습니다. 그냥 커트라인만 넘으면 된다는 마인드로 준비하시면 될 것 같아요. 저 같은 경우 이번 4기에는 올솔을 하긴 했습니다만, 작년 3기 지원 때는 3문제를 아얘 손도 못 대고 제출했는데 1차 합격을 했었습니다. 난이도는 프로그래머스 기준으로 1 레벨 수준 1~2 문제, 3 레벨 수준 1~2 문제, 나머지는 2 레벨 수준으로 구성되는 것 같아요. 근데 이건 매년 달라지는 것 같아서 확실하지는 않습니다.
프리코스
우아한테크코스 지원 과정의 백미라고 할 수 있는 프리코스입니다. 1차 코딩테스트와 자소서를 기준으로 합격 인원의 1.5~2 배수 정도의 인원을 선발하여 3주간 프리코스를 진행합니다. 정말 좋은 과정이라고 생각합니다. 최종 선발에서 탈락하더라도 이 과정을 거치는 것만으로도 앞으로의 공부 방향이 많이 달라질 것이라고 생각해요. 실제로 제가 그랬습니다. 좋은 코드란 무엇인가, 객체지향적인 코드는 어떻게 작성하는가, 테스트란 무엇인가 등등, 이전까지 들어보지도 못했고 고민도 하지 않았던 것들을 프리코스를 거치고 나서부터 관심을 갖고 공부하기 시작했습니다.
매주 깃헙으로 정해진 미션을 구현하여 제출하고 전체 피드백을 메일로 받는 방식으로 진행됩니다. 총 세 번의 미션 제출이 있고 1, 2주 차 미션은 매년 같습니다. 3주 차 미션의 경우 매년 바뀝니다. 우테코 깃헙에서 미션들과 이전 지원자들의 코드를 볼 수 있지만, 미리 보는 것을 추천드리지는 않습니다. 최대한 스스로의 힘으로 구현을 해봐야 최종 테스트를 잘 치를 수 있습니다.
프리코스 기간에 읽어보면 도움이 될만한 책으로는 조영호 님의 ‘객체지향의 사실과 오해’와 로버트 C 마틴의 ‘클린 코드’, ‘소트웍스 앤솔러지’라는 책의 ‘객체지향 생활체조 9가지’ 파트가 있습니다. ‘객체지향 생활체조 9가지’라고 구글에 검색해보시면 정리해놓은 블로그가 많습니다.
최종 코딩테스트
선발 과정에서 가장 중요한 단계(주관적!)입니다. 사실 뭐라 드릴만한 팁이 없습니다. 그냥 잘하면 돼요. 3기 지원 때는 최종 미션을 거의 구현을 하지 못했습니다. 당연히 탈락했고요. 아무래도 자바에 익숙한 사람들이 더 유리한 것 같습니다. 프리코스 과정에서 자바를 처음 배워서 최종 미션까지 통과하시는 분들도 있던데, 정말 리스펙합니다. 위에 링크로 첨부한 우테코 깃헙에서 이전 기수의 최종 미션들을 확인할 수 있습니다. 프리코스 기간 동안 틈틈이 구현해보면서 감을 익히는 것을 추천드립니다. 실제 시험에서는 그동안 받았던 피드백들을 최대한 반영하도록 신경 쓰면서 구현하셔야 해요.
최종 미션을 두 번 본 입장에서 느낌을 말씀드리면, 꼭 1~3주 차에서 생각하지 못했을 만한 요구사항이 하나씩 붙습니다. 예를 들어 3기 최종 미션에서 JGrapht 라이브러리를 사용해서 최단거리를 구하라고 하는 것이나, 4기 최종 미션에서 파일 입출력을 이용하는 것과 같이, 그냥 차분히 생각하고 해결하면 어렵지 않지만 막상 시험에서 맞닥뜨리면 당황해서 시간을 많이 뺏길 수 있는 깜짝 요구사항들이 등장하는 것 같습니다. 당황하지 않는 것이 가장 중요합니다. 심호흡 한 번하고 천천히 해결하면 어렵지 않습니다.
개인적으로는 요구사항을 충분히 분석하고 나서 코드를 작성하는 것을 추천드립니다. 조급해서 무작정 코드부터 작성하기 시작하면 반드시 중간에 후회합니다. 요구사항을 잘못 이해하거나, 요구사항을 충분히 분석했더라면 금방 구현했을 것도 헤매게 될 수 있습니다(제가 3기 최종 미션에서 그렇게 하다가 실패를 맛봤습니다). 최소 30분, 많으면 한 시간까지도 요구사항을 분석하고 설계하는데 시간을 투자할 것을 권유드립니다. 그게 가장 빠른 길이라고 생각합니다.
최종 테스트 이후
사실 최종 테스트를 마치고 나면 본인이 붙을지 떨어질지 어느 정도 감이 오실 겁니다. 저 같은 경우 3기 때는 시험 시작 후 3시간이 지나고 나서 탈락을 직감했고 틀리지 않았습니다. 4기 때는 솔직히 말씀드리면 ‘내가 떨어지면 누가 붙나’라는 약간 자만 섞인 생각을 했습니다. 그럼에도 불구하고 최종 테스트 이후 결과 발표까지 약 2주의 시간 동안 불안하고 신경이 쓰여서 다른 일에 집중을 잘 못했습니다. 지나간 커밋은 잊고 결과는 하늘에 맡기세요… 본인 시간 버리는 것입니다.
그리고 최종 테스트에서 탈락한다고 하더라도 너무 좌절하지 마세요. 1차 선발을 통과하고 최종 테스트까지 치른 것만으로도 정말 잘하신 거고 값진 경험을 하신 것입니다. 솔직히 최종 테스트 너무 어려워요… 프리코스 기간 동안 배운 것들 만으로도 충분히 이후에 좋은 방향으로 스스로 학습하실 수 있을 거라 생각합니다.
앞으로 우테코에 지원하실 분들에게 도움이 되는 글이었으면 좋겠네요. 궁금한 점 있으면 댓글로 남겨주세요. 그리고 웬만하면 전체 공개로 남겨주세요. 다른 분들에게도 도움이 될 수 있도록요. 긴 글 읽어주셔서 감사합니다.