การสมัครเข้าร่วมโครงการโอเพนซอร์สในฐานะผู้สมัครเล่นนั้นมันแย่หรือไม่?


17

ฉันคิดว่าประมาณหกเดือนแล้วที่ฉันควรเข้าร่วมโครงการโอเพ่นซอร์ส iPhone หรือ iPad เพื่อฝึกฝนทักษะของฉันใน Objective-C แต่ทุกครั้งที่ฉันไปทำฉันเห็นรหัสหลายพันบรรทัดในโครงการขนาดใหญ่ที่ฉัน ท้ายที่สุดเชื่อในตัวเองฉันจะไม่เข้าใจ ฉันมักจะคิดว่าความมุ่งมั่นของฉันจะจบลงด้วยความยุ่งยากสำหรับผู้ดูแลโครงการและผู้มีส่วนร่วมมากขึ้นดังนั้นฉันมักจะกลับไปที่วินาทีสุดท้าย

คำถามของฉันก็คือมันเป็นเรื่องยุ่งยากหรือไม่เมื่อโปรแกรมเมอร์ที่มีประสบการณ์ทำงานร่วมกับโครงการโอเพ่นซอร์ส?


1
คำตอบของ Macke นั้นละเอียดมากขึ้น แต่คำตอบสั้น ๆ สำหรับคำถามที่คุณกล้าแสดงออกคือ: ไม่
Chris Browne

1
@ ChrisBrowne: จุดดี ฉันได้แก้ไขคำตอบของฉันให้ตรงกัน :)
Macke

คำตอบ:


15

ไม่มันไม่ใช่.

หากรหัสฐานของโครงการที่คุณดูน่ากลัวเกินไปให้พิจารณา:

  • การเลือกโปรเจ็กต์ขนาดเล็กลงให้ทำงานด้วย
  • เลือกงานที่เล็กลงในโครงการ:
    • เขียนตัวอย่าง / tutorial / demo สำหรับบางสิ่ง
    • อัปเดตและแก้ไขเอกสารประกอบ (โครงการทั้งหมด, ระบบปฏิบัติการหรือไม่, ต้องการเอกสารที่ดีกว่า)
    • แก้ไขข้อบกพร่องที่มีลำดับความสำคัญต่ำ แต่ง่ายต่อการแก้ไขข้อบกพร่อง (การเปิดรับโค้ดมากมักจะมีความสุขและมีความเสี่ยงต่ำ)
  • มีหลายวิธีในการให้ความช่วยเหลือโดยไม่ต้องมีการเข้าถึงแหล่งข้อมูลหลักเช่น:
    • กำลังส่งแพตช์ซึ่งสามารถแสดงความคิดเห็นได้
    • การแยกและการส่งคำขอดึง (ดูด้านบน)
    • แยกและทำงานด้วยตัวเองเพียงเพื่อดูว่ามันจะพาคุณไปที่ไหน หากคุณมีความสุขขอให้ devs ดูสิ่งที่คุณทำเพื่อดูว่าเหมาะสมหรือไม่

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

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

ตัวอย่างเช่นฉันมีส่วนร่วมกับ Buildbot ในช่วงหลายปีที่ผ่านมา ฉันเริ่มแก้ไขปัญหาเล็ก ๆ น้อย ๆ จากนั้นฉันก็กระแทกคุณภาพของขั้นตอนแหล่ง Mercurial ด้วยการแก้ไขข้อบกพร่องที่เห็นได้ชัด ในที่สุดฉันก็เขียนเว็บเพจเป็นส่วนใหญ่และสลับการวาง HTML ในรหัสเป็นโซลูชันการสร้าง HTML ตามเทมเพลต ส่วนหลังนั้นมีเพียงไม่กี่ร้อยสัญญาเท่านั้นที่ใช้เวลาทำงานหนักสองสามเดือน

ฉันทำงาน Mercurial ด้วยเช่นกัน แต่คนเหล่านี้ค่อนข้างพิถีพิถันและเทคโนโลยีมีความซับซ้อนมากขึ้นดังนั้นฉันยังไม่ได้รับการแก้ไขใด ๆ ในแกนกลาง ฉันได้ทำรายงานข้อผิดพลาดเล็กน้อยและเขียนส่วนขยายเล็ก ๆ สองสามตัว แต่ฉันไม่ได้มีอะไรใหญ่กว่าในตอนนี้

หวังว่ามันจะช่วย


+1 สำหรับ buildbot - เป็นโครงการที่ยอดเยี่ยมด้วยผู้ดูแลที่ดีและเป็นประโยชน์ หากคุณต้องการเริ่มต้นโครงการที่ดีมันคุ้มค่าที่จะดู
เนท

มือสมัครเล่นที่สมบูรณ์เกี่ยวกับอะไร ผู้ที่มีระดับการเขียนโปรแกรมต่ำและไม่มีการศึกษาอย่างเป็นทางการ?
รอย

1
@ รอยต่อในกรณีนั้นฉันจะเริ่มต้นด้วยการพูดซ้ำซากและแค่หาแหล่งที่จะเรียนรู้จากมัน การไปยังจุดที่คุณมีส่วนร่วมได้อย่างมีประสิทธิภาพต้องใช้เวลาอีกเล็กน้อย คุณน่าจะเริ่มต้นได้ดีขึ้นด้วยการทำตามบทเรียนที่ดีด้วยตัวเอง (สำหรับโครงการและเป็นกรอบ / ห้องสมุด) และสร้างความรู้ของคุณเพื่อให้คุณทราบว่ามีส่วนร่วมที่ไหนและอย่างไร ตัวดัดแปลงเกม (และปลั๊กอิน) สามารถอยู่ในระหว่างการอยู่คนเดียวในแซนด์บ็อกซ์และมีระดับของผู้พัฒนาหลัก
Macke

4

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

หลังจากที่ในขณะที่คุณจะคุ้นเคยกับโครงสร้างและส่วนที่สำคัญที่สุดของฐานรหัส การเรียนรู้ที่จะเข้าใจโค้ดเช่นนี้เป็นส่วนสำคัญของการเขียนโปรแกรมและโอเพ่นซอร์สเป็นวิธีที่ดีในการเรียนรู้


2

ไปเลย มีผู้เริ่มต้นทำสิ่งเดียวกันมากมาย กลุ่มเป้าหมายของโครงการสามารถช่วยคุณค้นหาสิ่งต่าง ๆ เพื่อทำงานที่ไม่ได้อยู่ในลีกของคุณ คุณค่อยๆเติบโตเป็นคนที่เหลือ

Oh, และเพียงเพราะคุณไม่เข้าใจรหัสไม่ได้หมายความว่ามันเป็นสิ่งที่ดี ฉันเห็นบางรหัสที่น่ากลัวอย่างจริงจังออกมี บางส่วนของมันยากที่จะเข้าใจเพราะมันเขียนไม่ดีและทำให้มีความซับซ้อนมากกว่าที่ควรจะเป็น

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