Bạn đã thấy Biểu đồ Năng lực Rails chưa?
Brook Riggio của CodeFellows đã tổng hợp nó để chỉ ra tất cả khái niệm một nhà phát triển Rails hiện đại nên biết. Hãy xem:

Đáng sợ, phải không? Nó trông như một quái vật hai trăm râu sẵn sàng tấn công bạn.
Không ngạc nhiên học Rails đáng sợ. Một số nhánh, như SQL và Triển khai, có thể là toàn bộ con đường sự nghiệp. Bạn có thể dành nhiều năm cho Kiến trúc Ứng dụng và vẫn không cảm thấy như chuyên gia.
Nhưng nó chính xác. Nếu bạn cho chuyên gia Rails chuyên nghiệp xem biểu đồ này, bạn có thể sẽ nghe, "Ừ, nghe đúng vậy." Nếu có gì, bạn sẽ nghe về những gì nó thiếu.
Vậy bạn xử lý tất cả này như thế nào? Làm sao bạn học hết thứ này mà không cần bắt đầu 5 năm trước?
Bạn xử lý tất cả các chủ đề này như thế nào?
Ừ, hầu hết nhà phát triển Rails chuyên nghiệp biết rất nhiều về rất nhiều khái niệm đó. Nhưng bạn không phải biết tất cả những điều này để bắt đầu xây dựng ứng dụng Rails của bạn. Bạn không cần học triển khai cho đến khi bạn sẵn sàng triển khai, và bạn có thể tra cứu cách nhóm thứ trong SQL lần đầu tiên bạn phải làm nó.
Một điều biểu đồ này không minh họa tốt (dù bài blog nói về nó) là cách các khu vực khác nhau củng cố nhau. Ví dụ, unit test, integration test, acceptance test, và tất cả những cái còn lại dùng kỹ năng và kiến thức tương tự. Có, có một số khác biệt giữa các loại test khác nhau. Nhưng một khi bạn bắt đầu hiểu cơ bản của testing bằng cách viết một đống unit test, bạn sẽ nhặt các loại khác nhanh hơn nhiều.
Càng nhiều bạn học, càng nhanh bạn sẽ học. Lập trình hàm dễ học hơn khi bạn biết Lập trình Hướng Đối tượng. Kiến trúc Hướng Dịch vụ có thể "cảm thấy" hơi như Lập trình Hướng Đối tượng. Học CSS selector sẽ làm dùng jQuery dễ dàng hơn nhiều. Nhiều nguyên tắc bạn học sẽ dịch chuyển qua các nhánh khác nhau.
Bạn bắt đầu ở đâu?
Nếu bạn cố gắng nhặt mỗi kỹ năng đó cùng một lúc, bạn sẽ không tận dụng được tốc độ thêm bạn nhận được khi bạn làm chủ chúng từng cái một. Vì vậy hãy tập trung vào vài cái tại một thời điểm, và học chúng tốt.
Hãy tự hỏi câu hỏi này:
"Tôi cần biết gì để tiến triển trên vấn đề tôi đang đối mặt?"
Dùng câu trả lời của bạn để thu hẹp vào năng lực nào để bắt đầu. Khi bạn nhặt những cái đó, bạn có thể kiểm tra kỹ năng ngay quanh nó, và tận dụng những gì bạn vừa học để học thứ tương tự nhanh hơn. Ví dụ, nếu bạn cảm thấy thoải mái với dòng lệnh, bạn có thể khá dễ dàng nhánh ra vào quản lý package và quyền.
Bằng cách xây dựng kỹ năng khi bạn cần chúng, bạn sẽ có một chút động lực thêm. Bạn sẽ dành thời gian cho thứ quan trọng với bạn.
Ví dụ, nếu tôi học multitenancy vì tôi cảm thấy nó là thứ tôi nên biết, tôi sẽ ngủ gật giữa bài blog đầu tiên. Nếu tôi học nó vì đó là cách duy nhất tôi có thể làm ứng dụng của tôi hoạt động, tôi sẽ dính chặt vào mọi tutorial và tài liệu tham khảo tôi tìm được.
Việc thấy vài trăm kỹ năng, và biết bạn cần học tất cả, là đè nén. Đặc biệt khi những năng lực đầu tiên mất bạn tuần hoặc tháng để nhặt. Bạn sẽ cảm thấy như bạn sẽ không bao giờ trở thành dev Rails chuyên nghiệp.
Biểu đồ không sai. Là dev Rails, bạn cuối cùng sẽ biết rất nhiều về hầu hết những điều đó. Nhưng chúng ta không bắt đầu ở đó.
Vì vậy, hãy bắt đầu ở đâu đó. Ưu tiên, và di chuyển dọc theo con đường dẫn đến ứng dụng của bạn được xây dựng. Nhánh ra để lấp đầy khoảng trống. Và nhận ra rằng bạn sẽ nhanh hơn theo thời gian.
Và nếu bạn muốn học những kỹ năng đó nhanh hơn, và nhớ cách dùng chúng khi quan trọng, hãy lấy chương mẫu miễn phí này của Practicing Rails. Bạn sẽ học phương pháp tôi dùng để học ý tưởng Rails mới nhanh và kỹ lưỡng, mà không bị overwhelmed.