공부방법 요약입문서 읽기 자바스크립트의 장점과 나쁜점 자바스크립트 패턴 코딩 테스트 객체지향, 함수형 프로그래밍 6. 리팩터링
미리 작성하면 이 기사에서 언급된 책들은 모두 자기 돈으로 구입한 책들입니다.
처음 자바스크립트를 공부하는 분이라면 어떻게 공부해야 할지 몰라서 검색하면서 정보를 모아서 공부하는 분들이 많을 거예요.저의 경험상 프로그래밍은 책이 가장 좋은 공부방법이라고 생각합니다.(수십 년 동안 해당 프로그래밍 언어를 연구하고 강사를 한 분들이 몇 년 동안 노력해서 쓴 좋은 책들이 많아요.
그럼 어떤 책을 사면 될까요?
처음에는 입문이라고 써 있는 책을 사다
프로그래밍 경험이 없고 처음 시작한다면 입문이라고 써 있는 책을 구입하는 것이 좋습니다(es6 때 JS가 매우 많은 기능이 추가되었으므로 적어도 16년도 이후의 책을 추천합니다)
입문본은 대상 독자부터 프로그래밍 경험이 없는 사람으로 쓰여진 책이기도 하며, 대부분 친절하게 깁 등을 통한 예제 코드를 제공합니다.(이것은 제 개인적인 경험이긴 하지만 일본 번역서 중 입문본이 좋은 것이 많습니다.)
처음에는 자바스크립트가 탄생한 이유, 발전과정, 향후 발전방향에 중점을 두면 앞으로의 학습에 더욱 도움이 되지 않을까 싶습니다.
입문본의 경우 각 챕터별로 변수, 객체, 함수, 표현식, 연산자 등의 제목이 있는데 책의 내용을 보지 않고 제목만 보고 대략 이것이 무엇인지 알 수 있을 정도면 입문본을 많이 봤다고 할 수 있습니다.
한번에 입문본의 모든 내용을 이해하려는 것은 금물입니다.전체적으로 한번 읽으면 자연스럽게 이해할 수 있는 내용이 많기 때문에 여러 번 읽는 것을 추천합니다.
입문서를 두세 번 읽으면 대략 자바스크립트는 무엇이고 무엇을 할 수 있는지 알 수 있을 겁니다.몇일동안 열심히 공부한것 같은데 사실 이걸로 뭔가를 하기에는 애매한 상태가 된것 같습니다.
이 상태를 견디지 못하는 분들이 인터넷 강의 등을 보면서 복제 코딩 등을 하면서 결과를 강제로 내려고 하는 분들이 많습니다.그래서 성취감을 느낄 수는 있지만 그 과정에서 얻을 수 있는 경험이 학습에 얼마나 도움이 될지는 잘 모르겠습니다.
입문서를 통해 자바스크립트를 알게 되면 앞으로는 잘 쓰는 법을 알아야 합니다.
자바스크립트 The Good Parts
오래전에 쓰여진 책이라 입문서 내용과 차이가 있을 수 있습니다.
옛날에 JS가 가지고 있는 좋은 점을 자주 사용하고 나쁜 점은 피하는 방법에 대해 쓰여진 책입니다.지금은 새로운 기능이 추가되어 나쁜 점이 많이 보완되었습니다.
위의 책을 읽고 입문서를 다시 읽는 것을 매우 추천합니다!! 과거에 어떤 문제가 있었고 그 문제가 현재 어떻게 해결되었는지를 이해하는 것은 현재 JS의 모습을 이해하는 데 많은 도움이 됩니다.
중간 점검
여기까지 오는데 짧게는 하루, 길게는 일주일 정도 걸린 것 같네요.
올바르게 공부했는지 체크리스트 * Node.JS와 브라우저 JS 환경 * 호이스트 * this * 객체, 객체 리터럴 * 속성 확인, 열거 * 배열 * 함수 * 일급 객체 * 클로저 * 이벤트 루프, 이벤트 처리 * Promise * AsyncAwait * 제너레이터 * 모듈 * 예외 처리 * 디버깅 * 정규 표현식 * Web API * DOM * Ajax
위의 항목들을 대충이라도 알고 설명할 수 있다면 입문본을 꼼꼼히 공부한 것입니다.
JS 코드를 읽을 수 있게 되어 쉽게 코드를 작성할 수 있게 되었습니다.하지만 여전히 유명한 라이브러리의 소스 코드를 읽고 수정하기는 어렵지만 실전 코드를 작성하는 방법에 대해 이해해야 합니다.
자바스크립트 Patterns
위의 책을 추천합니다(책의 내용이 너무 어려우니 조금씩 매일 천천히 보는 것이 좋습니다) 객체지향, 함수형 프로그래밍 지금까지 혼자서 JS코드를 만들어 문제를 해결하는 방법에 대해 공부했으므로 수많은 동료들과 함께 협업하기 위한 방법(프로그래밍 패러다임)에 대해 공부해야 합니다.
객체 지향 프로그램을 자바 언어로 설명한 책입니다.이것은 제가 학습한 서적으로 js로 설명하는 서적이어도 괜찮습니다.
함수형 자바스크립트에 대해 설명한 책입니다.
이전에 작성한 프로그래밍 패러다임에 대한 글 http://blog.naver.com/bishil06/221559997452 프로그래밍 패러다임에 대해 인터넷을 검색하여 정리한 내용입니다. 혹시 잘못된 내용이나 의견이 있으면 코멘트…blog.naver.com
리팩토링
코드 작성 방법에 대해 배웠기 때문에 코드를 개선하고 유지하는 방법에 대해 배울 필요가 있습니다(리팩터링은 지속적으로 코드를 작성하기 위한 거의 필수적인 지식입니다).
리팩토링을 공부하면서 동시에 자신만의 간단한 라이브러리 또는 서비스를 개발하면 실력에 큰 도움이 됩니다(반드시 개발하기 쉬운 쉬운 프로젝트부터 시작).