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 sesuai? 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.
Jawaban:
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 terbiasa dengan 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 perkembangan 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 melalui 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:
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 tentang itu, 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 benar-benar ingin Anda gunakan yang belum ada dan mulai sendiri.
Bersiaplah untuk direndahkan dan berharap 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.
Memperbarui:
Saya hanya memikirkannya dan menyadari bahwa saya tidak repot-repot menyebutkan proyek mana yang banyak dijawab oleh referensi saya. Bagi 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 kendala waktu pribadi saya belum dapat berkontribusi kode lebih dari setahun tetapi saya masih mencoba untuk memberikan kembali dengan mengintai di Stack Overflow dan menjawab pertanyaan tentang SharpPcap sesekali.
sumber
Berikut yang saya sarankan untuk dilakukan untuk menemukan pasangan yang cocok:
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 ingin Anda lakukan secara umum dan cari proyek di bidang ini.
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.
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 apakah itu menarik 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, mungkin 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, teruskan; jangan menyerah.
Semoga itu bisa membantu.
sumber
Saya akan sangat menyarankan Anda menemukan proyek sumber terbuka yang memiliki minat tulus Anda dan yang Anda gunakan secara aktif .
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 Instant Messenger. Apakah mereka sempurna atau hanya ada beberapa hal kecil yang ingin Anda ubah jika Anda bisa?
Jika ada, maka sekarang adalah waktu untuk melakukan sesuatu.
sumber
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 sederhana. Namun, sangat sulit untuk menggambarkan kepuasan menggunakan sesuatu, menemukan bug, mengambil sumbernya dan memperbaikinya. Atau, mungkin mengubahnya agar berfungsi seperti yang Anda inginkan.
Juga, jangan hanya meretas demi terlibat '. 95% dari tambalan saya ke kernel Linux tidak akan pernah melihat hari yang cerah, saya tahu pasti bahwa tidak ada yang menginginkannya kecuali saya, dan saya mungkin akan dipaksa untuk menjalani evaluasi psikiatrik jika ada hacker kernel kompeten lainnya yang pernah melihatnya. Tapi saya masih menikmati implementasi saya
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 di sekitar Ohloh untuk menemukan perangkat lunak yang mungkin Anda tertarik untuk menggunakannya , pertama. Unduh, bangun, mainkan. Lalu pergi ambil 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 bagaimanapun kita perlu melakukannya. Mereka juga tidak keberatan karyawan berpartisipasi dalam hal-hal seperti RFC dan spesifikasi rancangan, karena pada akhirnya kita akan menggunakan hasilnya.
sumber
OpenHatch dibuat khusus untuk ini.
Kutipan:
Anda dapat menelusuri proyek berdasarkan jenis, teknologi, tingkat keterampilan yang diperlukan, dll. Dan menemukan yang cocok dengan tingkat Anda.
sumber
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.
sumber
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.
sumber
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 bercabang dan berkontribusi untuk yang sudah berguna bagi Anda.
Semoga berhasil.
sumber
Ketika saya mulai, saya mencari opsi secara daring dan terbukti sulit untuk menemukan sesuatu yang bisa Anda gunakan sebagai pemula.
Beberapa proyek sulit untuk dikontribusikan 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!
sumber
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.
sumber
Saya adalah pemilik proyek pada kode google, dan saya mencari kontributor. (Namun saya tidak akan menyalahgunakan jawaban ini untuk iklan.) Karenanya pendapat saya mungkin menarik untuk Anda.
Pertama-tama Anda harus mencari tahu apa yang Anda minati. Kemudian kembangkan beberapa keahlian dalam beberapa bidang yang terkait dengan minat Anda . Kemudian temukan proyek di mana keahlian Anda 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 bukanlah keahlian.
sumber