Apakah Ruby on Rails seharusnya memiliki kurva belajar yang curam atau hanya saya? [Tutup]

17

Saya seorang programmer otodidak. Saya sudah belajar RoR sejak Oktober dengan intensitas yang bervariasi (kadang-kadang sepanjang hari, kadang-kadang tidak ada selama beberapa minggu). Sebelumnya saya hanya tahu Jawa, tetapi tahu cukup baik. Saya telah mendengar banyak hype tentang RoR dan bagaimana seharusnya membuat Anda bahagia, produktif, dll. Sejauh ini hanya membuat saya frustrasi. Saya mempelajarinya dari buku Agile, dan saya curiga sebagian dari kesulitannya mungkin berkaitan dengan ketidaktahuan saya tentang JavaScript dan CSS, dan hanya memiliki pemahaman yang lemah tentang database dan HTML. Tetapi ternyata butuh waktu lebih lama untuk menyelesaikan proyek dalam buku Agile daripada orang lain, dan saya masih tidak ingat banyak tentang itu. Ada beberapa hal tentang Rails yang sepertinya tidak bisa saya dapatkan, misalnya kapan harus menggunakan simbol dan kapan TIDAK, atau bagaimana metode dinamis dipanggil.

Baru-baru ini saya diberi tugas Rails kecil di mana saya diminta untuk membuat perubahan kecil ke antarmuka. Butuh waktu sekitar 25 jam dan meskipun saya telah membuat beberapa kemajuan dalam memahami kode, saya masih tidak tahu bagaimana untuk melanjutkan. Saya bahkan tidak bisa bertanya Stack Overflow karena ada begitu banyak kode yang harus saya berikan untuk memberikan konteks.

Jadi pertanyaan saya ada pada judul: apakah RoR perlu waktu lama untuk dipelajari atau apakah saya lambat? Mungkinkah saya belajar dari buku yang salah? Gaya belajar saya sedemikian rupa sehingga saya tidak mengerti apa-apa atau memahami segalanya, jika itu masuk akal.

Tootsie Rolls
sumber
1
Belajar itu Selalu Bertambah , Anda mengerti sedikit lebih banyak setiap kali Anda mempelajari sesuatu. Pemecahan masalah sulit dan membutuhkan kesabaran (terlepas dari keahlian bahasa pemrograman) lebih cepat Anda menerimanya lebih mudah bagi Anda untuk mengatasinya dengan pikiran yang dingin.
Aditya P
Saya pikir itu tetapi itu mungkin karena konvensi yang sangat berorientasi pada kasus saya. Sangat terbiasa mengkonfigurasi banyak hal yang dilakukannya sebagai konvensi.
Rig

Jawaban:

17

Dari pertanyaan Anda, jelas bahwa bukan hanya Rails yang Anda coba pelajari, tetapi, pada saat yang sama Anda harus memahami konsep pengembangan web, serta database dan SQL. Ini tugas yang sangat besar, jadi harap bersabar.

Di sisi lain, dengan Rails Anda tidak punya pilihan - Anda harus mempelajari ketiganya: M, V dan C dari MVC , semuanya pada saat yang bersamaan, tetapi itu akan menjadi kasus dengan kerangka kerja MVC di sekitarnya, dengan Rails menjadi yang termudah. , Aku akan mengatakan.

Yang bisa Anda lakukan sebagai gantinya adalah mulai dengan beberapa kerangka kerja yang lebih sederhana, seperti Sinatra, hingga Anda terbiasa dengan konsep dasar Ruby dan HTTP, dan kemudian perlahan-lahan berkembang menuju presentasi yang lebih kaya (tampilan dan CSS) dan model berbasis basis data.

Mladen Jablanović
sumber
10

Saat Anda mempelajari Rails dan satu-satunya latar belakang Anda adalah Java, Anda tidak hanya mempelajari kerangka web baru. Anda juga belajar bahasa pemrograman baru, dan bahasa yang sangat berbeda dari Java.

Mungkin membantu Anda untuk mempelajari Ruby terlebih dahulu dan kemudian melihat Rails dan konvensi-konvensinya. Mempelajari apa yang Rails lakukan dan bagaimana cara kerjanya menjadi jauh lebih mudah bagi saya begitu saya tidak lagi harus berjuang untuk memahami Ruby dan dapat membaca (dan menulis) kode / templat Rails.

Saya membaca Tutorial Ruby on Rails dan merasa sangat membantu. The book tutorial gratis dan ada versi untuk Rails 2.3 dan 3.0. Anda mungkin juga terbantu untuk membaca tentang MVC (Model-View-Controller) dan siklus pengembangan web / halaman secara umum.

Adam Lear
sumber
6

Anita, saya memiliki pengalaman yang hampir sama dengan Anda. tapi pikir saya sekarang mengerti mengapa sangat sulit untuk belajar:

  • RoR bukan satu bahasa, itu adalah kumpulan luas teknologi, bahasa, dan teknik.
  • Tidak seperti Java, C ++ atau bahasa lain yang memiliki struktur logis
  • Tidak ada satu cara untuk belajar dan tidak ada buku yang bisa mengajarkan Anda (lebih lanjut tentang ini nanti)
  • Menurut pendapat saya, komunitas tersebut kelihatannya memiliki sikap "berpendapat" yang agak tidak memaafkan seperti komunitas lain ketika belajar. Orang-orang secara teratur tidak setuju tentang bagaimana hal-hal "harus" dilakukan. Ini berasal dari atas, dari orang yang menemukan RoR
  • Pengujian sangat dianjurkan untuk menjadi bagian inti dari pengembangan di sebagian besar pelajaran RoR, dan bahasa pengujian adalah DSL yang juga dapat menambah beban belajar yang sudah tinggi.
  • Tidak ada dokumentasi yang tepat untuk bahasa tersebut, hanya API, beberapa panduan dan buku apa pun yang dapat Anda temukan.
  • Beberapa metode dan teknik inti bersifat "otomatis" dan tidak jelas cara kerjanya. Misalnya, metode has_secure_password.

Saya telah mempelajarinya selama lebih dari setahun sekarang dan di sini ada beberapa hal yang saya pikir membuatnya lebih mudah untuk dipelajari, yang saya dapatkan dari pengalaman:

  • Serang dari beberapa sudut. Ketika Anda memiliki beberapa buku, tutorial, dan blog untuk bekerja, ini dapat "membuka" jalan bagi Anda untuk belajar. Satu buku atau blog sendiri bisa membuat Anda "mandek".
  • Coba pelajari beberapa HTML / CSS & Ruby. Tidak semuanya, hanya cukup untuk bertahan, sebelum Anda terlalu jauh masuk ke RoR.
  • Ikuti kursus tentang RSpec (atau metodologi pengujian serupa). Yang Codeschool di RSpec sangat baik dan ini akan menghentikan Anda terjebak dalam pelajaran RoR karena Anda tidak dapat mengikuti pengujian.
  • Dapatkan sekitar 3 buku. Obie Fernandez "The Rails 3 Way" adalah suatu keharusan, digunakan untuk referensi ketika ada sesuatu yang tidak Anda dapatkan (bukan untuk sampul ke sampul bacaan). Yang tangkas yang Anda sebutkan hanya membingungkan saya. "Learing Rails 3" datang pada hal-hal dari arah yang berbeda dan dapat membantu memecah beberapa masalah yang tidak bisa Anda dapatkan dari tutorial lain.
  • Lakukan kursus belajar screencast atau online. Tutorial Michael Hartl bagus, tapi pembelajarannya sangat curam. Saya menemukan bahwa buku-buku di atas, ditambah kursus Codeschool di RSpec, membantu saya melewatinya - tetapi saya masih harus menghubungi penulis dengan beberapa poin kecil.
  • Tanya, tanya, tanya! Ada Forum Ruby, Rails Forum, kamar IRC dan StackExchange dll - penggunaan mereka semua, sering !

Tolong jangan menyerah - Anda cerdas, tetapi tampaknya memiliki gaya belajar yang sama dengan saya, dan Rails sangat sulit untuk dipelajari dan tidak diajarkan dengan baik (sepenuhnya) di mana saja.

sepuluh kali
sumber
4

Mungkin masalahnya kurang ruby ​​(dan atau rel) dan lebih banyak fakta bahwa Anda hanya memiliki 'goyah' HTML / CSS / JavaScript dan SQL dan database.

Rails adalah 'kerangka kerja tumpukan penuh'. Jika pengalaman pemrograman Anda sebelumnya adalah Java inti dengan beberapa Swing, maka ada banyak konsep untuk dipelajari pada saat yang bersamaan.

Jika saya mendekati masalah ini, saya akan mulai dengan mendapatkan SQL dan pemodelan relasional dipaku terlebih dahulu (tidak ada masalah tata letak browser dengan SQL!). Ketika Anda yakin dengan lapisan basis data, kemudian mainkan dengan ActiveRecord dan pelajari bagaimana rails membungkus tuple dari db.

Langkah selanjutnya adalah mempelajari pengendali dan perutean lalu UI (html / javascript dll).

Jika Anda akan melakukan pengembangan web menggunakan hampir semua kerangka kerja web, Anda perlu memahami SQL dan pemodelan relasional (bahkan jika Anda kemudian memilih rute NoSQL nanti).


sumber
1

Saya juga berasal dari latar belakang Jawa, dan saya kesulitan belajar Rails. Saya memiliki semua masalah yang sama yang Anda sebutkan. Saya menemukan bahwa menonton railscasts.com membantu pada awalnya. Hanya melihat bagaimana orang lain melakukan sesuatu membantu saya menangkap dan saya kemudian mulai melakukan hal-hal sendiri. Saya belum menyentuh Rails sejak Rails 3 keluar.

sarung tangan mbreed
sumber
1

Kata-kata Anda, "kadang-kadang sepanjang hari, kadang-kadang tidak ada selama beberapa minggu" memberi tahu saya semua yang perlu saya ketahui. Jika Anda mempelajari bahasa DAN kerangka kerja baru (saya berasumsi itu yang Anda lakukan karena Anda menyebutkan "Ruby on Rails" dan bukan hanya "Ruby"), konsistensi terbayar. Saya telah menemukan satu-satunya cara saya belajar dan mempertahankan konsep adalah belajar sekitar setengah jam per hari, biasanya pada akhir hari, tepat sebelum tidur. Jika saya belajar lebih dari setengah jam, saya menjadi gelisah dan kehilangan fokus. Jika saya belajar lebih sedikit, saya tidak mempertahankan apa yang telah saya pelajari.

Hilangkan gangguan - itu saran terbaik saya. Dan belajar setiap hari dalam seminggu. Sebelum Anda menyadarinya, segala sesuatu akan mulai jatuh ke tempatnya.

Saya tidak melihat posting tindak lanjut, jadi saya bertanya-tanya bagaimana Anda melakukannya. Sudah 2 tahun, dan itu pastinya banyak waktu untuk belajar menjadi pengembang web papan atas!

pengguna2583747
sumber
0

Saya telah bersandar Ruby dan Rails selama sekitar 8 bulan sekarang. Saya datang dengan pemahaman tentang HTML, XML, SQL. Saya masih menemukan masalah yang sama seperti Anda, yang berhasil bagi saya adalah mengerjakan masalah nyata, tidak hanya membaca dan berharap untuk mengerti. Anda mungkin harus menjalankan banyak tes kecil pada potongan kode atau MVC untuk memahami konsep. Simbol adalah sesuatu yang masih saya kerjakan. Ambillah satu masalah pada satu waktu dan saat Anda menyelesaikannya, Anda akan belajar sesuatu yang diperlukan untuk memecahkan masalah lain dalam proyek Anda.

Jawab: Tidak, itu tidak seharusnya memiliki kurva belajar yang curam, kurva berbeda tergantung pada latar belakang Anda.

OpenCoderX
sumber
0

Bisa. Saya tahu saya mengalami "kurva belajar" setiap kali saya mencoba untuk benar-benar duduk dan fokus pada pembelajaran Rails (setiap beberapa bulan selama sekitar 2+ tahun sekarang). Masalahnya adalah begitu banyak hal dalam Rails berubah dengan kecepatan secepat kilat, dan seringkali sumber daya yang Anda temukan sudah usang segera.

Saran saya adalah mulai fokus pada Ruby (setidaknya dasar-dasarnya) dan kemudian Rails, jadi Anda tidak mengandalkan 100% pada kerangka Rails untuk menangani semuanya untuk Anda. Anda juga harus memoles HTML / CSS / Javascript untuk alasan yang jelas. Juga dari pengalaman, jangan terjebak dalam churn konstan dunia Rails: Jika Anda dapat mengabaikan semua hal-hal baru yang diinjili oleh kognitif Rails seperti Haml, Sass, RSpec / BDD, Mentimun, dll atau Anda akan tenggelam karena harus belajar BDD dan RSpec untuk menulis kode Anda, harus belajar Haml dan Sass (tidak sulit tetapi tetap, itu hal lain untuk dipelajari) untuk mengkodekan front-end, dll. Mulai sesederhana mungkin.

Wayne Molina
sumber
0

Ada kurva belajar untuk bahasa pemrograman apa pun. Kami tidak benar-benar belajar bahasa dengan cara konvensional. Seperti C / C ++ tetapi ketika hal-hal datang ke gambaran nyata kita juga harus mengetahui mur dan baut beberapa teknologi juga.

Cara terbaik untuk mendekatinya, adalah dengan belajar sambil melakukan. Ambil semua kesusahan untuk melakukannya sendiri. Biasanya kita membaca banyak hal tetapi ketika sampai pada gambaran nyata kita akan terjebak dengan itu. Saya seorang programmer C ++ asli, saya juga dapat kode dalam C #. Saya tahu bahwa ada banyak kebaikan dalam bahasa dan perpustakaan itu dalam sudut pandang abstrak tetapi banyak topik yang baru saja saya baca dan lewati. Jadi jika Anda bertanya kepada saya, saya sebenarnya cacat.

Saya belajar kerangka Django. Buku yang saya pilih sangat menarik dan membuat aplikasi bookmark sosial. Jadi itu seperti belajar hal-hal dari awal hingga tingkat mahir dengan melakukan proyek nyata. Saya menyarankan Anda untuk mendekati dengan cara itu karena kita semua belajar sendiri.

sarat
sumber
0

Masalahnya dengan RoR, terutama dengan "R" kedua adalah bahwa sebagian besar tutorial belajar berfokus pada mengajarkan Anda gaya "code-monkey". Terutama buku Agile, itu penuh dengan dangkal "sekarang kita hanya melakukan ini, jangan repot-repot mengapa" langkah pemrograman. Ditambah fakta bahwa mereka terus mengubah paradigma mereka - yaitu pertama-tama mereka menggembar-gemborkan RJS sebagai jalannya, sekarang tiba-tiba, ini tentang UJS.

Seperti yang disarankan beberapa orang di sini, Anda dapat mencoba mempelajari seluk beluk bahasa Ruby itu sendiri terlebih dahulu, kemudian beralih ke kerangka kerja. Jika Anda masih ingin mempelajari keduanya bersama-sama, saya menemukan buku ini bernama "Ruby for Rails" cukup membantu.

Jas
sumber