ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 구글 STEP 인턴 준비 과정
    일기 2021. 6. 24. 21:56

    (일기 쓰듯이 적은 글이라서 두서도 없고 TMI 엄청 많습니다 😅)

     

     

    1. 지원 계기


    학교 컴공 홈페이지에 구글 인턴 모집 글이 올라와서 이건 놓칠 수 없는 기회다 싶어서 지원하기로 마음먹었다.

    2. resume 작성


    인턴 지원을 하기 위해서 resume를 작성해야 했는데, 시험기간이랑 겹쳐서 정말 힘들었다. 일단 먼저 구글에서 레쥬메 양식을 검색해서 대충 어떻게 써야 하는지 파악했고, 구글 인턴 레쥬메 예시도 검색해서 찾아보았다. 그러다가 step 인턴 레쥬메를 찾고 싶어서 여기저기 찾아보다가 링크드인을 발견했다. 링크드인에서 step 인턴을 검색하면 합격 글 올린 사람들이 거의 다 본인 레쥬메를 올려두었다. 그래서 그렇게 찾은 레쥬메 4~5장 정도를 참고해서 작성했다.

     

    3. 코딩 테스트 준비


    지원 후 기다리니까 코딩 테스트에 응시하라는 메일이 왔다. 그 당시에 나는 코테 준비/알고리즘 공부를 본격적으로 해본 적이 없었고, 특히나 C언어 이외에 다른 언어로 자료구조/알고리즘 공부를 해본 적이 없었다. 처음에는 그냥 C로 준비를 해보려고 했는데 코테 응시에는 적합하지 않다고 생각했다. 그 외에 내가 할 줄 아는 언어는 파이썬, 자바였는데 파이썬은 개인적으로 잘 안 맞는다고 생각했고 그나마 재밌게 배우고 있던 자바로 코테를 보기로 결정했다. 아까도 말했듯 코테 준비를 해본 적이 없었기 때문에 일단 자료구조 개념 먼저 복습해야 한다고 생각했다. (+ 자바로 구현하는 방법도) 그래서 자바 자료구조 책을 사서 준비했는데.. 돈 날렸다. 그냥 인터넷 보면서 공부하는 게 훨씬 낫다. 당시에 나는 자바를 아직 배우고 있는 중이어서 컬렉션 개념은 듣도보도 못했지만 그냥 마구잡이로 구글링하면서 연습했던 것 같다. 시험이 막 끝나고 며칠 뒤가 코테였기 때문에 알고리즘 문제는 풀 시간도 없었고... 자바로 코딩하는 연습만 했는데 어느덧 시험날이 다가왔다. 

     

    그래도 저학년 대상인데.. 풀 만 하지 않을까? 생각했지만 경기도 오산이었다. 당시에는 뭔가.. 모르겠어!! 그냥 머릿속이 하얬다. 아마 거의 노베에 처음으로 보는 코테라서 더 어렵다고 느꼈던 것 같기도. 뭔가 알고리즘 문제를 꾸준히 풀었다면 풀 수 있을 것 같기도 했다. 아무튼 어찌저찌 풀긴 했는데.. 총 두 문제 중에 첫 번째 문제는 테케 몇 개만 통과하고 두 번째 문제는 급히 뭐라도 써넣긴 했는데 그냥 미완성한 코드.. 안 푼 거나 다름없는 코드였다. ㅋㅋ;; 

     

    아.. 역시 구글은 만만치 않구나...라고 생각하며.. 솔직히 웬만하면 혹시나?! 하고 조금 기대했을 텐데 내가 생각해도 문제를 너~무 못 풀어서 그냥 될까 안 될까 생각도 안 하고 머릿속에서 인턴 지원이라는 기억을 지워버렸다.

     

    4. 인터뷰 준비


    그렇게 약 일주일 후 구글에서 인터뷰를 보자는 메일이 왔다! 코테 보고 시험 보느라 밀린 강의 청산하면서 삶의 의욕을 잃어버린 상태였는데 너무너무 놀랐다. 메일로 보내주신 참고 영상들을 먼저 보고 구독 중인 북클럽에 있는 프로그래밍 면접 책을 읽기 시작했다. 거의 후반까지 읽다가 이런 게 나올까 말까 아리송한 상태여서.. 그냥 그만두고 리트코드 문제를 풀기로 했다. 예전부터 구글 코테는 리트코드에서 준비한다고 들었던 것 같아서 내 머리 속에 리트코드가 엄청 믿을 만한 존재라고 여겨졌던 것 같다. 그 후는 기억이 잘 안 나는데 일단은 easy부터 풀었던 것 같다. 그러다가 리트코드에 있는 Top Google Questions 목록이 너무 보고 싶어졌고.. 그래서 그냥 프리미엄 한 달 결제했다. 다른 인터뷰 준비 사이트들은 다 연간 결제거나 더 비싸서 그나마 저렴한 리트코드를 결제하기로 했다. 아직 인터뷰를 보지 않아서 모르겠지만 프리미엄 꽤 괜찮은 것 같다. 어차피 준비 시간도 넉넉치 않은데 리트코드 내에 있는 구글 인터뷰 관련 문제들만 풀어도 실력 쌓기엔 충분할 것 같다. 사실 준비를 한다고 하긴 하는데.. 코테도 죽 쒔는데 내가 인터뷰를 잘 볼 수 있을까, 대체 나는 왜 통과된 걸까라는 생각에 자신감이 너~~무 떨어져서 며칠간은 많이 공부하지 못했다. 어차피 안 될 것 같고 무서워서 한 3일은 학교 수업만 듣고 게임하고 잠만 잤다. 그러다가 인터뷰 일정이 미뤄지고, 조금씩 정신을 차렸다. 이걸 보고 계시는 분들 중 혹시 회피하고 계시다면.. 뭐라도 해야 하지 않겠습니까..ㅠㅠ 그냥 닥치고 문제 많이 풉시다..

     

    그렇게 인터뷰 메일 받고 일주일 뒤부터 공부 감이 잡힌 것 같았다. 나는 1. 문제 풀이 시작 2. 도저히 안 풀리면 그냥 솔루션 확인 3. 솔루션 코드 받아적기 이런 식으로 공부했다. 그러다 리트코드에 동적 프로그래밍이 너~~무 많아서 원래는 공부 안 하려 했는데 짜증 나서 나동빈님 강의 듣고 쉬운 문제부터 또 풀어보고.. 했다.

     

    리트코드 문제만 계속 풀다가 인터뷰 이틀 전쯤에는 Geekforgeeks 사이트에 있는 구글 인터뷰 문제도 몇 개 풀어보았다. 일단 무료고 리트코드보다 더 쉬운 문제들이 많은 것 같다. 대신 테스트 케이스 몇 개 통과했는지 알려주지 않고 디버깅 기능이 없는 점은 조금 아쉬웠다.

     

    5. 인터뷰


    나는 인터뷰를 하루에 두 번 연이어서 봤다. 인터뷰를 위해서는 구글 meet이랑 코드를 작성하는 인터뷰 사이트에 접속해야 한다. 구글 인터뷰는 구글 독스를 이용해서 본다고 알고 있었는데, 알고보니 인터뷰 전용 페이지가 따로 있었다. 코드 하이라이팅이랑 들여쓰기 정도는 자동으로 돼서 구글 독스보다는 훨씬 괜찮았다. 따로 구글 독스에 코딩하는 연습은 할 필요 없을 듯.

     

    첫 번째 인터뷰는 영어로 진행되었다. 외국인 구글러일까봐 살짝 긴장했는데, 다행히 한국 분이셨다. 나는 토종 한국인이라 스피킹을 잘하지 못하는데, 한국 분이라서 더 편하게 아무 말이나 막 할 수 있었던 것 같다...😅 처음에 서로 짧게 자기소개를 하고, 문제를 풀기 전에 질문이 있냐고 물어보셨다. 근데 너무 긴장도 됐고... 문제 풀고 마지막에 질문해야 하는 건 줄 알고 없다고 해버렸다...^^;;; ㅠㅠ 그리고 바로 문제 풀이를 진행하는데, 무슨 문제인지 대충은 알겠는데 정말 대충만 알겠어서... 문제 이해를 제대로 하지 못했다. 문제가 리트코드 하드! 이런 느낌은 아닌 것 같은데, 그냥 머리가 새하얘져서 마지막까지 내가 제대로 풀고 있는 건지 모르는 채로 코드를 작성했다. 진짜 개노답... 처음에 정말 간단한 질문을 하셨는데 이마저도 답을 못해서 계속 정적만 흘렀다. 참다참다 인터뷰어분께서 힌트도 던져주시고 했는데.. 너무 아무것도 못하고 있으니까 많이 당황하셨던 것 같다. 그렇게 진짜 맞게 작성한 건지도 모르는 코드를 작성하니까 순식간에 면접이 끝났고, 마지막으로 질문 있냐고 물어보셔서 그제야 궁금했던 점 몇 개만 물어보았다.

     

    첫 번째 인터뷰가 끝나고 기가 너무 빨려서 다음 인터뷰 전까지 당 충전하면서 핸드폰만 막 만지작거렸다. 두 번째 인터뷰는 한글로 진행되었는데, 이번에는 스몰톡 없이 바로 문제 풀이를 시작했다. 처음과는 다르게 꽤 쉬운 문제였다.. 근데 정말 바보 같았던 게 오개념을 너무 당당하게 말해버렸다...^^ 미치겠다..~!!^^ 인터뷰어분께서 나중에 정정해주셔서 잘못 알았던 것 같다고 말씀드렸다. 흑....ㅠㅠ

    어쨌든 코드 작성을 마치고 디버깅 해보는데 오류가 너무 많았다. 내가 발견한 거 몇 가지를 고치긴 했는데 여전히 오류가 많았다(...) 그 뒤로는 시간이 없어서 인터뷰어분께서 직접 간단한 예로 디버깅하면서 오류가 생길 만한 지점을 살짝씩 던져주셨다. 그리고 마무리하면서 더 좋은 해결법을 알려주셨는데.. 나도 조금만 더 생각해보면 충분히 떠올릴 수 있는 해결법이라서 그렇게 먼저 코드를 짜지 못한 게 너무너무 아쉬웠다.ㅠㅠ 마지막으로 역시 궁금한 점 몇 가지를 물어보고 인터뷰가 마무리되었다.

     

    인터뷰를 하면서 느낀 점 몇 가지(엄청 많음)을 적어보자면...

     

    1. 구글에서, 또는 후기에서 말하는 인터뷰 팁이 정말정말정말 중요하다 - 제발... 적극적인 자세를 가지자.

    구글에서도 인터뷰 준비 팁을 알려주고, 인터넷 검색을 해보면 인터뷰를 본 사람들의 후기를 많이 찾아볼 수 있다. 여기서 공통적으로 나오는 팁은 (1) 질문 명확하게 이해하기, (2) 모르는 게 있으면 주저하지 말고 물어보기, (3) 버그 고치기(?) 이 정도인 것 같다. 그런 팁들을 읽어보면서 '뭐 당연한 거 아니야...?'라고 생각했고, 대충 어떤 식으로 진행이 되겠지~라고 머릿속으로 조금만 시뮬레이션 돌려보는 정도에만 그쳤었다. 인터뷰 보는 내가 알아서 하리라고 믿고...^^ 그런데 막상 인터뷰를 보니까 은근히 말을 마구 던지는 게 어려웠다. 일단 긴장도 했고, 인터뷰어분들 모두 정말 친절하고 멋진 분들이셨지만 비대면이라서 래포 형성도 힘들었고, 내가 말을 많이 하지 않으면 분위기가 너무나 고요해졌었다. 인터뷰어는 기본적인 단계만 제시해주고, 전체적인 인터뷰는 내가 이끌어가야 하는 느낌이었다. 인터뷰어들이 절대로 먼저 떠먹여주고, 진행해주지 않는다. 그래서 나 혼자 떠들면서 내가 얘기하는 게 맞는 건지 알 수도 없고 인터뷰어분의 반응도 알기 어려워서 조금 난감하기도 했다. 내가 진행자라고 생각하고 그냥 마구마구 자신감 있게 떠들자. 제발...

    말을 하지 않으면 인터뷰어가 내가 지금 어디서 막히는지 알 수 없다고 하는데, 이 말이 진짜 맞는 말이었다. 내가 너무 쉬운 부분에서 막히는 것 같고, 조금 더 생각해보면 될 것 같아서 나 혼자 끙끙 앓고 있었는데, 바보 같은 질문이어도 좋으니까 무조건!!!!! 말을 하는 게 훨씬 좋은 것 같다. ㅠㅠ 나는 구현에 필요한 메소드 하나가 헷갈려서 잠깐 또 혼자 생각하고 있다가 그냥 인터뷰어분께 메소드가 정확히 기억이 안 난다고 솔직히 말씀드렸더니 괜찮다면서 친절하게 알려주셨다. 기본기가 부족해보였을 것 같아서 조금 걱정되긴 하는데, 정적이 길어지는 것보다는 훨씬 나은 것 같다.

    그리고 질문에서 요구하는 의도를 파악하는 것 역시 정말정말 중요했다.. 인터뷰 준비를 하면서도 문제 풀기 전에 문제를 풀기 위해 필요한 조건들이나 입력 예시를 생각하는 연습을 하긴 했었는데, 솔직히 귀찮아서 대충(...) 생각하고 넘어간 적도 많았다. 이러면 안 됐는데!!! 아무리 인터뷰가 딱딱한 분위기가 아니어도 나 혼자 문제를 풀 때처럼 완벽하게 편안할 수는 없다. 인터뷰에서는 시간 제한이 있기도 하고, 인터뷰어분께서 자세히 알려주시지 않아서 진짜 쓸데없는 조건만...^^ 물어보고 넘어갔었는데, 이게 매우 큰 실수였다. 코드를 작성하기 전에 제발 여러 예시를 생각해보자. 

     

    2. 생각보다 인터뷰 시간이 짧다.

    인터뷰가 질문 이해하고 -> 알고리즘 생각하고 -> 그 다음에 최적화하면서 버그 고치고 끝! 이렇게 착착 진행이 될 줄 알았는데, 내가 느린 건지 코드를 다듬을 시간도 거의 없이 그냥 인터뷰가 끝이 났다. 이거는 내가 잘못한 건지 알 수 없어서 잘 모르겠지만... 좋은 알고리즘이 생각난다면 Brute Force는 이야기하지 말고 바로 그 알고리즘에 대해 이야기하면 좋을 것 같다. 일단 문제 이해가 더 중요한 것 같기도...

     

    3. 기본에 충실하자

    나는 기본적인 자료구조 개념은 알고 있고, 트리, 그래프, dp 같은 난이도 있는 문제를 푸는 게 가장 급한 불이라고 생각해서 난이도 중간인 문제만 마구잡이로 풀었었다. 리트코드나 Geekforgeeks에 있는 easy 문제들은 그래도 다 풀리길래 인터뷰에 이 정도 난이도로 나오면 뭐 대강 풀 수는 있겠지, 싶어서 내 기준 어려운 문제를 그냥 머릿속에 마구 쑤셔 넣었다. 그런데 인터뷰는 계속 말하지만 나 혼자 문제 풀 때와 같은 컨디션과 100% 같을 수는 없다. (나만 그런 거일 수도 있겠지만...) 쉬운 문제도 막상 인터뷰에서 말로 설명하면서 풀려고 하니까 마음만큼 제대로 풀리지 않았다. 만약 다시 돌아간다면 그냥 쉬운 문제부터 차근차근! 누구한테 설명하면서 풀 수 있을 정도로! 더 깊이 있게 공부를 할 것 같다.

     

    더보기

    아래 글은 탈락할 줄 알고 작성한 글이다. 감성 충만한 상태에서 쓴 글이라 부끄럽긴 한데 지우긴 아까워서 그냥 남겨본다. ㅎㅎ;;

     

     

    면접을 썩 잘 본 것 같지 않아서 결과는 기대되지 않는다... 슬프지만 괜찮다..적대적인 고난과 슬픔은 날 더 팝핑 진화시키니까...

    그래도 코딩을 배운 지 대략 일 년밖에 되지 않은 내가 이렇게 구글의 멋진 엔지니어분들과 인터뷰를 볼 수 있었다는 사실만으로도 영광스럽고 정말 많이 감사하다. 그리고 레쥬메부터 인터뷰 준비까지 인턴 지원하는 과정 하나하나가 모두 의미 있었고 이 자체에서 배운 점들이 참 많았다.

    먼저, 생각도 못한 기회는 언제든지 찾아올 수 있으니 이 기회를 잡을 수 있게 미리미리 준비해두어야 한다는 걸 느꼈다. 인턴은 당연히 졸업 직전에 하는 거라고 생각했고, 알고리즘 공부 역시 나는 아직 때가 아니니까 하지 않아도 된다고 생각했다. 그러나 이렇게 나 같은 저학년 같은 고학년도 구글 인턴에 지원할 수 있을 것이라고 누가 알았겠는가. 언제든지 기회를 잡기 위해서는 지금은 아직 안 해도 돼, 때가 아니야, 괜찮아, 이렇게 안일하게 생각하지 말고 일단 뭐든지 지르고 보는 게 좋은 것 같다. 정말.. 짧은 시간이었지만 이렇게 알고리즘 문제도 풀고 자바 문법도 혼자 공부한 걸 생각해보면.. 왜 개발은 프로젝트를 하면서 배우는 거라고 하는지 새삼 알 것 같다. 갈리면서 배우는 게 효율성이 좋은 것이었다...🤣

    또한 경쟁력을 갖춘 개발자가 되기 위해서 더욱 치열하게 노력해야 한다는 것을 깨달았다. 지금까지는 학교 수업이 우선이고 남는 시간에 짬내서 다른 활동을 하는 정도였는데 의외로 학교 수업을 대충 들어도(^^....) 나쁘지 않은 것 같다...^^ 공부를 아예 뒷전으로 미루는 건 아니고 개발 공부에 조금 더 우선순위를 두는 게 오히려 나에게 더 큰 도움이 되는 것 같기도 하다. 앞으로는 알고리즘 공부도 꾸준히 하고, 관심 있는 분야도 더 열심히, 깊이 있게 공부해볼 생각이다.  그리고, 구글의 리쿠르팅 프로세스를 경험해본 것만으로도 내 시야가 넓어진 기분이다. 

     

     

    6. 탈락일 줄 알았는데...


    첫 번째 인터뷰를 심하게 못 봐서 당연히 탈락할 줄 알았는데 정말 감사하게도 추가 인터뷰 기회를 주셨다!! 그런데 처음 지원할 때는 중간고사 기간이었는데 인터뷰를 보고나니 기말고사 기간이 되어서(...) 첫 인터뷰 때만큼 많이 준비하지는 못했다. 그냥 내가 이 글에 썼던 것처럼 어려운 문제보다는 리트코드, geekforgeeks에서 쉬운 문제들로 인터뷰에서 잘 설명하면서 풀 수 있는 연습만 했다. 이번 인터뷰에서는 저번보다 확실히 긴장을 덜 한 덕분인지 나름 괜찮게 봤던 것 같다. 

    합격할 거란 기대는 안 하고 마지막 인터뷰에서 나름 문제를 잘 푼 것에만 만족을 하고 있었는데... 합격해버렸다!!!!!!!! 경험이 많이 부족했어서 그냥 시도라도 안 해보면 후회할 것 같아서 질러본 인턴 지원이었는데 이렇게 합격까지 하게 되어서 지금 생각해도 어안이 벙벙하고 놀랍다. 후회 없는 인턴 생활을 하고 싶은데.. 어떻게 될지는 잘 모르겠다. 몰라~!! 그냥 열심히 해보는 거야~!!

     

    '일기' 카테고리의 다른 글

    ✨조금 늦은 2020년 회고  (0) 2021.01.26
    HTML을 공부하면서...  (0) 2020.09.23

    댓글

Designed by Tistory.