โค้ดที่ผมแบ่งปัน: เส้นทางสู่โลก Open Source ของผม
การเขียนโค้ดในที่สาธารณะเปลี่ยนวิธีที่ผมคิดเกี่ยวกับซอฟต์แวร์ไปอย่างสิ้นเชิง
ผมรวม pull request แรกของผมเมื่อวันขึ้นปีใหม่ 2024 มันดูเป็นเรื่องเล็กน้อย แต่ในช่วง 30 เดือนที่ผ่านมา ก้าวเล็กๆ นั้นได้กลายเป็นส่วนสำคัญในการเติบโตของผม
ผมอยากแบ่งปันประวัติการมีส่วนร่วม (contribution history) ของผม ไทม์ไลน์นี้แสดงให้เห็นถึงความก้าวหน้าของผม ตั้งแต่การเขียนสคริปต์ Python พื้นฐาน ไปจนถึงการแก้ไขบั๊กของระบบ Windows และการทำงานกับเครื่องมือ Graph RAG ขั้นสูง
โปรเจกต์สำคัญที่ผมได้ทำ:
• topoteretes/cognee: เฟรมเวิร์ก Graph RAG ผมได้แก้ไขบั๊กเรื่องเส้นทางไฟล์ (pathing bugs) สำหรับ Windows และการแสดงผลกราฟ (graph visualization) • google-gemini/gemini-cli: เครื่องมือสำหรับโมเดล Gemini • NousResearch/hermes-agent: เฟรมเวิร์ก AI agent • TheAlgorithms/Python: ชุดรวมอัลกอริทึม Python • sumanth-0/100LinesOfPythonCode: การปรับปรุงเพื่อผู้เรียน Python
Open source คือการแก้ปัญหาที่เกิดขึ้นจริงร่วมกับผู้อื่น
ผมสังเกตเห็นรูปแบบที่ชัดเจนในการทำงานของผม ผมเริ่มจากการแก้ไขเอกสาร (documentation) ง่ายๆ เมื่อผมเริ่มมีความมั่นใจมากขึ้น ผมก็ขยับไปสู่การตั้งค่าระบบ (system configuration) การอัปเดตความปลอดภัย และการทำให้รองรับการทำงานข้ามแพลตฟอร์ม (cross-platform compatibility)
บทเรียนสำคัญสองประการที่ผมได้รับ:
การรองรับข้ามแพลตฟอร์มเป็นเรื่องสำคัญ นักพัฒนาหลายคนมักมองข้าม Windows ผมใช้เวลาอย่างมากในการแก้ไขปัญหาเส้นทางไฟล์ (file path) เฉพาะของ Windows ในไลบรารีอย่าง cognee ดังนั้นควรทดสอบบนระบบปฏิบัติการที่หลากหลายเสมอ
การสื่อสารที่ชัดเจนคือพลังพิเศษ ทุกโปรเจกต์มีกฎเกณฑ์ของตัวเอง การปฏิบัติตามกฎเหล่านั้นและอธิบายการเปลี่ยนแปลงของผม ช่วยให้ผู้ดูแล (maintainers) ตรวจสอบโค้ดของผมได้เร็วขึ้น
การเดินทางของผมเริ่มต้นจากการเปลี่ยนชื่อธรรมดาๆ ในรายชื่อผู้มีส่วนร่วม (contributors list) แต่มันนำไปสู่การแก้ไขตรรกะฐานข้อมูลที่ซับซ้อน และการจัดการสิทธิ์ความปลอดภัยในเฟรมเวิร์ก AI
หากคุณต้องการเริ่มต้นเส้นทาง Open Source ของคุณ ให้ทำดังนี้:
- เริ่มจากปัญหาเล็กๆ
- อ่านเอกสารประกอบ (documentation)
- ถามคำถาม
- อดทน
แหล่งที่มา: https://dev.to/aniruddhaadak/the-code-i-shared-reflections-on-359-merged-pull-requests-in-open-source-gk2