엘리스 AI 트랙 때부터 이어져오던 코딩테스트 스터디가,
수료(7월 초) 후를 기점으로 한 달 반 정도, 시즌2를 마치게 되었다.
그 사이에 레포지토리도 빵빵해지고, 운영 방식도 조금씩 변경해가면서
좀 더 안정적인 진행을 만들어 나갔다.
(그런데 안정적인 게 마냥 좋은 것만은 아니었다)
꾸준하게
총 한 달 반의 기간동안 일주일에 두 번, 두 문제씩 + 모각코(옵션) 으로 빡센 일정으로 꾸준히 문제를 풀어 감을 잃지 않았다.
매주 모임 전 날에 부랴부랴 풀긴 했지만, 이것조차 하지 않았으면 아예 풀지도 않았을 것이다...
특히나 코딩테스트에서 주로 다뤄지는 그래프 이론(DFS, BFS), DP를 자주 풀었어서 해당 로직 짜는 데에 익숙해지도록 만들었다.
실전처럼
프로그래머스 실전 모의고사 + 모각코 등으로 백준 문제만 다루는 것이 아니라 실전 대비도 병행했다.
[프로그래머스_Python] 코딩테스트 실전 대비 1차 모의고사 후기
[프로그래머스_Python] 코딩테스트 실전 대비 2차 모의고사 후기
[프로그래머스_Python] 코딩테스트 실전 대비 3차 모의고사 후기
git 가지고 놀기
코드리뷰는 이전부터 쭉 해왔는데, PR에서 가끔 꼬이고 커밋 관리가 불편해서 branch를 따로 파는 게 아니라 fork한 뒤 PR하는 방식으로 변경하여 좀 더 오픈소스 프로젝트 형식으로 방식이 전환되었다.
사실 알고리즘 스터디에 굳이 이렇게까지...?
라는 생각이 들 수는 있으나 지금 fork 연습 안 해보면 언제 또 해보겠어... 막 가지고 놀 수 있는 레포지토리가 있으면 맘껏 활용하는 게 좋은 것 같다.
참여율 저조
갑작스러운 불참+스케쥴 조정으로 인한 참여율이 저조했다. 다들 취준하느라 면접 및 지원때문에 중간중간에 빠지게 된 적이 꽤 있었다.
물론 나도 원티드 프리온보딩 지원한다고 한 번 모임을 생략한 적이 있어서 크게 할 말은 없지만...
그래도 다같이 동일한 목표를 가지고 하는 스터디인만큼 참여가 참 중요한데, 이렇게 한 명씩 빠지니 팀장으로서 마음이 아팠다.
부담스러운 양
일주일에 두 번, 항상 전날에 문제 두 개를 푸는 게 부담스러워서 모임이 잦다고 느껴졌다.
신기한 게 분명히 부트캠프는 끝났는데, 왠지 모르게 더 바빠진 느낌이 들었다. 이건 내가 시간관리를 잘 못하기 때문에 그런 것이겠지만...
항상 모임 전날에 새벽 2시에 문제 두 개를 겨우 풀고 모임이 끝나고 주석을 부랴부랴 달고 PR을 올렸던 것 같다.
(과거의 나 반성해...)
매너리즘
어려운 문제를 길게 풀 여유가 없어서 항상 모범 코드를 참고하는 것이 부끄럽게 느껴졌다.
어쩔 수 없이 답을 봤다고 했더라도 복습할 시간이 없어서 휘발성이 매우 강했다. 심지어 푼 문제도 벌써 가물가물한데, 못 풀어서 답을 참고한 문제는 어떠할까...
사실 문제를 붙잡고 있을수록 더 기억에 오래 남는 법이긴 하지만 취준생+복학생에겐 그럴 시간이 없다...! 문제 하나당 2시간이 넘어가면 그렇게 스트레스일 수가 없다.
난이도의 문제를 해결하기 위해
매 모임마다 랜덤으로 정하기 보다는 사람마다 돌아가면서 미리 문제를 파악해오고, 난이도를 스스로 점검하는 시간을 가진 다음 원하는 난이도 별로 가지고 온다. (단, 총 난이도는 실버 4~골드 5로 고정)
참여율을 해결하기 위해
주 1회(2~3문제) + 모각코(선택)으로 정하고, 강제성을 부여합니다. (면접, 코테만 허용 가능) 만약 이외 사정으로 불참할 경우 다음 모임 시간에 알고리즘을 하나 정해 발표하는 시간을 갖는다.(10분 내외)
학습 효율을 높이기 위해+참여율 해결을 위해
2주 간은 공통 문제+모각코 / 3주째는 복습 주간을 가진다. 복습 주간에는 이전에 답을 참고한 문제에 대해 새로 풀어보거나 복기하는 시간을 가진다.
모각코 형식으로 진행해서 모여서 각자 공부하는 식으로 강제성 부여 정도로만 모이면 좋을 것 같다.
복습이 아니더라도 고급 알고리즘에 대해 공부하는 시간 또는 알고 있는 알고리즘에 대해 문제 푸는 팁을 정리하는 시간을 가지면 좋을 것 같다.
다른 분들의 TRY도 종합하여 최종적으로 정해진 TRY는 다음과 같다.
1️⃣ 개념 공부
3주에 한 번씩 정해서 새로 시도하거나 어려운 알고리즘의 경우 문제 풀이가 아닌 개념 정립 시간을 갖는다. 미리 개념 설명 동영상이나 블로그로 공부하거나 이코테 책을 참고해서 정독해온다.
모임일자에는 스터디원이 한가지씩 잡아 강의 형식으로 진행한다. 한 명씩 원하는 주제를 선택하고 발표한 뒤 질의응답 시간을 갖는다.
2️⃣ 복습
3주에 한 번씩 개념 정립 시간과 더불어 어려웠던 문제 리마인드를 하거나 다시 풉니다.
3️⃣모각코
간헐적으로 1~3주간 어려워서 풀지 못한 문제가 있다면 각자 잡아서 푸는 시간을 가집니다.
4️⃣코드 리뷰
랜덤 말고 한 명씩 로테이션 방식으로 변경하기
5️⃣문제 선정
매 모임마다 랜덤으로 정하기 보다는 사람마다 돌아가면서 미리 문제를 파악해오고, 난이도를 스스로 점검하는 시간을 가진 다음 원하는 난이도 별로 가지고 옵니다.
[문제 유형 제안] 구현, 그리디, DFS/BFS, 이분탐색 등 일반적으로 많이 출제되는 유형을 마스터한 다음 비트마스킹, 백트래킹, 다이나믹 유형을 차근차근 연습하는 방식
6️⃣일정 변경
주 1회(2~3문제) + 모각코(선택)으로 정하고, 강제성을 부여합니다. (면접, 코테만 허용 가능) 만약 이외 사정으로 불참할 경우 다음 모임 시간에 알고리즘을 하나 정해 발표하는 시간을 갖습니다.(10분 내외)
꾸준하게 한 건 확실하다. 장담할 수 있다.
그런데 꾸준한 게 마냥 좋은 것은 아니라는 것을 깨달았다.
꾸준할 수록 똑같은 것, 똑같은 생각, 똑같은 문제 풀이 습관이 들기 마련이다. 특히나 어려운 문제가 선정이 됐을 경우 자연스럽게 구글링할 생각부터 하고 있었다. 매번 문제 풀이만 하다보니 개념을 정립하거나, 이전에 모르고 넘어갔던 부분들에 대한 복습 기회를 놓쳐 결국엔 남은 게 없었다.
[문제 선정-문제 풀이-발표-코드리뷰]
이 주기만 반복되다보니 중간에 쉴 틈도 없었을 뿐더러 갈수록 성장하고 있지 않다는 생각이 들면 들수록 지금 방식에 대한 회의감이 들었다. 그래서 시즌2를 마무리하게 되었는데, 일주일만 더 하고 추석 연휴동안 쉴 걸...
이란 생각을 어제 회고하면서 하긴 했다.
나만 이런 문제점을 느끼고 있었던 것은 아니었고 팀원 대부분이 유사하게 느끼고 있어서 이 문제를 해결하기 위해 다양한 TRY를 보고 취합하게 됐다. 그리고 다음 모임 때 구체적인 운영 방안에 대해 논의하고 시즌3를 곧바로 시작하게될 것이다.
시즌3에는 4명으로 확연하게 적은 인원으로 진행되지만, 그렇다고 해서 인원 충원을 하지는 않을 것이다. 스터디의 최종 목적은 취업이고, 이제 모두들 취업할 때가 됐으니! 시즌3는 모두의 취업이 이루어졌을 때 같이 종료될 것이다.
앞으로도 파이팅입니다!
못 푼 문제 | 알고리즘 유형 |
---|---|
서울에서 경산까지 | DP |
파괴되지 않은 건물 | 구현, 누적합 |
양궁대회 | 완전탐색 |
외판원 순회 | DP, 비트마스킹 |
연구소 | DFS, 브루트포스 |
양과 늑대 | 그래프이론, 완전탐색 |
채정님도 파이팅!