Ruby on Rails có phải là một đường cong học tập dốc hay chỉ là tôi? [đóng cửa]


17

Tôi là một lập trình viên tự học. Tôi đã học RoR từ tháng 10 với cường độ khác nhau (đôi khi cả ngày, đôi khi không có gì trong vài tuần). Trước đó tôi chỉ biết Java, nhưng biết nó khá rõ. Tôi đã nghe rất nhiều sự cường điệu về RoR và cách nó làm cho bạn hạnh phúc, làm việc hiệu quả, v.v ... Cho đến nay nó chỉ khiến tôi thất vọng. Tôi đã học được nó từ cuốn sách Agile và tôi nghi ngờ một phần khó khăn có thể xảy ra với việc tôi không biết JavaScript và CSS, và chỉ nắm bắt được cơ sở dữ liệu và HTML. Nhưng rõ ràng tôi đã mất nhiều thời gian hơn để hoàn thành dự án trong cuốn sách Agile so với những người khác và tôi vẫn không nhớ nhiều về nó. Có một số điều về Rails mà tôi dường như không thể có được, ví dụ khi nào nên sử dụng các ký hiệu và khi nào KHÔNG, hoặc cách gọi các phương thức động.

Gần đây tôi đã được giao một nhiệm vụ Rails nhỏ nơi tôi được yêu cầu thực hiện một thay đổi nhỏ cho giao diện. Tôi mất khoảng 25 giờ và mặc dù tôi đã đạt được một số tiến bộ trong việc hiểu mã, tôi vẫn không biết làm thế nào để tiếp tục. Tôi thậm chí không thể yêu cầu Stack Overflow vì có quá nhiều mã tôi sẽ phải cung cấp để cung cấp ngữ cảnh.

Vì vậy, câu hỏi của tôi là trong tiêu đề: RoR có phải mất nhiều thời gian để học hay tôi chỉ chậm? Có thể là tôi đã học được từ cuốn sách sai? Cách học của tôi là đến nỗi tôi không hiểu gì hoặc hiểu mọi thứ, nếu điều đó có ý nghĩa.


1
Học hỏi luôn luôn tăng dần , bạn hiểu thêm một chút mỗi khi bạn học được điều gì đó. Việc giải quyết vấn đề rất khó khăn và đòi hỏi sự kiên nhẫn (bất kể chuyên môn về ngôn ngữ lập trình), bạn sẽ sớm chấp nhận việc đối phó với chúng bằng một tâm trí tuyệt vời.
Aditya P

Tôi nghĩ rằng nó đã làm nhưng có lẽ bởi vì nó rất định hướng trong trường hợp của tôi. Rất được sử dụng để cấu hình rất nhiều thứ mà nó làm như quy ước.
Giàn

Câu trả lời:


17

Từ câu hỏi của bạn, rõ ràng không chỉ Rails bạn đang cố gắng học, mà đồng thời bạn phải nắm bắt các khái niệm về phát triển web, cũng như cơ sở dữ liệu và SQL. Đó là một nhiệm vụ lớn vì vậy hãy kiên nhẫn.

Mặt khác, với Rails, bạn không có lựa chọn nào khác - bạn phải học cả ba: M, V và C từ MVC , tất cả cùng một lúc, nhưng đó sẽ là trường hợp với bất kỳ khung MVC nào, với Rails là dễ nhất , Tôi sẽ nói.

Thay vào đó, những gì bạn có thể làm là bắt đầu với một số khung đơn giản hơn, chẳng hạn như Sinatra, cho đến khi bạn cảm thấy thoải mái với các khái niệm cơ bản về Ruby và HTTP, rồi từ từ tiến xa hơn tới việc trình bày phong phú hơn (khung nhìn và CSS) và các mô hình dựa trên cơ sở dữ liệu.


10

Khi bạn học Rails và nền tảng duy nhất của bạn là Java, bạn không chỉ học một khung web mới. Bạn cũng đang học một ngôn ngữ lập trình mới và một ngôn ngữ khác biệt đáng kể so với Java.

Nó có thể giúp bạn học Ruby trước và sau đó nhìn vào Rails và các quy ước của nó. Tìm hiểu những gì Rails làm và làm thế nào nó trở nên dễ dàng hơn đối với tôi một khi tôi không còn phải vật lộn để hiểu Ruby và có thể đọc (và viết) mã / mẫu Rails.

Tôi đã xem qua Hướng dẫn về Ruby on Rails và thấy nó rất hữu ích. Sách hướng dẫn là miễn phí và có phiên bản cho Rails 2.3 và 3.0. Bạn cũng có thể thấy hữu ích khi đọc lên MVC (Model-View-Controller) và phát triển web / vòng đời trang nói chung.


6

Anita, tôi đã có gần như cùng trải nghiệm với bạn. nhưng nghĩ rằng bây giờ tôi đã hiểu tại sao nó rất khó học:

  • RoR không phải là một ngôn ngữ, nó là một tập hợp rộng lớn các công nghệ, ngôn ngữ và kỹ thuật.
  • Nó không giống như Java, C ++ hoặc các ngôn ngữ khác có cấu trúc logic
  • Không có cách nào để học và không có cuốn sách nào có thể dạy bạn (nhiều hơn về điều này sau)
  • Theo tôi, cộng đồng dường như có thái độ hơi "tranh luận", không tha thứ như các cộng đồng khác khi học. Mọi người thường không đồng ý về cách mọi thứ "nên" được thực hiện. Điều này đến từ đầu, từ người đã phát minh ra RoR
  • Kiểm tra được khuyến khích mạnh mẽ là một phần cốt lõi của sự phát triển trong hầu hết các bài học RoR và ngôn ngữ kiểm tra là DSL cũng có thể thêm vào tải học tập cao.
  • Không có tài liệu phù hợp cho ngôn ngữ, chỉ có API, một số hướng dẫn và bất kỳ cuốn sách nào bạn có thể tìm thấy.
  • Một số phương pháp và kỹ thuật cốt lõi là "tự động" và không rõ chúng hoạt động như thế nào. Ví dụ: các phương thức has_secure_password.

Tôi đã học nó được hơn một năm nay và đây là một số điều mà tôi nghĩ làm cho nó dễ học hơn, mà tôi đã rút ra từ kinh nghiệm:

  • Tấn công nó từ nhiều góc độ. Khi bạn có một vài cuốn sách, hướng dẫn và blog để làm việc, điều này có thể "mở ra" một cách để bạn học hỏi. Một cuốn sách hoặc blog riêng của nó có thể khiến bạn "mắc kẹt".
  • Cân nhắc học một số HTML / CSS & Ruby. Không phải tất cả, chỉ đủ để vượt qua, trước khi bạn đi quá xa vào RoR.
  • Tham gia một khóa học về RSpec (hoặc phương pháp thử nghiệm tương tự). Chương trình Codecool trên RSpec đặc biệt tốt và điều này sẽ ngăn bạn bị mắc kẹt trong bài học RoR vì bạn không thể làm theo bài kiểm tra.
  • Nhận khoảng 3 cuốn sách. Một trong những "The Rails 3 Way" của Obie là một điều bắt buộc, được sử dụng để tham khảo khi có thứ gì đó bạn không nhận được (không phải để che cho việc đọc). Agile mà bạn đề cập chỉ làm tôi bối rối. "Lear Rails 3" xuất phát từ mọi thứ từ một hướng khác và có thể giúp phá vỡ một số vấn đề bạn không thể nhận được từ các hướng dẫn khác.
  • Làm một khóa học screencast hoặc trực tuyến. Hướng dẫn của Michael Hartl là tốt, nhưng học rất dốc. Tôi thấy rằng những cuốn sách ở trên, cộng với khóa học Codechool trên RSpec, đã giúp tôi vượt qua nó - nhưng tôi vẫn phải tiếp cận với tác giả trên một vài điểm nhỏ.
  • Hỏi, hỏi, hỏi! Có một Diễn đàn Ruby, Diễn đàn Rails, phòng IRC và StackExchange, v.v. - thường xuyên sử dụng tất cả chúng !

Xin đừng bỏ cuộc - bạn thông minh, nhưng dường như có cách học tương tự như tôi, và Rails rất khó học và không được dạy đặc biệt (hoàn toàn) ở bất cứ đâu.


4

Có thể vấn đề là ít ruby ​​(và hoặc đường ray) và thực tế là bạn chỉ có một 'nắm bắt run rẩy' về HTML / CSS / JavaScript và SQL và cơ sở dữ liệu.

Rails là một 'khung công tác đầy đủ'. Nếu kinh nghiệm lập trình trước đó của bạn là Java cốt lõi với một số Swing, thì có rất nhiều khái niệm để học cùng một lúc.

Nếu tôi đang tiếp cận vấn đề này, tôi sẽ bắt đầu bằng việc lấy SQL và mô hình hóa quan hệ trước tiên (không có vấn đề về bố cục trình duyệt với SQL!). Khi bạn tự tin với lớp cơ sở dữ liệu, sau đó chơi với ActiveRecord và tìm hiểu cách các đường ray kết thúc các bộ dữ liệu từ db.

Bước tiếp theo sẽ là tìm hiểu các bộ điều khiển và định tuyến và sau đó là UI (html / javascript, v.v.).

Nếu bạn sẽ thực hiện bất kỳ phát triển web nào bằng cách sử dụng khá nhiều khung web, bạn sẽ cần hiểu SQL và mô hình hóa quan hệ (ngay cả khi bạn chọn tuyến đường NoQuery sau này).


1

Tôi cũng đến từ một nền tảng Java và tôi đã có một thời gian học Rails khá khó khăn. Tôi đã có tất cả các vấn đề tương tự như bạn đề cập. Tôi thấy rằng xem railscasts.com đã giúp đỡ ngay từ đầu. Chỉ cần nhìn thấy cách người khác làm mọi thứ đã giúp tôi bắt kịp và sau đó tôi bắt đầu tự làm mọi thứ. Tôi chưa chạm vào Rails kể từ khi Rails 3 xuất hiện.


1

Câu nói của bạn, "đôi khi cả ngày, đôi khi không có gì trong vài tuần" cho tôi biết tất cả những gì tôi cần biết. Nếu bạn đang học một ngôn ngữ VÀ khung mới (Tôi cho rằng đó là những gì bạn đang làm vì bạn đề cập đến "Ruby on Rails" chứ không chỉ là "Ruby"), tính nhất quán sẽ được đền đáp. Tôi đã tìm thấy cách duy nhất tôi học và giữ lại các khái niệm là học khoảng nửa giờ mỗi ngày, thường là vào cuối ngày, ngay trước khi đi ngủ. Nếu tôi học hơn nửa giờ, tôi cảm thấy bồn chồn và mất tập trung. Nếu tôi học ít hơn, tôi không giữ lại những gì tôi đã học.

Loại bỏ phiền nhiễu - đó là lời khuyên tốt nhất của tôi. Và học mỗi ngày trong tuần. Trước khi bạn biết điều đó, mọi thứ sẽ bắt đầu rơi vào vị trí.

Tôi không thấy bất kỳ bài viết tiếp theo nào, vì vậy tôi tự hỏi bạn đã làm như thế nào. Đã 2 năm và chắc chắn sẽ có nhiều thời gian để học cách trở thành một nhà phát triển web hàng đầu!


0

Tôi đã nghiêng Ruby và Rails được khoảng 8 tháng rồi. Tôi đến với sự hiểu biết về HTML, XML, SQL. Tôi vẫn tìm thấy vấn đề tương tự như bạn, điều làm việc cho tôi là làm việc với những vấn đề thực sự, không chỉ đọc và hy vọng hiểu được. Bạn có thể phải chạy rất nhiều bài kiểm tra nhỏ về các đoạn mã hoặc mvc để nắm bắt một khái niệm. Biểu tượng là một cái gì đó tôi vẫn đang làm việc. Chỉ cần giải quyết một vấn đề tại một thời điểm và khi bạn giải quyết chúng, bạn sẽ học được điều gì đó cần thiết để giải quyết vấn đề khác trong dự án của bạn.

Trả lời: Không, không nên có đường cong học tập dốc, đường cong khác nhau tùy thuộc vào nền tảng của bạn.


0

Nó có thể. Tôi biết tôi chạy vào "đường cong học tập" mỗi khi tôi cố gắng thực sự ngồi xuống và tập trung vào việc học Rails (cứ sau vài tháng trong khoảng hơn 2 năm nay). Vấn đề là rất nhiều thứ trong Rails thay đổi với tốc độ nhanh như chớp và thường thì tài nguyên bạn tìm thấy đã lỗi thời gần như ngay lập tức.

Lời khuyên của tôi là bắt đầu tập trung vào Ruby (ít nhất là những điều cơ bản) và sau đó là Rails, vì vậy bạn không dựa vào 100% vào khung Rails để xử lý mọi thứ cho bạn. Bạn cũng nên kiểm tra HTML / CSS / Javascript vì những lý do rõ ràng. Ngoài ra từ kinh nghiệm đừng bị cuốn vào thế giới liên tục của thế giới Rails: Nếu bạn có thể bỏ qua tất cả những điều mới lạ, Rails cognoscenti truyền giáo như Haml, Sass, RSpec / BDD, Cucumber, v.v. hoặc bạn sẽ bị chết đuối học BDD và RSpec để viết mã của bạn, phải học Haml và Sass (không khó nhưng vẫn là một điều cần học) để viết mã mặt trước, v.v. Bắt đầu đơn giản nhất có thể.


0

Có một đường cong học tập cho bất kỳ ngôn ngữ lập trình. Chúng ta không thực sự học một ngôn ngữ theo cách thông thường. Giống như C / C ++ nhưng khi mọi thứ trở thành hình ảnh thực tế, chúng ta cũng phải biết các loại hạt và bu lông của một số công nghệ.

Cách tốt nhất để tiếp cận nó, là học bằng cách làm. Chịu đựng tất cả những khó khăn để tự làm điều đó. Thông thường chúng ta đọc mọi thứ nhưng khi nói đến hình ảnh thực sự, chúng ta sẽ bị mắc kẹt với nó. Tôi là một lập trình viên C ++ bản địa, tôi cũng có thể viết mã bằng C #. Tôi biết rằng có rất nhiều điều tốt đẹp trong ngôn ngữ và thư viện đó theo quan điểm trừu tượng nhưng nhiều chủ đề tôi chỉ đọc và bỏ qua. Vì vậy, nếu bạn hỏi tôi, tôi thực sự bị tàn tật.

Tôi đang học khung Django. Cuốn sách tôi đã chọn rất đơn giản và nó tạo ra một ứng dụng đánh dấu xã hội. Vì vậy, nó giống như học mọi thứ từ đầu đến cấp độ nâng cao bằng cách thực hiện dự án thực sự. Tôi đề nghị bạn nên tiếp cận theo cách đó vì tất cả chúng ta đều tự học.


0

Điều xảy ra với RoR, đặc biệt với "R" thứ hai là hầu hết các hướng dẫn học tập tập trung vào việc dạy cho bạn phong cách "khỉ-code". Đặc biệt là cuốn sách Agile, nó chứa đầy các bước lập trình "bây giờ chúng ta chỉ cần làm điều này, đừng bận tâm tại sao". Cộng với thực tế là họ liên tục thay đổi mô hình của họ - tức là trước tiên họ đang chào mời RJS như một cách bất ngờ, bây giờ tất cả đều bất ngờ, đó là về UJS.

Như một số người ở đây đã đề xuất, trước tiên bạn có thể thử học các ngôn ngữ trong và ngoài ngôn ngữ Ruby, sau đó chuyển sang khung. Nếu bạn vẫn muốn học cả hai cùng nhau, tôi thấy cuốn sách này có tên "Ruby for Rails" khá hữu ích.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.