저는 아무 생각 없이 깃 허브 잔디만 채우는 것이 아닌, 제가 확실히 했다는 증거를 남기고 향후 계획을 작성하고자 회고를 매 달마다 작성하기로 생각했습니다.
저는 회고를 작성하는 다양한 방법 중에서 5F 회고 방식을 선택하였습니다.
5F란 무엇일까?
5F는 다섯 개의 키워드를 순서대로 진행하는 회고 방식입니다.
- Fact -> 사실, 무슨 일이 있었나요 ?
- Felling -> 느낀점, 어떤 느낌이 들었나요 ?
- Finding -> 배운 점, 어떤 인사이트를 얻었나요 ?
- Future action -> 향후 행동, 앞으로 무엇을 해야 할까요 ?
- Feedback -> 피드백, 앞서 정한 향후 행동을 실천해본 뒤, 이에 대해 어떤 피드백을 받았나요?
FACT -> 사실, 무슨 일이 있었나요?
저는 학교에서 한 WebToon Material Project를 마치고, 방학 때 무엇을 해야 할까? 고민을 하고 있었습니다.
주변 분들과, 구글링을 통해 4학년 졸업을 준비하고 있는 만큼 취직을 위하여 CS 지식과, 코딩 테스트를 준비하기로 결정했습니다.
원래 저는 매주 CS 스터디를 통하여 어느 정도 지식을 쌓고 있었고, 전공자인 만큼 학교에서도 네트워크, 데이터베이스, 운영체제 등 내용을 배워왔습니다.
하지만 코딩 테스트는 제대로 풀어본 적이 없었기 때문에 이번 방학 동안에 코딩 테스트 준비를 단단히 하기로 다짐했습니다.
Felling -> 느낀 점, 어떤 느낌이 들었나요 ?
저는 프로그래머스 사이트를 통하여 코딩 테스트 준비를 시작했습니다.
시작부터 레벨 0문제들이 잘 풀리지 않아서, 많이 당황했었습니다. 그래도 차근차근 제가 몰랐던 자바 함수들, 개념에 대하여 다시 한번 공부하고 차근차근히 풀어 나갔습니다.
레벨 1 까지는 어느 정도 기본 자바 문법만으로도 풀 수 있었지만, 레벨 2가 넘어가서는 알고리즘을 이용해 푸는 문제들이 나오기 시작하면서, 저는 다시 알고리즘 공부를 하기 시작했습니다.
프로그래머스에 있는 코딩 테스트 고득점 Kit을 토대로 해시, 스택/큐, 힙, 정렬, 완전탐색, 탐욕법, 동적계획법, DFS, BFS, 이분탐색, 그래프 순으로 개념 공부를 다시 시작했고, 문제를 하나씩 풀어 나갔습니다.
하지만 구글링을 통해서만 공부하고 문제 푸는 것에 너무 어려움을 느껴 저는 책을 통해 공부하기로 마음먹었습니다.
저는 CS 스터디를 하고 있는 멘토 친구에게 이 책을 추천받아서, 이 책을 통하여 차근차근 풀어보기로 했습니다.
이 책에서는 코딩 테스트의 중요성에 대하여 말하고 시작했는데, 저는 다음 문구가 되게 마음에 와닿았습니다.
개발자에게 요구되는 다양한 역량이 있지만 코딩 테스트를 통과할 수 있는 수준의 기본기가 없다면 뛰어난 개발자가 되기 어렵다.
와닿았던 이유는 프로젝트를 진행해 보면서 기능 개발을 할 때, 구현을 하지 못하는 경우, 문제 해결 능력이 부족하다거나, 개발 실력이 부족하다고 생각했습니다.
코딩 테스트는 진행하면서 스스로 문제 해결 능력을 키울 수 있다고 생각했고, 많은 문법과 알고리즘을 경험할 수 있어서 기업 입장에서는 최악의 개발자를 거르는 가장 쉬운 수단이 될 수 있다고 생각하여 저는 더욱더 코딩 테스트의 중요성을 깨달았습니다.
학습 순서로는 기초 단계, 초급 단계, 중급 단계, 고급 단계로 나뉘어 있었습니다.
- 기초 단계 : 코딩 테스트가 처음이에요 !
- 0단계 → 자바 언어 공부
- 1단계 프로그래머스 기본 연습 100문제 풀어보기
- 코딩 테스트 개요 확인 및 주의사항 암기 (1, 2장)
- 초급 단계 : 기본은 알겠는데 아직 너무 어려워요 !
- 3단계 → 7장까지 책을 정독하고, 문제풀기(Level 3 이상은 넘어가기)
- 4단계 → 문제를 풀고 어디에서 많이 틀렸는지 확인하기
- 5단계 → 추가적으로 동일 유형의 문제를 찾아서 풀기 (백준 등)
- 중급 단계 : 슬슬 감이 오는 것 같기도 하고…
- 6단계 → 12장까지 책을 정독하고, 문제 풀기(너무 어려운 문제는 넘어가기)
- 7단계 → 7장까지 풀었던 문제 중에서 못 푼 문제 다시 풀기
- 8단계 → 풀었던 내용을 정리하고, 자주 틀리는 원인을 분석하기
- 9단계 → 연습이 더 필요하다면 고득점 kit 문제 또는 유형별 문제 풀어보기
- 고급 단계 : 어떻게 해야 할지 알 것 같아요 !
- 10단계 → 직접 시간을 측정하면서 14장까지 나온 모든 문제 풀기
- 11단계 → 오래 걸렸거나(문제 당 2시간 이상 걸렸거나), 못 푼 문제들은 되짚어 보고, 정리하기
- 12단계 → 실제로 시험을 본다는 느낌으로 카카오 문제 등 대회 문제 풀어보기
책에서 시작하자마자 문제의 난이도는 알고리즘별로 나뉘었기 때문에 1~3부터 시작하였습니다.
제 단계는 1단계로 두었고, 코딩 테스트 입문 100문제를 먼저 풀어보기로 결심합니다.
하지만 레벨 0이라고 만만히 볼 문제들이 절 때 아니었습니다.
저는 정답률 높은 순으로 풀었는데 80문제 정도 까지는 순순히 풀리다가, 남은 20문제는 레벨 0이라고 생각이 들지 않을 정도로 까다롭기도 했습니다.
그래도 저는 꾸준히 고민해가며 100문제 풀기를 성공합니다. !
아쉽게 2문제를 다른 사람의 풀이를 봐서 머쓱이 스탬프 획득에는 실패했지만, 그래도 이렇게 결과물로 보니 뿌듯했습니다.
Finding -> 배운 점, 어떤 인사이트를 얻었나요?
책에 초반 내용을 보면, 잘 짠 코드에 대하여 설명하고 있습니다.
잘짠 코드란 ?
실수 없이 문제를 빠르게 풀려면 코드를 잘 작성하는 것도 물론 중요합니다.
하지만 코드는 물론 가장 먼저 문제를 해결할 수 있어야 합니다.
그렇지 않으면 잘 짠 코드, 못 짠 코드를 구분하기 이전에 이미 틀린 코드입니다.
가장 중요한 것은 가독성과 효율성 입니다.
따라서 저는 백 엔드 개발자를 꿈꾸고 있는 만큼 코드가 길어지거나 중복되는 부분이 발생한다면 변수와 메서드, 클래스를 적극적으로 활용하여 읽기 쉬운 코드를 작성할 수 있도록 하고, 역할에 맞게 이름을 붙여 로직에 집중할 수 있도록 구현하려고 노력했습니다.
또한, 이 책을 사기 전에는 문제를 읽자마자 코딩부터 해보는 습관이 있었는데, 이 습관을 지우고 문제를 머리로 먼저 해결해 보면서, 문제 풀이 과정을 주석으로 달아 차근차근히 코딩을 할 수 있는 습관을 갖게 되었습니다.
확실히 머리로 먼저 생각하고, 문제 풀이 과정을 주석으로 적고, 순서대로만 코딩을 해보니 좋은 결과를 얻을 수 있었던 것 같습니다.
Future action -> 향후 행동, 앞으로 무엇을 해야 할까요 ?
코딩 테스트 입문 100문제 풀기에 성공하였으니, 이제 다시 책에 있는 문제를 풀어보기로 계획했습니다.
- 3단계 → 7장까지 책을 정독하고, 문제 풀기(Level 3 이상은 넘어가기)
- 4단계 → 문제를 풀고 어디에서 많이 틀렸는지 확인하기
- 5단계 → 추가적으로 동일 유형의 문제를 찾아서 풀기 (백준 등)
우선 한 달 동안 5단계까지 진행을 해보기로 했습니다.
그리고 공부 방법이 저는 하루 6시간 정도 꾸준히 해보려고 노력하고 있는데, 이 6시간 동안 코딩 테스트만 준비하는 것은 비효율적이라고 생각이 들었습니다.
따라서 CS 공부를 같이 할 계획인데, CS 공부를 어떻게 시작할지 고민해 볼 것 같습니다.
Feedback -> 피드백, 앞서 정한 향후 행동을 실천해 본 뒤, 이에 대해 어떤 피드백을 받았나요 ?
10월 동안에 제가 작성한 계획을 잘 실천하고 있는지 매일 스스로 피드백 해볼 계획입니다.
또한 저에게 책을 추천해 준 CS스터디 멘토에게 물어보니 꾸준히 이렇게만 계획을 실천한다면 코딩 테스트 실력은 크게 성장할 수 있다고 해주었고, CS 또한 공부량을 늘리라는 피드백을 받게 되었습니다.
'회고' 카테고리의 다른 글
[코딩 테스트 준비 10월] 회고 (0) | 2023.11.01 |
---|---|
[Webtoon-Material-Site 프로젝트] 회고 (0) | 2023.08.24 |