티스토리 뷰

카테고리 없음

어려운 걸 쉽게 배우는 방법

헤르만허세 2018. 1. 24. 12:25


지난 몇년간 나는 스스로 웹 개발과 기계 학습을 배우는데 많은 시간을 보냈다. Javascript, Node, React 부터 Python, ScikitLearn 까지  주제들이 많이 달랐지만 학습에 대한 나의 접근 방식은 똑같았다.

단순한 3단계 방법이지만, 5개월 만에 아마추어에서 프로 웹개발자로 도약할 수 있도록 결정적인 도움을 주었다.

그래서 나는 다른 사람들에게 도움이 될지도 모른다는 생각이 들어 이것에 대해 좀 써 보기로 했다. 내가 시작했을때 좀 더 명확한 전망이 있었으면 하는 바램이 있었기 때문에 2012년의 나에게 보내는 것처럼 이 글을 쓰려고 한다.


Step 1: 이해하기전에 해봐라

새로운 기술을 배우기 위해서는 이해하기 전에 사용부터 해보는 것이 첫번째 단계이고, 이것은 먼저 이해하려고 하는 것보다 훨씬 더 좋은 접근이다. 하지만, 아직 그 주제에 대해 아무것도 모르기 때문에 스스로 할 수는 없다.

저스틴 미첼의 Django 코스는 '이해하기 전에 해봐라' 의 완벽한 자습서이다.


당신에게 필요한 것은 작은 더미 제품을 만드는 과정을 안내하는 비디오 자습서이다. 설정을 포함한 모든 코드를 작성자가 라인단위로 코딩하는 자습서를 찾고, 코딩하는 동안 살펴보자. 모든 진행 단계에서 그 프로젝트를 실행할 수 있어야 한다.  10분 정도의 비디오를  끝내는데 1시간 정도 걸릴 수 있다. 또한, 유튜브의 훌륭한 아마추어 강사가 현 시점에서는 MOOC 보다 더 낫다.

이 단계의 반대는 그 주제에 대한 이론을 읽는 것이다. 이것은 내게 효과가 없었다. 왜냐하면 너무 지루했고, 초보자들도 읽을 수 있는 책들이 너무 자세하다는 것을 알게 되었다. 그래서 나는 처음에 책과 문서들을 절대적으로 멀리한다.

선택한 비디오 자습서를 수행할 때 항상 무엇을 하고 있는지 이해하지 못할 수도 있으며,  불쾌할 수 있다. 이것에 대해 너무 많이 걱정하지 말자. 만약 여러분이 어떤 것을 이해하지 못한다면, 2단계를 위해 그것을 메모한다. 

이 단계의 핵심은 혼동과 이해 부족에 상관없이 자습서를 따르는 것이다. 

알다시피, 이렇게 하면 다음과 같은 이점이 있다.


1. 첫날부터 개발하기

우선, 실제로 첫번째 날부터 무언가를 만들어 본다. 이는 이론을 읽는 것보다 더 보람 있는 일이다. 그리고 어떤 것을 더 즐길수록, 그것에 더 쉽게 집착할 수 있다. 


나의 첫 Node.js 서버 코드는 끝없이 다시 살펴봤다.


2. 샘플코드가 남는다

또한 학습 과정의 후반 단계에서 참조할 수 있는 샘플 코드가 남는데, 이는 매우 유용하다. 나는 항상 샘플 코드로 돌아가서 기억을 되살려 낸다. 매번 주제에 대한 향상된 통찰력을 가지게 된다.


3. 무지의 발견

또한 이 방법이 어떤 분야에 집중해야 할지를 발견하는 가장 빠른 방법이라는 것도 알게 되었다. 알다시피, 시작하기 전에,  무엇을 모르는지 알지 못한다. 당신이 어떤 기술과 싸우게 될지 알 수 없기에 더 많은 주의가 필요하다. 이 정보를 가능한 한 빨리 드러냄으로써 걸림돌에서 빠져나올 필요가 있다.


다음은 다양한 주제에서 나의 학습 과정을 시작한 코스들이다.


Step 2: 혼란스러움을 해결해라

1단계에서 하나 이상의 자습서를 거친 후에, 여러분은 이 주제에 대한 약간의 통찰력을 얻을 것이다. 하지만 매우 혼란스러울 것이다. 지금이 바로 그러한 혼란의 근원을 찾을 때이다.

만약 여러분이 React.js 를 배우고 있다면, 아마도 이곳이 state와 props 의 차이가 무엇인지 정확히 조사할 수 있는 곳일 것이다.


여기에서 특별히 추천하고 싶은 형식은 없다. 기본적으로 책이든, 공식 문서이든, 스택 오버플로우든 뭐든 관계 없이 이 상황에 적합한 소스를 찾아야 한다. 정말 어려운 주제라면,  그것을 정확하게 이해하는데 도움이 되는 여러 출처를 찾아야 한다.

아니면, 한 걸음 물러나서 몇가지 기본적인 기술을 향상시킬 필요가 있다는 것을 깨달을지도 모른다. 그것들이 아직 충분히 강력하지 않았기 때문이다.

지난 번에 내가 이런 일을 겪었던 것은 신경망을 코딩하는 법을 배울때이다. Coursera 에서 강의를 들은 후에,  전체 신경망을 이해하기 전에 논리적 회귀 분석을 이해할 수 있어야 한다는 것을 깨달았다. 그래서 처음부터 다시 논리적인 회귀분석을 했다. 그리고 나서 신경망 공부를 계속했다. 이번에는 훨씬 쉽게.


Step 3: 무언가를 만들어라

1 단계와 2 단계가 정말로 중요한 단계이지만, 이 단계에 도달하기 위해서는 한걸음씩 나가야 한다. 새로운 기술을 배우려는 이유는 바로 새로운 기술을 사용하여 무언가를 만드는 것이다.

스스로 무언가를 만들어 낼 수 있다고 느끼는 순간, 여러분은 이 전략을 모두 따라야 한다.  왜냐하면 바로 진정한 학습이 이루어지는 곳이기 때문이다. 그 기술에 대해서 무언가를 만들어보기 전까지는 실제로 아무것도 배울 수 없다.

1단계나 2단계를 통해 스스로를 속일 수는 있지만,  단순히 코드를 복사해서 붙여넣지 않고 스스로 만들어야 하는 이 단계에서는 자신을 속일 수 없다.

열정으로 무언가를 만들어 보는 것은 좋은 생각이다. HTML&CSS를 배우는 중에 와인을 좋아하게 되었다면  와인 시음 웹사이트 프로토타입을 만들어 본다.  혹은  머신러닝을 배우려는 의사라면 사용할 건강 데이터 세트를 찾아보자.

여기 내가 처음으로 만든 프로젝트 몇가지가 있다. 자랑할만한 건 없지만, 나는 많은 것을 배웠다.



마지막으로 이 세 단계가 서로 뒤섞일 수 있으며, 아마도 이 글처럼 순서대로 일어나지 않을 것이라는 점을 말하고 싶다.  나는 항상 1단계로 시작해서 3단계로 끝냈지만, 배우고 있을 때는 앞뒤로 왔다갔다 하는 경향이 있다.  요점은 새로운 기술을 배우는데 세단계가 똑같이 중요한 요소라는 것이다.

여러분의 행운을 빈다.


p.s 지금까지 이 글을 읽었다면 이 데모를 확인 해보자!


원문 : https://medium.com/learning-new-stuff/a-simple-technique-to-learn-hard-stuff-ffaa7879bf7c



반응형
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함