일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- Cpp
- MediaExtractor
- 코딩시험
- 알고리듬
- 기술인터뷰
- 알고리즘
- 프로그래머스
- 안드로이드
- Android
- AAudio
- sdkmanager
- 커맨드라인툴
- MediaCodec
- 코딩테스트
- 3진수
- NDK
- 데일리코테
- 데일로코테
- C++
- 일일코테
- 크레인인형뽑기
- Python
- 이직
- 완주하지못한선수
- 개발영어
- pyenv
- JavaScript
- 파이썬설치
- CMAKE
- 코테
- Today
- Total
Nomad Engineer
다시 취업준비... 본문
한국에 돌아온지 1년이 지났다. 그리고 어찌어찌 하다 다시 취업준비를 하게 되었다.
우선 무엇이 부족한지 알기 위해서 무작정 여러곳의 인터뷰를 잡히는대로 보기 시작했다.
강남언니, 채널톡, 그린랩스, 아마존, 유니티, 마이크로소프트 등등.
일단은 알고리즘과, 시스템디자인 위주의 준비를 하면 되겠다고 생각했다. 그러나 실전 인터뷰를 보고나니 내가 부족한것들이 더 많았다.
알고리즘, 경험위주의 기술 인터뷰, 소프트웨어 공학 기본 지식들.
알고리즘
1년동안 사용했던 언어가 코틀린이라서 우선 연습을 코틀린이로 하게되었다. 실제 인터뷰를 보면서 몇 가지 어려움을 발견했는데, 내가 생각보다 코틀린에 익숙하지 않았다. 그리고 코틀린은 안전한 언어라서 예상하지 못한 애러들을 해결하느라 시간을 괸장히 많이 사용했다. 그리고 나는 오래된 개발자라 기본적인 자료구조나 알고리즘의 구현이 굉장히 서툴렀다.
몇 가지 문제점들을 깨닿고 전략을 바꾸기로 결심했다.
우선 언어를 파이썬으로 변경했다. 개발자해외취업 페이스북 커뮤니티에서, 황동성님이 공유해주신 인터뷰 준비하는 방법을 참고하여 구글의 파이썬 무료 코스를 일단 보기로 했다.
그리고 간단한 반복문에서서 경계값을 정할때 실수를 많이 한다는것을 알게 되었다. 이 문제를 생각하는 프로그래밍이란 책에서 "정확한 프로그램작성" 이라는 부분을 참고하여 논리학과 프로그램 검증 방법을 사용하여 해결 하는 연습을 하고, 문제를 풀때 적용하기로 결심했다.
이력서 상의 기술 인터뷰
나의 이력서에는 몇 가지 굵직한 단어들이 나온다. Scrum Master, 마이크로 서비스, 이벤트 드리븐 아키텍처. 하지만 면접을 통해서 이런 개념들에 대해서 내가 깊이 알고 있지 못하고, 개념도 잘 모른다는것을 발견했다.
힐링페이퍼(강남언니)에서는 내가 개념을 정확히 알고 있는지를 확인했고 나는 잘 대답할 수 없었다. 스크럼잉란 무엇인가? 라는 질문에 나는 명확히 대답할 수 없었고 핵심 개념을 잘 몰랐다. 마이크로 서비스는 어떤것이고 어떤 문제를 해결하는가? 라는 질문에도 역시 잘 대답할 수 없었다.
채널톡 면접을 볼때는 나의 대규모 처리 경험과 이벤트 기반 아키텍처에대해서 질문을 하였는데, 대규모 처리를 위해 필요한 다양한 지식들이 부족했다는것을 깨닳았다. 대규모 트래픽에서의 문제 진단을 위한 절차, 모니터링 방법, 측정 방법들을 잘 알지 못했고. 장애 상황에서 발생하는 쓰래드 이슈, 응답지현에 대한 실제 스프링 어플리케이션에서 어떻게 쓰래드 정책을 설정하는지 등등을 잘 대답하지 못했다.
아마존면접에서는 네트워크와 리눅스 기본 개념에 대해서 질문을 많이 받았는데 이 역시 잘 대답하지 못하였다. SSL 이 무엇인지 어떻게 동작하는지 실제로 어떻게 문제 상황에서 진단을 해나갈 수 있는지. 리눅스에서 도커엔진이 동작하는 원리라던지, HTTPS 핸드쉐이킹에 대해서, DNS 가 어떤 단계로 동작하는지 등등을 잘 설명할 수 없었다.
유니티 면접에서는 JPA의 N+1 문제에 대해서 잘 대답하지 못했다.
다시 부족한 것들을 채우자
우선 알로기즘을 꾸준히 다시 공부하기로 했다. 파이썬을 익히고, 파이썬으로 다양한 문제들을 해결하고, 그리고 기본적인 정렬 및 자료구조를 손으로 직접 구현하는 연습을 해야겠다.
내가 사용했지만 잘 몰랐단 개념들에 대해서 다시 공부하고 정리해야겠다.
인터넷, 웹, 웹 서비스, HTTP, HTTPS, 마이크로 서비스, 이벤트 드리븐 등등에 대해서 다시 차근차근 공부를 해야겠다. 봐야할 책들을 선별해 봤는데, 리얼월드 HTTP, TCP/IP Illustrated, 마이크로서비스 패턴, 기업통합 패턴 들을 봐야겠다.