Amatör olarak açık kaynaklı projelere katılmak kötü mü?


17

Yaklaşık altı aydır, Objective-C'deki becerilerimi geliştirmek için açık kaynaklı bir iPhone veya iPad projesine katılmam gerektiğini düşündüm, ancak her gittiğimde büyük projelerde binlerce satır kod görüyorum sonunda asla anlamayacağımı kendimi ikna ettim. Her zaman taahhütlerimin sadece proje yöneticileri ve daha kıdemli katılımcılar için bir güçlük olacağını düşünüyorum, bu yüzden her zaman son saniyede geri dönüyorum.

Benim sorum aslında, orta düzeyde deneyimli bir programcı açık kaynaklı bir projeye katılması bir güçlük mü?


1
Macke'nin cevabı daha kapsamlı, ama cesur sorunuzun kısa cevabı: hayır.
Chris Browne

1
@ChrisBrowne: İyi bir nokta. Cevabımı eşleşecek şekilde düzenledim. :)
Macke

Yanıtlar:


15

Hayır değil.

Baktığınız projelerin kod tabanı çok göz korkutucu ise, şunları göz önünde bulundurun:

  • Çalışmak için daha küçük bir proje seçmek.
  • Proje içinde daha küçük bir görev seçin:
    • Bir şey için örnek / öğretici / demo yazın
    • Belgeleri güncelleyin ve düzeltin (tüm projeler, işletim sistemi veya hayır, daha iyi belgelere ihtiyaç duyar)
    • Birçok düşük öncelikli ancak düzeltilmesi kolay hataları düzeltin (koda büyük maruz kalma, geliştiriciler genellikle mutlu, düşük risklidir)
  • Çekirdek kaynağa kesin erişim olmadan katkıda bulunmanın yolları vardır, örneğin:
    • Yorum yapılabilen yamalar gönderme.
    • Çekme taleplerini çatallama ve gönderme (yukarıya bakın)
    • Sadece sizi nereye götürdüğünü görmek için kendi kendinize çatallamak ve çalışmak. Mutlu olursanız, geliştiricilerin mantıklı olup olmadığını görmek için ne yaptığınıza bir göz atmalarını isteyin.

Taahhütlerinizi kabul etmeme korkunuzun üstesinden gelmek için, önce güvenli puanlar alın. Bu, hem sizin hem de geliştirici ekibin ilişkinize güvenmesini ve birbirinizin düşünme şeklini öğrenmenizi sağlar. İyileştikçe (hem beceri, deneyim, kod kalitesi ve işletim sistemi ekibinizin ve dinamiklerinin anlaşılması) hem de daha az güçlükle daha büyük görevlerle başa çıkabilirsiniz.

Ayrıca, uygun başlangıç ​​noktaları istemenize ve ekibin sizin için neyi uygun bulabileceğini görmenize yardımcı olur.

Örnek olarak, yıllar içinde Buildbot'a biraz katkıda bulundum. Sadece birkaç küçük sorunu düzeltmeye başladım, sonra bazı göz kamaştırıcı hataları düzelterek Mercurial kaynak adımlarının kalitesini çarptım. Son olarak, Web sayfalarının çoğunu yeniden yazdım ve html-yapıştırma kodunu şablon tabanlı bir HTML oluşturma çözümüne değiştirdim. İkincisi, birkaç aylık sıkı çalışma boyunca birkaç yüz taahhüttü.

Bazı Mercurial çalışmaları da yaptım, ancak bu adamlar daha seçici ve teknoloji daha karmaşık, bu yüzden henüz çekirdeğe herhangi bir düzeltme yapmadım. Birkaç hata raporu hazırladım ve birkaç küçük uzantı yazdım, ancak şu anda orada daha büyük bir şey almadım.

Umarım yardımcı olur.


Buildbot için +1 - bu çok güzel, yardımcıları olan harika bir proje. Başlamak için iyi bir proje istiyorsanız, kesinlikle bir göz atmaya değer.
Nate

tam amatörlere ne dersiniz? Programlama düzeyi düşük ve resmi eğitimi olmayan insanlar?
Roy

1
@Roy Bu durumda, işe başlayarak ve ondan öğrenmek için kaynakla uğraşarak başlardım. Etkili katkıda bulunduğunuz noktaya gelmek biraz daha zaman alır. Muhtemelen bazı iyi dersleri kendiniz (proje ve çerçeveler / kütüphaneler için) takip ederek başlayabilirsiniz ve nerede ve nasıl katkıda bulunacağınızı bilmek için bilginizi oluşturun. Oyun modları (ve eklentileri) sanal alanda yalnız olmak ve çekirdek geliştirici seviyesine sahip olmak arasında mükemmel bir seçim olabilir.
Macke

4

Bir süreliğine geliştirme listelerini izleyin ve kendinizi rahat hissettiğinizde kendinizi tanıtın. Birçok projede, hataların giderilmesi veya dokümantasyonda düzenli olanların size işaret etmekten mutluluk duyacağı bazı daha kolay İşler vardır. Çoğu Proje yeni ellere karşı oldukça dostane ve sizi proje için gerçek bir varlık haline gelebilmeniz için yeterince hızlı çizecek.

Bir süre sonra kod tabanının yapısı ve en önemli kısımlarına aşina olacaksınız. Kodu bu şekilde anlamayı öğrenmek, programlamanın gerçekten önemli bir parçasıdır ve açık kaynak kodu öğrenmenin harika bir yoludur.


2

Göreyim seni. Aynı şeyi yapan yeni başlayanlar var. Proje sorumlusu, liginizin dışında olmayan şeyler üzerinde çalışmanıza yardımcı olabilir. Yavaş yavaş kalanlara doğru büyüyorsun.

Oh, ve sadece kodu anlamadığınız için iyi olduğu anlamına gelmiyor . Orada ciddi bir kod gördüm. Bazılarını anlamak zor çünkü kötü yazılmış ve olması gerekenden çok daha karmaşık hale getirilmiş.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.