프리미의 공간

학습매체 별 특징 비교분석 본문

생각

학습매체 별 특징 비교분석

프리미_ 2021. 1. 25. 12:21

컴퓨터과학 공학을 비롯한 각종 지식을, 이제는 인터넷을 통해 쉽고 빠르게 접할 수 있는 시대라고 생각한다. 구글링 및 유튜브를 통한 지식 습득은 매우 유용하지만, 전통적인 학습법인 대학 강의와 서적은 아직 무시할 수 없는 영향력을 주고 있다고 생각한다.

지금까지 다양한 학습매체를 통해 지식을 습득하며 느낀 장단점을 비교하고자 한다.

 

대학 강의

필자가 재학 중인 국립대학교 컴퓨터학부 기준으로는, (1)탄탄한 커리큘럼과 (2)강의자료, (3)질문할 수 있는 환경, (4)과제 제와 시험 등 관리가 가장 좋았다.

우선 구글링으로 정보를 얻을 때에는, 구체적인 지식 그 자체만을 배울 때는 좋지만, 학문의 전체적인 흐름이나 큰 개념을 알기에는 쉽지 않았다. 대표적으로, 스스로 머신러닝을 공부할 때에는 지도학습과 비지도학습, 강화학습이 무엇인지는 알았지만, 세 가지 학습방법이 input의 형식에 따라 달라진다는 점은 몰랐다. 또한 각 학습법들이 개별적으로 작용한다는 사실을 알게 되는 등, 개념들간의 관계를 파악하는데 좋았다. 예로, CNN과 RNN이 Neural Net이라는 것은 알았지만, MLP의 일종이라는 것은 인공지능의 이해 강의 들으면서 처음 알았다.

또한, 오토마타나 컴퓨터구조와 같이 스스로 공부한다면 공부하지 않을 만한 주제의 내용도 공부하게 되어 넓은 지식을 쌓는데 용이하다. 수업 자료와 정리본을 저장해두고 나중에 다시 볼 수 있다는 점과, 언제든지 쉽게 질문할 수 있는 환경도 장점이었다.

마지막으로, 예전에 혼자서 C++ 공부를 할 때, 학습 자료에 과제도 따로 있긴했지만, 내가 게을러서 그런지 과제를 하진 않았다. 하지만 학교 강의에 과제와 시험이 있으니 공부에 대한 동기부여가 더 잘되는 느낌이었다.

단점으로는, 최신의 트렌드를 따라가는 지식을 공부하기에는 무리라는 점과, 학습 속도를 조절할 수 없다는 점이 있겠다.

학교 강의 요약: 전통적으로 기반이 되는 지식을 놓치는 부분 없이 오랜시간에 걸쳐 꾸준하게 공부할 때 진가를 발휘한다고 본다.

 

서적

지금까지 책으로 공부한 내용은 네트워크 패킷 관련.. 밖에 사실 없다. 한권이지만 그래도 장점을 떠올리자면 우선 (1)탄탄한 커리큘럼(목차) (2)속도조절 및 발췌라고 본다.

책도 인터넷 자료와 달리, 저자가 중요하고 한번쯤 훑어야 하는 내용들을 잘 담아뒀기 때문에 목차가 특히 훌륭하다. 어떤 사람은 책 목차만 따와서 따로 구글링으로 공부하는 사람도 있다고 들었다. 그정도로 서적의 장점 중 가장 큰 것이 (학교 강의와 마찬가지로) 목차라고 본다.

그리고, 학교 강의와는 달리 내가 원하는 부분만, 원하는 속도로 볼 수 있다는 점이다. 그래서 우선 흥미가는 부분을 먼저 읽거나 필요없는 부분은 넘어가는 것이 가능하다. 나는 책으로 공부할 때 필요없어 보이는 부분은 일단 그런게 있구나~ 정도만 보고 나중에 필요할 때 다시 찾아보는 방법을 택했었다.

아쉬운 점은 내가 의지를 갖고 보지 않는다면 볼 수 없다는 점이다. 그래서 아직도 사놓고 안읽은 책이 몇권 있다. (반성해야겠다..)

서적 요약: 저자가 엄선한 목차는 책의 최대 장점, 하지만 내가 보지 않는다면 허사.

 

인터넷 강의

edwith, coursera, inflearn, 생활코딩 등 커리큘럼 짜인 인터넷 강의를 말한다.

본인은 김성훈 교수님의 모두를 위한 머신러닝 강의를 edwith에서 봤었다. 처음 머신러닝 개념을 받아들일 때 경사하강법이나, MLP 등의 개념을 이해하는데 많은 도움이 되었다. 주로 머신러닝을 처음 접하는 사람을 위한 강의여서 매 강의마다 짧고 요약된 정보여서 부담은 없었다. 처음에 지식을 흡수하기에는 좋았지만 지식간의 포함관계, 선후관계 등 관계들이 정돈되지는 않았다. 그리고 (물론 금방 넘기면 된다만) chain rule 등 수학적 기본개념을 다시 다루워서 조금 아쉬웠다.

단점으로는, 서적과 마찬가지로 후반부로 갈수록 의지가 줄어들어 완주하지 못했다는 점이다. 보완하기 위해 공부하는 목적을 확실히 하고, 그 목표를 이루기 위해 공부한다고 생각하면 조금 더 나아지리라 생각한다.

아 그리고, 생활코딩에서 nodejs 강의도 봤었는데, 해당 강의도 위의 머신러닝과 비슷하게, 깊이있는 설명보다는 우선 실행해보고 눈에 보이도록 하는게 우선이라 깊이있는 지식을 얻기는 어려웠다. 하지만 처음 시작하기에는 안성맞춤이다.

 

구글링 자료(stack overflow, 각종 블로그 등)

이번 글의 핵심 부분이다. 많은 개발자들이 지식을 얻기 위해, 이슈를 해결하기 위해 구글링을 즐겨한다. 나도 일단 에러뜨면 에러코드 구글링부터 하곤 한다. 강조하지만, 아래 글은 내가 느낀 바를 그대로 적었을 뿐이므로 정답은 아니다.

우선 개념을 얻기위해 검색으로 지식을 얻는 경우를 생각해보자. 나의 경우 LSTM이 무엇인지 검색을 통해 알았는데, LSTM은 RNN의 한 종류이며, 목적이 무엇이고 어떤 구조를 가지고 있는지에 대한 공부는 할 수 있다. 하지만 블로그를 쓰는 사람의 특성 상 배경지식을 다 알고 있다고 가정하기 때문에 (그 글에 다 담을수도 없을 뿐더러), 솔직히 글 봐도 이해 안된다. 처음에 구조 봤을 때 무슨 게이트들이 있는데 하나도 이해못했다. 만약 책이나 강의로 알게 되었다면 RNN 이후에 나왔을 것이므로 자연스럽게 이해가 잘 되었을 것이다.

이렇듯 구글링을 해서 얻은 자료에 대한 배경이 있으면 쉽게 이해할 수있지만, 무턱대고 구글링하면 해당 자료를 이해하기 위해 top-down으로 정보를 찾아가야하는데, 배경지식을 얻기 위한 노력도 지칠 뿐더러 재미도 없었다.

두번째로, 이슈 해결을 위한 검색을 보자. 사실 이슈 해결하다가 얻은 지식도 많다. stack overflow는 예제코드 대부분 있으므로 예제코드 보면서 그 코드를 이해한다면 정말 좋은 도움이 되겠지만, (나의 경우) 대부분 코드 슥 보고 대충 수정하고 때우는 식이었다. (특히 C 소켓 부분에서..) 최근에도 git 문제 해결하려고 그냥 명령어 따라치다가 해결 못한 경우도 있었다.

더하여, 구글링 자료로도 좋은 자료가 많긴한데 대부분 자료 만들다 만 경우가 많다. C언어라고 보면 C언어 초반부분만자료 올려놓고 뒤로갈수록 자료가 없는 경우가 많다. 그래서 좋은 자료를 잘 찾는것이 중요함. (대표적으로 모두의 코드에서 씹어먹는 C언어 등)

결론은, 구글링이 좋긴 하지만 배경지식까지 다 이해하려는 노력이 중요하다고 본다. 그리고 블로그에는 정리 잘된 좋은 자료들이 많으니 내가 충분히 이해할 수 있다면 좋은 학습자료가 될 것이다.

 

위키(위키피디아, 나무위키)

사실 공부하는데 위키로 하는건 무리이긴 하다. 정보를 믿을 수 없는 경우도 많고 정작 중요한 정보는 빠져있는 경우가 많다. 하지만 처음 어떤 개념에 대한 이해를 하는데에는 좋았다. 예를들어 ARP에 대한 개념을 나무위키에서 보면 처음에 이해하기 좋고, IP에 대한 정의를 위키피디아에서 보면 정확한 정의를 알 수 있다.

요약: 처음에 접할 때 좋은 나무위키, 정의와 관련 개념을 알기 쉬운 위키피디아

 

유튜브

애매하긴 한데 혹시나해서 넣었다. 그나마 보는 채널은 노마드 코더인데, 최신 트렌드를 가볍게 보기 좋다. 그 외에도 그냥 재미있게 시간때울때나 최신 트렌드 파악하기에는 좋았던 것 같다. GPT-3라던가, wasm 등 최신 자료를 얻기에는 유용했다.

 

개발자 포럼(생활코딩 등)

이거도 좀 애매하긴 하다. 나는 생활코딩과 텐서플로우 코리아 페이스북 그룹을 보고 있는데 이거도 최신 자료를 보기 좋다. 대표적으로 TFKR에서 AutoML-Zero 자료를 처음 접했고, 생활코딩에서 이루다 관련 이슈를 접했다.

 

이상으로 매체별 공부의 장단점을 비교하였다. 부족한 부분은 추후 추가할 예정이다.