3차 Technical Exercise
이전글: 2차 Psychometric assessment - 지능 테스트
2차 Psychometric 테스트가 끝나고 만약 통과 했다면 Hiring Manager로부터
아래와 같은 Technical Exercise에 대한 안내를 받을 것이다.
Technical Exercise/Assessment 는 말 그대로 Coding Test이다.
다만, Canonical에서 사용하는 Coding Test Platform은 약간 생소한 방식이었다.
Devskiller라는 플랫폼을 통해서 수행하는 방식이다.
안내받은 대로 DevSkiller 플랫폼으로부터 테스트를 진행할 수 있는 초대링크를 받았다.
Go to test details로 들어가면 두 가지 형태의 문제가 있었다.
아쉽게도 테스트를 진행하면서 별도의 기록을 남기지는 못했으나
기억에 의존했을 때 2가지 시험 문에 유형이 있었다.
> 25개 정도의 문항으로 구성된 Go 언어와 관련된 문제( 필자가 지원한 포지션과 관련)로 예를 들면 출력 결괏값이나 컴파일 시 에러라든지 어떤 결과가 나오는지를 묻는 문제였다.
*TIP: 필자는 정확한 답을 위해서 확신이 안 가는 경우는 별도의 IDE로 코드를 옮겨 적은 뒤에 실행을 했다. 하지만, 이는 결국에 나중에 알고리즘 문제를 풀 때 시간적으로 부족해진다는 점을 감안해야 한다. 어쨌든 코딩 테스트를 통과하긴 했으나 시간 배분은 본인의 역량에 따라서 정하면 될 것 같다. 참고로 총 주어진 시간은 정확히 기억은 안 나나 100분 정도였던 것 같다. 그래서 당시에 선택형 문제에 20분 정도 할애하고, 나머지 80분을 2개의 알고리즘 문제에 할당하려고 했었다.
> 2개의 문항으로 구성된 알고리즘 코딩 테스트이다. 일반적으로 진행했던 코딩테스트의 형식과는 다르게 역시 DevSkiller라는 플랫폼에서 제공된 형태로 특정시간 동안 세션이 살아있는 Repository를 Clone 해서 코드작업을 로컬 IDE에서 작업한 후에 Commit 하고 원격지에 Push 하는 형태였다. 필자의 경우 시간배분에 실패했고 2개 문항 중 첫 번째 문제에 대부분의 시간을 소요해 버렸고 두 번째 문제는 풀지 못했다. 첫 번째 알고리즘은 Stack이라는 자료구조를 이용해서 Reverse Polish Notation로 주어진 Input 값을 계산해서 결괏값을 내는 로직을 구현하고 Unit Test를 작성하는 과제였다. 두 번째 문제는 Tree Traversal (DFS & BFS )과 관련된 문제였는데 신기하게도 과제 제출을 주어진 시간에 못했음에도 나중에 기술 면접 세션에서 다시 알고리즘과 관련된 문제를 면접관 하고 풀이를 논의하는 시간을 가질 수 있다.
*TIP: 알고리즘 문제는 역시나 많이 문제를 풀어보는 것 빼고는 방법이 없다. 그리고 주어진 시간에 문제풀이에 실패하더라도 이후 면접기회가 주어졌다는 것을 보면 꼭 낙담할 필요는 없다. 하지만 이후에 알고리즘 문제 풀이와 관련하여서 면접관과 깊게 논의하는 기술면접세션이 꼭 있을 것이기 때문에 문제를 대략이라도 기억해 놓고 관련된 알고리즘을 미리 파악해 두는 것이 좋다.
필자는 어쨌든 여자저차 해서 코딩테스트를 마칠 수 있었고 그다음 단계로 나아갈 수 있었다.
과제 제출 후 얼마 뒤에 Engineering VP로부터 이메일을 받을 수 있었다.
사실 개인적으로 보낸 메일 같지는 않고 어느 정도 단계를 통과한 후보자에게 보내는 일괄적인 메시지처럼 보였다.
그다음 일정으로는 드디어 실제 면접관들을 만날 수 있는 기술면접에 대해서 이야기해보도록 하겠다.
다음글: 4차 기술면접