프로그래밍 학습 과정은 언어인지, 프레임워크 또는 라이브러리인지에 따라 학습 방법이 다르다.
-
학습
JavaScript, TypeScript같이 언어의 경우 책을 통해 학습하는 편이다. 책이 가장 정제된 자료라 생각하여 선호하는 편인데, 언어는 새 문법이 더해질 뿐 밑바탕이 되는 동작 원리는 잘 변하지 않기 때문에, 책으로 학습하는 것이 가장 효율적이라 생각한다. 또한, 프레임워크나 라이브러리에 비해 비교적 전체 양이 방대한 편인데 책은 이러한 내용 중 핵심적인 내용만을 선별하여 체계적으로 흡수할 수 있는 자료이다.
현재 나는 JavaScript는 『모던 자바스크립트 Deep Dive』, TypeScript는 TypeScript 핸드북을 통해 학습 중이다.
그리고 React.js, Next.js, Tailwind CSS, Recoil 같은 프레임워크 혹은 라이브러리는 공식 문서를 통해 학습하는 편이다. 프레임워크나 라이브러리 특성상 시간이 지남에 따라 변화가 크기 때문에 공식 문서로 학습하는 것이 가장 효율적이라 생각한다. 업데이트 됨에 따라 공식 문서는 계속해서 바뀌기에 책으로 학습하면 이미 버전이 바뀌어 있거나, 흐름을 따라가기 어렵다. 참고로 위에 적은 Recoil은 이 글을 쓴 뒤인 2025년 1월에 저장소가 아카이브되어 지금은 유지보수가 멈춰 있다.
-
사용
이렇게 1차적으로 책 혹은 공식 문서를 통해 정제된 정보를 얻은 다음 실제로 사용을 해본다. 언어는 여러 가지 상황을 가정해보기도 하고, 라이브러리나 프레임워크는 정상적으로 동작하는지 체크를 한다.
-
블로그
실제로 사용을 해본 후, 블로그를 검색해 다른 사람들은 어떤 방식으로 활용을 했고, 어떤 어려움을 마주했고 어떻게 해결했는지 찾아보며, 경험들을 공부한다. 블로그를 마지막에 두는 이유는, 정제된 자료로 기준을 먼저 세워두지 않으면 남의 방식이 맞는지 아닌지 판단할 수가 없기 때문이다.
이러한 정제된 자료를 통한 학습, 사용 그리고 블로그를 통한 학습을 하는 과정에서 항상 노션에 기록을 하는 편이다. 배운 내용을 적으며 한 번 더 되뇌고, 나중에 학습한 내용을 다시 돌아보기 위함이다. 꾸준한 기록으로는 학습 페이지, 아티클 페이지 등이 있다.
-
복습
이렇게까지의 과정이 ‘학’이었다면, 이제 ‘습’을 해야 한다. 배웠다면, 익혀야 한다. 이러한 익힘의 과정을 나는 복습을 통해 실천한다. 복습 또한 기록으로 남기는데, 매일매일 그 날 배웠던 내용들을 ‘다른 자료를 보지 않고’ 오로지 내 머릿속에서 꺼내어 모두 다 적는다. 이렇게 기록을 한 후, 배우며 기록했던 것들을 찾아보고, 부족한 게 있으면 더 찾아본다. 그리고 AI에게 내가 작성한 기록을 보여주며 피드백을 요청한다. 이 피드백을 바탕으로 한 번 더 학습한다.
이렇게 1차 복습이 끝나고, 1주일 이상 지나면, 2차 복습을 또 진행한다. 이 때는 노션 AI를 활용하며 노션 AI에게 내가 작성한 기록을 바탕으로 핵심 내용에 대해 질문을 만들어달라고 요청한다. 그럼, 이 질문에 대해 혼자 답해보고, 피드백을 또 받으며 한번 더 학습한다.
이렇게 2차 복습까지 하고, 1개월 뒤에 3차, 3개월 뒤에 4차 복습을 하며 장기 기억으로 만드는 것이 복습 시스템의 최종 목적이다.
이렇게 나는 지식을 얻고, 지식을 쓰며 익힌다.