Ruby on Rails'ın dik bir öğrenme eğrisi mi olmalı yoksa sadece ben mi? [kapalı]


17

Ben kendi kendini yetiştirmiş bir programcıyım. Ekim ayından bu yana değişen yoğunlukta (bazen tüm gün, bazen birkaç hafta boyunca hiçbir şey yok) RoR öğreniyorum. Ondan önce sadece Java'yı biliyordum, ama oldukça iyi biliyordum. RoR ve sizi nasıl mutlu, üretken, vb. Yapması gerektiği konusunda çok fazla duydum. Şimdiye kadar sadece beni hayal kırıklığına uğrattı. Çevik kitaptan öğrendim ve zorlukların bir kısmının JavaScript ve CSS bilmeme ve sadece titrek bir veritabanı ve HTML kavrayışına sahip olması gerektiğinden şüpheleniyorum. Ama görünüşe göre Agile kitabındaki projeyi tamamlamak diğer insanlara göre çok daha uzun sürdü ve hala çok fazla hatırlamıyorum. Rails ile elde edemediğim bazı şeyler var, örneğin semboller ne zaman ve ne zaman KULLANILMAMIŞ veya dinamik yöntemlerin nasıl çağrıldığı.

Son zamanlarda arayüzde küçük bir değişiklik yapmamın istendiği küçük bir Rails ödevi verildi. Beni yaklaşık 25 saat sürdü ve kodu anlama konusunda bazı ilerlemeler kaydetmiş olmama rağmen, hala nasıl ilerleyeceğim konusunda hiçbir fikrim yok. Bağlam vermek için sağlayacağım çok fazla kod olduğundan yığın taşmasını bile isteyemem.

Yani sorum şu başlıkta: RoR'nin öğrenmesi uzun sürüyor mu yoksa sadece yavaş mıyım? Yanlış kitaptan öğreniyor olabilir miyim? Öğrenme tarzım öyle ki, ya hiç bir şey anlamıyorum ya da her şeyi anlıyorum, eğer mantıklıysa.


1
Öğrenmek Her Zaman Arttır , Bir şeyi her öğrendiğinizde biraz daha fazla anlarsınız.Problem çözme zordur ve sabır gerektirir (programlama dili uzmanlığına bakılmaksızın) daha çabuk kabul ederseniz, bunları daha serin bir zihinle ele almanız daha kolay olacaktır.
Aditya P

Ben yaptım ama muhtemelen benim durumumda kongre çünkü düşündüm. Kural olarak yaptığı birçok şeyi yapılandırmak için çok kullanılır.
Rig

Yanıtlar:


17

Sorunuzdan, sadece öğrenmeye çalıştığınız Rails değil, aynı zamanda web geliştirme kavramlarının yanı sıra veritabanları ve SQL'i de kavramanız gerektiği açıktır. Bu çok büyük bir görev, lütfen sabırlı olun.

Öte yandan, Rails ile seçme şansın yok - öğrenmen lazım her üç: M, V ve C den MVC , aynı anda, ama bu raylar en kolay arasında olmak üzere etrafında herhangi MVC framework ile durum olurdu , Diyecektim ki.

Bunun yerine yapabileceğiniz şey, Ruby ve HTTP'nin temel kavramları ile rahat oluncaya kadar Sinatra gibi daha basit bir çerçeveyle başlamak ve daha sonra daha zengin sunum (görünümler ve CSS) ve veritabanı tabanlı modellere doğru yavaş ilerlemek.


10

Rails öğrenirken ve tek geçmişiniz Java olduğunda, sadece yeni bir web çerçevesi öğrenmezsiniz. Yeni bir programlama dili ve Java'dan önemli ölçüde farklı bir dil öğreniyorsunuz.

Önce Ruby'yi öğrenmene ve sonra Rails'e ve sözleşmelerine bakmana yardımcı olabilir. Artık Ruby'i anlamak için mücadele etmek zorunda kalmadım ve Rails kodunu / şablonlarını okuyabildiğim (ve yazabildiğimde) Rails'in ne yaptığını ve nasıl yaptığını öğrenmek benim için çok daha kolay oldu.

Ruby on Rails Tutorial'dan geçtim ve çok yararlı buldum. Eğitim kitabı ücretsizdir ve Rails 2.3 ve 3.0'ın bir sürümü vardır. Ayrıca, MVC (Model-View-Controller) ve genel olarak web geliştirme / sayfa yaşam döngüsü hakkında bilgi edinmek de yararlı olabilir.


6

Anita, seninle neredeyse aynı deneyimi yaşadım. ama şimdi öğrenmenin neden bu kadar zor olduğunu anladığımı düşünüyorum:

  • RoR tek bir dil değil, geniş bir teknoloji, dil ve teknik koleksiyonudur.
  • Java, C ++ veya mantıksal bir yapıya sahip diğer diller gibi değil
  • Öğrenmenin tek bir yolu ve size öğretebilecek tek bir kitap yok.
  • Benim düşünceme göre, toplum öğrenirken diğer topluluklar kadar affedici olmayan bir şekilde "görüşlü" bir tutum sergiliyor. İnsanlar düzenli olarak işlerin nasıl yapılması gerektiğine katılmıyorlar. Bu yukarıdan geliyor, RoR'u icat eden adamdan
  • Testlerin çoğu RoR dersinde gelişimin temel bir parçası olması şiddetle tavsiye edilir ve test dilleri zaten yüksek öğrenme yüküne katkıda bulunabilen DSL'lerdir.
  • Dil için uygun dokümantasyon yok, sadece bir API, bazı kılavuzlar ve bulabileceğiniz kitaplar var.
  • Bazı temel yöntem ve teknikler "otomajik" dir ve nasıl çalıştıkları net değildir. Örneğin, has_secure_password yöntemleri.

Bir yılı aşkın süredir öğreniyorum ve işte öğrenmeyi kolaylaştırdığımı, deneyimlerden geldiğimi düşündüğüm bazı şeyler:

  • Birkaç açıdan saldırın. Çalışmak için birkaç kitabınız, öğreticiniz ve blogunuz olduğunda, bu, öğrenmeniz için bir yol açabilir. Tek başına bir kitap veya blog size "sıkışmış" bırakabilir.
  • Öğrenme düşünün bazı HTML / CSS & Ruby. Her şey değil, RoR'a çok fazla girmeden önce geçinmek için yeterli.
  • RSpec (veya benzer test metodolojisi) hakkında bir ders alın. RSpec'teki Codeschool biri özellikle iyidir ve bu, RoR dersine takılı kalmanızı engelleyecektir, çünkü testi takip edemezsiniz.
  • Yaklaşık 3 kitap alın. Obie Fernandez "Rails 3 Way" bir zorunluluktur, sadece alamadım bir şey olduğunda referans için kullanılan (kapak okumak için kapak için değil). Bahsettiğin Çevik beni şaşırttı. "Learing Rails 3" farklı bir yönden geliyor ve diğer öğreticilerden alamayacağınız bazı sorunları çözmenize yardımcı olabilir.
  • Ekran görüntüsü veya çevrimiçi öğrenme kursu yapın. Michael Hartl'ın öğreticisi iyi, ama çok dik bir öğrenme. Yukarıdaki kitapların yanı sıra RSpec'teki Codeschool kursunun onu geçmeme yardımcı olduğunu buldum - ancak yine de birkaç küçük noktada yazara ulaşmak zorunda kaldım.
  • Sor, sor, sor! Bir Ruby Forum, Rails Forum, IRC odaları ve StackExchange vb - hepsini sık sık kullanın !

Lütfen pes etmeyin - zekisiniz, ama bana benzer bir öğrenme stiliniz var ve Rails'i öğrenmek çok zor ve hiçbir yerde (tamamen) iyi öğretilmiyor.


4

Belki de sorun daha az yakut (ve veya raylar) ve daha çok HTML / CSS / JavaScript ve SQL ve veritabanlarının 'titrek kavrayışına' sahip olmanızdır.

Rails, 'tam yığın bir çerçevedir'. Önceki programlama deneyiminiz belki bazı Swing ile çekirdek Java ise, o zaman aynı anda öğrenilecek birçok kavram vardır.

Bu soruna yaklaşıyor olsaydım önce SQL ve ilişkisel modelleme ilk çivilenmiş (SQL ile tarayıcı düzeni sorunları yoktur!) İle başlar. Veritabanı katmanından eminseniz, ActiveRecord ile oynayın ve rayların tbleri db'den nasıl sardığını öğrenin.

Bir sonraki adım, denetleyicileri ve yönlendirmeyi ve ardından UI'yi (html / javascript vb.) Öğrenmek olacaktır.

Hemen hemen herhangi bir web çerçevesini kullanarak herhangi bir web geliştirme yapacaksanız, SQL ve ilişkisel modellemeyi anlamanız gerekir (daha sonra NoSQL yolunu seçseniz bile).


1

Ben de bir Java geçmişinden geliyorum ve Rails öğrenmek oldukça zor zaman geçirdim. Bahsettiğin tüm sorunları yaşadım. Railscasts.com'u izlemenin başlangıçta yardımcı olduğunu buldum . Bir başkasının bir şeyleri nasıl yaptığını görmek beni yakalamama yardımcı oldu ve sonra kendi başıma bir şeyler yapmaya başladım. Rails 3 olsa da Rails dokunmadım.


1

"Bazen bütün gün, bazen birkaç hafta boyunca hiçbir şey" sözlerin bana bilmem gereken her şeyi anlatıyor. Eğer yeni bir dil VE çerçeve öğreniyorsanız (sanırım bunu yapıyorsunuz çünkü sadece “Ruby” değil “Ruby on Rails” den bahsediyorsunuz), tutarlılık karşılığını verir. Kavramları öğrenmem ve korumamın tek yolunu günde yarım saat, genellikle günün sonunda, yatmadan hemen önce çalışmaktır. Yarım saatten fazla ders alırsam huysuzlaşır ve odağımı kaybederim. Daha az ders alırsam, öğrendiklerimi korumam.

Dikkat dağıtıcı unsurları ortadan kaldırın - bu benim en iyi tavsiyem. Ve haftanın her günü çalışın. Siz farkına varmadan, işler yerine oturmaya başlayacaktır.

Takip yazısı görmedim, bu yüzden nasıl yaptığınızı merak ediyorum. 2 yıl geçti ve kesinlikle bir üst raf web geliştiricisi olmayı öğrenmek için bolca zaman olmalı!


0

Yaklaşık 8 aydır Ruby ve Rails'i eğiyorum. HTML, XML, SQL anlayışı ile geldim. Hala seninle aynı problemi buldum, benim için işe yarayan sadece okumak ve anlamak umuduyla değil, gerçek problemler üzerinde çalışmaktı. Bir kavramı kavramak için çok sayıda küçük kod parçası veya mvc testi yapmanız gerekebilir. Semboller hala üzerinde çalıştığım bir şey. Her seferinde bir sorun alın ve bunları çözdükçe, projenizdeki başka bir sorunu çözmek için gereken bir şey öğreneceksiniz.

Cevap: Hayır, dik bir öğrenme eğrisine sahip olması gerekmiyor, eğri arka planınıza bağlı olarak farklı.


0

Bu olabilir. Gerçekten oturmaya ve Rails öğrenmeye odaklanmaya çalıştığım her seferinde "öğrenme eğrisine" girdiğimi biliyorum (yaklaşık 2+ yıldır birkaç ayda bir). Sorun, Rails'teki birçok şeyin yıldırım hızında değişmesi ve genellikle bulduğunuz kaynaklar hemen hemen eski.

Tavsiyem Ruby (en azından temel bilgiler) ve ardından Rails'e odaklanmaya başlamaktır, bu nedenle sizin için her şeyi işlemek için Rails çerçevesine% 100 güvenmiyorsanız. Ayrıca, bariz nedenlerden dolayı HTML / CSS / Javascript üzerinde de fırça oluşturmalısınız. Ayrıca deneyimlerden Rails dünyasının sürekli karmaşasına kapılmayın: Eğer tüm yeni şeyleri göz ardı ederseniz, Rails cognoscenti Haml, Sass, RSpec / BDD, Salatalık vb. kodunuzu yazmak için BDD ve RSpec'i öğrenin, ön uç, vb. kodlamak için Haml ve Sass'ı öğrenmek zorunda değilsiniz (zor değil, yine de öğrenmek için başka bir şey).


0

Herhangi bir programlama dili için bir öğrenme eğrisi vardır. Gerçekten geleneksel bir şekilde bir dil öğrenmiyoruz. C / C ++ gibi, ancak işler gerçek resme geldiğinde, birkaç teknolojinin somunlarını ve cıvatalarını da bilmeliyiz.

Ona yaklaşmanın en iyi yolu yaparak öğrenmektir. Genel olarak bir şeyler okuyoruz ama gerçek resme gelince onunla başa çıkacağız. Ben yerel bir C ++ programcısı, ben de C # kodlayabilirsiniz. Bu dilde ve kütüphanede soyut bir bakış açısıyla pek çok iyilik olduğunu biliyorum ama okuduğum ve atladığım birçok konu var. Bana sorarsan, ben aslında özürlüüm.

Django çerçevesini öğreniyorum. Seçtiğim kitap ilginçtir ve sosyal bir yer imi uygulaması oluşturur. Yani bu, projede gerçek bir eller yaparak sıfırdan ileri seviyeye bir şeyler öğrenmek gibi bir şey. Tek öğrendiğimiz gibi bu şekilde yaklaşmanızı öneririm.


0

RoR ile ilgili olan şey, özellikle ikinci "R" ile, çoğu öğrenme öğreticisinin size "kod-maymun" stilini öğretmeye odaklanmasıdır. Özellikle Çevik kitap, yüzeysel "şimdi sadece bunu yapıyoruz, neden rahatsız etmeyin" programlama adımları ile doludur. Ayrıca paradigmalarını değiştirmeye devam etmeleri gerçeği - yani önce RJS'yi yol olarak görüyorlardı, şimdi aniden, UJS ile ilgili.

Buradaki bazı insanların önerdiği gibi, önce Ruby dilinin kendisinin giriş ve çıkışlarını öğrenmeyi, ardından çerçeveye geçmeyi deneyebilirsiniz. Hâlâ ikisini birlikte öğrenmek istiyorsanız, "Raylar için Ruby" isimli bu kitabı oldukça faydalı buldum.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.