it-swarm-id.com

Bagaimana saya bisa menemukan proyek open source yang bagus untuk bergabung?

Saya baru mulai bekerja setahun yang lalu, dan saya ingin bergabung dengan proyek open source untuk alasan yang sama seperti orang lain: membantu menciptakan sesuatu yang bermanfaat dan mengembangkan keterampilan saya lebih lanjut.

Masalah saya adalah, saya tidak tahu bagaimana menemukan proyek di mana saya akan cocok.

Bagaimana saya bisa menemukan proyek ramah pemula? Atribut apa yang harus saya cari? Apa tanda-tanda peringatan bahwa suatu proyek mungkin tidak cocok? Apakah ada alat di luar sana untuk membantu mencocokkan orang dengan proyek sumber terbuka?

Ada pertanyaan serupa di sini , tetapi pertanyaan itu berkaitan dengan pekerjaan dan terbatas pada PHP/Drupal.

152
Pops

Kontribusi open source pertama saya adalah untuk perpustakaan yang sebelumnya saya gunakan (dan akan sangat menderita tanpa) pada proyek berbayar sebelumnya. Selama penggunaan awal saya, saya telah melihat bug dalam kode sehingga saya membuat tambalan, bergabung dengan proyek, dan mengirimkannya untuk ditinjau.

Sekitar 8 bulan kemudian ketika saya memiliki waktu luang, saya memutuskan untuk memberikan kembali (dan mengerjakan keterampilan pengembangan saya) dengan berkontribusi lebih banyak pada proyek. Jadi saya mengkloning repositori dan mulai mengenal basis kode. Setelah beberapa minggu mengirimkan perbaikan patch kecil ke basis kode dan memonitor permintaan fitur, saya mengambil permintaan fitur untuk menambahkan modul yang cukup besar ke proyek.

Karena menghasilkan banyak perbaikan tambalan individual cukup membosankan untuk setiap pengembangan signifikan, saya mengkloning repositori ke cabang pada hub git dan mulai membuang kode. Beberapa minggu dan beberapa ribu baris kode kemudian, pemimpin proyek dan saya bekerja dengan mengintegrasikan dan menguji perbaikan saya ke perpustakaan dengan cara yang bekerja secara konsisten dengan basis kode lainnya.

Itu adalah proses yang sangat berharga yang saya pelajari banyak dari:

  • Ketika saya mulai, saya tidak tahu bagaimana menggunakan Git, pada akhirnya saya dapat dengan mahir membuat cabang pelacakan jarak jauh dan menggabungkan atau rebase mereka ke cabang master tanpa berkeringat.
  • Saya mulai di VS 2008 dan akhirnya bermigrasi ke Linux dan Monodevelop untuk bekerja pada penulisan kode (karena VS adalah unicode terbelakang dan ujung baris sangat merepotkan di git). Ternyata tidak banyak yang tidak dapat Anda lakukan di * nix yang dapat Anda lakukan dalam * dows.
  • Saya belum pernah benar-benar melakukan pengujian unit sebelumnya, Nunit adalah sepotong kue untuk digunakan dan menulis tes unit adalah hal yang cukup mendasar.
  • Saya harus belajar menelan lidah dan mendengarkan serta melatih kesabaran. Tidak ada gunanya berdiri teguh pada posisi Anda pada proyek open source karena semua orang yang terlibat berpengetahuan (mungkin lebih dari Anda) dan mampu menerima/menolak ide-ide Anda berdasarkan substansi bukan pengiriman. Ini sangat merendahkan hati dan bermanfaat sekaligus.
  • Hanya memiliki satu mata pengembang yang terampil pada basis besar kode saya menunjukkan kelemahan dalam gaya saya yang belum pernah saya pertimbangkan sebelumnya (dan saya juga menunjukkan kelemahan dalam kode-nya). Bagi saya, saya belajar bahwa lebih mudah/lebih baik untuk mendefinisikan konstanta daripada menggunakan banyak angka ajaib dengan komentar terperinci.

Proyek khusus itu didasarkan pada pembuatan dan pendekodean paket jaringan pada semua tingkat protokol jaringan. Saya memiliki minat pribadi dalam jejaring tingkat rendah sehingga sangat menyenangkan untuk berdiskusi dengan pengembang lain dengan minat dan pengetahuan bersama dalam domain tersebut.

Jika Anda hanya ingin membuat kaki Anda basah: cari proyek yang sudah Anda gunakan; mengkloning repositori; dan mulai melihat apakah Anda dapat memperbaiki beberapa bug dan/atau menambahkan beberapa tes unit. Tampaknya mengintimidasi untuk melihat basis kode orang lain dengan mata segar tetapi itu adalah keterampilan yang sangat berharga untuk dipelajari. Kirim beberapa tambalan. Anda dapat mengharapkan kode Anda diawasi dengan ketat pada awalnya. Jangan khawatir, itu adalah bagian normal dari proses untuk mendapatkan kepercayaan dari admin proyek.

Setelah menetapkan dasar prestasi dengan admin proyek mulai mencari lebih banyak tanggung jawab seperti, mengusulkan fitur baru, atau meminta ditugaskan untuk mengimplementasikan permintaan fitur.

Jika Anda tidak dapat menemukan proyek yang sudah ada di salah satu jaringan repositori sumber terbuka utama (github, sourceforge, kode google) pikirkan aplikasi yang Anda benar-benar ingin gunakan yang belum ada dan mulai sendiri.

Bersiaplah untuk direndahkan dan mengharapkan pekerjaan ditolak demi revisi lebih lanjut. Mitos bahwa siapa pun dapat menambahkan kode ke proyek sumber terbuka sepenuhnya salah. Selalu ada penjaga gerbang antara Anda dan akses Push. Semakin baik kode Anda, semakin sedikit akan diteliti dalam jangka panjang saat Anda mendapatkan kepercayaan dari admin proyek. Jika itu proyek Anda, Anda akan menjadi penjaga gerbang itu.

Pembaruan:

Saya hanya memikirkannya dan menyadari bahwa saya tidak repot-repot menyebutkan proyek mana yang banyak dijawab oleh referensi saya. Bagi mereka yang ingin tahu, itu SharpPcap . Pengembang utama Chris Morgan sangat profesional dan tepat waktu. Dia melakukan banyak pekerjaan dalam mengelola proyek dan mengajari saya banyak hal tentang apa yang diperlukan untuk menghasilkan proyek OSS.

Karena keterbatasan waktu pribadi saya belum dapat berkontribusi kode lebih dari setahun tetapi saya masih mencoba untuk memberikan kembali dengan mengintai Stack Overflow dan menjawab pertanyaan tentang SharpPcap sesekali.

111
Evan Plaice

Berikut yang saya sarankan untuk dilakukan untuk menemukan pasangan yang cocok:

  1. Jika Anda memiliki proyek sumber terbuka yang sudah Anda gunakan, ketahui dan pedulikan, itu harus menjadi kandidat pertama Anda untuk dicoba. Kalau tidak, pikirkan apa yang Anda ingin lakukan secara umum dan cari proyek di bidang ini.

  2. Ketika Anda telah menemukan proyek potensial, jangan terburu-buru. Coba gunakan sendiri. Apakah tindakan ini sebagus yang terlihat dari deskripsi dan ulasan? Jika tidak, ini bukan show-stopper lengkap; mungkin ini adalah kesempatan bagi Anda untuk terjun dan benar-benar membuat perbedaan. Lagi pula tidak ada yang membutuhkan pengembang lain untuk produk yang sempurna. Tapi itu akan memberi Anda wawasan penting apakah Anda ingin menjadi bagian dari proyek ini, sementara Anda mendapatkan pengalaman langsung dengan teknologi baru di bidang yang Anda minati.

  3. Juga sebelum mulai menginvestasikan terlalu banyak waktu dalam proyek dan mempelajari seluk beluknya, pertimbangkan untuk berkeliaran di milis proyek, forum, bahkan sistem pelacakan bug selama beberapa minggu. Jika Anda akan mulai berkontribusi pada proyek secara teratur, Anda akan menghabiskan banyak waktu di sana.

Mencari tahu: apakah Anda menikmati berkeliaran di sana, atau itu membosankan bagi Anda? Apakah ini terasa seperti proyek ini memiliki komunitas yang baik dan energik atau perlahan mati? Apakah orang-orang inti di sana tampaknya mendorong dan membimbing pendatang baru atau Anda akan melakukannya sendiri?

Lakukan langkah-langkah ini untuk beberapa proyek, berpotensi di area yang berbeda dan Anda cenderung mengalami kekecewaan yang datang ketika Anda bergabung dengan tim yang salah. Pengalaman seperti itu berpotensi mencegah Anda melakukannya lagi di masa depan.

Beberapa pemikiran lagi:

Jika proyek yang benar-benar Anda minati adalah proyek profil tinggi dengan banyak pengembang dan aktivitas di sekitarnya, Anda mungkin akan kesulitan membangun reputasi yang cukup di sana untuk mendapatkan, katakanlah, lakukan hak atau peran yang menarik dalam komunitas. Dalam hal ini pertimbangkan untuk bergabung dengan proyek spin-off terkait dengan visibilitas yang lebih rendah. Misalnya, alih-alih mencoba untuk mulai berkontribusi ke jQuery, coba temukan plugin jQuery yang cocok untuk Anda. Kemudian Anda dapat mempertimbangkan "naik".

Jika Anda menyukai proyek tetapi merasa terintimidasi oleh ukuran, kompleksitas, atau persyaratan kualitas kode, pertimbangkan mulai dari peran pendukung, seperti pengujian, pemeliharaan dokumentasi, atau verifikasi laporan bug. Jika Anda bertanya di milis proyek bantuan apa yang paling mereka butuhkan saat ini, mereka akan dengan senang hati membimbing Anda di sana. :)

Dengan cara ini Anda akan mempelajari proyek dan membangun reputasi Anda di sana sambil berkontribusi jauh lebih banyak daripada jika Anda mulai mengirimkan tambalan di bawah standar yang akan ditolak beberapa kali hingga siap.

Yang terakhir dan yang paling penting: jika Anda terbakar di satu tempat, lanjutkan; jangan menyerah.

Semoga itu bisa membantu.

28
kdubinets

Saya akan sangat menyarankan Anda menemukan proyek open source yang memiliki tulus minat dan Anda aktif gunakan.

Alasannya sederhana: Itu membuat perbedaan antara tugas dan hobi.

Lihatlah komputer Anda. Perangkat lunak apa yang Anda pasang di atasnya yaitu Open Source? Tebakannya adalah Chrome atau Firefox, atau mungkin Open Office atau klien Messenger Instan. Apakah mereka sempurna atau ada beberapa hal kecil yang ingin Anda ubah jika Anda bisa?

Jika ada, maka sekarang adalah waktu untuk melakukan sesuatu.

9
user1249

Saya menyarankan mencari (atau memulai) proyek seperti yang dilakukan orang selama bertahun-tahun, mulai menggunakan perangkat lunak Open Source untuk melakukan sesuatu. Itu mungkin tampak sepele bagi Anda, bahkan mungkin terlalu disederhanakan. Namun, sangat sulit untuk menggambarkan kepuasan menggunakan sesuatu, menemukan bug, mengambil sumbernya dan memperbaikinya. Atau, mungkin mengubahnya agar berfungsi seperti yang Anda inginkan.

Selain itu, jangan hanya meretas demi terlibat '. 95% tambalan saya ke kernel Linux tidak akan pernah melihat hari yang cerah, saya tahu yakin bahwa tidak ada yang menginginkannya kecuali saya, dan saya d mungkin dipaksa untuk menjalani evaluasi psikiatrik jika ada hacker kernel kompeten lain yang pernah melihatnya. Tapi saya masih menikmati implementasi piglatin_printk() yang dimulai sebagai lelucon 1 April beberapa tahun yang lalu :)

Meskipun ya, mendapatkan kode dan proses pemikiran Anda di depan banyak orang yang kompeten sangat berharga, begitu juga belajar cara berkomunikasi dan berkolaborasi. Proyek solo adalah cara yang bagus untuk menunjukkan kepada Anda apa yang tidak boleh dilakukan. Petunjuk, ada lebih dari itu hanya menggunakan perangkat lunak kontrol versi, milis dan pelacak bug.

Untuk memulai, saya sarankan menggali Ohloh untuk menemukan perangkat lunak yang Anda mungkin tertarik menggunakan , pertama. Unduh, bangun, mainkan. Lalu pergi mengambil sesuatu yang lain. Akhirnya Anda akan ingin meningkatkan sesuatu, atau menyadari bahwa Anda memiliki keinginan untuk mengimplementasikan sesuatu yang sama sekali berbeda dari apa yang Anda temukan.

Hal lain yang membantu adalah bekerja untuk perusahaan ramah terbuka. Perusahaan saya menggunakan Xen secara ekstensif, jadi mereka tidak punya masalah dengan saya menemukan bug yang menarik dan memperbaikinya, karena kita harus tetap melakukannya. Mereka juga tidak keberatan karyawan berpartisipasi dalam hal-hal seperti RFC dan spesifikasi rancangan, karena pada akhirnya kita akan menggunakan hasilnya.

8
Tim Post

OpenHatch dibuat khusus untuk ini.

Kutipan:

OpenHatch adalah nirlaba yang didedikasikan untuk mencocokkan calon kontributor perangkat lunak bebas dengan komunitas, alat, dan pendidikan.

Anda dapat menelusuri proyek berdasarkan jenis, teknologi, tingkat keterampilan yang diperlukan, dll. Dan menemukan yang cocok dengan tingkat Anda.

7
phw

Satu hal yang berulang kali saya perhatikan ketika orang-orang yang ingin memulai dengan pengembangan open source adalah mereka kewalahan dengan kerumitan dan besarnya proyek-proyek besar. Saya menghadapi masalah yang sama beberapa tahun yang lalu, dan dari pengalaman saya, yang terbaik adalah tidak melihat proyek yang lebih besar segera.

Setelah menghabiskan waktu melihat-lihat proyek yang mungkin saya sukai, saya menyadari bahwa mereka masih di luar jangkauan saya dan kemudian mulai mengerjakan proyek yang sangat kecil sendirian. Saya membuat titik untuk hanya merilis kode pada Github, terlepas dari apakah itu benar-benar relevan atau apakah orang lain akan mulai menggunakannya. Akhirnya, orang mungkin mulai tertarik dengan apa yang Anda lakukan. Bahkan sebaliknya, Anda akan mendapatkan kepercayaan diri dan kemampuan teknis untuk perlahan-lahan pindah ke proyek yang lebih besar dan lebih populer.

4
Checksum

Ketika saya mulai, saya mencari opsi secara daring dan terbukti sulit untuk menemukan sesuatu yang dapat Anda gunakan sebagai pemula.

Beberapa proyek sulit untuk disumbangkan bukan karena mereka terlalu maju tetapi karena masyarakat tidak ramah. Jadi, jangan berkecil hati ketika Anda menabrak dinding.

Selama pencarian, saya memutuskan untuk menyusun daftar 10 proyek sumber terbuka yang pemula dapat mulai mendukung tanpa banyak proses yang menegangkan. Berikut tautan yang akan digunakan:

Sepuluh Proyek untuk pemula untuk mendukung dan belajar dari

Saya harap Anda merasa terbantu dan Anda selalu dapat menambahkan lebih banyak jika Anda menemukan yang keren!

3
Eenvincible

Saya sarankan membaca: http://open-advice.org/ .

Ini bertujuan membantu mereka yang menciptakan dan memelihara komunitas, dan mereka yang tidak percaya diri tentang komunitas mana yang ingin mereka bergabung atau bagaimana melakukannya.

Gagal itu, cari proyek yang memiliki misi yang beresonansi dengan Anda, atau garpu dan berkontribusi untuk yang sudah berguna bagi Anda.

Semoga berhasil.

3
user549213

Ada situs web baru di luar sana khusus untuk ini disebut Kode 52 yang mendorong pengembang baru untuk terlibat dalam open source dengan memulai proyek OSS baru setiap minggu.

Idenya adalah bahwa hal itu akan tampak jauh lebih menakutkan bagi orang-orang yang belum pernah terlibat dalam open source sebelumnya dan mudah-mudahan akan merasa lebih cenderung untuk terlibat dalam proyek OSS lain juga.

3
Marcus Swope

Saya sarankan untuk memulai proyek sendiri pada topik yang Anda minati.

Banyak yang bisa dipelajari dengan bekerja pada suatu proyek secara umum. Tidak perlu melihat bagaimana orang lain membuat kode untuk mempelajari cara membuat kode dengan lebih baik. Dan kadang-kadang Anda akan benar-benar melihat apa yang tidak boleh dilakukan karena orang lain sering kali tidak lebih berpengalaman daripada Anda.

Biasanya membantu melihat kode orang lain, tetapi Anda akan menemukan kode orang lain di proyek Anda sendiri hanya melalui perpustakaan dan komponen yang Anda gunakan.

Pengalaman akan mengajarkan Anda apa yang baik dan praktik buruk.

2
Brian R. Bondy

Saya adalah pemilik proyek pada kode google, dan saya mencari kontributor. (Namun saya akan tidak menyalahgunakan jawaban ini untuk iklan.) Karenanya pendapat saya mungkin menarik bagi Anda.

Pertama-tama Anda harus mencari tahu apa yang Anda tertarik. Kemudian kembangkan beberapa keahlian dalam beberapa bidang yang terkait dengan Anda minat. Kemudian temukan proyek di mana Anda keahlian dituntut dan dibutuhkan.

Semakin kecil proyek, semakin sedikit kontributor yang ada, semakin besar peluang kontributor dicari dan Anda dapat menghubungi penulis/pemilik proyek secara langsung. Beri tahu mereka a) apa keahlian Anda b) di mana Anda melihatnya dapat diterapkan dalam proyek c) apa yang menurut Anda dapat Anda capai.

Ingat: hanya mengetahui satu atau dua bahasa pemrograman utama adalah tidak keahlian.

2
Ingo