개발자로 취업하기 위해 거쳐야 할 필수 관문은 '코딩 테스트'다.
개발자로 취업하고 싶은 비전공자로서 코딩 테스트를 어떻게 준비해야 할지 막막했다.
여러 후기를 검색한 결과,
방법론 적으로는 의외로 단순했다.
'시험에 자주 출제되는 문제'를 '스스로 고민'하여 '반복'적으로 푸는 것이었다.
다시 키워드로 요약하자면,
1. 빈출 유형
2. 스스로 고민
3. 반복
이 세 가지다.
첫 번째로 맞닥드린 문제는, 어떤 유형의 문제가 자주 출제되는지 구별하는 안목이 없다는 점이다.
그래서 이 책을 샀다.
굳이 책을 사지 않아도 코딩을 공부할 수 있는 환경이 인터넷에 잘 갖춰져 있긴 하다.
'백준'이나 '프로그래머스'와 같은 사이트에서 다양한 문제를 무료로 풀어볼 수 있기 때문이다.
하지만 나는 책으로 공부하는 것이 익숙하거니와,
이러한 사이트에 전적으로 의존하자니, 공부의 시작과 끝이 모호했다.
반면 책으로 공부하면 풀어야 할 문제가 딱 정해지므로 목표가 손에 잡히는 느낌이 든다.
대형 서점에 가보니 선택지가 두 개로 좁혀졌다.
하나는 '이것이 코딩 테스트다(나동빈/한빛미디어)'였고,
다른 하나는 '파이썬 알고리즘 인터뷰(박상길, 정진호 / 책만)'였다
후자를 선택했다. 그 이유 중 하나는 저자가 카카오 코딩 테스트 출제자였다는 점이다.
그만큼 책에 담긴 문제가 시험에 자주 나오는 유형이라고 추정할 수 있었다.
두 번째 문제는 '스스로 고민하기'가 어렵다는 점이다.
파이썬에 대한 기초적인 지식만 있을 뿐,
자료구조와 알고리즘을 아예 처음 접하기 때문에 스스로 문제를 풀기가 힘들었다.
그래도 고민하는 시간에 비례하여 실력이 는다는 생각에,
도저히 모를 법한 문제도 최소한의 시간 (20~30분) 동안 고민을 해보고 해답을 읽었다.
이 책은 해설이 비교적 쉽게 쓰인 편이라 모르는 문제를 이해하기가 수월했다.
또한 한가지 문제를 놓고 여러가지 풀이 방법을 알려주기 때문에,
문제를 다양한 방식으로 고민할 수 있었다.
다만, 완전 초보의 입장에서 이해가 안 되는 해설 내용도 많았다.
그럴 때마다 유튜브로 부족한 개념을 따로 보충했다.
'코드 없는 프로그래밍'이라는 유튜브 채널을 자주 참고했다.
그림을 그려가며 개념을 설명하기 때문에 문제에 접근하는 방식을 직관적으로 이해할 수 있었다.
마지막 문제는 '얼마나 많은 문제를 얼마나 반복해서 풀어야 할까'라는 점이다.
솔직히 나도 정답을 모르겠다.
다만 이 책에는 총 100문제가 수록되어 있으며,
모든 문제의 풀이 방법을 응용할 수 있을 정도로 숙지한다면,
카카오 코딩 테스트 문제를 풀어내는데 크게 부족함이 없을 것 같다는 것이 내 추측이다.
(물론 이 책과 카카오 기출문제에 대한 짧은 분석으로 내린 결론이다.)
'몇 번을 반복해서 풀 것이냐'하는 문제는 개인마다 다를 것이다.
나의 경우 같은 문제를 최소 세 번은 풀어봐야 감이 좀 잡혔다.
문제에 대한 접근 방식이 몸에 충분히 녹아들어서, 자유롭게 응용이 가능한 수준에 이르려면
세 번도 부족하다는 생각이 든다.
이 책은 리트코드(LeetCode)의 문제를 수록했기 때문에,
책에 실린 문제를 온라인 환경에서 직접 풀어볼 수 있다.
하지만 정말 이해가 안 되는 문제는 손으로 코드를 쓰거나 그림을 그려가며 풀기도 한다.
코딩 테스트는 시험이다.
모든 시험에는 전략적 접근이 필요하다.
개인마다 적합한 전략이 모두 다르겠지만,
이 책을 활용해보는 방법도 고민해볼 가치가 있다고 본다.
'자료구조 & 알고리즘' 카테고리의 다른 글
비트 조작 - 부울 연산자, 비트 연산자, 2의 보수 개념 (0) | 2022.06.18 |
---|---|
[파이썬] 초기화 함수 / __init__() 메서드는 왜 쓰는 걸까? (0) | 2022.05.16 |
트리 순회 - 전위(Pre-Order), 중위(In-order), 후위(post-Order) 순회 (0) | 2022.04.28 |
[자료구조 ] 이진 트리 - 그래프와 차이점, 명칭, 종류 (0) | 2022.04.07 |
[최단 경로 문제] 다익스트라 알고리즘(Leetcode 743) (0) | 2022.04.01 |