2024년 여름 방학 계획

Updated:

Categories:

서론

드디어 2024년의 여름방학이 다가왔다.
군 휴학과 추가 1년 휴학으로 인해 3년 만의 복학 후 첫 학기라 너무 어색했지만 그래도 나름 잘 해쳐온 것 같다.
너무 오랜만에 대학교 학점 따기를 해서 중간고사 때는 많이 헤맸지만 다행히 기말고사 때 재활이 돼서 많이 복구할 수 있었다. (무엇보다 중간고사 첫 시험 때 애플펜슬만 들고 간 것은… 허허)

3학년 1학기 때 경험한 바에 따르면 학기 중에는 개인 공부에 몰입할 수 있는 시간이 아무래도 줄어들 수 밖에 없었던 것 같다. 방학을 잘 활용하는 것이 내 실력적인 향상에 있어서 가장 중요한 시즌인 것 같다.

그만큼 방학 동안 시간활용을 잘 해서 최대한 많은 목표를 이뤄내야 할 것이다.
단순히 문제를 많이 풀고, 공부 시간을 늘리는 것도 좋지만 최근 내가 공부에 대해서 느끼는 것은 많이 고민하고, 많이 실패하고, 그 안에서 많은 것을 배우고, 그리고 그것들을 잘 정리해서 내 것으로 만드는 것이 무엇보다 중요한 것 같다.

지금까지 알고리즘에 (내 기준에) 나름 적지 않은 시간을 투자했지만 그 시간에 비해 실력이 아쉬운 것을 보면 확실히 이러한 부분들이 내게 부족했던 것 같다. 아무 생각없이 무작정 알고리즘을 푸는 것은 이제는 더 이상 크게 도움이 되지 않는 것 같다.

그 외로는, 공부 방법도 중요하지만 명확하고 현실 가능성이 있는 목표 또한 중요하다. 항상 열정적으로 무언가를 하기는 현실적으로 불가능하다고 생각한다. 하지만 현실적이고 명확한 목표는 꾸준히 일을 할 수 있게 해주는 것 같다.

그런 다짐(?)들과 생각들을 쓰면서 스스로를 명확하게 하기 위해 이렇게 일기 비슷한 계획을 쓰게 되었다.

본론

방학동안 해야 할 분야는 다음과 같다.

  1. 알고리즘
  2. 머신러닝
  3. 영어

일단 1,2번에 대부분의 시간을 투자하고, 3번의 경우 최대한 자투리 시간을 잘 활용하는 게 핵심인 것 같다.

알고리즘

알고리즘은 일단 개인적인 실력 향상과 팀 연습이 있는데, 팀 연습의 경우 방학동안 주 2회 정도 학회 랩실에 모여서 팀원들이랑 지속적으로 시간을 잡고 문제셋을 풀어보고 있다.
끝나고 나서는 피드백을 통해 어떤 점이 아쉬었고 어떤 점을 개선할 수 있는 지를 생각했다. 팀으로서 손발이 잘 안 맞는 경우는 사실 몇 번 해보니 어느 정도 해결이 되었는데, 역시 개인적인 실력이 향상이 시급함을 다시 한 번 느꼈다.

그럼 개인적인 실력은 어떻게 향상해야 할까에 대해 많은 고민을 했는데 다행히 raararaara 선배의 도움으로 가닥을 잡을 수 있게 되었다. 그의 어마무시한 알고리즘 실력 향상 커리큘럼을 듣고 나니… 내 실력 부족이 당연한 일이라는 걸 깨달았다. (주 3~4회의 버추얼과 그 코드의 리뷰 및 업솔빙, 그리고 typcial 문제들 계속 밀기 등…)

반성하고 초심으로 돌아가 차근차근 해 볼 예정이다.

1. 버추얼 및 라이브

주 2~3회의 버추얼 및 라이브를 생각하고 있다.

  1. 월요일 코포 버추얼 스터디
  2. 토요일 앳코더 라이브
  3. ?요일 코포 라이브
  4. leetcode weekly / biweekly contest
  5. codechef

1~3은 웬만하면 무조건 기회가 될 때마다 할 예정이고, 4~5번 같은 경우 업솔빙 및 typical 문제들 밀기 등을 한 후 시간이 남으면 할 예정이다.

2. 업솔빙 및 코드리뷰

업솔빙의 경우는 정말 시간이 많이 들지만 이것만큼 중요한 것이 없다고 생각한다. 결정적으로 실력이 늘려면 업솔빙을 제대로 해야 한다.
하지만 실력에 비해 너무 어려운 문제를 업솔빙하는 것도 사실 가성비(?)가 좋지 않다고 생각한다. 그런 문제의 경우, ‘그냥 그런 게 있대’ 이런 식의 리뷰가 될 가능성이 높기 때문이다.

난이도를 잘 보고 먹을(?) 수 있는 만큼 먹어보는 것이 좋다.
앳코더의 경우 민트 ~ 블루 정도까지 먹어보고,
코포는 블루~퍼플 정도까지 먹어볼 생각이다.

그리고 해당 아이디어들을 간단히 블로그나 깃헙에 정리해서 올릴 예정이다. 결국 정리해서 기억하지 못하면 의미가 없기 때문이다.

3. Typical 공부

사실 3번이 현재 가장 필요한 부분이다. 사실 알고리즘 대회라는 게 남들이 다 맞추는 걸 다 맞출 수 있어야 경쟁을 해 볼 수 있는 것이다. 사실 알고리즘의 경우 아는 것은 많지만 아직 숙련이 덜 되거나 바로 아이디어를 못 떠올릴 만큼 능숙하지 못 한 알고리즘들도 꽤 있기에 이를 정리해야 한다.

공부 방법은 다음과 같다.

  1. 먼저 롸 선배가 추천한 AtcoderTypical90 문제를 쭉 밀어볼 생각이다.
    하루에 최소 3문제 이상은 풀어서 한달 만에 끝내는 것이 목표다.
  2. 알고리즘 정리
    기존의 정리한 알고리즘들을 다시 깔끔하게 정리해서 블로그에 포스팅하는 것이 목표다.
    그리고 각 코드의 템플릿을 깔끔하게 만들고 해당 알고리즘을 능숙하게 쓸 수 있도록 관련 문제를 여러개 풀어볼 예정이다.
    1주일에 최소 1개이상은 포스팅할 예정이다.

머신러닝

머신러닝의 경우, 기초 공부를 1,2번 정도 가볍게 하긴 했으나 아직 부족한 부분들이 많다.
기본기를 잘 다지는 것이 목표다.

일단 이유한님의 캐글 커리큘럼을 방학동안 쭉 따라가 볼 생각이다.
어떤 식으로 모델링을 하고 데이터를 정제하는 지를 익숙하게 만들 생각이다. 그리고 가장 중요한 건 직접 캐글을 통해 퍼포먼스를 내보는 것이다. 읽고 정리하는 것과 직접 고민해서 모델을 훈련시키는 것은 완전히 다르기 때문이다.

캐글은 좋은 플랫폼이지만, 실전에 가까워서 사실 원론적인 공부에 있어서는 그리 좋지 않은 것 같다. 해당 모델을 사용하는 이유도 ‘하다보니 잘 나와서 사용했다’ 라는 식의 생각이 많다. 따라서 직접 공부하면서 의문이 드는 부분을 정리해보고 관련 논문도 찾아볼 생각이다.

캐글을 공부하다가 나오는 기본 개념의 정리 같은 포스팅도 같이 공부할 생각이다.
또한 논문 리뷰 및 직접 구현을 할 계획이다. 머신러닝이 빠르게 발전하는 분야인 만큼 논문을 읽고 빠르게 적용할 줄 아는 능력이 필요하다고 생각하기 때문이다. 방학 동안에 관심 분야의 논문을 여러 개 읽고 직접 구현의 경우는 2개 이상 하는 것이 목표다.

우선 순위를 정리해보자.

  1. 이유한님 캐글 커리큘럼은 대충 14개의 프로젝트로 이루어졌는데 각 프로젝트마다 3~4개 정도의 노트북들이 있다. 이를 하루에 한 프로젝트씩 끝내는 게 목표다.
    빠르게 읽고 정리해보는 게 목표이므로 너무 상세하게 정리하는 시간을 낭비하지 않는 것이 중요하다.
  2. 캐글 커리큘럼을 하면서 주마다 한 번씩 캐글 프로젝트를 직접 참여해서 처음부터 끝까지 작성해 보겠다.
    끝나고 나면 어떤 부분을 생각 못 했는지 피드백을 하고, 해당 내용들을 정리해서 블로그에 포스팅할 예정이다.
  3. 캐글 커리큘럼을 모두 끝내고 나면, 주 2회 이상 캐글 직접 구현을 하고 논문들을 읽기 시작할 것이다.
    어떤 개념들이 있고, 어떤 것이 학회의 트렌드인지 파악할 수 있을 것이다. 논문 리뷰의 경우 주 2개 이상을 리뷰할 생각이고, 직접 구현은 그 중 하나를 잡아 직접 구현해 볼 것이다.
  4. 마지막으로 위에서 공부하면서 내가 확실히 알아야 하는 지식들을 포스팅하여 정리할 것이다.

사실 머신러닝은 알고리즘보다 공부한 시간이 적어서 어떻게 공부하는 것이 옳거나 제대로인지는 잘 모르겠다.
하지만 중요한 건 머신러닝의 지식에 대해서 충분히 오랫동안 고민해보고 나만의 생각들을 정리를 잘 하는 것이라고 생각한다. 물론 초반에는 캐글의 퍼포를 올리기 위해 방법론들을 배우기 위해 노력하겠지만 기초를 다지고 나서는 좀 더 심화된 나만의 생각을 정리하는 것이 중요할 것이다.

영어

영어 즉, 회화의 경우는 사실 알고리즘이나 머신러닝으로도 충분히 시간을 많이 사용하기 때문에 추가적인 공부시간을 갖기 어렵다.
일단 기본적으로 주에 1회 정도 알고리즘 영어 스터디를 갖는데 이건 개인적으로 매우 만족 중이다. 처음 10분은 가볍게 small talk을 해서 일상적인 회화 연습을 하고 그 후부터는 해외 IT회사의 코테 면접처럼 문제 setter가 문제를 영어로 설명해주고 이를 영어로 대화하고 스터디원들과 서로 의논하면서 풀어가는 것이 스터디 내용이다.

처음 회화를 시작할 때 일단 말하는 것도 어색하고 무슨 말을 해야 할 지 모른다는 게 가장 큰 장벽이었다. (무엇보다 혼잣말을 하면서 연습해야 한다..) 그런데 영어 알고리즘 스터디를 하니 일단 무조건 말을 해야 하고, 거기에 알고리즘 관련 이야기니 나 같이 영어를 못 하는 사람도 일단 말할 게 생겨서 어떻게든 말해보려 하다보니 노하우도 생기고 자신감도 생겨서 반년 정도 하다보니 나름 기본적인 대화는 얼추 하는 것 같았다.

하지만 여전히 문법이나 풍부한 표현, 그리고 원어민들이 사용하는 표현 및 어휘들을 좀 더 공부할 필요성을 느꼈다. 스터디 덕분에 말하는 법의 기초는 어느 정도 뗀 것 같아서 그 이후의 스텝을 밟아볼 생각이다.

일단 유튜브 shorts 알고리즘에 영어 표현 관련 유튜브 채널을 넣어놨다 ㅋㅋ. 이게 생각보다 괜찮다. 지하철 이동할 때나 할 꺼 없을 때 이런 채널의 shorts영상을 보고 있으면 나름 얻어가는 것이 많다. 그리고 유튜브의 영상 중 영어로 된 영상을 자막을 달아주고 독특한 원어민스러운(?) 표현들을 알려주는 채널들도 꽤 많다. 위 채널을 활용하니 원어민들이 말하는 말들을 리스닝하는데 나름 도움이 되었다.

어휘의 경우, voCat이라는 앱을 사용하는데 개인적으로 매우 만족 중이다. 내가 저장한 어휘들을 내가 정해놓은 시간 간격마다 알람을 준다. 그럼 핸드폰의 알람을 보면서 해당 단어의 뜻을 다시 상기시킬 수 있다. 개인적으로 고등학교 때도 영단어는 이런 식으로 자투리 시간을 활용해서 암기했다.

그리고 마지막으로 가장 중요한 건 혼자말이나 생각을 영어로 혼자 중얼중얼거려보는 것이다. ‘이런 말을 하려고 하는데 영어로 어떤 식으로 표현해야 맞는 걸까?’ 이걸 심심할 때마다 해보면 진짜 괜찮은 것 같다. 개인적으로 일본어를 한 때 이런 식으로 연습했는데, 전성기(?) 시절에는 일본 자유 여행을 가도 원어민과의 대화도 크게 문제는 없었다. (믈론 문맹이라 글은 못 읽었지만)

결론

계획을 주저리 주저리 쓰다보니 쓸데없이 길어진 것 같다. 그래도 내 나름대로의 생각과 목표들을 정리할 수 있어서 좋았다.
보는 사람은 정말 재미없고 지루한 글인 듯 하다가도 어차피 이 글을 누가 볼까 생각하니 없는 것 같아서 그냥 내 마음대로 적었다 ㅎㅎ.

후에 7월 말에서 8월 초 쯤 중간 점검 및 목표 달성률을 적기 위해서 또 포스팅할 생각이다.
내가 말한 목표들을 포기하지 않고 꾸준히 노력해서 이뤄냈으면 좋겠다.

마지막으로 최근에 내가 빠진 명언 2개를 적고 가겠다.

“To get something you never had, you have to do something you never did”

“The magic you’re looking for is in the work you’re avoiding.”

혹시 이 글을 보는 사람이 있다면, 위 명언들을 읽고 파이팅할 수 있었으면 좋겠다.

Leave a comment