라이브 코딩 Tips

2 분 소요

채용 과정 중 라이브 코딩 인터뷰를 하는 곳이 있습니다.

면접자로 들어가는 경우 생각보다 당황하고 긴장을 하게 되어 제실력을 발휘못하고 나오는 경우가 많습니다.

그 때 도움이 될만한 팁을 적습니다. 해당 팁들은 제가 라이브 코딩 인터뷰를 보면서 스스로 정리해둔 것입니다.

1. 요구사항을 정확히 확인하자. 2~3번 확인하자.

라이브 코딩 인터뷰를 하면 다른 사람도 아니고 면접관이 보고 있기 때문에.. 아무래도 긴장을 하게 되고 잘보이고 싶은 마음에 마음이 급해집니다.

그래서 평소에 문제를 풀 때는 쉽게 이해가 되는 것들을 잘못 파악하게 될 확률이 높습니다.

때문에 문제 요구사항을 정확히 파악하기 위해 적어도 2~3번은 지문을 읽고 파악한 것이 맞는지 확인하는 것이 좋습니다.

헷갈리는 부분이 있다면 면접관에게 물어보는 것도 좋습니다.

면접관도 문제를 파악하는데 시간이 필요하다는 것을 알고 있고, 성급하게 손이 나가 코딩을 시작하는 것보다 문제를 먼저 파악하려고 하는 태도가 가산점이 될 확률이 높습니다.

시간이 걸려도 마음을 다잡고 지문을 제대로 파악하는게 필요합니다. 처음에 시간이 조금 더 걸리는 것이 나중에 요구사항을 잘못 파악해서 이상하게 코딩하는 것보다 훨씬 낫습니다.

2. 테스트 케이스를 확인하고 추가하자

알고리즘 문제의 경우 테스트 케이스를 가지고 있습니다. 이 테스트 케이스를 코딩을 시작하기 전에 확인하는 것은 필수입니다.

테스트 케이스의 인풋과 아웃풋이 내가 이해한 요구사항에 부합하는지를 통해 내가 제대로 문제를 이해한 것인지 다시 한 번 점검할 수 있게 됩니다.

또 문제를 보고 생각이 나는 추가 테스트 케이스들을 추가를 해 두면 좋습니다. 면접관에게 문제를 잘 이해하고 있다는 느낌을 주고 실제로 코딩 시에도 테스트를 통해 놓치지 않고 해당 부분을 체크할 수 있습니다.

3. 주석과 빈 함수를 활용하자

머리로 모든 것을 생각해서 한번에 매끄럽게 코딩할 정도로 똑똑한 사람은 매우 드뭅니다.

그래서 문제 해결을 어떤 과정으로 해나갈 것인지를 주석으로 적어두는 것(간단한 의사코드를 작성하는 것)은 매우 큰 도움이 됩니다. 그리고 이렇게 적어둠으로써 면접관도 이 사람이 이렇게 문제를 풀어나가려고 하는구나를 쉽게 파악할 수 있게 됩니다.

function solution(input1: string, input2: string): number{
	const answer = 0;
	// parsing inputs
	// sorting parsed arrays
	// compare two sorted array from first to end
	...
}

그리고 실제 구현 시에 위에서부터 내려오면서 모든 것을 구현하지 말고 아래 예시의 parse, sort 같이 빈 함수를 사용하면 좋습니다. 이렇게 하는 이유는 주석으로 적어둔 것을 실제로 코드로 변환하다보면 해당 함수의 파라미터나 반환값이 변경되거나 구현해야 하는 내용 자체가 바뀌는 경우가 많기 때문입니다. 메인 로직 전체를 빈함수를 통해 더 정교하게 한 후에 세부 함수를 구현하는 것이 더 효율적입니다.

function solution(input1: string, input2: string): number{
	const answer 0;
	// parsing inputs
	let parsedInput1: number[] = parse(input1);
	let parsedInput2: number[] = parse(input2);
	
	// sorting
	let sortedParsedInput1 = sort(parsedInput1);
	let sortedParsedInput2 = sort(parsedInput1);
	
	...
}
  
function parse(str: string):number[]{
  return [];
}
  
function sort(arr: number[]):number[]{
  return [];
}

4. 결과를 받아들이고 복기하고 정리하자

너무 당연한 이야기이지만 지나간 일은 되돌릴 수 없습니다. 이번에 라이브 코딩 인터뷰 못했다고 다음에 또 못하리라는 법도 없습니다. 경험이 필요한 것이고 하다보면 잘하게 되어 있습니다.

이번에는 못했지만 다음에는 이 부분을 보충해서 더 잘할 수 있다는 생각을 가지고!! 어렇게 하면 더 좋았을텐데, 이런 문법적인 것들을 알았다면 더 쉽게 풀 수 있었을텐데, 다음에는 이런 프로세스로 풀어봐야겠다 등을 정리하면 정말 좋습니다.

태그:

카테고리:

업데이트: