Bạn có thể học Rails trước Ruby? Được, một thời gian. Nhưng khi app lớn hơn giai đoạn REST, scaffold, twitter-clone, bạn sẽ đập vào tường. Chắc bạn học Ruby qua thẩm thấu. Nhưng đó mất mãi.
Nếu muốn học đủ Ruby để làm chủ Rails, hãy học Ruby riêng. Nhưng sách Ruby nhiều lắm. Tôi đếm bốn kệ lần trước vào bookstore. Nhiều cuốn tốt. Nhưng vài cuốn ở lớp riêng. Và chúng giúp qua toàn bộ quá trình học Ruby.
Từ đầu
Rails có thể là framework đầu, Ruby ngôn ngữ đầu. Nếu mới lập trình nói chung, bắt đầu với Learn to Program. Dạy viết chương trình Ruby, kể cả chưa bao giờ code. Khởi động thói quen tốt. Tôi biết nhiều người vui vẻ với đây là sách lập trình đầu đời.
Tiếp, Eloquent Ruby dạy viết Ruby trông như Ruby. (Rất quan trọng với Rubyist). Học define class, tạo method on the fly, tại sao chọn cách viết Ruby này hơn cách khác.
Sau Eloquent Ruby, bạn biết Ruby idiomatic. Và dễ đọc hiểu code gặp phải.
Khi chuyện khó hơn
Đọc xong hai cuốn, bạn biết viết code Ruby, nhưng vẫn khó tổ chức. Method vào class này hay class kia? Class to khi nào? Làm sao khi viết method phức tạp đến mức không hiểu?
Confident Ruby và Practical Object-Oriented Design in Ruby là ngọc của Ruby trung cấp. Đọc chúng, code Ruby bạn thay đổi tốt mãi mãi.
Tại sao?
Confident Ruby dạy viết code Ruby đọc hiểu bằng pattern đơn giản, chung. Về code rõ ràng làm gì. Code đẩy quyết định, duplication, edge case ra xa, để bạn không lo phần phức tạp khi không cần. Code Just Works.
Practical Object-Oriented Design in Ruby về áp dụng design tốt cho code. Học cấu trúc object, method, giao tiếp giữa chúng, để code dễ dùng và test. Về làm code flexible, không over-structure. Và viết test không ghét sửa khi code đổi.
Giáo dục liên tục
Tiếp, bạn học thêm bằng cách tìm nhiều ý tưởng, đi sâu vào ý tưởng thú vị. Blog tốt, nhưng có vụ nổ resource khác, phát hành định kỳ, chủ đề Ruby đa dạng.
Yêu thích của tôi:
- The Ruby Rogues Podcast (và podcast/talk khác)
- RubyWeekly
- RubyTapas
- Ruby Steps
RubyTapas và Ruby Steps trả phí. Nhưng mỗi cái có episode/newsletter free, xem style trước khi đăng ký.
Tôi học toneladas Ruby từ năm random article và screencast. Không phải cách organized nhất lấy info, nhưng hiệu quả.
Kéo về Rails
Rails là Ruby. Thời gian học Ruby dạy về Rails, và ngược lại.
Vậy học Ruby trước không phải yêu cầu dùng Rails. Bạn làm nhiều với Rails dù phải lội qua Ruby.
Nhưng không phải cách tốt nhất. Bạn sẽ phải học Ruby cuối cùng. Và khi đó, dùng sách này xây nền tảng vững chắc.