การฝึกซ้อมจะถูกใช้ในกีฬาเพื่อฝึกฝนการเคลื่อนไหวที่เฉพาะเจาะจง ในบาสเก็ตบอลผู้เล่นฝึกซ้อมการโยนโทษสามพอยน์เตอร์และการเลี้ยงลูก ในการเขียนโปรแกรมการฝึกซ้อมเป็นวิธีการมีส่วนร่วมในการฝึกฝนโดยเจตนาเพื่อพัฒนาทักษะในคุณสมบัติภาษาเฉพาะ API หรือสำนวน
Scrimmages ใช้ในกีฬาเพื่อเลียนแบบเงื่อนไขและความซับซ้อนของเกมเพื่อรวมทักษะที่สร้างขึ้นในการฝึกซ้อมและพัฒนาการทำงานเป็นทีม การฝึกซ้อมเติมเต็มแนวทางการทะเลาะกันที่ซับซ้อนมากขึ้นเช่น Ruby Koans, Ruby Quiz หรือทำงานในโครงการโอเพนซอร์ซ หากเราใช้การแสดงออกของญี่ปุ่นการฝึกซ้อมอาจถูกมองว่าเป็น 'Kihon' ซึ่งเป็นสารตั้งต้นที่ง่ายกว่าของ 'Kata' การฝึกซ้อมขาดความซับซ้อนของโครงการเต็มรูปแบบ พวกเขาสามารถดำเนินการคนเดียวหรือกับเพื่อน
ความท้าทายในการฝึกซ้อมทับทิมมุ่งเน้นไปที่วิธีการเฉพาะ คำตอบมักจะประกอบด้วยบรรทัดเดียว วัตถุประสงค์ของคุณคือการฝึกซ้อมให้เสร็จสมบูรณ์และมีความสุขโดยไม่ต้องปรึกษาเอกสารภายนอกใด ๆ ตอนแรกคุณมักจะพบว่าการฝึกฝนแบบนี้ไม่ง่ายหรือสนุกสนาน รหัสบน ฝึกฝนสองสามวันจนกว่าความรู้ของคุณเกี่ยวกับวิธีการเหล่านี้จะกลายเป็นอัตโนมัติ การทำเช่นนี้จะทำให้การเขียนโปรแกรมทุกวันของคุณสนุกสนานมากขึ้นโดยการทำให้จิตใจของคุณมุ่งเน้นไปที่ความซับซ้อนระดับสูงและมีมูลค่าสูงกว่าไวยากรณ์ของภาษา
$ gem install ruby_drills
$ ruby_drills
การฝึกซ้อมทำงานในบรรทัดคำสั่ง คุณตอบคำถามในการฝึกซ้อมโดยใช้ REPL การปฏิบัตินี้มีประโยชน์ในการเตรียมคุณสำหรับการพัฒนาที่ REPL ซึ่งเป็นเทคนิคที่มีประโยชน์สำหรับการลองใช้คุณสมบัติทางภาษาหรืออัลกอริทึมและส่วนประกอบที่ยอดเยี่ยมสำหรับ TDD
เริ่มต้นด้วยการเลือกสว่านที่มีอยู่จากเมนู การฝึกซ้อมอาร์เรย์และสตริงมีเนื้อหามากที่สุดดังนั้นเริ่มต้นด้วยหนึ่งในนั้น!
เซสชันการเจาะสำหรับวิธี Enumerable#zip อาจประกอบด้วยสิ่งต่อไปนี้:
We have two arrays:
a: [4, 5, 6]
b: [7, 8, 9]
Use a method from the Enumerable mixin that will take one element from
a new array and merge the corresponding elements from a and b to yield
[[1, 4, 7], [2, 5, 8], [3, 6, 9]]:
>> c = [1,2,3]
=> [1, 2, 3]
not yet...
>> c.zip(a, b)
=> [[1, 4, 7], [2, 5, 8], [3, 6, 9]]
!!! WIN !!!
How does your answer compare to the reference solution?
[1,2,3].zip(@a, @b)
Press any key to continue:
คำถามเกี่ยวกับการฝึกซ้อมทับทิม? แนวคิดเกี่ยวกับวิธีการฝึกฝน? ตรงไปที่กลุ่ม Google
ในขณะที่คุณโต้ตอบกับการฝึกซ้อมทับทิมคำตอบของคุณจะถูกบันทึกไว้ใน API นักสะสมสว่านระยะไกลที่จัดทำโดยจิตใจที่ผ่านการทดสอบ ไม่มีข้อมูลที่สามารถระบุตัวบุคคลได้รวมอยู่ในข้อมูลนี้: ในเวลานี้เรามีความสนใจในรูปแบบการปฏิบัติและสถิติโดยรวมไม่ใช่โปรไฟล์ผู้ใช้รายบุคคล ข้อมูลกิจกรรมดูเหมือนว่า:
{
"timestamp" : "May 5, 2013 12:03:51 AM CST",
"result" : "pass",
"input" : "@numbers.partition{|x | x.even? }",
"sessionId" : "2217-47e8-b80a-68b81c980c32",
"drill" : "PartitionDrill",
"type" : "attempt",
"reference" : "@numbers.partition {|x| x.even? }"
}
เราสนใจคำถามเช่น:
ข้อมูลนี้จะช่วยให้เราพัฒนาประสบการณ์การฝึกซ้อมทับทิม สิ่งนี้อาจเป็นพื้นฐานของประสบการณ์ที่เป็นส่วนตัวมากขึ้นช่วยให้คุณตรวจสอบความคืบหน้าของคุณและเปรียบเทียบเซสชันการฝึกฝนของคุณกับผู้อื่น เพิ่มเติมเกี่ยวกับเรื่องนี้ที่จะเกิดขึ้นในขณะที่เราวิเคราะห์ข้อมูลที่รวบรวมและแบ่งปันผลลัพธ์กับชุมชน
ในที่สุดเราต้องการทราบว่าการฝึกซ้อมและฝึกฝนในทับทิมและภาษาการเขียนโปรแกรมอื่น ๆ ช่วยให้เราแก้ปัญหาการเขียนโปรแกรมที่ซับซ้อนมากขึ้นหรือไม่ ขณะนี้มีข้อมูลน้อยมากสำหรับนักวิจัยเพื่อช่วยตอบคำถามนี้ทางวิทยาศาสตร์ หวังว่าข้อมูลที่รวบรวมในการฝึกซ้อมทับทิมสามารถให้ชิ้นส่วนของปริศนานี้ได้
การฝึกซ้อมแต่ละครั้งประกอบด้วยสี่วิธี:
setup : เริ่มต้นตัวแปรอินสแตนซ์ที่ใช้ในการเจาะรวมถึง @hints ซึ่งเป็นคำแนะนำที่สามารถแนะนำผู้ใช้ที่มีต่อคำตอบ
show : วางสตริงที่อธิบายการฝึกซ้อม
reference : จัดเตรียมโซลูชันอ้างอิงเป็นรหัสทับทิมที่ถูกต้องในรูปแบบสตริง สิ่งนี้จะได้รับการประเมินเพื่อตรวจสอบว่าควรตรวจสอบอินพุตของผู้ใช้หรือไม่
valid?(input) : ฟังก์ชั่นการตรวจสอบความถูกต้องที่ส่งคืนจริงหรือเท็จ ใช้เพื่อดูว่าอินพุตของผู้ใช้ที่ตรงกับโซลูชันอ้างอิงตรงกับข้อ จำกัด อื่น ๆ หรือไม่
เป็นเรื่องง่ายที่จะมีส่วนร่วมโดยการสร้างการฝึกซ้อมใหม่ โปรดตรวจสอบรายการปัญหาใน GitHub เพื่อค้นหาสิ่งที่ต้องทำ
หากคุณยังใหม่กับ GitHub:
git checkout -b my-new-feature )git commit -am 'Add some feature' )git push origin my-new-feature ไปยังสาขาขอบคุณไปที่ผู้มีส่วนร่วมและบุคคลที่โดดเด่นเหล่านี้สำหรับการฝึกซ้อมทับทิมเป็นไปได้:
Ruby Drills ได้รับใบอนุญาตภายใต้ใบอนุญาต Apache เวอร์ชัน 2.0 ดูที่ enclosed license.txt และประกาศ txt สำหรับข้อมูลเพิ่มเติม