Zaangażowanie w projekt Open Source [zamknięty]

19

Jadę do mojego ostatniego roku w inżynierii komputerowej i zdobyć staż tego lata i jesieni. Ponieważ nie będzie robić zadania domowe Chciałbym skorzystać z tej okazji, aby wziąć udział w projekcie open source pewnego rodzaju. Jestem biegły w C, C ++, Java i Python. Jestem też dość obeznany z Linuksem, wykorzystując go na moim laptopie w tej chwili i wszystkich moich zajęciach w tym semestrze koncentruje się na nim.

Zastanawiałem się nad spojrzeniem na Androida lub Ubuntu, ale w przeszłości czułem się trochę przytłoczony. Czy ktoś ma jakieś porady? Zainteresowany tym, nad czym byłby dobry projekt do pracy, od czego zacząć i czy naprawdę będę w stanie wnieść duży wkład.

A w końcu, jak często zmiany ludzi są faktycznie akceptowane? Jak często pisałbym kod, żeby go odrzucić?

tl: dr Szukasz więcej doświadczenia w programowaniu, przyczyniając się do projektu open source. Nowy na scenie potrzebuje porady.

Tarmon
źródło
Powiedziałbym, że lądowanie tutaj jest z pewnością warte zachodu!
squillman 23.01.11
6
Brzmi jak dobry pomysł, ale sprawdź zasady „oświetlania księżyca” w firmie, w której odbywa się staż. Niektóre miejsca, szczególnie jeśli są sklepami z oprogramowaniem, będą bardzo ograniczać to, co możesz zrobić - nawet w swoim czasie i na własnym komputerze.
Steve
1
być może rozważ naukę nowego języka programowania, który jest bardziej deklaratywny niż te, o których wspominasz. Jak haskell lub scala. Następnie pracuj nad projektem typu open source.
mrsteve

Odpowiedzi:

15

+1 dla Steve'a Haigha za wspomnienie o świetle księżyca.

Jeśli pracujesz dla sklepu z oprogramowaniem, możesz znaleźć się w sytuacji, w której pracodawca rości sobie prawo własności do oprogramowania, nad którym pracowałeś w swoim czasie. Przed rozpoczęciem skonsultuj się z pracodawcą, aby wyjaśnić zasady dotyczące oświetlenia księżyca w Twojej firmie.

Dobrym miejscem na początek może być OpenHatch . To strona internetowa poświęcona pomaganiu ludziom w angażowaniu się w projekty Open Source. Będą mogli przekazać ci listę błędów „małych”, aby rozpocząć pracę nad dowolnym projektem, który się z nimi zarejestrował, i mogą pomóc ci skontaktować się z innymi autorami, którzy chętnie cię mentorują wybrany projekt i / lub język.

Akceptacja twoich łatek w przeszłości i prawie zawsze zależy od jakości łatki i tego, czy ma ona dołączone przypadki testowe. Wiele projektów w rzeczywistości nie zaakceptuje łatek, chyba że zawierają test weryfikujący łatkę.
Ponieważ jakość twojego kodu jest czymś, co zostanie subiektywnie ocenione, przygotuj się na konstruktywną krytykę ze strony opiekunów wyższego szczebla, aby ulepszyć swój kod.

Jeff Welling
źródło
1
Ich polityka dotycząca oświetlenia księżyca jest czymś, o czym nawet nie pomyślałem. Także OpenHatch.org wygląda całkiem fajnie. Zarejestruj się już teraz, aby to sprawdzić.
Tarmon
2
Kolejna uwaga o Moonlighting, jeśli Do poprosić pracodawcę, można to zrobić za pośrednictwem poczty elektronicznej na szlaku papieru. W przeciwnym razie, co powstrzyma ich od zmiany zdania i powiedzenia, że ​​nigdy nie zrezygnowali z roszczenia do twojego projektu? Tylko myśl.
Jeff Welling
Nie mogę uwierzyć, że to pytanie zostało zamknięte, zwłaszcza że ma tak wiele wspaniałych „odpowiedzi”, opartych na opiniach, czy nie!
Dave Kanter
7

Jako kierownik projektu open source (FireBreath) sugerowałbym, abyś po prostu znalazł projekt, którego używasz lub który Cię interesuje, i szukał sposobów, w jakie możesz pomóc. Istnieje wiele rzeczy można zrobić nawet bez pisania kodu. W naszym projekcie potrzebujemy ludzi do pomocy:

  • Testuj i zgłaszaj błędy
  • Zaktualizuj dokumentację na stronie internetowej
  • Pomóż pisać dodatkowe narzędzia
  • Spędzaj czas w pokoju IRC i pomagaj nowym użytkownikom
  • Tworzenie przykładowych wtyczek za pomocą FireBreath dla nowych użytkowników patrzeć

Są to specyficzne dla mojego projektu, oczywiście (i zapraszamy do pomocy! ;-) ale wszystkie projekty mają takie rzeczy, że nowi użytkownicy mogą przyczynić. Moim ostatnim wkładem do innego projektu było dodanie narzędzia do lepszego zarządzania uprawnieniami do repozytorium symboli wieloznacznych na gitolite. Trzymaj się projektów, które uważasz za interesujące lub z których możesz skorzystać!

Powodzenia!

taksylian
źródło
Nawet nie myślałem o takich rzeczach. Dziękuję za sugestie. Pójdę poszukać nowego projektu, który wymaga tego rodzaju rzeczy.
Andrew
+1 za dokumentację. Jako koordynator programu SharePoint sushi, jeden z najbardziej żmudnych i najtrudniejszych rzeczy do pisania są docs, ale są również najważniejsze dla nowych użytkowników. Pomożesz tam również zapoznać się z funkcjami projektu i jego działaniem.
Ryan Hayes
3

Nie mogę ci powiedzieć, jaki projekt powinieneś wybrać - to zależy od ciebie. Mogę jednak powiedzieć, jak się zaangażować: jeśli czujesz pasję do jakiegoś projektu, tj. Od dłuższego czasu używasz aplikacji (w przypadku systemu operacyjnego może to nie być tak łatwe), zawsze możesz przesyłać łaty z sugerowanymi zmianami (ulepszenia, poprawki błędów) i poproś właścicieli projektów o sprawdzenie / zintegrowanie.
Jest to dość łatwe w przypadku projektów w GitHub - po prostu utwórz łatkę i prześlij żądanie ściągnięcia.
W każdym razie, im więcej wartościowych poprawek prześlesz, tym bardziej prawdopodobne jest, że powitają cię w zespole podstawowym.

Paweł Dyda
źródło
2

Jeśli nie jesteś ekspertem w danym języku, nadal istnieje wiele działań, które są bardzo cenione. Obejmują one testowanie, pisanie samouczków, pisanie dokumentacji API, tworzenie strony internetowej dla projektów itp. Jeśli jesteś szczególnie zainteresowany, znajdź projekt w tej dziedzinie i wnieś wiedzę o domenie. (Na przykład mamy aktywną społeczność projektów chemicznych OS).


źródło
2

Aby dostać się do projektów Open Source, popatrz na OpenHatch - to ich cała misja:

projekt typu open source, którego celem jest obniżenie barier w dostępie do wkładu typu open source i zwiększenie różnorodności. Osiągamy te cele poprzez szereg inicjatyw ...

James
źródło
2
czy mógłbyś wyjaśnić więcej na temat tego, co robi i dlaczego polecasz to jako odpowiedź na zadane pytanie? „Tylko odpowiedzi” nie są mile widziane na Stack Exchange
gnat
1

Na przykład, Mozilla zawsze szuka programistów C ++ dla rozwijania i testowania swoich projektów. Dla nowego przybysza przytłaczające jest pobieranie ogromnej bazy kodu i spędzanie godzin na jej tworzeniu. Następnie trwa około sześciu miesięcy, w których spędzasz średnio ponad 10 godzin tygodniowo, aby się z tym zapoznać i zrozumieć błąd, usterkę lub coś takiego. Wkrótce powinieneś być w stanie zrozumieć, jak wyglądać, odtwarzać, izolować, naprawiać, testować, test regresji, zastosować łatkę. Robiąc to więcej, możesz uzyskać bezpośredni dostęp do zapisu w bazie kodu, nadzorować jakąś funkcję. Wierzę, że to jest prawdziwe dla każdego projektu, który jest dojrzały z dużą ilością osób pracujących na nim.

Z drugiej strony umiera wiele projektów, ponieważ nie ma nikogo, kto mógłby je rozwinąć. Znalezienie osób, które mogą ci pomóc, lub dokumentacji w takich przypadkach może być trudne.

Aby znaleźć równowagę między tymi skrajnościami, możesz znaleźć program, którego musisz używać często lub codziennie. Używaj go na tyle, aby wkrótce maksymalnie wykorzystać jego zestaw funkcji. Być może rozwiną się pewne powinowactwo do używania go w porównaniu z innymi opcjami. Następnie możesz albo przesłać żądanie funkcji, albo wziąć je na siebie, ponieważ prawdopodobnie najlepiej rozumiesz proponowaną funkcję. Z pozoru ta opcja sprawia, że ​​czujesz, że nigdy nie zamierzasz maksymalnie wykorzystać funkcji programu. Jeśli pozostaniesz przy nim wystarczająco długo, będziesz potrzebować programu, aby zrobić więcej niż to, co może zrobić. Może to być poprawka bezpieczeństwa / prywatności, subtelna rzecz lub poprawa użyteczności.

vpit3833
źródło