복습 / 반성 / 복기용 기록
글로벌 ICT 인턴십 과정에 지원하여 면접까지 보게 되었다. 그 기록을 남겨본다.
세일즈, 고객관리, 퀄리티 매니지먼트 등의 솔루션을 B2B로 제공하는 회사였다.
의 과정으로 이루어졌다.
각 과정을 어떻게 준비했는지에 대해 (자기소개서를 제외) 각각에 대해 기술하겠다.
코딩 인터뷰 전, 모의 인터뷰를 진행하였다.
모의 인터뷰를 통해 내가 느낀 점은 다음과 같다.
코딩인터뷰의 목적은 이사람이 "문제를 풀었는지" 가 아니라,
- 문제를 푸는 과정에서 소통이 원활한지,
- 힌트를 주면 알아차리고 다음 단계로 수월하게 넘어갈 수 있는지,
- 혼자만의 생각에 빠져서 조언을 무시하지는 않는지
를 테스트하기 위한 시간이다.
처음 모의 면접때에는 문제를 보고 혼자 코딩에 집중했는데, 면접관님께서 정적 속에서 혼자 코딩하지 말고 이 문제를 내가 어떻게 이해했는지, 풀이 방식에 어떻게 접근 할 것인지, 시간/공간 복잡도는 어떻게 될 것 같은지를 먼저 이야기하는 것이 좋을 것 같다고 말씀해주셨다.
그리고 그 과정 속에서 면접관이 내 생각에 대한 피드백을 주면 해당 피드백에 대해 또 고민해보고 토론하면서 코드를 완성해나가면 된다!
어려우면 잘 모르겠으니 힌트를 주면 좋겠다고 말해도 괜찮다고 말씀해주셨다.
아무튼 결과보다 과정이 훨씬 중요하다! 특히 커뮤니케이션 능력
아래 영상을 참고하면 도움이 된다.
아무리 문제푸는게 중요치 않다 할지언정... 문제를 보고 어느 자료구조나 알고리즘을 사용할지는 알아야한다.
"프로그래머스 고득점 키트"를 보면 알고리즘별로 문제들이 분류되어 있어서, 몇 번 풀어보다 보면 문제를 봤을 때 어떤 알고리즘 문제인지 슬쩍 느낌이 온다.
그리고 각 언어마다 사용하기 편한 자료구조가 있다. (자바: HashMap, C++: Stack...등등)
각각에 맞게 선언하는 방법, 기초 함수 등 외워두는게 편하다.
사실 코딩 문제 푸는건 1학년 자료구조 강의 이후로 거의 한적이 없어서 실력이 정말 많이 녹슬었다........... 다시 갈고닦아야한다...ㅜ 그리고 코테에서는 파이썬 쓰는게 제일 개꿀인 듯 싶다. 파이썬이랑 더 친해져봐야지....
아래 링크에 여러 자료구조가 요약 정리되어있다! 좋은 자료
자료구조 정리
사실 공부랄것도 없고... 면접 이틀 전에 ML 면접이 포함되어 있다고 연락을 받아서 부랴부랴 인공지능개론 강의 교안과 여러 유툽 강의, 블로그 포스팅을 참조했다.
우선 ML 면접이라 함은... 그냥 기술면접처럼 머신러닝/AI/딥러닝에 대한 기초 지식을 묻는 것 같다.
Frequently Asked ML interview questions & Answers (영어)
공부할 때 도움 많이 되었던 링크들
허나 실제 면접은 이쪽에 초점을 맞추진 않았다 ㅠㅠ.....
살짝 어려운 문제가 나왔다. 프로그래머스 레벨2~3 정도..?
코딩연습 안한 나한텐 어려웠다 ㅜㅜ 45분 내에 진도를 많이 나가야 한다는 압박감 때문에 마음이 급해서 머리가 빠르게 안돌아간 것도 있는 것 같다.
면접관분은 나에게 힌트를 최대한 주시려고 하신 것 같으나 내가 잘 캐치하지 못했음 ㅠㅠ 음... 문제 자체가 어려워서 압도당하고 조금 자포자기 했던 것 같다
시간이 부족해서 마지막엔 거의 수도코드로 작성하고 말로만 알고리즘을 설명해드렸다.... 좀 아쉬움이 많이 남는다 ㅜ
2차원 배열에 대한 문제가 나왔다.
이 문제도 내가 자료구조나 알고리즘에 대해 잘 이해하는가? 보다는 살짝 난이도가 있는 문제였당. DP?
커뮤니케이션도 되게 수월했고 면접관이 계속 웃고계시고 내 이야기를 잘 들어주시는 느낌이 들어서 엄청 감사했다. 처음엔 시간복잡도가 좋지 않은 방법을 제시하니까 조금씩 조금씩 더 효율적으로 다가갈 수 있도록 방향을 제시해 주셨다.
암튼 코딩인터뷰는 걍 소통하는 방식! 영어 연습을 연습하는게 최고인 듯 하다. 코딩 기본기는 탄탄하다는 전제 하에,,,,
그래도 연습은 계속 해야지
그냥 망했다 싶었다. ㅜㅜㅜㅜㅜ
이력서에 AI 컨셉을 이용은 했으나 실제 구현까지는 못했던 프로젝트들을 넣어놨는데, 이거에 대해 질문을 많이 하셨다.
그런데 프로젝트 간략히 소개하고 나서, "그래서 실제로 모델도 만들었나요?"라는 질문에는 아니요로 일관해서 이런 내 모습이.....비참했달까......ㅋ큐ㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠ하....
여태까지는 그냥 최대한 거창해보이고 다양하고 많은 프로젝트를 경험하는 데에 집착했는데
기업에서 원하는 인재의 스펙은 양보단 질인 것 같다............
프로젝트가 어떤 기술을 사용하는지도 물론 중요하겠지만, 내가 끝까지!!!!!!! 끝을 보고 결과를 도출해내는게 더 중요한 듯 하다
그리고 개인적으로 진행했던 CNN 프로젝트도 어떻게 구현했는지 자세하지만 어찌보면 가장 핵심적인 부분을 질문하셨는데, 그것도 다 대답을 잘 못했다 (2022년 추가: Activation function 뭐 썼나요? 어떤 모델 구현했나요? 등의 기초 질문을 던지셨었다..)
자기소개는 내 커리어, 능력을 최대한 어필할 것! 내가 어필하지 않으면 아무도 몰라줌
자소서나 면접도 그냥 들이밀게 아니라 전략적으로 접근해봐야 할 것 같다.
레쥬메에 그냥 내가 해본거 멋지게 포장해서 최대한 많이 썼는데... 절대 좋은 방법이 아니었다. 결국은 과장한거나 뻥친건 다 까발려짐 ㅎㅎ
"내가 이렇게 이것저것 겉핥기 많이 해봤다" 보다는, "내가 무엇을 이렇게 제대로 해봤고, ~~를 배웠고, ~~라는 결과를 냈다"에 집중해서 나의 능력!!!!뭐뭐 할 줄 안다!!!를 어필해야 한다.
내가 한 일에 대해서 0부터 100까지 하나하나 다 꿰고 있어야 함. 저 이거 했어요~ 써놨는데 막상 물어보니 대답이 안나오면 정말 비참하다ㅎ.ㅎ.ㅎ..
자신감을 가지자! 내가 뭐 잘못한것도 없구, 인터뷰는 내 실력을 평가받는 자리가 아니라 내가 회사에 잘 맞는 사람인지 판단하는 자리라고 생각하고 쭈굴 댈 필요 없다. 실력은 코테나 서류로 알아서 걸렀겠지.... 여기까지 왔음에 자신감을 가져도 좋을 것 같다. 끝나고 나니 내가 너무 쭈굴댄 것 같아서 아쉬움이 남는다 ㅠㅠ
내 인생 첫 인턴 면접이었다. 비록 좋은 결과를 기대하고 있지는 않고 아쉬움도 많이 남지만.... 원래 처음이 다 서툴고 그런거지 ㅎㅎ
그래도 이번 경험을 통해 내가 어떤 점이 부족한지, 어떤 방향으로 나아가야 할지를 파악할 수 있었다.
코딩연습, 회화연습, 자신감 가지기, 프로젝트는 넓고 얕게가 아니라 뭐든지 깊게!!!
많은 분들이 이 글을 읽을 줄 모르고 인터뷰 관련한 내용은 다 추상적으로 느낀 점 위주로만 썼는데 ㅠㅠㅠ
1년이 지난 이 시점에 그때를 생각하며 다시 써보자면....
이 면접을 떨어지고 나서 자신감 급 하락으로 기초 공사를 다시 했는데, "백준-단계별로 풀어보기"가 큰 도움이 되었다.
나는 이때부터 파이썬을 처음(?!) 사용하기 시작했는데, 딥러닝 쪽의 루트를 희망하시는 분들이라면 코테는 그냥 파이썬으로 준비하는 게 좋을 것 같다. (C/Java로 코테를 쳐 본 입장에서, 파이썬은 정말 천사같았다. High level이라 구현할 때도 시간이 단축되고, 파이썬 익혀두면 나중에 현업에서도 편하다)
그리고 자소서에는 자신이 발만 담근 플젝, 뭔지 모르고 막 했는데 결과물이 나오긴 나온 플젝은 절대로!!!! 제발!!!! 쓰지 마라. 면접때 다 뽀록난다 ㅠㅠ
플젝의 양은 절대 중요하지 않다. 하나를 쓰더라도 내가 어떤걸 했는지, 이 플젝에 어떻게 기여했는지를 구체적으로 기술하자. 오히려 이게 나에 대한 플러스 포인트가 된다.
플젝 많이 이것저것 해봤는데 특별히 기여한게 없거나, 지가 뭘 했는지도 잘 모르는 지원자 <<<<<<< 플젝 하나를 했더라도 본인이 맡은 문제에 대해 충실히 고민하고 수행한 애 (여기서 겪은 어려움, 어떻게 해결했는지까지 자세히 적으면 최고)
그리고 면접 전 필수적으로 준비해야 할 것