Wkład w projekt open source: jak zacząć

Projekty open source dały początek wielu przydatnemu oprogramowaniu na przestrzeni lat. Wiele wspaniałych technologii, z których korzystamy dzisiaj, powstało w wyniku rozwoju oprogramowania open source! Android, Firefox, odtwarzacz multimedialny VLC, MongoDB, Linux, Docker i Python, żeby wymienić tylko kilka.

Nawet wielu gigantów technologicznych zdaje sobie sprawę z korzyści i pozwala swoim pracownikom wziąć dzień wolny i poświęcić swój czas na projekty typu open source. W rzeczywistości wielu ma same projekty typu open source.

Jednak zdecydowana większość osób biorących udział w projektach typu open source nie pracuje dla gigantów technologicznych; każdy może zostawić swój ślad na ważnym oprogramowaniu lub stworzyć własną „następną wielką rzecz”. Uczestnictwo w projekcie typu open source może również pomóc Ci poprawić swoje umiejętności, nauczyć się czegoś nowego, uzyskać mentoring lub nawiązać przyjaźnie na całe życie. Wkład w projekty open source powinien być korzystny dla obu stron zarówno w krótkim, jak i długim okresie. Wiele firm aktywnie zatrudnia programistów pełnoetatowych spośród tych, którzy w największym stopniu przyczyniają się do projektu, dlatego może to być świetny sposób, aby pochwalić się umiejętnościami podczas nauki nowych.

Ten artykuł łączy kilka wskazówek, które dzielimy z tymi, którzy chcą zaangażować się w MindsDB, i chociaż każdy projekt jest inny, mam nadzieję, że te pomysły pomogą Ci zaangażować się w każdy projekt open source.

Strona GitHub MindsDB

Przed dokonaniem pierwszego wkładu

1. Oceń siebie:

Pierwszym krokiem jest ocena umiejętności technicznych lub nietechnicznych, które masz lub chcesz poprawić. Zastanów się, gdzie mogę dodać największą wartość? Może to bezpośrednio pomóc w pisaniu kodu, testowaniu błędów, a nawet w ulepszaniu dokumentacji, aby inni mogli efektywniej korzystać z oprogramowania.

2. Poznaj GitHub

Prawie wszystkie projekty open source korzystały z systemu kontroli wersji, narzędzia, które pomaga w scalaniu nowego kodu z projektem (główne „repozytorium”). Zazwyczaj współpraca koncentruje się wokół strony internetowej, na której znajduje się centralne repozytorium. Strony te obejmują Github, Bitbucket i Gitlab, które uważane są za najpopularniejsze i te, których używamy tutaj w MindsDB.

Ogólnie rzecz biorąc, systemy kontroli wersji umożliwiają śledzenie wszystkich zmian w projekcie bez zapisywania kilku plików. Załóż konto w Github, zaloguj się i przeglądaj wszystkie różne zakładki na górze strony. Tutaj znajdziesz informacje o Github, przewodniki rozwoju, projekty open source, wydarzenia, konferencje itp. Możesz dowiedzieć się wszystkiego o podstawach GitHub, postępując zgodnie z tym przewodnikiem tutaj.

3. Wyszukaj odpowiednie projekty i dołącz do społeczności

Wyszukaj odpowiednie projekty w Github na podstawie swoich skil1s. W tym celu możesz użyć Github Explore lub zarejestrować się w Code Triage, aby codziennie otrzymywać e-maile z różnymi problemami. Wybierając projekt na początek, poszukaj projektu, który jest aktywnie utrzymywany (mnóstwo zmian) i ma wiele problemów. Po znalezieniu odpowiednich projektów Star & Fork projektu zapisz się na jego listę mailingową i kanał slack. Jest to najlepszy sposób na uzyskanie pomocy, jeśli utkniesz w tworzeniu projektu lub wnoszeniu pierwszego wkładu.

Twój pierwszy wkład

1. Graj z oprogramowaniem: Znajdź błędy

Najpierw wypróbuj oprogramowanie, zainstaluj je i zagraj, spróbuj je złamać, zobacz, czy robi to, co jest napisane na pudełku. To świetne miejsce, w którym możesz bardzo łatwo zacząć dodawać wartość, zgłaszając wszelkie znalezione problemy. Każdy projekt może mieć nieco inny szablon zgłaszania problemów, ale zasadniczo wszystkie zawierają podobne informacje. (Szablon problemu MindsDB można znaleźć tutaj)

2. Poznaj istniejące problemy

Po ustaleniu projektu, do którego chcesz przyczynić się, przejrzyj jego repozytorium Github, przeczytaj dokumenty i przejdź do karty problemów. Tutaj znajdziesz wszystkie otwarte problemy, nad którymi możesz pracować. Problemy te mogą dotyczyć poziomu od początkującego do zaawansowanego. Jeśli repozytorium jest właściwie utrzymywane, problemy będą oznaczone jako „początkujący”, „nowicjusze”, „poszukiwani pomocy” itp., Abyś mógł pracować nad najłatwiejszymi zadaniami, aby zyskać zaufanie i doświadczenie w projekcie.

3. Pomóż ulepszyć dokumentację

Nie musisz jednak od razu kodować. Możesz przyczynić się do tworzenia dokumentacji, tworzenia przewodnika dla programistów, pomagania innym osobom w rozwiązywaniu ich problemów itp. Przeczytaj dokumentację, a jeśli uważasz, że czegoś brakuje, może to być świetne pierwsze miejsce. Możesz poruszyć problem lub, jeśli czujesz się wystarczająco pewny siebie, możesz samodzielnie dodać brakujące części. Tutaj możesz obejrzeć dokumenty MindsDB.

4. Zaproponuj nowe funkcje

Jeśli podoba Ci się projekt i okaże się przydatny, możesz również zacząć prosić o nowe funkcje, które pomogą go ulepszyć. (Możesz znaleźć nasz szablon tutaj). Lub jeszcze lepiej możesz spróbować je dodać samodzielnie.

Katedra i Bazar

Klasyczna książka o OSS to Katedra i Bazar. Bada rozwój w stylu „bazarowym”, podejście oddolne, które daje moc twórcom i użytkownikom. Porównując go ze stylem „katedralnym”, podejście odgórne, w którym władzę spoczywa na menedżerach i właścicielach produktów.

To właśnie z tych pomysłów zrodziły się podejścia do pracy, takie jak opisane w Manifeście Agile. Ale bez względu na to, jak wiele korporacji próbowało naśladować „bazarowe” podejście do rozwoju, nie mogą tego zrobić tak dobrze, jak projekty open source.

W świecie projektów korporacyjnych wiodącą rolę odgrywają architekci, menedżerowie i właściciele produktów. W świecie open source to użytkownicy i programiści kształtują specyfikacje.

Oprogramowanie typu open source jest świetne, ponieważ wykorzystuje „kolektywną inteligencję” jego twórców i użytkowników. Większość programistów w projekcie typu open source wywodzi się z głównej bazy użytkowników, większość „liderów” w projekcie typu open source to po prostu programiści, którzy wprowadzają najwięcej pomysłów i kodu.

To podejście „bazarowe” niekoniecznie jest lepsze niż podejście „katedralne”, ale warto spróbować tego systemu. Może dać nowemu deweloperowi dużą władzę nad oprogramowaniem, niezależnie od kryteriów zewnętrznych, takich jak wiek lub staż pracy w organizacji. Jedynym znakiem wymiany jest kod, im bardziej wartościowy jest wkład, tym bardziej wpływasz na projekt.

Jeśli nic więcej, powinieneś pracować nad niektórymi projektami typu open source, aby doświadczyć tego oddolnego stylu projektowania oprogramowania.

Kolejne cele jako programista open source

1. Weź udział w konferencjach

Jako programista open source możesz uczestniczyć w konferencjach i wydarzeniach związanych z kodowaniem i technologią. Możesz sprawdzić różne wydarzenia w Github Explore i spróbować uczestniczyć w wydarzeniach blisko Ciebie. MindsDB będzie organizować spotkania przez cały rok 2019; jeśli chcesz być na bieżąco z wszystkim MIndsDB, możesz zapisać się na naszą listę mailingową tutaj

2. Zarabiaj na rozwoju open source

Ogólnie rzecz biorąc, nie zarabia się za tworzenie oprogramowania typu open source, ponieważ większość wykonanej pracy jest dobrowolna. Jeśli jednak nie możesz sobie pozwolić na spędzenie nieodpłatnego czasu na rozwoju oprogramowania typu open source, możesz albo porozmawiać ze swoim pracodawcą i przedstawić pomysł na projekt, który może również zainteresować pracodawcę, lub znaleźć projekt, który płaci jego deweloperowi oprogramowania typu open source. Możesz dowiedzieć się więcej z przewodnika Github na temat zarabiania na rozwoju oprogramowania typu open source. Wiele firm (w tym MindsDB) również zatrudnia lub płaci za pracę swoim najlepszym współpracownikom.

3. Połyskuj swoje CV, bądź mentorem i aplikuj na konkursy typu open source

Powinieneś wspomnieć o wszystkich projektach, w których uczestniczyłeś w swoim CV lub dodać link do swojego konta GitHub w swoim CV lub w liście motywacyjnym. Większość pracodawców jest pod wrażeniem takich wyróżnień i woli takich kandydatów do zatrudnienia.

Możesz także zostać mentorem dla osób, które są nowicjuszami w dziedzinie rozwoju oprogramowania typu open source. Czas oddać społeczności i udzielić wskazówek tym, którzy dopiero zaczynają. Istnieje kilka programów, w których możesz zostać mentorem, np. Google Summer of Code, Rails Girls Summer of Code, Outreachy itp., Lub po prostu pomagając ludziom, odpowiadając na ich pytania na listach mailingowych lub StackOverflow.

Adam Carrigan jest współzałożycielem MindsDB, łatwego w użyciu narzędzia do dodawania uczenia maszynowego do twoich projektów i rozwiązywania problemów z danymi. Obserwuj mnie na Twitterze

Możesz również śledzić nasz projekt na GitHub i Twitterze