이 글을 쓰게 된 이유
이전에 주로 써왔던 Js나 객제지향 프로그래밍 전공 수업에서 배운 Java는 어느 정도 문법을 익혔지만, 전공에서 응용하면서 주먹구구식으로 배운 C언어와 자료구조를 최대한 빠르게, 하지만 나름 깊이 있게 배우기 위해서 효율적인 공부법에 대해 수많은 구글링, 유튜브, 공부법 서적을 읽으며 생각해 봤다.
그중 가장 많은 참고를 한 곳은
이운규 변호사님,
https://www.youtube.com/@DreamSchool_KR후
후디님이다.
https://hudi.blog/how-to-deep-dive/
이운규 변호사님의 공부법은 공부법에 관심 있는 사람들에게 유명하다.
나 역시 이 방법을 적용하고 나서 짧은 기간 동안 좋은 성적을 얻을 수 있었다.
ex)
1. 토익 600 후반에서 인강 x 학원 x 한 달 뒤 915점 취득
2. 사이드프로젝트하느라 바빠서(수업시간에는 열심히 들음) 2학기 18학점 전공 시험 1주일 전부터 공부해서 학점
4.33/4.5 받음
여기에 개발 분야에 맞게 바꾸기 위해 다른 개발자 분들의 블로그를 참고했다.
미래의 내가 과거의 공부법을 보면서 어떤 생각을 할지도 궁금하고, 나와 같은 개발 초보자 분들에게 도움이 될까 싶어 정리해 본다.
개발 고수분들의 피드백은 언제든 환영입니다.
참고로 이 공부법은 효율적인 인풋을 위한 공부법이니, 아웃풋에 대한 내용은 다음에 기회가 된다면 설명하겠다.
그래서 어떻게 하라고?
공부법에서는 크게
- 1단계 학습
- 2단계 체득
- 3단계 정리
세 단계로 구분 짓는다(2단계와 3단계는 순서가 바뀔 때도 많다).
첫 번째는 전체 맥락과 뼈대를 잡는 것이다.
- 목차를 여러 색의 형광펜을 가지고 같은 수준의 목차는 같은 색으로 칠한다.
- 목차들 간의 유기적인 관계에 대해서 머릿속으로 생각하며 칠한다.
- 상위 목차의 내용을 이해하기 위한 답을 찾기 위해 하위 목차를 이용한다
- 최종적으로 하위 목차의 내용을 이해하기 위해서 줄글을 읽을 때까지 반복한다.
두 번째는 세부내용을 파악하는 것이다.
- 최하위 목차에서? 표시 후 줄글을 읽으며 답 찾기
- 해결되지 않은 부분의 개념을 정리한다.
- 노션에 목차들을 요약한다
- 암기 후 이해한다. (이해는 암기가 된 후 머릿속에서 되는 것)
여기서 2번은 자세한 설명이 필요하다
- 우선 이해가 되지 않은 부분의 키워드를 정리한다.
- 키워드의 정의를 보고 또 모르는 키워드를 정리한다.
- 첫 번째 과정을 반복한다 (1~3번 정도)
- 도출된 문장들을 가지고 왜라는 질문을 가지고 해결하기
- 이때 최대한 공식문서, 책과 같이 공신력있는 정보를 참고하기
세 번째는 머리 속에 정착시키는 것이다.
- 노션에 정리한 부분을 읽고 스스로 문제 내본다.
- 할머니에게 설명할 수 있을 정도로 간단하게 바꿔서 설명한다 -> 이 부분을 블로그에 작성하는 것으로 대체
이는 공부법의 세 단계 중 학습과 정리의 영역에 해당한다.
체득의 경우,
실질적인 구현 능력은 프로젝트를 실제로 진행하면서 수많은 디버깅을 해치우면서 성장하는 것 같고,
코딩테스트의 영역은 이운규변호사님의 아웃풋 부분을 참고해서 하면 될 것 같다.
현재 위에 자세히 작성한 인풋 부분은 열혈 C 프로그래밍을 학습하면서
PART마다 기존의 학습법과 이 학습법을 번갈아 사용하며 검증해보려고 했는데
PART01에서 기존의 학습법(개념 전부 읽고 -> 예제 풀고 -> 이해하고)보다 PART02에서 이 학습법이 월등히 효율이 좋아서 이 방법으로 열혈 C프로그래밍을 공부했다.
맺으며
코테도 자료구조 책 한 권 금방 끝내고 바로 시작할 것인데, 그때 이 학습법의 아웃풋 부분도 검증되면 정리해서 올려보겠다.