코딩테스트의 법도를 찾아서
코딩테스트에 앞서 올바른 법도(?)를 가져보자
개요
안녕하세요! 백엔드 개발자 박종범입니다.
코딩테스트라는 산을 넘기에 앞서 중요한 것은 사전 준비일 거에요! 코딩테스트를 준비하기 앞서 어떤 부분을 신경써야 할지, 어떤 부분에 더 집중해야 할지에 대해 탐구해보는 시간을 가져보았어요!
1. 내가 무엇이 부족한 것일까? - 기록하기
나는 어떤 생각을 하고 있을까? - 생각의 흐름과 직면하기
아는 것과 모르는 것을 구분하는 것은 중요해요!
자료구조와 알고리즘을 이해했는지 확인하는 것으로는 부족해요.
- 이 알고리즘을 선택한 이유가 무엇이었을까? 더 좋은 선택지가 있었을까?
- 이 문제를 정확히 이해한 것일까? 다음에는 문제를 쪼개볼까?
- 엣지 케이스(Edge case)에 대해 충분히 고민 했던가?
문제를 풀면서 생각했던 모든 과정을 피드백해야 해요. 금방 잊어버리는 내용이니 기록하는 것이 중요하답니다!
2. 어떻게 성장해야 할까? - 바라보기
언어 등의 형식을 갖추어 표현할 수 없는, 경험을 통해 몸에 쌓인 지식 - 암묵지
우리는 말할 수 있는 것 이상을 알고 있어요!
음악을 예로 들어볼게요. 악보 읽기나 기본 이론은 책으로 배울 수 있어요.
하지만 악기를 잘 연주하려면 연습과 경험이 필요해요.
이렇게 글이 아닌 경험과 연습을 통해 얻는 ‘감’을 암묵지
라고 해요.
이런 경험들은 글이나 말로 표현하기가 어렵습니다.
코딩테스트의 암묵지란 무엇일까요? - 생각의 흐름
알고리즘, 자료구조를 완벽히 이해한 상태로 코딩테스트를 보면 좋은 점수를 받을 수 있을까요?
물론 처음 시작하신 분들보다는 더 좋은 점수를 받을 수 있을 것 입니다. 하지만 대부분의 개발자는 동의하지 않을 거예요.
- 선배 개발자에게 풀이의 흐름 물어보기
- 이 문제는 어떻게 분석하셨나요?
- 해당 알고리즘을 선택한 이유는 무엇인가요?
- 다른 개발자분들의 풀이와 리뷰 읽어보기
- 나랑 다른 점은 무엇일까요?
- 다음에는 어떻게 접근하는 것이 좋을까요?
핵심은 타인의 풀이를 보고 내 생각의 흐름을 수정해 나가는 것!
아는 것과 모르는 것을 구분해 가는 과정을 통해 성장하는 것이 중요해요.
3. 합격하고 싶어! - 테스트하기
간절함과 긴장 속에서 평정심을 찾기
시간을 정해두고 테스트를 보는 이유는 무엇일까요? 시험을 볼 때마다 느껴지는 무언의 긴장감 속에서 어떻게 행동해야 할지에 대한 ‘감’을 잡기 위해서일 거예요! 더욱이 간절함 속에서 시험을 치게 되다 보니 여러 가지 실수도 발생할 수 있을 거예요. 그렇기 때문에 순간마다 어떻게 마인드컨트롤을 해야 본래의 실력이 나올 수 있는지 테스트를 통해 가늠해 보는 것도 좋을 거예요!
4. 결국 중요한건…
결국 중요한 것은 꺾이지 않는 마음…!
매일매일이 힘든 순간이겠지만, 언젠간 그 노력이 보답 받을 것이라고 믿고 있어요. 간절한 만큼, 치열하게 노력한 만큼 저 자신이 더더욱 성장하기를 바라고 있답니다. 성장한 만큼, 더 좋은 사람과 더 많은 기회를 얻을 수 있을 거라고 믿습니다. 그 끝에는 저도 여러분들과 함께할 수 있을 거라고 생각해요! 모두 화이팅이에요!