Cum să se alăture proiect open source, chiar dacă nu știi cum să scrie cod
Pentru a participa la proiecte opensorsnyh, tu nici măcar nu știu cum să program, dar, odată cufundat în lumea software-ului liber, puteți deveni condimente competenți și de a găsi un loc de muncă adecvat. Aici sunt zece sfaturi pentru a vă ajuta să găsiți drumul.
Kolivas con anestezist dezvoltat propria versiune a planificator pentru kernel-ul Linux. deoarece punerea în aplicare actuală a fost adaptat pentru sarcini de server și nu face bine cu utilizatorul.
Alexey Kuznetsov, care întâmplător a devenit un Linux-hacker. El a schimbat profesia cu un fizician teoretician de la programator de sistem.
Les Novaselskaya obține patolog speciale implicate în testarea proiectului c sursa deschisă.
Astfel de exemple sunt multe. Toți acești oameni sunt uniți de un singur lucru - au găsit o modalitate de a realiza interesele lor în proiectele opensorsnyh și să participe la acestea și pentru distracție, și pentru a câștiga experiență. A existat un fel de mit ca proiect open source - este doar pentru programatori, iar cei care au deja o vastă experiență în dezvoltarea. Dar acest lucru nu este cazul. Proiect open source - nu doar scris codul sursă, dar, de asemenea, de testare, suport tehnic, scrierea documentației, marketing și așa mai departe. Și este o mare șansă de a câștiga experiență, să construiască o carieră și să se bucure de comunicare cu colegii.
Potrivit unui sondaj site-ul opensource.com, principalul obstacol pentru participarea la proiect este deschis - oricine pur și simplu nu știu cum să se alăture. Va oferim mai multe modalități de a rezolva această problemă universală.
Scrie un nou cod
Pentru fiecare proiect, caracterizat prin propriile sale procese tehnice, astfel încât a afla mai multe despre ele, înainte de a oferi propria sa versiune. De exemplu, proiectul PostgreSQL strict reglementate toate procesele: modificări în codul este trimis sub forma unui plasture de a trimite principalii dezvoltatori care studiază cu atenție toate schimbările. Pe de altă parte, există și alte tipuri de proiecte, cum ar fi, de exemplu, Parrot, în cazul în care programatorii pot să se angajeze la magazia principală. În cazul în care proiectul folosește GitHub, eventual procese livrate prin intermediul cererii de tragere, adică, cererile pentru includerea modificărilor. În general, nu există două proiecte sunt identice.
Ori de câte ori rescrie codul, nu uitați că lucrați ca o echipă, așa că face tot posibilul pentru a se potrivi stilului dvs. cu stilul adoptat în proiect. În caz contrar, este același lucru cu a spune: „Nu-mi place stilul tău, ar trebui să faci la fel ca mine“
prioritizează bug-uri
Desigur, codul - fundamentul oricărui proiect open source, dar scrisul lui nu este singura modalitate de a participa. Suport tehnic de multe ori nu acordă suficientă atenție la urmărirea punerii în aplicare a noilor caracteristici și repararea bug-urilor. Și, de fapt, acestea sunt zonele care permit chiar și utilizatorilor începători să se alăture proiectului.
De exemplu, proiectul OpenVZ dispune de un sistem complet deschis funcționează cu defecte - bugs.openvz.org. în cazul în care toate problemele cunoscute (corectate și necorectate) pe parcursul duratei de viață a proiectului (aproape zece ani). Bug Tracker - unul dintre mecanismele de comunicare între dezvoltatori și utilizatori. lucru constant cu cererea actuală oferă o oportunitate excelentă de a contribui la proiect. Pentru a opera sistemul ar putea avea nevoie de permisiuni speciale, care vă oferă un manager de proiect, urmând principiile meritocrației.
Versiuni intermediare Testate
Din propria mea experiență pot spune că proiectele open source nu au întotdeauna resursele necesare pentru a avea un bun test funcționalitate nouă. Prin urmare, înainte de a adăuga schimbări majore în ramura principală a depozitului de cod sursă, proiectul urmărește să atragă mai multe persoane pentru a testa. Această practică se numește - apelul la testare (apel pentru testare). Proprietarii proiectului nu va fi niciodată la fel de mult configurații hardware și software, ca și comunitate. De exemplu, proiectul OpenBSD anunță o nouă funcționalitate în știri. pentru a atrage atenția utilizatorilor și testeri. Același lucru face proiectul OpenVZ.
Puteți lua parte la testarea și asigurați-vă că produsul funcționează pe o platformă sau alta. Cel mai probabil, va trebui să construiască și să instalați noul construi și testa produsul. Vei aduce o perspectivă deosebit de valoroasă în proiect, dacă utilizați hardware non-standard. Dacă ați confirmat că lucrările de asamblare și în astfel de condiții, acesta va ajuta managerii de proiect pentru a determina starea de eliberare curentă.
teste de scriere
Cele mai multe proiecte utilizate sisteme software, concepute pentru a testa codul și oricare dintre ele prevede adăugarea unui nou test. Utilizați instrumentele de testare, cum ar fi gcov pentru C, pentru a determina domeniile codului sursă care nu vă puteți testa testele existente. Apoi se adaugă testul corespunzător pentru a fi capabil de a testa funcționalitatea care aveți nevoie.
Corectarea erorilor și adaugă noi caracteristici
Patch pentru a remedia problema sau adăugați caracteristicile necesare - un fel de mod clasic de implicare în proiect open source (a început cu acest lucru în general, toate mișcării pentru software liber). Această metodă este recomandată și cunoscută maintainer comunitate Dzheyms Bottomli Linux (alias - CTO server de virtualizare departament Odin) pentru cei care doresc să participe la Linux-proiect, dar nu știe cum. De obicei, el dă exemplul unui caz în care l-au dus pentru a schimba funcționalitatea SIP-client Android. Găsirea că acest lucru nu este posibil, el a făcut un patch și a trimis proiectul SIPdroid.
La dezvoltarea de noi caracteristici precum și pentru a adăuga testul la testarea părților din codul pe care îl corectat; unele proiecte cer ca toate corecțiile de defecte sunt însoțite de teste corespunzătoare. înregistrarea de plumb ca maestru codul nefamiliare. Chiar dacă nu se poate face față cu bug-ul, descrie în biletul pe care ai aflat despre ea. Acest lucru va ajuta la membrii echipei care vor lucra cu bug-uri după tine.
Ajută la menținerea proiectului de infrastructură
Sunteți interesat de DevOps zona? Această tendință este foarte popular. Inginerii DevOps bune în România este foarte greu de găsit, știm din experiență. Câștigați experiență posibilă în proiectele în care dezvoltarea infrastructurii este deschisă. Este de proiecte, cum ar fi Wikipedia și Fedora Linux. OpenVZ face doar primii pași în această direcție.
Crearea unui proces continuu de integrare pentru componentele proiectului, componentele de ambalare pentru Linux-distribuții, mediu auto Developer - toate incluse în sarcina DevOps.
Scrierea și traducere
Evidența datelor - o parte de rutina a oricărui proiect, care este adesea neglijat. În plus, problemele de documentare pot fi adesea cauzate de faptul că este scris din perspectiva oamenilor care cunosc bine proiectul, mai degrabă decât cei care sunt familiarizați doar cu el.
Dacă citiți documentația privind proiectul ați vizitat vreodată ideea: „Se pare că a fost scris ca și cum știu deja cum să folosească programul“, atunci știi ce vreau să spun. Foarte des uite partea dezvăluie defectele din documentația curentă, care nu pot vedea participanții direcți ai proiectului. În plus față de proiectele dinamice de documentare devine depășită rapid, și trebuie să fie menținută la zi.
Dacă pentru un motiv cred că pentru a face acest lucru „nu este serios“, atunci te înșeli. Nu „grav“ sau „frivole“, o contribuție la proiectul open source. De exemplu, OpenBSD dezvoltator (în același timp și personalul CERN) Ingo Shvarts (Ingo Schwarze) a scris un mandoc utilitar. care este acum utilizat pentru formatarea pagini de documentație, nu numai în OpenBSD, dar în FreeBSD, NetBSD, DragonFly BSD. Pe drum, el a pus în ordine formatarea existentă a paginilor de documentare în proiect. Deci, totul depinde de ceea ce este interesant pentru tine. Daca sunteti interesati - Beris și de a face!
îi ajută pe alții
Cel mai bun mod de a uni echipa - este de a ajuta pe alții. Pentru a continua succesul proiectului este deosebit de important să se răspundă la întrebări, în special probleme legate de nou-veniți. De data aceasta nu va fi irosit, chiar dacă cineva pune o întrebare pe care o puteți găsi răspunsul după ce a citit documentația necesară. În plus, veți primi o nouă recunoștință și membru activ al echipei sale. Toate pentru a începe undeva, și fiecare proiect are nevoie de un flux constant de personal, pentru a continua să se dezvolte.
Dacă aveți un blog, și împărtăși experiențele lor, pe care le-ați primit în proiect. Spune-mi despre problemele pe care le-ați întâlnit în timp ce utilizați software-ul, și cum le-ai rezolvat. Deci, te pot ucide doi iepuri dintr-o piatră: pentru a menține atenția colegilor săi la proiect și să ofere o bază utilă de informații pentru cei care i se vor alătura în viitor și va fi în căutarea răspunsurilor la web descris deja conteaza pentru tine. Blog, spune despre realizările tale tehnice și rafinament - este, de asemenea, o modalitate foarte bună de a împărtăși experiențe reale și de a dezvolta soluții la probleme tehnice, care pot fi utile atunci când caută un nou loc de muncă. În multe proiecte, există agregatori intrările din blogurile participanților la proiect, în mod tradițional, se face referire ca „planete“: planetei kernel-ul Linux, Perl, OpenVZ, freedesktop, GNOME, Debian si altele.
concepeți
Design - este otrava de cele mai multe proiecte open source. site-uri plictisitoare și logo-uri neatractive însoțească proiecte pur și simplu pentru că oamenii tehnice mai ales fixație pentru punerea în aplicare, mai degrabă decât pe aspectul. Prin urmare, designerii participa extrem de bun venit. Membrii site-ul StackExchange a încercat să răspundă la întrebări „ca un designer grafic poate contribui la proiect open source“, „ceea ce motivează proiectantul pentru a participa la proiect deschis“, dar opiniile lor erau diferite. Designerii de compania Red Hat a realizat, de asemenea, necesitatea unei implicări mai active de designeri în proiecte open source, și a încercat să creeze un site web. care vă va ajuta să deschideți un proiect și designeri pentru a găsi unul pe altul, dar cazurile de punere în aplicare cu succes a proiectului nu este încă cunoscut.
Uita-te pentru sarcini care sunt de interes pentru tine și de ajutor la proiect, și să încerce să le rezolve. Modalități de participare pot fi diferite, uneori acestea sunt descrise în paginile speciale: OpenStack. OpenVZ. FreeBSD. Însăși existența unei astfel de pagini de proiect spune că este deschis participării altor persoane.
Pentru a realiza copii cuvintele noastre cu fapte, am colectat trei recenzii de oameni care au primit experiență profesională în proiecte open source.
Alexander Yurchenko, dezvoltator al companiei „Yandex“
La prima sa lucrare serioasă pentru bani (dezvoltator de sisteme integrate), am venit mai mult de un an, indiferent de dezvoltator oficială a sistemului de operare OpenBSD liber nucleu. Oficial - în sensul că a avut acces de scriere la magazia. Și acest lucru este încă aproximativ un an am fost un „spectator“ trimite patch-uri pentru dezvoltatori.
Trebuie să spun că participarea la un astfel de proiect oferă o experiență mare. Într-un bun proiect de mare open source este tot ceea ce este de obicei necesară de către dezvoltator în timpul interviului: proiectarea și competent și de codificare bună, precum și abilitatea de a lucra cu versiunea de control și bug tracker și peer review, munca in echipa, etc ... și m. n. astfel, „Gatiti“ an sau într-o astfel de atmosferă, ea poate crește cu ușurință la un nivel care corespunde dezvoltator senior poziție.
De fapt, mi-a fost. Nu am avut nici o experiență formală (pe forța de muncă), dar am luat doar un dezvoltator senior. Și, după prima săptămână a perioadei de probă a fost redus de la trei luni la zero.
Kirill Gorkunov, dezvoltator de proiecte si OpenVZ CRIU
Am lovit OpenVZ destul de accident. La locul de muncă ocupat în principal de programare a aplicațiilor, aproape nu au puncte de intersecție cu sistemul. La un moment dat, și-a dobândit primul laptop pe 64 de biți (Acer cu AMD Turion 64), bine, pentru că Windows pe 64 de biți nu a fost la îndemână, am pus Gentoo. Cu Linux, până când a avut cunoștințe puțin, astfel încât să se joace pune unele vechi Red Hat, dar el nu ma impresionat în mod special, și pentru a rezolva problemele actuale ale lucrătorilor, acest sistem de operare nu este potrivit. În conformitate cu Gentoo laptop mult sau mai puțin prelucrate, dar unii șoferi nu au fost nucleu ca standard, așa că a trebuit să colecteze kernel-ul de la sursă.
Aici am prins mai întâi bug-ul, deși nu în nucleu, și în programul de formare a configurației kernel-ului. Poryskat pe web - solutii nici o problema, ei bine, el sa aventurat să încerce să-l repare. Sa dovedit, a trebuit să se ocupe de o varietate de sarcini similare (cum ar merge la miezul a ceea ce sunt folosite unelte, și așa mai departe). Patch a făcut, a trimis la lista de discuții. Spre surprinderea mea, maintainers de bază a reacționat foarte favorabil chiar și la o astfel de patch-uri „curve“ (O să-ți spun că a trebuit să se schimbe, ca plasturele a fost dezgustător, pur și simplu nu a început imediat pentru a da „turn poarta“), nu a fost un chicotit spre începător: să explice ce și cum, și a arătat cum se face corect.
Ceva de genul asta mi sa întâmplat: câțiva ani regulile de ceva în codul, patch-uri trimise, primite de la mâinile de curba a codului și a aprobării, în cazul în care plasturele a fost un bun și frumos. O astfel de experiență este de fapt neprețuit. Și poți fi sigur că, dacă începe pentru a obține ceva, atunci imediat, va exista o ofertă de muncă. Așa că am intersectat cu dezvoltatorii de nucleu Linux din OpenVZ. Ei bine, apoi a decis să lucreze împreună la programele de bază și OpenVZ conexe, fără a uita, desigur, și pe kernel-ul de vanilie.
Deschiderea proiectului - un ajutor extrem de important în pregătirea programării practice, dar trebuie să înțelegem că proiectul de design discordie și deschiderea în sine nu garantează calitatea codului. Dacă încărcați codul Githab, el nu devine o sursă bună.
Alexander Polyakov, un dezvoltator
Cred că povestea mea personală nu este original. Așa cum se întâmplă de obicei - de a începe să utilizați unele software-ul, și dintr-o dată se dovedește că am dori să facem ceva nu a funcționat foarte bine, sau lipseste ceva, sau există o bancuri de nisip urât. În cazul open source are posibilitatea de a corecta singur. Deci, a fost cu DWM fereastra de manager, care ma iritat prin configurarea config.h c recompilare: În primul rând, am adăugat config prin xrdb, apoi faceți clic să se concentreze, și așa mai departe. Aceste modificări nu se potrivesc cu ghidul de design minimalist, așa că a trebuit să facă o furculiță.
C DragonFly BSD este aproximativ la fel: ispititoare texte de pe site-ul suna interesant, FreeBSD obosit, dar dintr-o dată sa dovedit că există un sprijin slab pentru alte limbi decât engleza, și Power Management (ACPI). A trebuit să iau secțiunile de cod de portare necesare ale unei versiuni mai recentă de FreeBSD. a ajutat Profund alți dezvoltatori c IRC-canal, explica ce este ceea ce, si ajuta la rezolvarea problemelor. Acolo am primit ceva experiență de dezvoltare a sâmburelui și a sistemului de biblioteci. Cu toate acestea, a reușit acest lucru pentru a face niște bani - era un om de la Moscova, care este utilizat în Dragonfly BSD prodakshene și, de asemenea, ceva ce au vrut să tweak în ACPI. Am găsit-mă prin jurnalul de git, contactat prin e-mail.
În OpenBSD, eu sunt doar lucruri mici unele patch-uri arunca - în CWM ceva dopilivat pentru comoditate (în wm'ah ceva ce am fost deosebit), în KSH corectate câteva stocuri și îmbunătățite modul vi. În cadrul acestui proiect, legat de noi colaboratori nu este cel mai bun - se presupune că te vei intelege peste tot si numai dupa aceea va scrie în buletinul informativ. o barieră ridicată la intrarea pe piață, supraviețui doar cele mai persistente, dar codul se dovedește bine.
Am participat la 9front. Modificat driver pentru Wi-Fi și este deja familiar pentru mine ACPI. Ei au, probabil, cea mai mică punerea în aplicare de lucru a LMA interpret. Fundamentul relativ compacte (în comparație cu sistemul „normal“ de operare), deci mai ușor de înțeles. Acesta sa lăudat în interviu, modul în care a ajutat (sau invers) - Nu știu.
Acesta este modul în care puteți câștiga experiență în proiecte open source. Principalul lucru - nu vă fie frică pentru a trimite codul de curba (se întâmplă la toate), să rămână calm (când flamed) și selectează proiectele pe care le sunt cu adevarat interesante. Iar experiența te și bucurați-vă. Există încă o șansă pe care angajatorul se va găsi pe profilul comite sau în Githabe (Bună ziua, Google!).
Arată acest articol unui prieten: