
นี่คือก้าวแรกของหลายสิ่งหลายอย่าง
มีความเข้าใจผิดอย่างแพร่หลายว่าการมีส่วนร่วมกับโอเพนซอร์สเป็นเรื่องยาก คุณอาจคิดว่า “บางครั้งผมยังไม่เข้าใจโค้ดของตัวเองเลย แล้วผมจะเข้าใจโค้ดของคนอื่นได้อย่างไร?”
ผ่อนคลาย จนถึงปีที่แล้ว ผมก็คิดแบบนั้น การอ่านและเข้าใจโค้ดของคนอื่น แล้วเขียนโค้ดของตัวเองบนพื้นฐานนั้น เป็นงานที่น่ากลัว แต่ถ้ามีทรัพยากรที่เหมาะสม มันไม่ได้แย่อย่างที่คุณคิด
ก้าวแรกที่ต้องทำคือเลือกโปรเจกต์ การตัดสินใจนี้อาจเป็นก้าวสำคัญที่เปลี่ยนมือใหม่ให้เป็นผู้มีส่วนร่วมโอเพนซอร์สที่ชำนาญ
โปรแกรมเมอร์มือสมัครเล่นที่สนใจโอเพนซอร์สหลายคนถูกแนะนำให้เริ่มจาก Git แต่นั่นไม่ใช่วิธีเริ่มต้นที่ดีที่สุด Git ดูแลโดย super geek หลายคนที่มีประสบการณ์พัฒนาซอฟต์แวร์หลายปี เป็นที่ดีที่จะหาโปรเจกต์โอเพนซอร์สที่สามารถมีส่วนร่วมได้ แต่ไม่เป็นมิตรกับมือใหม่ นักพัฒนาส่วนใหญ่ที่มีส่วนร่วมกับ Git มีประสบการณ์เพียงพอ พวกเขาไม่ต้องอ้างอิงทรัพยากรหรือเอกสารประเภทต่างๆ ในบทความนี้ ผมจะให้รายการคุณสมบัติที่เป็นมิตรกับมือใหม่ และให้คำแนะนำบางอย่าง หวังว่าจะทำให้คุณมีส่วนร่วมกับโอเพนซอร์สได้ง่ายขึ้น
เข้าใจผลิตภัณฑ์
ก่อนเริ่มมีส่วนร่วม คุณต้องเข้าใจว่าโปรเจกต์ทำงานอย่างไร เพื่อเข้าใจสิ่งนี้ คุณต้องลองใช้ด้วยตัวเอง หากคุณพบว่าผลิตภัณฑ์น่าสนใจและมีประโยชน์ มันคุ้มค่าที่คุณจะมีส่วนร่วม
ผู้เริ่มต้นมักเลือกมีส่วนร่วมกับซอฟต์แวร์ที่พวกเขาไม่เคยใช้ พวกเขาจะผิดหวัง และในที่สุดก็ละทิ้งการมีส่วนร่วม หากคุณไม่เคยใช้ซอฟต์แวร์นี้ คุณจะไม่เข้าใจว่ามันทำงานอย่างไร หากคุณไม่เข้าใจว่ามันทำงานอย่างไร คุณจะแก้ bug หรือเพิ่มฟีเจอร์ใหม่ได้อย่างไร?
จำไว้: ลองใช้มัน จึงจะเปลี่ยนมันได้
ยืนยันสถานะของผลิตภัณฑ์
โปรเจกต์นี้มีความกระตือรือร้นแค่ไหน?
หากคุณส่ง pull request ไปยังโปรเจกต์ที่หยุดดูแลแล้ว คำขอของคุณอาจไม่มีวันถูกพิจารณาหรือ merge หาโปรเจกต์ที่กระตือรือร้น จะได้รับ feedback ทันที และการมีส่วนร่วมของคุณจะไม่สูญเปล่า
นี่คือวิธียืนยันว่าโปรเจกต์ยังกระตือรือร้นหรือไม่:
- จำนวนผู้มีส่วนร่วม: จำนวนผู้มีส่วนร่วมที่เพิ่มขึ้นแสดงว่าชุมชนนักพัฒนายินดีรับผู้มีส่วนร่วมใหม่
- ความถี่ในการ commit: ดูเวลา commit ล่าสุด หากภายในหนึ่งสัปดาห์ หรือแม้แต่หนึ่งถึงสองเดือน โปรเจกต์นี้น่าจะได้รับการดูแลเป็นประจำ
- จำนวนผู้ดูแล: ยิ่งมีผู้ดูแลมากเท่าไหร่ คุณยิ่งมีโอกาสได้รับคำแนะนำมากขึ้น
- ความกระตือรือร้นในห้องแชทหรือ IRC: ห้องแชทที่คับคั่งหมายความว่าคำถามของคุณจะได้รับคำตอบเร็วขึ้น
ทรัพยากรสำหรับมือใหม่
Coala เป็นตัวอย่างของโปรเจกต์โอเพนซอร์ส มี tutorial และเอกสารของตัวเอง ให้คุณใช้ API ของมัน (ทุกคลาสและเมธอด) เว็บไซต์ยังออกแบบอินเทอร์เฟซที่น่าสนใจ ทำให้คุณอยากอ่าน
เอกสาร: นักพัฒนาทุกระดับต้องการเอกสารที่เชื่อถือได้และดูแลอย่างดี เพื่อเข้าใจรายละเอียดของโปรเจกต์ หาโปรเจกต์ที่มีเอกสารครบถ้วนบน GitHub (หรือวางไว้ที่อื่น) หรือเว็บไซต์อิสระเช่น Read the Docs จะช่วยให้คุณเข้าใจโค้ดลึกซึ้งขึ้น

Tutorial: Tutorial จะอธิบายให้มือใหม่ฟังว่าจะเพิ่มฟีเจอร์ในโปรเจกต์อย่างไร (อย่างไรก็ตาม คุณจะไม่พบมันในทุกโปรเจกต์) เช่น Coala มี คู่มือการเขียน Bear (Python wrapper สำหรับเครื่องมือ linting ที่ทำการวิเคราะห์โค้ด)

Issue ที่จัดหมวดหมู่แล้ว: สำหรับมือใหม่ที่เพิ่งเข้าใจว่าจะเลือกโปรเจกต์แรกอย่างไร การเลือก issue เป็นงานที่ยากกว่า แท็กที่ตั้งเป็น “difficulty/low”, “difficulty/newcomer”, “beginner-friendly” และ “low-hanging fruit” ล้วนบ่งบอกว่าเป็นมิตรกับมือใหม่

ปัจจัยอื่นๆ

CI user pipeline log
- ทัศนคติของผู้ดูแลที่มีต่อผู้มีส่วนร่วมใหม่: จากประสบการณ์ของผม ผู้มีส่วนร่วมโอเพนซอร์สส่วนใหญ่ยินดีช่วยเหลือมือใหม่ในโปรเจกต์ของพวกเขา อย่างไรก็ตาม เมื่อคุณถามคำถาม คุณอาจเจอคนที่ไม่เป็นมิตรบ้าง (อาจหยาบคายด้วยซ้ำ) อย่าสูญเสียความมั่นใจเพราะคนเหล่านี้ พวกเขาเพียงแค่ไม่มีที่ระบายจากคนที่มีประสบการณ์มากกว่าพวกเขา ยังมีคนอื่นอีกมากที่ยินดีให้ความช่วยเหลือ
- กระบวนการ/กลไกการรีวิว: pull request ของคุณจะผ่านการดูและเปลี่ยนแปลงหลายรอบโดยเพื่อนร่วมงานและนักพัฒนาที่มีประสบการณ์ นี่คือวิธีหลักที่คุณเรียนรู้การพัฒนาซอฟต์แวร์ โปรเจกต์ที่มีกระบวนการรีวิวเข้มงวดจะทำให้คุณเติบโตในกระบวนการเขียนโค้ดระดับ production
- ไปป์ไลน์ continuous integration ที่แข็งแกร่ง: โปรเจกต์โอเพนซอร์สจะแนะนำมือใหม่ให้รู้จักกับบริการ continuous integration และ deployment ไปป์ไลน์ CI ที่แข็งแกร่งจะช่วยให้คุณเรียนรู้การอ่านและเข้าใจ CI logs และยังให้ประสบการณ์จัดการกับ test case ที่ล้มเหลวและปัญหา code coverage
- เข้าร่วมโปรแกรมเขียนโค้ด (เช่น Google Summer Of Code): การเข้าร่วมองค์กรพิสูจน์ว่าคุณยินดีมีส่วนร่วมระยะยาวกับโปรเจกต์ พวกเขายังให้โอกาสมือใหม่ได้รับประสบการณ์พัฒนาในโลกจริงและได้รับค่าตอบแทน องค์กรส่วนใหญ่ที่เข้าร่วมโปรแกรมเหล่านี้ยินดีต้อนรับคนใหม่
7 องค์กรที่เป็นมิตรกับมือใหม่
- coala (Python)
- oppia (Python, Django)
- DuckDuckGo (Perl, JavaScript)
- OpenGenus (JavaScript)
- Kinto (Python, JavaScript)
- FOSSASIA (Python, JavaScript)
- Kubernetes (Go)
เกี่ยวกับผู้เขียน
Palash Nigam - ผมเป็นนักศึกษาวิทยาการคอมพิวเตอร์จากอินเดีย ยินดีมีส่วนร่วมในการพัฒนาซอฟต์แวร์โอเพนซอร์สมาก ผมใช้เวลาส่วนใหญ่บน GitHub ความสนใจปัจจุบันของผมคือ web backend development, blockchain และทุกสิ่งเกี่ยวกับ python
โปรดระบุแหล่งที่มา: ความสัมพันธ์นักพัฒนา »