슬슬 하반기 코딩 테스트를 준비할 시즌이 다가오고 있죠? 여전히 어렵기만 한 알고리즘을 15년째 즐기고 계신 알고리즘 고인물이 있다고 하여 만나보았습니다. 알고리즘을 재밌게 배우는 방법, 알고리즘을 왜 공부해야 하는지 등 소중한 인사이트를 공유해주셨습니다. 왠지 하반기 코딩 테스트를 싹쓸이할 수 있을 것 같은 용기가 생겨요! 💪 어떤 내용일지 들여다볼까요?
안녕하세요
코딩몬스터입니다
구름EDU에서 [10주 완성 알고리즘 코딩테스트] 강좌를 연재 중인 코딩몬스터(본명: 김동이)이라고 합니다. 직업은 당연히 개발자고요. 인공지능 스타트업인 ‘루닛’에서 머신러닝 엔지니어로 근무 중입니다. 최근에는 유튜브(👉코딩몬스터TV) 채널을 통해 주니어 개발자가 구직할 때 필요한 정보를 전달하고 있어요.
취미로 시작한 알고리즘이
만든 코딩몬스터
알고리즘을 본격적으로 시작하게 된 계기는 대학교에 진학 후 알고리즘 동아리 활동을 하면서였습니다. 알고리즘 대회를 나가보니 도전 의식이 생기더라고요. 수업은 안 듣고 알고리즘 공부만 하기도 했어요.☺️ 그러다 동아리 후배들에게 알고리즘 교육을 직접 하게 되었는데, 제 지식이 다른 사람들에게 도움이 된다는 점에서 보람과 즐거움을 느꼈어요. 이때 경험이 전공 과목 조교, 프로그래밍 강사 등 다양한 교육 활동으로 이어졌고 지금의 구름EDU 강의자 코딩몬스터가 되었습니다. 👏
알고리즘 공부하면서
가장 힘든 순간은
알고리즘은 처음 시작했을 때가 제일 어렵다고 생각해요. 프로그래밍 문법과는 별도로 공부해야 할 지식도 많은데 알고리즘을 이해하기도 버거운 상태에서 구현하고 응용까지 해야 하니 초기 진입장벽이 높을 수밖에 없는 것 같습니다. 그래도 어찌어찌 공부하다 보면 알고리즘 문제의 기본적인 패턴과 유형에 익숙해지는 시기가 있는데 이때부터는 무엇을 공부해야 이 문제를 풀 수 있을지 스스로 고민할 수 있는 궤도에 오르게 되어요. 재미도 공부 속도도 확 올라가죠!
저는 초보자들이 이 궤도에 빠르게 오를 수 있게 도와드리고 싶었어요. 무엇을 어떻게 가르쳐야 할지 스스로 많이 고민하고 공부했습니다. 결국 알고리즘 초보자들에게 가장 필요한 건 이미 잘 완성된 알고리즘을 설명해 주는 것이 아니라 ‘코드 한 줄과 변수 하나마다 어떤 의미가 있고 왜 이런 알고리즘이 되는지’에 대한 이해라는 사실을 깨달았어요. ‘꼭 이런 내용을 담은 강좌를 만들어야지’라는 생각 끝에 [10주 완성 알고리즘 코딩테스트] 강좌를 만들게 되었습니다.⭐
알고리즘이 처음이더라도
혼자서 헤쳐나갈 수 있도록
[10주 완성 알고리즘 코딩테스트]은 이제 막 알고리즘 공부를 시작한 사람이 혼자서 알고리즘을 헤쳐나갈 수 있도록 만드는 게 목표입니다. 주요 개념에 대한 지식을 자연스럽게 확장해나갈 수 있도록 다른 강좌에서는 당연하듯 넘어갔던 부분들을 하나하나 짚어 드립니다. 반복문을 잘 다루는 방법부터 코딩 테스트에 자주 등장하는 문자열, DFS, BFS, 그래프와 같은 복잡한 알고리즘까지 모두 다룹니다! 💡 특히 앞 단원에서 배운 기초적인 내용이 뒤에서 계속 응용되며 이어질 수 있도록 만들어져 있기 때문에 단계별로 성장하는 성취감을 느끼면서 학습할 수 있어요.
어려워서 눈물나는 알고리즘
재밌게 배우려면?
당연한 이야기지만 알고리즘은 내가 이전 문제에서 공부했던 것을 다음 문제에서 활용할 수 있도록 공부하는 것이 중요하다고 생각해요. 새롭게 익힌 지식이 곧바로 다음 문제에 활용되는 경험을 해보면 어려웠던 것이 재밌어지거든요.
예를 들면, 영어 공부를 할 때 아무리 단어를 많이 외워도 회화에서 쓰지 않으면 단어 공부가 재미없듯이 알고리즘도 마찬가지입니다. 배운 내용을 단계별로 응용할 수 있으면 굉장히 재밌게 공부할 수 있답니다! 이렇게 공부하면 내가 한 단계 성장했음이 눈에 보여서 성취감도 대단해요. 👍
알고리즘 공부했던 사람들이
공통적으로 하는 말
단순히 알고리즘 문제를 푸는 행위가 직접적으로 실무에 곧바로 도움이 되느냐 하면 아닙니다. 그런데도 왜 배워야 하냐고 묻는다면 아는 만큼 보인다는 말처럼, 알고리즘을 알면 보이는 것이 많다고 얘기해 드리고 싶어요.
저는 알고리즘을 공부하면서 구현 연습을 정말 많이 하게 되었고, 각 언어의 동작 방식에 대해서도 깊게 공부하게 되었어요. 코드를 작성할 때 더 좋은 방법은 없을지 버릇처럼 고민하는 좋은 습관도 쌓였어요. 그러다 보니 현업에서 특정 기능을 구현할 때도 더 나은 방법을 계속해서 제안하고 연구해볼 수 있게 되더라고요. 언어나 프레임워크에서 지원하지 않으면 직접 익혀서 구현하면 된다는 야생의(?) 마인드도 장착하게 된 것 같아요. 🦏
더욱 알찬 강좌를 위해
알고리즘과 고분분투하다 이 강좌를 선택하셨을 수강자분들을 위해 양질의 콘텐츠를 제공해드리고자 전체적으로 조금씩 리뉴얼을 진행하고 있어요. 최신 내용으로 업데이트하고, Java 이외 언어를 공부하고 계신 분들도 수강하시는 데 무리가 없도록 모범답안 코드도 다양한 언어로 제공할 예정입니다! 기대 많이 해주세요. 🙏🏻
코딩몬스터님의 [10주 완성 알고리즘 코딩테스트]
강좌는 구름EDU에서 만나볼 수 있습니다.