Computer >> 컴퓨터 >  >> 프로그래밍 >> Ruby

중급 레일즈 개발자를 위한 학습 자료는 어디에 있을까?

레일즈(Rails) 튜토리얼 몇 개를 끝냈다면, 클래스를 수강하거나 스크린캐스트를 시청해 봤을 수도 있습니다. 튜토리얼 앱을 따라 만들어 보기도 했고요. 이제 레일즈 개발 실력을 한 단계 끌어올릴 때가 됐다는 건 분명합니다.

그런데 어째서인지 막히게 됩니다. 초보자를 위한 책, 강의, 영상은 쏟아져 나오는데, 정작 중급 레일즈 개발자를 위한 튜토리얼은 어디에 있는 걸까요?

예전과는 다른 학습 방식

레일즈 개발자로서 '기본기 다지기' 단계를 지나는 순간, 학습 자료가 갑자기 사라집니다. 왜 그럴까요?

중급 레일즈 개발자로 성장하는 과정은 초보자일 때와 전혀 다릅니다. 겉보기에는 조금 더 복잡한 내용을 배우면 되는 것 같지만, 중급 단계의 학습은 완전히 별개의 과정입니다.

"초보자는 이것을 알고, 중급 개발자는 그것을 조금 더 잘 알며, 여기에 몇 가지 추가 지식만 얹으면 된다"라고 생각하지 마세요. 중급 개발자에게 학습은 훨씬 집중적입니다. 많은 것을 조금씩 아는 대신, 적은 것을 깊이 있게 알게 되는 거죠.

집중할 분야 몇 가지를 정하세요. 테스팅과 TDD(테스트 주도 개발)의 세부 사항을 배워보세요. 레일즈가 권장하는 디자인 패턴 몇 가지를 깊이 있게 익혀보세요. 훌륭한 데이터 모델을 설계하는 방법을 공부해 보세요. 단, 한꺼번에 모두 배우려 들지 말고, 한 번에 하나씩 제대로 익히세요.

레일즈 기본기를 갖추면 API 문서를 읽을 수준이 됩니다. 아직 전부 이해되지 않더라도요. 레일즈 전용 서적이 아니더라도 TDD 분야의 최고 서적들을 읽을 수 있습니다. 충분한 Ruby 코드 예제를 접한 후에는 소스 코드를 직접 파헤치며, 소수만이 도달하는 수준에서 레일즈의 내부 동작까지 이해할 수 있게 됩니다.

한 가지에 집중해 제대로 배우면, 활용할 수 있는 학습 자료가 훨씬 많아집니다. 그리고 배운 것이 하나씩 쌓일수록 다른 것들도 배우기 쉬워집니다.

(사람들이 세 번째, 네 번째 프로그래밍 언어를 배울 때 상대적으로 쉽다고 느끼는 데에도 이런 원리가 작동합니다. 핵심 개념은 대부분 동일하기 때문에, 새로운 언어의 중급 단계를 통과하는 데 필요한 학습량이 크게 줄어듭니다.)

다음엔 무엇을 배워야 할까?

한 번에 하나씩 배우기로 했다면, 무엇부터 집중할지 정해야 합니다. 그런데 배울 것이 산더미처럼 많은데 어떻게 고를까요?

관심 있는 주제일수록 배우기 쉽다고 느껴지지 않나요? 저는 확실히 그렇습니다. 그렇다면 새로운 것을 배우는 데 스스로 흥미를 느끼게 하는 가장 좋은 방법은 무엇일까요?

직접 앱을 만드세요! 아주 많이 만드세요. 앱을 작성하고, 수정하고, 기존 앱에 기능을 추가해 보세요.

앱을 만들다 보면 반드시 막히는 순간이 옵니다. 아주 자주요. 하지만 그건 아주 좋은 신호입니다! 막힘을 사랑하는 법을 배우세요. 막혔다는 건 곧 새로운 것을 배우게 된다는 뜻이니까요. 막힘은 멋진 것이고, 이를 즐기고 심지어 일부러 찾아낼수록 전문가가 되는 속도는 빨라집니다.

조사하고, 배우고, 해결책을 코드로 작성했다면, 다른 앱에서 다시 한번 구현해 보세요. 문서를 보지 않고 작성할 수 있는지 시험해 보세요. 정말로 체화하는 겁니다. 그다음 앱 개발을 계속하며, 다음으로 막히는 지점을 찾아보세요.

저는 이런 방식의 학습을 사랑합니다. 실제로 가장 자주 마주치는 문제에 집중할 수 있기 때문입니다. 공부하기 위해 공부하는 게 아니라 문제 해결 방법을 찾는 것이니 학습 속도도 빨라집니다. 그리고 처음 소프트웨어 개발에 빠졌던 이유가 바로 이것 아니었나요?

하지만 이 방법만으로는 부족하다

레일즈 기본기를 익힌 후에는 우연히 배우는 방식도 활용할 수 있습니다. 중급·상급 레일즈 개발자들의 대화를 이해할 수 있다면, 뜻밖의 대화 속에서 흥미로운 학습 경로를 발견하게 됩니다.

그래서 저는 새로운 것을 배울 때 초보 튜토리얼 단계를 지나면 여러 블로그를 구독합니다. 커뮤니티 리더들을 트위터에서 팔로우하고, 해당 언어 관련 뉴스레터(RubyWeekly, iOS Dev Weekly, JavaScriptWeekly 등)도 받아봅니다.

모든 글을 읽을 필요는 없습니다. 오히려 읽으려 들면 안 됩니다. 다만 좋은 콘텐츠가 레이더에 잡히도록 하고, 흥미로워 보이는 것들은 읽고 따라가 보세요. 저는 이 방식으로 정말 유용한 팁들을 많이 얻었고, 그렇지 않았다면 훨씬 나중에야 만났을 주제들로 안내받기도 했습니다.

그럼, 다음엔 무엇을 배울 건가요?

좋은 중급 자료를 찾지 못해 답답하다면, 이제 학습의 주도권을 쥐세요. 앱을 만들기 시작하고, 어떻게 만들어지는지 주의 깊게 살펴보세요. 절반쯤 확신이 드는 기능을 과감히 시도해 보고, 막힐 만한 지점을 찾아내세요. 그 막힘을 발판 삼아 해당 부분에 대한 API 문서, 가이드, 튜토리얼을 찾아보세요. 필요하다면 소스 코드를 직접 파헤쳐 보세요. (처음엔 어색하게 느껴질 수 있지만, 레일즈 코드를 자주 볼수록 금방 익숙해집니다.)

작은 부분 하나를 진정으로 이해하고 그 분야의 전문가가 되세요. 그리고 다음 주제로 넘어가면 됩니다.