Ruby on Rails ควรจะมีช่วงการเรียนรู้ที่สูงชันหรือเป็นแค่ฉันหรือเปล่า [ปิด]


17

ฉันเป็นโปรแกรมเมอร์ที่สอนตัวเอง ฉันได้เรียนรู้ RoR ตั้งแต่เดือนตุลาคมด้วยความรุนแรงที่แตกต่างกัน (บางครั้งทั้งวันบางครั้งก็ไม่มีอะไรเป็นเวลาหลายสัปดาห์) ก่อนหน้านั้นฉันรู้จัก Java เท่านั้น แต่รู้ดีทีเดียว ฉันเคยได้ยินคำพูดที่เกินจริงเกี่ยวกับ RoR และวิธีการที่จะทำให้คุณมีความสุขมีประสิทธิผลและอื่น ๆ จนถึงตอนนี้มันทำให้ฉันผิดหวังเท่านั้น ฉันเรียนรู้จากหนังสือ Agile และฉันสงสัยว่าส่วนหนึ่งของความยากลำบากอาจเกี่ยวข้องกับ JavaScript และ CSS ของฉันโดยไม่รู้ตัวและการเข้าใจเพียงเล็กน้อยเกี่ยวกับฐานข้อมูลและ HTML แต่เห็นได้ชัดว่าฉันใช้เวลานานกว่าจะเสร็จสิ้นโครงการในหนังสือ Agile มากกว่าคนอื่น ๆ และฉันก็ยังจำไม่ได้มาก มีบางสิ่งเกี่ยวกับ Rails ที่ฉันดูเหมือนจะไม่ได้รับเช่นเมื่อใช้สัญลักษณ์และเมื่อไม่ทำหรือวิธีเรียกใช้แบบไดนามิก

เมื่อเร็ว ๆ นี้ฉันได้รับมอบหมาย Rails เล็ก ๆ ซึ่งฉันขอให้ทำการเปลี่ยนแปลงเล็กน้อยกับอินเทอร์เฟซ ฉันใช้เวลาประมาณ 25 ชั่วโมงและแม้ว่าฉันจะมีความคืบหน้าในการทำความเข้าใจโค้ด แต่ฉันก็ยังไม่รู้ว่าจะดำเนินการอย่างไร ฉันไม่สามารถถาม Stack Overflow ได้เพราะมีรหัสจำนวนมากที่ฉันต้องจัดเตรียมเพื่อให้บริบท

ดังนั้นคำถามของฉันอยู่ในชื่อ: RoR ควรจะใช้เวลานานในการเรียนรู้หรือฉันเพิ่งจะช้า? เป็นไปได้หรือไม่ที่ฉันได้เรียนรู้จากหนังสือที่ผิด? รูปแบบการเรียนรู้ของฉันเป็นเช่นนั้นฉันจะไม่เข้าใจอะไรเลยหรือเข้าใจทุกอย่างถ้ามันสมเหตุสมผล


1
การเรียนรู้นั้นเพิ่มมากขึ้นคุณจะเข้าใจมากขึ้นทุกครั้งที่คุณเรียนรู้บางสิ่งการแก้ปัญหาเป็นเรื่องยากและต้องใช้ความอดทน (โดยไม่คำนึงถึงความเชี่ยวชาญด้านการเขียนโปรแกรมภาษา) ไม่ช้าคุณจะยอมรับว่า
Aditya P

ฉันคิดว่ามันทำ แต่อาจเป็นเพราะการประชุมที่มุ่งเน้นในกรณีของฉัน ใช้มากในการกำหนดค่าสิ่งต่าง ๆ มากมายที่ทำตามแบบแผน
Rig

คำตอบ:


17

จากคำถามของคุณเห็นได้ชัดว่าไม่ใช่แค่ Rails ที่คุณพยายามเรียนรู้ แต่ในเวลาเดียวกันคุณต้องเข้าใจแนวคิดของการพัฒนาเว็บรวมถึงฐานข้อมูลและ SQL มันเป็นงานที่ใหญ่มากโปรดอดใจรอ

ในทางตรงกันข้ามกับ Rails คุณไม่มีทางเลือก - คุณต้องเรียนรู้ทั้งสาม: M, V และ C จากMVCทั้งหมดในเวลาเดียวกัน แต่นั่นจะเป็นกรณีที่กรอบ MVC รอบ ๆ กับ Rails เป็นวิธีที่ง่ายที่สุด , ผมว่า.

สิ่งที่คุณสามารถทำได้คือเริ่มจากเฟรมเวิร์คที่ง่ายกว่าเช่น Sinatra จนกระทั่งคุณคุ้นเคยกับแนวคิดพื้นฐานของ Ruby และ HTTP จากนั้นค่อย ๆ พัฒนาไปสู่การนำเสนอที่สมบูรณ์ยิ่งขึ้น (มุมมองและ CSS) และโมเดลตามฐานข้อมูล


10

เมื่อคุณเรียนรู้ Rails และพื้นหลังเพียงอย่างเดียวของคุณคือ Java คุณไม่เพียงแค่เรียนรู้กรอบเว็บใหม่ คุณกำลังเรียนรู้ภาษาการเขียนโปรแกรมใหม่ด้วยและภาษาที่แตกต่างจาก Java อย่างมาก

มันอาจช่วยให้คุณเรียนรู้ทับทิมก่อนแล้วค่อยดูที่ Rails และแบบแผนของมัน เรียนรู้ว่า Rails ทำอะไรได้บ้างและมันง่ายขึ้นมากสำหรับฉันเมื่อฉันไม่ต้องดิ้นรนเพื่อเข้าใจ Ruby และสามารถอ่าน (และเขียน) Rails code / template

ฉันผ่านการสอน Ruby on Railsและพบว่ามันมีประโยชน์มาก หนังสือกวดวิชาที่เป็นอิสระและมีรุ่นราว 2.3 และ 3.0 คุณอาจพบว่ามีประโยชน์ในการอ่านข้อมูลเกี่ยวกับ MVC (Model-View-Controller) และวงจรการพัฒนาเว็บ / หน้าเว็บโดยทั่วไป


6

Anita ฉันมีประสบการณ์แบบเดียวกับคุณเกือบ แต่คิดว่าตอนนี้ฉันเข้าใจแล้วว่าทำไมมันยากที่จะเรียนรู้:

  • RoR ไม่ใช่ภาษาเดียวมันเป็นชุดที่รวบรวมของเทคโนโลยีภาษาและเทคนิคต่าง ๆ
  • มันไม่เหมือน Java, C ++ หรือภาษาอื่น ๆ ที่มีโครงสร้างแบบลอจิคัล
  • ไม่มีทางที่จะเรียนรู้และไม่มีหนังสือเล่มเดียวที่สามารถสอนคุณได้ (เพิ่มเติมในภายหลัง)
  • ในความคิดของฉันชุมชนดูเหมือนจะมีทัศนคติที่ "เห็นอกเห็นใจ" ซึ่งไม่ได้ให้อภัยเหมือนกับชุมชนอื่น ๆ เมื่อเรียนรู้ ผู้คนมักไม่เห็นด้วยกับสิ่งที่ "ควรทำ" อย่างสม่ำเสมอ สิ่งนี้มาจากด้านบนจากผู้ชายที่คิดค้น RoR
  • การทดสอบได้รับการสนับสนุนอย่างยิ่งให้เป็นส่วนสำคัญของการพัฒนาในบทเรียน RoR ส่วนใหญ่และภาษาการทดสอบเป็น DSL ที่สามารถเพิ่มลงในภาระการเรียนรู้ที่สูงอยู่แล้ว
  • ไม่มีเอกสารที่เหมาะสมสำหรับภาษาเฉพาะ API คำแนะนำบางอย่างและหนังสือใด ๆ ที่คุณสามารถหาได้
  • วิธีการและเทคนิคหลักบางอย่างนั้นเป็นแบบอัตโนมัติและไม่ชัดเจนว่ามันทำงานอย่างไร ตัวอย่างเช่นวิธีการ has_secure_password

ฉันได้เรียนรู้มันมานานกว่าหนึ่งปีแล้วและนี่คือสิ่งที่ฉันคิดว่าทำให้ง่ายต่อการเรียนรู้ที่ฉันได้มาจากประสบการณ์:

  • โจมตีจากหลายมุม เมื่อคุณมีหนังสือบทช่วยสอนและบล็อกจำนวนมากสิ่งนี้สามารถ "เปิด" เพื่อให้คุณเรียนรู้ หนังสือหรือบล็อกเดียวในของมันเองสามารถทำให้คุณ "ติด"
  • พิจารณาการเรียนรู้บาง HTML / CSS และทับทิม ไม่ใช่ทุกอย่างเพียงพอที่จะผ่านไปก่อนที่คุณจะเข้าไปอยู่ไกลเกินไป
  • เรียนหลักสูตร RSpec (หรือวิธีการทดสอบที่คล้ายกัน) โรงเรียนอนุบาลแห่งหนึ่งใน RSpec นั้นดีเป็นพิเศษและสิ่งนี้จะหยุดคุณติดอยู่ในบทเรียน RoR เพราะคุณไม่สามารถทำตามการทดสอบได้
  • รับประมาณ 3 เล่ม Obie Fernandez "The Rails 3 Way" ต้องใช้เพื่อการอ้างอิงเมื่อมีบางสิ่งที่คุณไม่ได้รับ (ไม่ใช่เพื่อปกปิดเพื่อปกปิดการอ่าน) คนเปรียวที่คุณพูดถึงแค่สับสนฉัน "Learing Rails 3" มาจากหลายทิศทางและสามารถช่วยแยกแยะปัญหาที่คุณไม่สามารถหาได้จากบทช่วยสอนอื่น ๆ
  • ทำ screencast หรือหลักสูตรการเรียนรู้ออนไลน์ บทสอนของ Michael Hartl นั้นดี แต่การเรียนรู้ที่สูงชันมาก ฉันพบว่าหนังสือข้างต้นรวมถึงหลักสูตร Codeschool บน RSpec ช่วยให้ฉันผ่านมันได้ - แต่ฉันยังต้องติดต่อกับผู้แต่งในประเด็นเล็ก ๆ สองข้อ
  • ถามถามถาม! มี Ruby Forum, Rails Forum, IRC rooms และ StackExchange - ใช้พวกมันทั้งหมดบ่อยครั้ง !

โปรดอย่ายอมแพ้ - คุณมีความคิดสร้างสรรค์ แต่ดูเหมือนว่าจะมีสไตล์การเรียนรู้ที่คล้ายกับฉันและ Rails นั้นยากมากที่จะเรียนรู้และไม่ได้รับการสอนเป็นอย่างดี


4

บางทีปัญหานั้นอาจจะน้อยกว่าทับทิม (และหรือราง) และยิ่งกว่านั้นข้อเท็จจริงที่ว่าคุณมี 'ความเข้าใจที่สั่นคลอน' ของ HTML / CSS / JavaScript และ SQL และฐานข้อมูล

Rails เป็น 'กรอบเต็มสแต็ค' หากประสบการณ์การเขียนโปรแกรมก่อนหน้านี้ของคุณเป็นคอร์ Java ที่อาจมีสวิงอยู่บ้างก็มีแนวคิดมากมายที่ต้องเรียนรู้ในเวลาเดียวกัน

ถ้าฉันกำลังเข้าใกล้ปัญหานี้ฉันจะเริ่มต้นด้วยการรับ SQL และการสร้างแบบจำลองเชิงสัมพันธ์ก่อน (ไม่มีปัญหาเค้าโครงของเบราว์เซอร์กับ SQL!) เมื่อคุณมั่นใจในเลเยอร์ฐานข้อมูลแล้วเล่นกับ ActiveRecord และเรียนรู้ว่า Rails ล้อมรอบสิ่งใดจากฐานข้อมูล

ขั้นตอนต่อไปคือการเรียนรู้การควบคุมและการกำหนดเส้นทางจากนั้นตามด้วย UI (html / javascript เป็นต้น)

หากคุณจะทำการพัฒนาเว็บไซต์โดยใช้กรอบงานเว็บใด ๆ คุณจะต้องเข้าใจ SQL และการสร้างแบบจำลองเชิงสัมพันธ์ (แม้ว่าคุณจะเลือกเส้นทาง NoSQL ในภายหลัง)


1

ฉันมาจากพื้นหลังของจาวาและฉันก็ลำบากกับการเรียนรู้ Rails ฉันมีปัญหาเดียวกันทั้งหมดที่คุณพูดถึง ฉันพบว่าการดูrailscasts.comช่วยได้ตั้งแต่แรก แค่เห็นว่าสิ่งที่คนอื่นทำช่วยฉันได้อย่างไรและฉันก็เริ่มทำสิ่งต่าง ๆ ด้วยตัวเอง ฉันไม่ได้สัมผัสกับ Rails ตั้งแต่ Rails 3 ออกมา


1

คำพูดของคุณ "บางครั้งทั้งวันบางครั้งก็ไม่มีอะไรเป็นเวลาหลายสัปดาห์" บอกฉันทั้งหมดที่ฉันต้องรู้ หากคุณกำลังเรียนรู้ภาษาและกรอบการทำงานใหม่ (ฉันคิดว่านั่นคือสิ่งที่คุณกำลังทำอยู่เพราะคุณพูดถึง "Ruby on Rails" และไม่ใช่แค่ "Ruby") ความสม่ำเสมอจะได้ผล ฉันได้พบวิธีเดียวที่ฉันเรียนรู้และเก็บแนวคิดคือการเรียนประมาณครึ่งชั่วโมงต่อวันโดยปกติแล้วในตอนท้ายของวันก่อนนอน ถ้าฉันศึกษามากกว่าครึ่งชั่วโมงฉันจะรู้สึกหงุดหงิดและหมดความสนใจ ถ้าฉันเรียนน้อยฉันก็จะไม่เก็บสิ่งที่เรียนรู้ไว้

กำจัดสิ่งรบกวน - นั่นคือคำแนะนำที่ดีที่สุดของฉัน และศึกษาทุก ๆ วันของสัปดาห์ ก่อนที่คุณจะรู้ว่าสิ่งต่าง ๆ จะเริ่มตกอยู่ในสถานที่

ฉันไม่เห็นโพสต์ติดตามดังนั้นฉันสงสัยว่าคุณทำไปแล้ว เป็นเวลา 2 ปีแล้วและควรมีเวลามากพอที่จะเรียนรู้ที่จะเป็นนักพัฒนาเว็บชั้นนำ!


0

ฉันได้เรียน Ruby และ Rails มาประมาณ 8 เดือนแล้ว ฉันเข้ามามีความเข้าใจใน HTML, XML, SQL ฉันยังพบปัญหาเดียวกันกับคุณสิ่งที่ได้ผลสำหรับฉันคือการทำงานกับปัญหาจริงไม่ใช่แค่อ่านและหวังว่าจะเข้าใจ คุณอาจต้องใช้การทดสอบจำนวนน้อยชิ้นส่วนของรหัสหรือ mvc เพื่อทำความเข้าใจแนวคิด สัญลักษณ์เป็นสิ่งที่ฉันยังทำงานอยู่ เพียงแค่นำปัญหาหนึ่งครั้งและเมื่อคุณแก้ปัญหาคุณจะได้เรียนรู้สิ่งที่จำเป็นในการแก้ปัญหาอื่นในโครงการของคุณ

คำตอบ: ไม่ไม่ควรมีเส้นโค้งการเรียนรู้ที่สูงชันเส้นโค้งนั้นแตกต่างกันไปตามพื้นหลังของคุณ


0

มันสามารถ ฉันรู้ว่าฉันพบกับ "ช่วงการเรียนรู้" ทุกครั้งที่ฉันพยายามที่จะนั่งลงและให้ความสำคัญกับการเรียนรู้ Rails (ทุกสองสามเดือนเป็นเวลาประมาณ 2 ปีขึ้นไป) ปัญหาคือสิ่งต่าง ๆ มากมายใน Rails ที่เปลี่ยนไปอย่างรวดเร็วและบ่อยครั้งที่ทรัพยากรที่คุณพบนั้นล้าสมัยเกือบจะในทันที

คำแนะนำของฉันคือเริ่มจากการมุ่งเน้นไปที่ Ruby (พื้นฐานอย่างน้อยที่สุด) จากนั้นตามด้วย Rails ดังนั้นคุณจึงไม่ต้องพึ่งพาเฟรมเวิร์ก Rails 100% เพื่อจัดการทุกอย่างให้คุณ คุณควรใช้ HTML / CSS / Javascript ด้วยเหตุผลที่ชัดเจน จากประสบการณ์ไม่ได้จมอยู่กับความวุ่นวายของโลก Rails: หากคุณสามารถเพิกเฉยต่อสิ่งใหม่ ๆ ที่ Rails cognoscenti ประกาศข่าวประเสริฐอย่าง Haml, Sass, RSpec / BDD, แตงกวา ฯลฯ หรือคุณต้องจมอยู่กับ เรียนรู้ BDD และ RSpec เพื่อเขียนโค้ดของคุณโดยต้องเรียนรู้ Haml และ Sass (ไม่ยาก แต่ก็ยังเป็นอีกเรื่องที่ต้องเรียนรู้) เพื่อเขียนโค้ดส่วนหน้า ฯลฯ เริ่มง่ายที่สุดเท่าที่จะทำได้


0

มีช่วงการเรียนรู้สำหรับภาษาการเขียนโปรแกรมใด ๆ เราไม่ได้เรียนรู้ภาษาแบบดั้งเดิม เช่น C / C ++ แต่เมื่อสิ่งต่าง ๆ เข้ามาในภาพจริงเราก็ต้องรู้จักกับถั่วและ bolts ของเทคโนโลยีบางอย่างเช่นกัน

วิธีที่ดีที่สุดในการเข้าถึงคือการเรียนรู้ด้วยการทำ เอาความเจ็บปวดทั้งหมดไปทำมันด้วยตัวเองโดยปกติเราอ่านสิ่งต่าง ๆ แต่เมื่อมันมาถึงภาพจริงเราจะติดอยู่กับมัน ฉันเป็นโปรแกรมเมอร์ภาษา C ++ ฉันสามารถเขียนโค๊ดในภาษา C # ได้ ฉันรู้ว่ามีความดีมากมายในภาษาและห้องสมุดในมุมมองที่เป็นนามธรรม แต่หลายหัวข้อที่ฉันเพิ่งอ่านและข้ามไป ดังนั้นถ้าคุณถามฉันฉันพิการจริง ๆ

ฉันเรียนรู้กรอบ Django หนังสือที่ฉันเลือกใช้นั้นเรียบง่ายน่าสนใจและมันสร้างแอปพลิเคชั่นบุ๊คมาร์คโซเชียล ดังนั้นจึงเหมือนกับการเรียนรู้สิ่งต่าง ๆ ตั้งแต่เริ่มต้นจนถึงระดับสูงโดยการทำโครงงานจริง ฉันขอแนะนำให้คุณเข้าใกล้ด้วยวิธีนี้เมื่อเราเรียนรู้ด้วยตัวเอง


0

สิ่งที่มี RoR โดยเฉพาะอย่างยิ่งกับ "R" ที่สองคือบทเรียนการเรียนรู้ส่วนใหญ่มุ่งเน้นที่การสอนคุณในรูปแบบ "รหัสลิง" โดยเฉพาะอย่างยิ่งหนังสือ Agile มันเต็มไปด้วยผิวเผิน "ตอนนี้เราเพิ่งทำสิ่งนี้ไม่ต้องกังวลว่าทำไม" ขั้นตอนการเขียนโปรแกรม บวกกับความจริงที่ว่าพวกเขาเปลี่ยนกระบวนทัศน์ของพวกเขา - นั่นคือตอนแรกพวกเขากำลังโน้มน้าวให้ RJS เป็นทางไปตอนนี้ทั้งหมดในทันทีมันเป็นเรื่องของ UJS

ตามที่บางคนในที่นี้แนะนำคุณอาจลองเรียนรู้เกี่ยวกับภาษารูบีก่อนอื่นจากนั้นจึงเข้าสู่เฟรมเวิร์ก หากคุณยังต้องการเรียนรู้ร่วมกันฉันพบว่าหนังสือเล่มนี้ชื่อ "Ruby for Rails" มีประโยชน์มาก

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.