본문 바로가기
프로그래밍

프로그래밍 공부 방법에 대해서

by bantomak 2023. 2. 6.

기술 공부에 비법은 없습니다. 

당장 해야 하는 일을 해결할 때는 모든 수단과 방법을 다 동원해서 코드를 만들어야죠. 다만, 이런 방식을 지속하면 생산성은 안 오르고, 응용력도 떨어지고 결정적으로 재미가 없습니다.

 

그래서 보통 학습을 해야 하는데요.

1. 레퍼런스 문서와 바이블 같은 책을 쭉 정독하면서 기억하고 싶은 내용을 메모

2. 공개된 예제를 찾아서 이걸 분석해 가면서 왜 이렇게 만들었는지 궁금한 부분 검색 및 이해

3. 코딩 과정을 볼 수 있는 영상 강의

 

글쓴이의 학습 방법

저는 스프링을 처음 공부할 때 볼 책도 없었고, 레퍼런스 문서도 50페이지 밖에 안 되었습니다. 그래서 튜토리얼 예제를 가지고 계속 분석해 보면서 이해를 하려고 노력했습니다. 그리고 어느 정도 동작하는 코드를 만들게 되었을 때부터, 도대체 스프링은 왜 이런 식으로 만들어졌는지 관련된 책을 찾아서 읽고, 거기에 나온 주제들을 또 찾아서 공부했습니다.

 

1. 양으로 승부한다. (책, 레퍼런스 문서, 블로그 글, 포럼의 질문/ 답변 그리고 스플링 오픈소스 프로젝트의 이슈 트래커)

2. 그중에서 원리나 핵심을 이해하는데 도움이 되는 것을 발견하면 정리

3. 2번을 바탕으로 다음 주제를 잡아서 학습

4. API 문서 또는 자바의 클래스 라이브러리나 스프링의 주요 인터페이스의 Javadoc를 참조 (자주 읽으세요)

 

결국엔 스프링 소스코드를 분석하면서 그 안에 담긴 개발자들의 생각과 설계 방식을 살펴보고, 이걸 어떻게 내가 만드는 코드에 응용을 해볼까 생각을 많이 한 것 같습니다.

 

추천하는 공부 방법

1. 스프링을 포함해서 사용하는 기술 주제의 바이블 또는 원리를 잘 설명했다는 책을 구해서 정독

(J2EE 시리즈, Pro Spring 1판)

2. 공식 레퍼런스 문서 최소한 한 번은 정독 (기억해둬야 하는 부분은 기록하면서 진행)

3. 여러 방식으로 매우 많은 양의 코드를 작성

(이런 식으로 하니 이렇게 코드가 나오는구나, 저렇게 했을 때와는 다른 특징이 생기는구나 등등)

4. 책이나 문서에 나오는 어떤 설명을 보면, 정말 그런가라는 의문을 가지고 학습 테스트 작성

 

가장 효과적인 학습 방법은 코드와 함께 하는 것입니다. 그리고 내가 만든 코드를 계속 다듬어보세요. 예제를 책이나 강의에서 봤으면 그걸 따라 해 본 뒤에 다음에 또다시 만드는데 그때는 내가 뭔가 아이디어를 더 내고, 확장해 보거나 더 최적화를 해보거나 다른 방식을 시도해 봅니다. 비슷한 일을 하는 코드를 이렇게 여러 번 반복해서 여러 가지 스타일로 만들면 도움이 됩니다. 반복해서 코드를 작성하는 거 중요합니다.

 

그리고 기본이라고 불리는 것들, 자바 언어, 객체지향 설계원칙, 디자인 패턴, 리팩토링, 테스트 작성, TDD 등등은 시간 나는 대로 충분히 공부해 두세요. 누가 옆에서 설명해 달라고 하면 바로 이야기할 수 있을 정도로 핵심을 잘 기억해 두시고, 그것을 표현하는 예 저까지 만들 수 있으면 좋습니다.

 

* 참조 사이트에 작성된 내용을 정리한 글입니다.

 

참조 사이트 : 공부 방법에 대해서 질문드립니다. - 인프런 | 질문 & 답변 (inflearn.com)

댓글