Vậy là bạn đã hoàn thành vài hướng dẫn Rails. Có thể bạn đã tham gia một hai khóa học hoặc xem một số screencast. Bạn đã theo dõi và xây dựng bản sao của một vài ứng dụng hướng dẫn. Rõ ràng là đã đến lúc thăng cấp trình độ phát triển Rails của bạn.
Tuy nhiên, bạn bị mắc kẹt. Có rất nhiều sách, khóa học và video cho người mới bắt đầu. Nhưng đâu là những hướng dẫn cho các lập trình viên Rails trung cấp?
Khác với trước đây
Khi bạn vượt qua giai đoạn người mới, "xây dựng kiến thức nền tảng" của một lập trình viên Rails, các tài nguyên khan hiếm. Tại sao lại như vậy?
Trở thành lập trình viên Rails trung cấp hoàn toàn khác so với việc là người mới. Có vẻ như chỉ khác một chút, với những thứ phức tạp hơn để học. Nhưng quá trình vượt qua giai đoạn trung cấp là một quá trình hoàn toàn riêng biệt.
Đừng nghĩ: "Người mới biết những thứ này. Lập trình viên trung cấp biết tất cả những thứ đó tốt hơn một chút, thêm vài thứ ở bên cạnh." Đối với lập trình viên trung cấp, việc học tập tập trung hơn. Thay vì biết một chút về nhiều thứ, bạn sẽ học sâu về một vài thứ.
Hãy tìm vài lĩnh vực để tập trung. Học sâu hơn về testing và TDD. Học một vài design pattern mà Rails khuyến khích, một cách chuyên sâu. Học về cách thiết kế một data model tốt. Nhưng đừng học tất cả cùng một lúc. Học từng thứ một, và học thật kỹ.
Khi bạn nắm vững cơ bản Rails, bạn sẽ đủ kiến thức để đọc tài liệu API, ngay cả khi chưa hiểu hết. Bạn có thể đọc những cuốn sách hay nhất về TDD, ngay cả khi chúng không chuyên về Rails. Sau khi đã thấy đủ nhiều ví dụ code Ruby, bạn có thể đi sâu vào source code và hiểu các phần của Rails ở mức độ mà ít người đạt được.
Khi bạn tập trung học tốt một thứ, có nhiều tài nguyên hơn để học. Và mỗi thứ bạn học sẽ làm cho việc học thứ khác dễ dàng hơn.
(Nếu có vẻ dễ dàng để mọi người học ngôn ngữ thứ ba hoặc thứ tư, đây là một lý do. Nhiều khái niệm cốt lõi giữ nguyên, nghĩa là bạn phải học ít hơn nhiều để vượt qua giai đoạn trung cấp trong một ngôn ngữ mới).
Làm sao chọn thứ tiếp theo để "chơi"?
Nếu bạn sẽ học từng thứ một, bạn phải chọn thứ gì để tập trung trước. Nhưng làm sao chọn khi có quá nhiều thứ để học?
Có vẻ như luôn dễ dàng hơn khi học thứ mình quan tâm, đúng không? Đối với tôi thì đúng. Vậy cách tốt nhất để buộc mình quan tâm đến việc học thứ mới là gì?
Viết ứng dụng của riêng bạn! Nhiều, rất nhiều ứng dụng. Viết app, sửa app, thêm tính năng vào app hiện có.
Khi bạn viết app, bạn sẽ mắc kẹt. Sẽ mắc kẹt rất nhiều. Nhưng đó là điều tuyệt vời! Hãy học cách yêu sự mắc kẹt đó, vì nó có nghĩa là bạn sắp học được điều mới. Bị mắc kẹt là tuyệt vời, và càng tận hưởng nó, thậm chí tìm kiếm nó, bạn càng nhanh trở thành chuyên gia.
Sau khi nghiên cứu, học và viết giải pháp, hãy thử làm lại trong app khác. Thử viết không nhìn tài liệu. Thực sự học nó. Sau đó, tiếp tục xây dựng app, và quan sát nơi tiếp theo bạn mắc kẹt.
Tôi thích cách học này, vì bạn tập trung vào những thứ bạn sẽ gặp thường xuyên nhất. Bạn học nhanh hơn, vì không chỉ học để học. Bạn đang tìm cách giải quyết vấn đề. Vậy mà không phải đó là lý do bạn yêu thích phát triển phần mềm từ đầu?
Nhưng bạn không thể lấy tất cả theo cách đó
Sau khi hiểu cơ bản Rails, bạn có thể học một cách ngẫu nhiên. Nếu bạn hiểu những gì lập trình viên Rails trung cấp và chuyên gia đang nói, bạn có thể vô tình rơi vào những cuộc hội thoại sẽ đưa việc học của bạn đi theo những hướng thú vị.
Vì vậy, khi tôi vượt qua giai đoạn hướng dẫn cơ bản của việc học thứ mới, tôi đăng ký theo dõi một đống blog. Tôi theo dõi một số lãnh đạo cộng đồng trên Twitter. Tôi đăng ký bản tin WhateverWeekly cho ngôn ngữ đó (RubyWeekly, iOS Dev Weekly, JavascriptWeekly, v.v.).
Bạn không phải đọc hết. Bạn không nên đọc hết. Nhưng hãy để những thứ tốt đập vào radar của bạn, và cố gắng đọc và theo dõi những thứ có vẻ thú vị. Tôi đã học được những mẹo rất hay cách này, và chúng đã dẫn tôi vào những chủ đề hữu ích mà tôi có thể không gặp cho đến muộn hơn nhiều.
Vậy, bạn sẽ học gì tiếp theo?
Nếu bạn cảm thấy mắc kẹt vì không tìm thấy tài nguyên trung cấp tốt, hãy chủ động kiểm soát việc học của mình. Bắt đầu xây dựng một app, và chú ý đến cách bạn xây dựng nó. Thử một điều bạn chỉ chắc chắn một nửa là sẽ hoạt động, và tìm những nơi bạn có thể mắc kẹt. Tận dụng sự mắc kẹt đó, và tìm tài liệu API, hướng dẫn, hoặc tutorial chỉ cho phần nhỏ đó. Đi sâu vào source code nếu cần. (Có thể cảm thấy lạ lúc đầu, nhưng càng nhìn nhiều code Rails, bạn càng thoải mái với nó).
Thực sự hiểu một phần nhỏ, trở thành chuyên gia trong nó. Và sau đó, chuyển sang thứ tiếp theo.