본문 바로가기

기타/후기

2021 신촌 연합 알고리즘 여름 캠프 강사 후기 & PS 휴식기

반응형

 

 

약 1달 반의 강의 일정이 모두 끝났다. 길면서도 짧았던 기간이었는데, 꽤나 의미 있던 활동이어서 아직 캠프 자체가 끝나진 않았지만 까먹기 전에 후기를 남긴다. 좋은 강의는 못되더라도 뭔가 하나라도 수강생들이 얻어가는 게 있었으면 좋겠다.  

지극히 개인적인 의견이나 생각이 있을 수도 있으니 불편하신 분들에게 미리 사과드립니다.... 

 

 

[목차]

 

1. 신촌 연합 알고리즘 캠프란?

2. 강사진 신청

3. 캠프 시작 전

4. 강의 목표

5. 강의 진행

6. 후기 & 아쉬운 점

7. PS 휴식기

 

  1. 신촌 연합 알고리즘 캠프란?

 

운영진이 아니라 캠프에 대해 잘 이해하고 있는지는 잘 모르지만, 그래도 캠프에 대해서 조금 설명하고자 한다.

정확한(?) 명칭은 신촌지역 대학교 프로그래밍 동아리 연합(ICPC Sinchon) Algorithm Camp이다.

 

 

https://icpc-sinchon.io/

 

Main | ICPC Sinchon

신촌지역 대학교 프로그래밍 동아리 연합

icpc-sinchon.io

 

신촌 연합은 서강, 연세, 홍익, 숙명, 이화 총 5개 대학의 연합으로 이루어져 있고, 매년 여름과 겨울방학 때 알고리즘 캠프를 진행한다. 

 

메인은 알고리즘 스터디와 SUAPC 대회인 것 같다. 스터디는 강사진이 강의하고, 수강생들은 강의를 수강한 뒤 따로 출석/연습 문제를 해결하는 방식이고 SUAPC는 신촌 연합 프로그래밍 대회로 ICPC와 유사한 방식으로 진행된다. ICPC 대비용 대회이지만 꽤나 규모가 크다. 

처음 캠프에 참여한 건 작년 여름 캠프였는데, 그때와 비교해서 점점 규모가 커져가는 것 같다. 신촌 연합을 이끌어주는 운영진분들의 노력에 감사드린다. 

 

 

  2. 강사진 신청

 

처음에 강사를 먼저 내가 지원한 것은 아니다. 사실 지원할 생각도 딱히 없었는데, 그 이유로는 몇 가지가 있다. 

 

첫 번째로는 일단 강의를 하는데 필요한 기기가 전혀 없었다. 오로지 컴퓨터 하나만 있었기 때문에 강의를 할 수 있을 거라곤 생각도 못했고, 펜 태블릿의 존재도 몰랐다... 다들 태블릿 PC로 강의하는 줄 알았다. 

 

두 번째로는 강사 할 능력이 많이 부족하다고 생각했다.

이번 캠프 이전에 2020 여름 캠프와 2021 겨울 캠프를 수강생으로 참가했었을 당시, 매우 퀄리티 높은 강의를 들었기 때문에 그냥 당연하게 강의를 하면 저 정도는 해야 하는구나 하고 생각했다. 그래서 평소에 내가 푼 문제 하나조차도 논리 정연하게 설명 못하는 수준이었기에 아예 강의라는 게 머릿속에 존재하지 않았다. 

 

이외에 몇몇 사소한 이유들이 있어 강사진 모집 공고를 보고도 아무런 생각이 들지 않았는데, 어느 날 운영진 중 한 분에게 메시지가 왔다. 

 

 

메시지를 받자마자 많은 생각이 들었는데, 우선 메시지가 왔다는 건 강사진 인력이 부족하거나 모집에 어려움이 있다는 뜻이라고 생각했다. 강의를 할 만한 사람들이 꽤 있다고 생각했는데 조금 놀랐다. 

항상 PS공부를 하면서 남들에게 도움받은 만큼 나도 베풀자는 생각을 해왔기 때문에 도움을 주고 싶었다.

다만 위의 이유들로 인해 조금 꺼렸는데, 정말 감사하게도 운영진 측에서 많은 도움을 주셔서 한번 해봐야겠다는 생각으로 바뀌었다. 시간적인 부분에서는 많이 여유로운 편이었기 때문에 의지만 준비되면 가능하긴 했다. 

 

사실 나쁜 생각이지만, 내가 직접 지원한 게 아니니 조금 못해도 괜찮지 않을까? 하는 일종의 까방권을 얻은 영향도 없지 않아 있었다... 물론 열심히 안 해야겠다는 생각은 절대 하지 않았다. 

솔직히 말해서 코드포스 레이팅으로 인해 내 실력이 많이 과대평가되어있다고 생각했기 때문에 부담이 많이 되어서, 노력으로 능력을 커버하자는 마인드였다. 

 

그렇게 2021 신촌 연합 여름 알고리즘 캠프 초급반 강사를 맡게 되었다. 코로나로 인해 강의는 온라인으로 진행했다. 

 

  3. 캠프 시작 전

 

공교롭게도 내가 이전 두 번의 캠프에서 수강했던 강의를 진행한 강사님과 초급반을 같이 이끌게 되었다. 

롤모델로 생각해오던 선수와 같은 팀에서 뛰게 되는 느낌이 이런 걸까. 스스로 조금 뿌듯하면서도 강의력이 워낙 좋으신 분이기 때문에 많이 뒤떨어지지 않기 위해 노력을 해야겠다는 생각이 들었다. 

 

강사진 구성이 끝난 후 강사진 첫 회의를 진행했는데 기가 많이 죽었다... 다들 이전 캠프부터 강의를 해오시던 분들이고, 난 수강생이었다가 처음 강사를 맡게 된 입장이라 자연스럽게 내가 따라가는 느낌이 되었다. 대신 오히려 수강생의 입장은 더 잘 이해하지 않을까 하는 생각으로 위안을 삼았다. 

커리큘럼과 계획을 세우는데 사실 난이도에 있어서는 약간 걱정이 되었다. 초급반 커리큘럼은 이전과 크게 다르지 않았지만, 중급반 커리큘럼의 난이도가 너무 어렵지 않을까 하는 생각이 들었다. 근데 또 하나하나 살펴보면 중급 수준에서 꼭 들을만한 내용들인 것 같은데 같이 모아놓으니 왜 이렇게 무섭게 보이는지.... 정말 딱 초급 수준을 마치고 중급 수준에 처음 입문한 사람이라면 많이 어려울 것 같다. 

 

 

  4. 강의 목표

 

초급반 강의를 진행하기 전에 강의 목표를 크게 두 가지로 잡았다. 

 

1. 수강생들이 알고리즘에 흥미를 가질 수 있도록 하자.

2. 깊지 않더라도 최대한 넓고 다양한 정보를 알려주자. 

 

PS 공부는 반드시 기본적으로 흥미가 있어야 한다고 생각한다. 사실 어느 분야나 비슷하겠지만, 주변의 여러 케이스를 봤을 땐 PS는 흥미가 있는 사람일수록 다른 분야보다 성장 속도가 훨씬 가파르게 증가하는 것 같다. 새로운 알고리즘을 공부하거나 모르는 문제가 있을 때 집요하게 물고 늘어지는 그런 노력이 필요한데 재미가 없다면 쉽지 않기 때문이다.

 

따라서 초급반은 알고리즘을 처음 접하는 사람들이 많을 것이고, 그런 분들이 일단 재미를 붙이면 캠프 이후에 각자 알아서 성장할 확률이 높기 때문에 최대한 알고리즘에 재미를 느낄 수 있도록 하는 게 첫 번째 목표였다. 

 

그렇다면 이를 위해서 어떤 식으로 진행을 하면 될까 고민했었는데, 강의가 비대면으로 진행하기도 하고, 학술적인 내용을 재밌게 설명하기는 힘들겠다고 판단했다. 또 혼자 모니터 보고 막 웃으면서 재밌게 하는 그런 모습이 나한텐 맞지 않는 것 같다... 새삼 유튜버들이 대단하게 느껴졌다. 

대신에 내가 흥미를 더 높인 계기가 뭐가 있을까 생각해보니 여러 계기가 있었지만, 그중 초심자 수준일 땐 기존에 작성하던 코드보다 훨씬 효율적으로 간단한 코드들을 발견하고 이해했을 때, 특히 STL을 막 배울 때였던 것 같다.

그래서 비록 알고리즘 강의이지만 최대한 코드 구현적인 부분을 자세하게 설명하려고 했고, C++ 문법들도 많이 알려주려고 노력했다. 

 

이는 2번에도 연결이 되는데, 알고리즘 공부를 어느 정도 해본 사람이면 알 수 있듯이 블로그나 기타 사이트들에 알고리즘에 대한 설명이 너무나도 잘 되어있다. 사실 강의를 전혀 듣지 않고도 충분히 학습할 수 있다. 

하지만 초심자들은 경험이 부족하기 때문에 이런 정보들에 대한 접근성이 떨어진다. 초심자가 숙련자에 비해 정보들을 찾는 능력이나 습득하는 능력에서도 차이가 있지만, 학습 범위가 매우 넓은 PS 분야에서 어떤 정보들을 찾아야 하는지를 잘 모른다는 것이 크다고 생각했다. 

 

따라서 '능력'에서 오는 차이는 어쩔 수 없지만, '무지'에서 오는 차이는 최대한 줄여주기 위해서 개인적으로 생각하는 Tip이나 공부하는 방법, 혹은 쉽게 알기 힘든 사소한 정보들을 최대한 알려주려고 노력했다. 깊게 설명하지 않더라도 우선 "이런 게 있다~" 정도를 최대한 던져주면서 직접 필요에 따라 학습하도록 유도하는 방식으로 설명했다.  

어디에서나 얻을 수 있는 정보를 알려주는 건 큰 의미가 없지 않을까?

 

나름 준비했던 Tip들

 

 

  5. 강의 진행

 

많은 준비를 했던 첫 번째 강의는 생각보다 긴장이 그렇게 되진 않았다. 비대면의 영향이 컸던 것 같다.

초/중급 전체에서 처음 스타트를 끊는 강의였기 때문에 역시나 실시간으로 많은 사람들이 봐주셨다. 물론 갈수록 많이 줄어들긴 했지만... 

사실 강의 준비량에 있어서는 초반과 후반이 많이 차이가 났다. 그 짧은 기간이라도 몇 번 해보니 조금 익숙해졌다. 또 앞부분은 C/C++ 문법이나 자료구조 등을 설명하는 부분이 많았기 때문에 최대한 많은 지식을 가지고 와야 했고, 나 또한 기존에 잘 모르고 사용하던 부분들까지 공부를 많이 했다. 

 

1회차 대본 일부

처음 두 강의 정도는 이런 식의 대본(?)을 미리 작성해두었다. 당황하거나 말리면 해야 할 말들을 잘 까먹는 편인데 1회차 강의가 하필 C/C++ 문법이어서 설명 누락은 꽤 큰 문제였다. 그래서 평소 일상생활하다가 '이거 설명하면 좋겠다'라고 생각날 때마다 하나씩 메모해두었다. 

 

또 초반에 겪었던 어려움으로는 판서였다. 펜 태블릿을 쓰는 게 익숙하지 않아서 화면에 글을 쓰는 게 굉장히 어색했고, 글씨도 더러웠다. 물론 후에도 글씨가 딱히 좋아진 건 아닌 것 같지만, 그래도 쓰는 것 자체는 점점 편해졌다. 혼자서 빈 ppt에 글 쓰는 연습을 몇 번 했는데 결국 내 손의 문제라고 판단하고 내려놓았다. 그래도 영 못 알아볼 정도는 아니지 않았을까...?

 

회차를 거듭할수록 실시간 강의 수강생 수가 줄어드는 건 충분히 예상했었다. 이전 캠프들에서도 그랬고, 나 또한 수강생일 때 녹화본을 듣는 것을 더 선호했다. 이해가 되지 않는 부분이나 놓친 부분이 있을 때 여러 번 돌려볼 수도 있고 속도도 조절할 수 있기 때문이다. 그럼에도 불구하고 강의 도중에 눈에 보이는 수강생 수가 꽤나 신경이 쓰이긴 했다... 지난 캠프 때의 나를 반성했다. 

사실 방학중에 매주 그것도 저녁 시간대에 강의를 듣는 게 쉽지 않은데, 그래도 매번 실시간으로 들어주시는 분들도 계셨고, 녹화본 조회수도 꽤 나와서 너무 감사했다.

 

강의가 쌓인걸 보면 기분은 좋다.

 

여담으로, 집에서 강의를 하느라 강의에 방해되지 않게 방에서 문을 모두 닫고 진행했는데, 방에 에어컨이 따로 있는 게 아니라 한여름에는 매우 더웠다....ㅎ 진짜 더운 날은 땀 흘리면서 강의할 정도였으니... 양옆에 냉풍기와 선풍기를 끼고 강의를 해도 한계가 있었다. 

 

 

  6. 후기 & 아쉬운 점

 

이번 강사 활동을 통해서 물론 시간과 노력을 많이 투자를 했지만, 나 또한 얻어가는 게 많았다. 일단 초급 수준임에도 불구하고, 아니 초급 수준이라서 정확한 원리를 모른 채 사용했던 많은 지식들에 대해 좀 더 자세히 알 수 있었다. 남에게 가르치기 위해서는 확실하게 이해를 하고 있어야 하기 때문에 대충대충 공부할 수가 없었다.

 

또 확실히 예전보다 풀이를 말로 설명하는 능력이 조금 늘었다는 느낌이 든다. 잘한다고는 못하지만, 예전에 학회 연습 셋이나 스터디, 팀 연습 등을 할 때 내가 느끼기에도 정말 설명 못한다고 생각했는데, 그래도 지금은 어느 정도 내가 하고 싶은 설명을 잘 전달할 수 있게 되었다. 오죽하면 팀원들이 강의하면서 설명 잘해진 것 같다고 할 정도이니...

 

강의할 생각이 전혀 없던 내가 말하기가 조금 부끄럽지만, 여건이 된다면 강의를 한번 해보는걸 꼭 추천한다. 오히려 이렇게 생각이 달라졌기 때문에 더 설득력이 있을까? 정말로 남들에게 알려주는 것 이상으로 더 많은 것을 얻어갈 수 있는 기회인 것 같다. 

 

아쉬웠던 점도 있는데, 강의에서의 아쉬웠던 점은 아니고 수강생들에게 바라는 점? 정도가 될 것 같다. 

저번 캠프와 비교했을 때 이번 캠프에서의 질문의 수가 많이 적었던 것 같다. 정말로 질문이 없었다면 모르겠지만 또 그에 비해 출석 문제가 어렵다는 피드백이 많이 있었다. 강의 중에 물어봤을 때도 "어려웠다", "구글의 도움을 받았다" 등등의 의견들이 꽤 있었다.

 

신촌 연합 캠프는 참가비를 내야 참여를 할 수 있다. 그 참가비에는 강의 수강, 캠프 콘테스트 참가 등이 포함되겠지만 강사/멘토들에게 질문 답변할 수 있는 시스템도 많은 비중을 차지한다고 생각한다. 돈이 아깝단 소리는 아니지만, 이런 캠프만큼 실력자들에게 조언을 구하고 질문을 할 수 있는 기회가 별로 없다고 생각한다. 쉽게 풀 수 있는 문제들만 풀고 간다면 무슨 의미가 있을까. 일부러 조금이라도 더 얻어갈 수 있도록 난이도가 있더라도 좋은 문제들을 선별해서 제공해주는 것이다. 

질문을 권장하는 게 단순히 모르는 것에 대한 답변을 얻어갈 수 있다는 이유만 있는 게 아니다. 여러 사람들의 생각을 들으며 사고력을 넓힐 수 있고, 질문을 하기 위해선 자신이 의도한 풀이나 구현 방식, 모르는 부분 등을 알려줘야 하는데, 이런 내용을 정리해서 설명하는 것 자체가 많은 도움이 된다. 또 이렇게 정리하다 보면 질문을 하려다가도 문제점이 해결되는 경우도 종종 있다. 

그래서 질문하는 것을 주저하지 않았으면 하는 바람이 있다. 특히 PS 분야는 남들에게 알려주고 싶어 하는 고수들이 되게 많다. 그러니 예의를 지키는 선에서 최대한 조언을 구하여 실력을 키우는데 도움이 되었으면 좋겠다. 

 

 

  7. PS 휴식기

 

사실 이게 이 글의 메인일지도..? 

 

결론부터 말하면, 다음 주 SUAPC가 끝나면 당분간 PS를 안 할 예정이다. 언제 돌아올지는 모르겠다. 1달이 될지 몇 달이 될지... 아예 접지는 않을 것 같다. 

한 1~2달 전부터 느껴왔는데, PS에 의욕이 많이 떨어졌다. 컴퓨터를 켜면 자연스럽게 백준 사이트를 들어가지만, 아무것도 안 하고 구경만 하는 내 모습을 보고 결심했다. 

 

그래서 요즘 PS를 거의 하지 않아서 SUAPC 팀원들에게도 미안한 마음이 있다. 대회전까지 다2를 찍어보겠다고 선언했었는데... 

SUAPC 참가팀 명단을 쭉 살펴보니 객관적으로 우리 팀의 전력은 6~8등 정도 되는 것 같다. 실전에서 운이 많이 따라줬으면 좋겠다. SUAPC 후기도 꽤 길게 작성할 예정이다.  

 

여러 이유가 있는데 가장 큰 이유는 더 이상의 목표가 없다. 정확히 말하면 다음 목표까지 갈 길이 너무 멀다. 

목표라고 해봤자 코드포스 레이팅이 대부분이었지만 그래도 오렌지가 인생 목표였고 민트 시절엔 블루, 블루 시절엔 퍼플, 퍼플 시절엔 오렌지를 바라보며 정말 열심히 달려왔다. 많은 노력을 해서 다행히도 예상보다 빠르게 목표를 달성해왔다.  

목적지는 레이팅이 아니라는 시프트님의 좋은 글이 있는데, 나는 목표와 성취감을 통해 흥미를 느끼고 발전하는 스타일이고, 그중에서 레이팅만한 목표가 없다고 생각하기 때문에 조금 집착을 해왔던 것 같다.  

 

개인적으로 생각하기에 그다음 목표는 찐렌지 or 큰 대회 입상(SCPC, UCPC, ICPC 등)이 되어야 할 것 같은데, 너무 멀다. 물론 불가능하다곤 생각하지 않는다. 다만, 지금까지 공부해온 경험과 다른 사람들을 봤을 땐 최소 1년은 이전처럼 열심히 해야 할 것 같다는 느낌이 든다. 아직 나이가 좀 더 어리다면 계속 앞으로 나아갔겠지만, 당장 내년이 취준생인 입장에서 여기에 매달리면 안 되겠다는 생각이 들었다. 하고 싶은 공부도 많고, 해야 할 공부도 많기 때문에 현실적으로 생각해서 내린 결론이라 마음이 조금 아프다....

 

성적이 잘 나오지 않았던 이유도 있다. 최근에 열심히 안 하긴 했지만, Codejam, SCPC, UCPC 등의 대회에서 벽을 많이 느꼈고, 지금처럼 대충 해서는 절대 성장할 수 없다는 판단이 들었다. 코딩 테스트와 대회 입상의 딱 중간인 내 실력이 너무 애매해서 현타가 많이 왔다.

그래도 1년이 조금 넘는 기간 동안 남들이 볼 땐 어떨지 모르겠지만, 나는 이만큼 성장한 것도 나쁘지 않다고 생각한다. 무엇보다 이렇게 한 가지 일에 몰두할 수 있었다는 게, 그리고 하면 된다는 걸 알 수 있어서 좋았다.  

 

정말 시간적으로 여유가 된다면 CP는 가끔씩 참가할 것 같다. 최대한 빠르게 돌아올 수 있었으면 좋겠다...! 

 

 

 

반응형