Właśnie zacząłem pracować rok temu i chcę dołączyć do projektu open source z tych samych powodów, co inni: pomóż stworzyć coś użytecznego i dalej rozwijać swoje umiejętności.
Mój problem polega na tym, że nie wiem, jak znaleźć projekt, w którym pasowałbym.
Jak znaleźć projekt przyjazny dla początkujących? Jakich atrybutów powinienem szukać? Jakie są znaki ostrzegawcze, że projekt może nie być prawo pasuje? Czy są jakieś narzędzia, które pomogą dopasować ludzi do projektów typu open source?
Jest to podobne pytanie tutaj , ale to pytanie ma związek z pracą i ogranicza się do PHP / Drupal.
learning
open-source
junior-programmer
Wyskakuje
źródło
źródło
Odpowiedzi:
Mój pierwszy wkład typu open source dotyczył biblioteki, z której wcześniej korzystałem (i bez której byłbym bardzo cierpiał) przy poprzednim opłaconym projekcie. Podczas pierwszego użycia zauważyłem błąd w kodzie, więc utworzyłem łatkę, dołączyłem do projektu i przesłałem ją do przeglądu.
Około 8 miesięcy później, kiedy miałem trochę wolnego czasu, zdecydowałem, że oddam (i popracuję nad umiejętnościami programistycznymi), wnosząc większy wkład w projekt. Sklonowałem repozytorium i zacząłem zapoznawać się z bazą kodów. Po kilku tygodniach przesyłania drobnych poprawek do bazy kodu i monitorowania żądań funkcji, podniosłem prośbę o funkcję, aby dodać całkiem znaczący moduł do projektu.
Ponieważ generowanie wielu indywidualnych poprawek jest dość żmudne dla jakiegokolwiek znaczącego rozwoju, sklonowałem repozytorium do gałęzi w git hub i zacząłem wycinać kod. Kilka tygodni i kilka tysięcy linii kodu później kierownik projektu i ja pracowaliśmy poprzez integrację i testowanie moich poprawek w bibliotece w sposób, który działał spójnie z resztą bazy kodu.
Był to nieoceniony proces, którego wiele się nauczyłem:
Ten konkretny projekt opierał się na generowaniu i dekodowaniu pakietów sieciowych na wszystkich poziomach protokołów sieciowych. Osobiście interesuję się sieciami niższego poziomu, więc wspaniale było rozmawiać z innym programistą o wspólnych zainteresowaniach i wiedzy w tej dziedzinie.
Jeśli chcesz po prostu zmoczyć stopy: znajdź projekt, z którego już korzystasz; sklonuj repozytorium; i zacznij sprawdzać, czy możesz naprawić niektóre błędy i / lub dodać testy jednostkowe. Patrzenie na czyjąś bazę kodów wydaje się przerażające, ale jest to niezwykle cenna umiejętność do nauczenia się. Prześlij kilka poprawek. Możesz oczekiwać, że Twój kod zostanie najpierw dokładnie zbadany. Nie przejmuj się, to normalna część procesu zdobywania zaufania administratorów projektu.
Po ustanowieniu bazy merytorycznej z projektami administratorzy zaczynają szukać więcej obowiązków, takich jak proponowanie nowych funkcji lub prośba o przydzielenie ich do realizacji żądań funkcji.
Jeśli nie możesz znaleźć już istniejącego projektu w jednej z głównych sieci repozytorium open source (github, sourceforge, kod Google), pomyśl o aplikacji, której naprawdę chciałbyś użyć, która jeszcze nie istnieje i uruchom własną.
Przygotuj się na upokorzenie i oczekuj, że praca zostanie odrzucona na rzecz dalszych zmian. Mit, że każdy może dodać kod do projektu open source, jest całkowicie fałszywy. Zawsze jest między tobą strażnik i dostęp push. Im lepszy kod, tym mniej będzie on analizowany na dłuższą metę, gdy zdobędziesz zaufanie administratorów projektu. Jeśli to twój projekt, będziesz strażnikiem.
Aktualizacja:
Właśnie się nad tym zastanowiłem i zdałem sobie sprawę, że nie zawracałem sobie głowy wspominaniem, do którego projektu odnosi się większość mojej odpowiedzi. Dla tych, którzy chcą wiedzieć, jest to SharpPcap . Główny programista Chris Morgan jest bardzo profesjonalny i rzeczowy. Wykonuje kawał dobrej roboty zarządzając projektem i nauczył mnie wiele o tym, czego potrzeba, aby dojrzeć projekt OSS.
Ze względu na osobiste ograniczenia czasowe nie byłem w stanie wnieść kodu od ponad roku, ale nadal staram się oddawać, czając się na przepełnieniu stosu i od czasu do czasu odpowiadając na pytania dotyczące SharpPcap.
źródło
Oto, co proponuję, aby znaleźć idealne dopasowanie:
Jeśli masz projekt typu open source, z którego już korzystasz, znasz go i którym się interesujesz, powinien on być pierwszym kandydatem do wypróbowania. Inaczej myśleć o tym, co będzie chciał robić w ogóle i szukać projektu w tej dziedzinie.
Kiedy znajdziesz potencjalny projekt, nie spiesz się. Spróbuj użyć go sam. Czy jest tak dobry w akcji, jak się wydawało z opisu i recenzji? Jeśli nie, nie jest to kompletny ogranicznik pokazu; może jest to okazja, aby wskoczyć i naprawdę coś zmienić. W końcu nikt nie potrzebuje innego programisty, aby uzyskać idealny produkt. Daje to jednak ważne informacje na temat tego, czy chcesz wziąć udział w tym projekcie, a jednocześnie zyskujesz doświadczenie z nowej technologii w obszarze, który Cię interesuje.
Również zanim zaczniesz inwestować zbyt dużo czasu w projekt i poznać jego tajniki, zastanów się nad listami dyskusyjnymi projektu, forami, a nawet systemem śledzenia błędów przez kilka tygodni. Jeśli zaczniesz regularnie przyczyniać się do projektu, poświęcisz mu dużo czasu.
Zastanów się: czy lubisz się tam kręcić, czy może jest to dla ciebie trudne? Czy wydaje się, że ten projekt ma dobrą i energiczną społeczność, czy powoli umiera? Czy wydaje się, że rdzenni ludzie zachęcają przybyszów i mentorują ich, czy będziecie sami?
Wykonaj te czynności dla kilku projektów, potencjalnie w różnych obszarach, a prawdopodobieństwo dołączenia do niewłaściwego zespołu jest mniej prawdopodobne. Takie doświadczenie może potencjalnie zniechęcić cię do powtórzenia tego w przyszłości.
Jeszcze kilka myśli:
Jeśli projekt, który naprawdę Cię interesuje, jest głośny, z wieloma programistami i aktywnością wokół niego, prawdopodobnie będziesz miał trudność z ustaleniem wystarczającej reputacji, aby uzyskać, powiedzmy, przyznanie praw lub interesującą rolę w społeczności. W takim przypadku rozważ dołączenie do powiązanego projektu ubocznego o mniejszej widoczności. Na przykład zamiast próbować przyczyniać się do jQuery, spróbuj znaleźć wtyczkę jQuery, która będzie dla ciebie odpowiednia. Później możesz rozważyć „przejście w górę”.
Jeśli podoba Ci się projekt, ale czujesz się zastraszony jego rozmiarem, złożonością lub wymaganiami dotyczącymi jakości kodu, rozważ rozpoczęcie od roli pomocniczej, takiej jak testowanie, konserwacja dokumentacji lub weryfikacja raportu o błędzie. Jeśli zapytasz na liście mailingowej projektu, jakiej pomocy potrzebują w tej chwili, chętnie cię tam poprowadzą. :)
W ten sposób poznasz projekt i zbudujesz tam swoją reputację, przyczyniając się do niego znacznie więcej, niż gdybyś zaczął przesyłać łaty niespełniające standardów, które byłyby wielokrotnie odrzucane, dopóki nie będą gotowe.
Ostatni i najważniejszy: jeśli zostaniesz spalony w jednym miejscu, idź dalej; nie poddawaj się.
Mam nadzieję, że to pomaga.
źródło
Zdecydowanie polecam znalezienie projektu open source, który ma szczere zainteresowanie i którego aktywnie używasz .
Powód jest prosty: robi różnicę między obowiązkiem a hobby.
Spójrz na swój komputer. Jakie oprogramowanie na nim zainstalowałeś, czyli Open Source? Domyślam się, że to Chrome lub Firefox, a może klient Open Office lub Instant Messenger. Czy są idealne, czy jest tylko drobiazg, który chciałbyś zmienić, gdybyś mógł?
Jeśli tak, to nadszedł czas, aby coś z tym zrobić.
źródło
Proponuję znaleźć (lub rozpocząć) projekt tak jak ludzie robili od lat, zacznij używać oprogramowania Open Source do robienia rzeczy. Może się to wydawać trywialne, a może nawet zbyt uproszczone. Jednak naprawdę trudno jest opisać satysfakcję z używania czegoś, znalezienia błędu, pobrania źródła i naprawienia go. Lub może go zmienić, aby działał tak, jak chcesz.
Nie rąbaj też po to, żeby się zaangażować. 95% moich łat do jądra Linuksa nigdy nie ujrzy światła dziennego, wiem na pewno, że nikt nie chciałby ich poza mną, i prawdopodobnie byłbym zmuszony poddać się ocenie psychiatrycznej, gdyby jakikolwiek inny kompetentny haker jądra kiedykolwiek je widział. Ale nadal cieszę się z mojej realizacji,
piglatin_printk()
która rozpoczęła się jako gag 1 kwietnia kilka lat temu :)Chociaż tak, uzyskanie kodu i procesu myślowego przed wieloma innymi kompetentnymi osobami jest bezcenne, podobnie jak nauka komunikacji i współpracy. Projekt solo to świetny sposób, aby pokazać ci, czego nie robić. Wskazówka to coś więcej niż tylko oprogramowanie do kontroli wersji, listy mailingowe i narzędzie do śledzenia błędów.
Aby zacząć, proponuję kopanie wokół Ohloh znaleźć oprogramowanie, które może być zainteresowany w użyciu , jako pierwszy. Pobierz go, zbuduj, baw się nim. Następnie idź złap coś innego. W końcu zaczniesz chcieć coś ulepszyć lub uświadomisz sobie, że masz ochotę wprowadzić coś zupełnie inaczej niż to, co znalazłeś.
Kolejną rzeczą, która pomaga, jest praca dla otwartej przyjaznej firmy. Moja firma intensywnie korzysta z Xen, więc nie mam problemu ze znalezieniem interesujących błędów i ich naprawieniem, ponieważ i tak musielibyśmy to zrobić. Nie mają również nic przeciwko pracownikom uczestniczącym w takich pracach, jak specyfikacje RFC i projekty specyfikacji, ponieważ ostatecznie będziemy wykorzystywać wyniki.
źródło
OpenHatch został stworzony specjalnie do tego.
Cytować:
Możesz przeglądać projekty według typu, technologii, wymaganego poziomu umiejętności itp. I znaleźć to, co pasuje do twojego poziomu.
źródło
Jedną z rzeczy, które wielokrotnie zauważyłem, gdy chodzi o ludzi, którzy chcą rozpocząć pracę nad oprogramowaniem open source, jest to, że ogarnia ich ogrom złożoności i ogrom dużych projektów. Kilka lat temu napotkałem ten sam problem i z własnego doświadczenia najlepiej nie patrzeć od razu na większe projekty.
Po spędzeniu czasu na oglądaniu projektów, które mogą mi się spodobać, zdałem sobie sprawę, że wciąż są poza moim zasięgiem, a potem zacząłem pracować nad bardzo małymi projektami. Chciałbym po prostu opublikować kod na Githubie, niezależnie od tego, czy jest on naprawdę istotny, czy też inne osoby zaczną go używać. W końcu ludzie mogą zacząć interesować się tym, co robisz. Nawet w przeciwnym razie zyskasz pewność siebie i umiejętności techniczne, aby powoli przechodzić do większych i bardziej popularnych projektów.
źródło
Istnieje nowa strona internetowa specjalnie dla tego o nazwie Code 52, która zachęca nowych programistów do angażowania się w open source, rozpoczynając nowy projekt OSS co tydzień.
Chodzi o to, że będzie to mniej zniechęcające dla osób, które nigdy wcześniej nie były zaangażowane w open source i miejmy nadzieję, że będą bardziej skłonne do angażowania się również w inne projekty OSS.
źródło
Polecam lekturę: http://open-advice.org/ .
Ma na celu pomoc tym, którzy tworzą i utrzymują społeczności, oraz tym, którzy nie są pewni, do której chcą się przyłączyć lub jak to zrobić.
Jeśli to nie wystarczy, znajdź projekt, który ma misję, która rezonuje z tobą, lub rozwidl się i wnieś wkład w taki, który jest już dla ciebie użyteczny.
Powodzenia.
źródło
Kiedy zaczynałem, szukałem opcji online i znalezienie początku, w którym można zatopić zęby, okazało się trudne.
Do niektórych projektów trudno jest przyczynić się nie dlatego, że są zbyt zaawansowane, ale dlatego, że społeczność nie jest przyjazna. Więc nie zniechęcaj się, gdy uderzysz w ścianę.
Podczas wyszukiwania postanowiłem stworzyć listę 10 projektów open source, które początkujący mogą zacząć wspierać bez stresujących procesów. Oto link do użycia:
Dziesięć projektów dla początkujących do wsparcia i nauki
Mam nadzieję, że okaże się to pomocne i zawsze możesz dodać więcej, jeśli znajdziesz fajne!
źródło
Sugeruję, aby rozpocząć projekt samodzielnie na interesujący Cię temat.
Wiele można się nauczyć, pracując nad projektem w ogóle. Nie trzeba sprawdzać, jak ktoś inny koduje, aby dowiedzieć się, jak lepiej kodować. I czasami rzeczywiście zobaczysz, czego nie robić, ponieważ inni ludzie często nie są bardziej doświadczeni niż ty.
Zwykle pomaga zobaczyć kod innej osoby, ale kod innego użytkownika napotkasz w swoim projekcie tylko za pomocą używanych bibliotek i komponentów.
Doświadczenie nauczy cię dobrych i złych praktyk.
źródło
Jestem właścicielem projektu w kodzie Google i szukam współpracowników. (Jednak nie wykorzystam tej odpowiedzi do celów reklamowych). Dlatego moja opinia może być dla Ciebie interesująca.
Najpierw musisz dowiedzieć się, co Cię interesuje. Następnie rozwinąć wiedzę specjalistyczną w niektórych dziedzinach związanych z Twoimi zainteresowaniami. Następnie znajdź projekt, w którym twoja wiedza jest wymagana i potrzebna.
Im mniejszy projekt, tym mniej współpracowników już tam jest, tym większe są szanse na znalezienie współpracowników i można skontaktować się bezpośrednio z autorami / właścicielami projektu. Powiedz im a) jaka jest twoja wiedza specjalistyczna b) gdzie widzisz, że można ją zastosować w projekcie c) co według ciebie możesz osiągnąć.
Pamiętaj: znajomość jednego lub dwóch głównych języków programowania nie jest wiedzą specjalistyczną.
źródło