슬기로운 자바 학습 방법 Ep1. 스터디는 개인주의야.
슬기로운 자바 학습 방법을 소개합니다. 자바 언어 또는 프로그래밍이 익숙하지 않다면 입문서를 선택하고 스터디를 시작하세요. 어떻게? 4번처럼! 스터디는 개인주의야!
자바를 공부할 수 있는 방법과 매체는 정말 다양하다. 책, 유튜브, 인터넷 강의, 학습 기관, 스터디 등 학습 매체는 넘쳐나고 누군가는 학원을 다니고 누군가는 책과 영상으로 독학을 하고 또 누군가는 스터디를 하지만 과연 나는 어떻게 자바를 공부했을까?
이제부터 내 개인적인 경험을 기반으로 한 자바 학습 방법을 소개한다.
스터디를 시작한다.
종종 자신의 실패한 스터디 경험을 근거삼아 스터디를 하지 말라는 이야기를 듣는다. 하지만 내가 5년 넘게 경험하고 실천해왔던 방식의 스터디에 결코 실패는 없었다. 장담하건데, 실패한 스터디는 분명히 '남'에게 의존했을 것이다. 스터디에 회의감이 든다면 남의 참석 여부를 신경쓰고, 남이 하는 발표를 통해 학습하기에 급급하진 않았는지 지난 스터디를 되돌아 볼 필요가 있다.
스터디는 개인주의야
스터디는 철저히 개인주의를 추구해야 한다. 절대로 남에 의해서 또는 남을 위해서도 안된다. 본인에게 필요한 책을 골라 매주 또는 격주로 자신이 습득한 내용을 남에게 설명하는 연습을 할 수 있는 최적의 방법이 스터디다. 4~5명을 상대로 내가 이해한 내용을 남들에게 설명하며, 또 남들이 설명하는 것을 내가 이해한것과 비교하는 과정을 통해 여러 효과를 얻을 수 있지만 그 중에 몇가지만 꼽자면...
- 발표 실력 향상
- 지식 재점검
- 자신감 향상
학습은 예습과 복습의 연속이다. 스터디에서 소규모 그룹을 상대로 꾸준히 발표를 하면 그동안에 머리로 이해했던것을 다시 점검하게 되며 미쳐 깔끔하게 정리하지 못했던 부분을 찾아낼 수 있으며 아무리 고민해도 해결되지 않는 주제가 생길 수 있다. 그런 부분을 스터디에서 공유하며 도움을 얻을 수도 있지만 사실 그 보다는 이미 학습한 지식을 복습하고 전달하며 학습 능력 자체를 증진시켜 나가는것이 중요하다. 따라서 스터디는 '이제는 혼자 준비해서 2~300명 앞에서도 발표할 수 있겠다.'라는 자신감이 생길 때까지 꾸준히 하는 걸 추천한다. (그리고 기회가 된다면 세미나에 발표자로 참석해 보길 권장한다.)
어떤 책으로 스터디를 해야 하는지는 본인에게 달려있다. 어느 책을 보건 크게 중요하지 않다. 어떤 지식을 얻었는지가 중요하다. 자바의 기본 문법도 모르고 프로그래밍 언어가 처음이라면 '헤드 퍼스트 자바'나 '자바의 정석' 또는 '자바의 신'과 같은 입문자를 대상으로 한 서적을 골라 학습하는 것을 추천한다.
개인적으로는 입문서로 '헤드 퍼스트 자바'를 보았고 그 이후에 '지름길로 빠르게 배울 수 있는 자바 프로그래밍' 그리고 '이팩티브 자바'를 보며 자바에 대한 기본 지식을 습득할 수 있었다.

여기서 말하는 기본이란 말그대로 자바의 기본 문법이나 주요 API와 특징을 말한다. 특히 이 글을 작성하는 시점에서 자바의 기본이라면 자바 8을 넘어 자바 11까지의 주요 기능을 학습할 것을 권장한다. 자바 8이 현재 시점에 가장 널리 쓰이고 있는 LTS(Long-Term Support) 버전이지만 자바 11로 넘어가는 추세기 때문이다. 다음 LTS 버전인 자바 17이 나오기 전까지는 시간이 좀 있으니 자바 12 이후의 기능은 다소 미뤄도 괜찮다. 현업에서 자바 17을 도입하기 까지는 아직 시간이 많이 필요하니 그보다 더 이전에 사용하게 될 자바 11이전 기술부터 확실하게 챙기는데 집중하는것이 좋다.

자바 기본 기능을 학습했다면 이제는 인텔리J 또는 이클립스와 같은 IDE(Integerated Development Environment, 통합 개발 환경) 그리고 Git과 같은 SCM(Source Code Management, 소스 코드 관리) 도구를 사용해 협업하는 방법 그리고 빌드툴을 사용해 프로젝트를 빌드하는 방법을 학습해야 한다. 현 시점에 가장 많이 쓰이는 툴 기준 (Jetbrains 2020 자바 리포트)으로 IDE는 인텔리J 또는 이클립스, SCM은 Git 그리고 빌드툴로는 메이븐 또는 그래들을 학습해야 하는데 이것들도 사실 스터디를 통해 학습할 때 효과가 좋다. 남들이 발표시 사용하는 IDE 단축키를 물어보거나, 자신이 주로 사용하는 단축키 및 Git 명령어를 공유하면서 익히면 문서를 보며 공부하는 것보다 재미도 있고 훨씬 쉽게 학습할 수 있다.
그 다음은?
자, 여기까지 스터디를 통해 자바 기본을 숙지했고 조금씩 IDE, Git 그리고 빌드툴을 익혀나가고 있다면 실제로 무언가를 만들면서 한 단계 더 나아갈 차례다. 자세한 내용은 곧 "슬기로운 자바 학습 방법 Ep2. DFS 학습 방법"에서 다루겠다.