온라인 코딩 면접
- 온라인 코딩 면접
온라인 코딩 면접
이력서만 봐서는 개발자의 실력을 가늠할 수 없기 때문에 구글, 페이스북 등 해외 IT 기업에서는 개발자 채용 시 코딩 테스트를 필수로 진행하고 있습니다.
손 코딩은 개발 툴에 익숙한 개발자나 짧은 면접 시간을 최대한 활용해야 하는 면접관, 모두에게 효율적인 방법은 아니지요.
그래서 요새는 대면 면접 이전에 온라인 코딩 면접을 많이 보는 거 같아요.
채용 회사 입장에선 편리하게 지원자들의 수준을 파악할 수 있기 때문에 온라인 코딩 면접을 점점 늘려가지 않을까 싶네요.
보통 온라인 코딩 면접은 아래와 같은 절차로 진행합니다.
1. 서류 통과
2. 이메일을 통한 온라인 코딩 면접 URL 받기
메일 확인 후 3~7일 사이에 해당 URL에 접속 해, 문제를 풀어야 합니다.
사전에 문제를 확인 할 수 없어서 평소에 공부를 해야해요.
3. URL을 통해 온라인 코딩 면접 진행
2시간 동안 3문제 풀기, 4시간 동안 5문제 풀기.. 등 다양했어요.
프로그래밍 언어나 플랫폼에 구애받지 않는 문제들이기에 알고리즘 문제들이 출제됩니다.
4. 제출 후 결과 통보
온라인 코딩 면접 문제들도 유출할 수 없기에..
미리 연습해 볼 수 있는 사이트들을 소개할게요.
Oncoder
오랜만에 접속해 보니 챌린지 기능이 사라졌네요ㅠ
https://www.oncoder.com/challenge
채용공고 메뉴를 클릭해보면 아시겠지만 Oncoder를 통한 온라인 코딩 면접은 아직 많진 않은 거 같아요.
저도 이곳을 통해 온라인 코딩 면접을 본 적은 없네요.
일반 이용자를 위한 알고리즘 문제들이 있네요.
안드로이드 개발자답게 프로그래밍 언어를 Java로 선택한 후,
문제를 읽어봅시다.
두 수의 합을 리턴해주는 간단한 문제네요.
여기서 주의할 점은 제한, 제약 및 참고사항입니다.
단순히 원하는 결괏값을 리턴해주는데 그치지 않고 고득점을 얻기 위해서는 이 점들을 주의해야 해요.
시간 복잡도, 공간 복잡도를 모두 고려해야 하고,
예외처리를 위해 제약 및 참고 사항도 고려해야 합니다.
코드 작성 후 제출을 하면 결과가 나오네요.
Oncoder는 단순히 합격, 불합격만 나오나 봐요.
회원 가입을 하면 두 수의 합부터 피보나치, 수열 등 기본적인 10문제를 풀 수 있으니 온라인 코딩 면접 이전에 전부 풀어봅시다.
Codility
https://codility.com/programmers/lessons/
거의 대부분의 온라인 코딩 면접이 codility를 통해 이뤄지는 거 같아요.
저도 여기서 많이 봤네요.
Iterations부터 Sorting, Dynamic programming 까지 다양한 문제들이 있으니 풀어봅시다.
Java, C++ 만 가능했던 Oncoder와 달리 16가지 프로그래밍 언어를 제공해 주네요.
한글이 없어서 영어로 봤어요.
알고리즘 문제이기 때문에 단번에 이해가 가지 않더라고요.
실제 온라인 코딩 면접도 영어로 나오니 이해될 때까지 읽어봅시다.
실제 면접에서는 각 문제별 제한 시간이 아닌, 모든 문제를 푸는데 제한 시간이 있어요.
문제별로 시간 분배를 잘해서 다 풉시다.
expected worst-case time complexity is O(log(N));
expected worst-case space complexity is O(1).
codility는 시간, 공간 복잡도를 모두 체크해 점수로 반환해 줍니다.
최악의 복잡도는 항상 저 조건에 맞춰서 작성합시다.
N is an integer within the range [1.. 2,147,483,647].
예외상황 처리를 위해 꼭 살펴봅시다.
문제를 풀고 제출하면 아래와 같이 결과가 나옵니다.
100점 만점에 80점이네요.
회사에서는 이 점수들을 기반으로 해서 합격, 불합격을 정하는 거 같아요.
하지만 실제 온라인 코딩 면접에서는 면접자에게 점수도 안보여주고 바로 제출되는 경우가 많아요.
한 번은 문제를 잘 풀었는데 불합격이라길래 점수를 알려달라 이메일을 보냈었는데,
그냥 읽고 답이 없으시더라고요...
점수를 내는 기준은 2가지입니다.
잘 풉시다....
그리고 또 주의할 점이 있습니다.
단순히 결과물뿐만 아니라 직접 코드 작성을 했는지,
아니면 인터넷에서 찾아 복사 붙여 넣기 했는지 다 확인할 수 있어요.
재생 버튼을 누르면 처음부터 끝까지 어떻게 코드를 작성했는지 과정이 다 나오기 때문에,
다른 툴에서 미리 작성하거나 인터넷을 참고했더라도 복사 붙여 넣기 하지 말고 직접 타이핑해서 넣으세요.
100점짜리 해답은 아래 사이트에서 참고하세요.
http://www.martinkysel.com/codility-solutions/
사실 구글링으로 온라인 코딩 면접 문제의 해답을 찾을 수도 있어요.
하지만 이렇게 면접에서 통과 한들 기술 면접에서 다 들통이 날 수 있기 때문에 추천하지는 않네요.
http://www.zdnet.co.kr/column/column_view.asp?artice_id=20140811090423