โค้ดที่ผมแบ่งปัน: เส้นทางสู่โลก 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)

บทเรียนสำคัญสองประการที่ผมได้รับ:

  1. การรองรับข้ามแพลตฟอร์มเป็นเรื่องสำคัญ นักพัฒนาหลายคนมักมองข้าม Windows ผมใช้เวลาอย่างมากในการแก้ไขปัญหาเส้นทางไฟล์ (file path) เฉพาะของ Windows ในไลบรารีอย่าง cognee ดังนั้นควรทดสอบบนระบบปฏิบัติการที่หลากหลายเสมอ

  2. การสื่อสารที่ชัดเจนคือพลังพิเศษ ทุกโปรเจกต์มีกฎเกณฑ์ของตัวเอง การปฏิบัติตามกฎเหล่านั้นและอธิบายการเปลี่ยนแปลงของผม ช่วยให้ผู้ดูแล (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