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.
źródło
Odpowiedzi:
+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.
źródło
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:
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!
źródło
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.
źródło
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
Aby dostać się do projektów Open Source, popatrz na OpenHatch - to ich cała misja:
źródło
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.
źródło