Come Diventare un Hacker del Software Libero

Scrivere e usare il software libero non è solo un modo di programmare, ma una vera e propria filosofia a tutti gli effetti. Se conoscere un linguaggio di programmazione è (più o meno) tutto ciò che devi sapere per essere in grado di programmare, questo articolo ti spiegherà anche come unirti alla comunità hacker, trovare amici, realizzare un ottimo lavoro insieme e diventare uno specialista rispettato con un profilo impossibile da creare in altri modi. Nel mondo del software libero puoi ottenere facilmente compiti che in un contesto aziendale vengono invece riservati e concessi solo ai massimi esperti, all'élite di programmatori. Pensa a quanta esperienza sul campo potrai ricevere. Tuttavia, una volta deciso di diventare un programmatore (o hacker) di software libero, devi essere pronto a investire molto tempo per raggiungere questo obbiettivo, anche se sei già studente di informatica. Questo articolo non tratta minimamente le modalità per diventare un pirata informatico (o cracker).

Passaggi

  1. 1
    Procurati una buona distribuzione Unix. GNU/Linux è una delle più popolari per la programmazione hacking ma spesso anche GNU Hurd, BSD, Solaris e (più o meno) Mac OS X vengono usate.
  2. 2
    Impara come usare la riga di comando. Puoi fare molto di più con un sistema operativo Unix se utilizzi l'interfaccia a riga di comando.
  3. 3
    Impara alcuni linguaggi di programmazione popolari fino a un livello relativamente soddisfacente. Senza di essi, non sarai in grado di contribuire programmando (la parte più importante di ogni progetto) per la comunità di software libero. Alcune fonti suggeriscono di cominciare in contemporanea due linguaggi di programmazione: uno di sistema (C, Java o simili) e uno di scripting (Python, Ruby, Perl o simili).
  4. 4
    Per essere più produttivo, impara a usare Eclipse o altri strumenti di sviluppo integrato simili.
  5. 5
    Impara e utilizza editor avanzati come VI o Emacs. Le difficoltà di apprendimento sono maggiori ma sarai in grado di fare molto di più con questi strumenti.
  6. 6
    Impara il controllo versione. Il controllo versione è molto probabilmente lo strumento di cooperazione più importante per lo sviluppo di software condiviso. Comprendi come creare e applicare aggiornamenti dal momento che la maggior parte dello sviluppo di software libero nella comunità viene eseguito proprio creando, discutendo e applicando i vari aggiornamenti e patch.
  7. 7
    Trova un progetto di software libero adatto e di dimensioni ridotte a cui puoi aggiungerti facilmente per fare esperienza. La maggior parte dei progetti di questo tipo oggi si possono trovare su SourceForge.net. Il progetto adatto deve:
    1. Utilizzare il linguaggio di programmazione che conosci.
    2. Essere attivo, con distribuzioni recenti.
    3. Avere già dai tre ai cinque programmatori.
    4. Utilizzare il controllo versione.
    5. Avere alcune parti che pensi di poter cominciare a mettere in pratica immediatamente senza modificare troppo il codice esistente.
    6. Oltre al codice, un buon progetto possiede liste di discussione attive, bug report, accoglie e mette in funzione le richieste di miglioramento e mostra attività simili.
  8. 8
    Contatta l'amministratore del progetto che hai scelto. In un progetto di dimensioni ridotte, con pochi programmatori, il tuo aiuto dovrebbe di solito venire accettato immediatamente.
  9. 9
    Leggi con attenzione le regole del progetto e cerca di seguirle a grandi linee. Le regole dello stile di programmazione o la necessità di documentare le tue modifiche in un file di testo separato potrebbero sembrarti ridicole all'inizio. Tuttavia, lo scopo che hanno è quello di rendere possibile il lavoro condiviso, motivo per cui la maggior parte dei progetti le utilizza.
  10. 10
    Lavora a questo progetto per alcuni mesi. Ascolta con attenzione quello che dicono l'amministratore e gli altri membri del progetto. Oltre alla programmazione, ci saranno un sacco di altre cose da imparare. Se però davvero c'è qualcosa che non ti piace, sentiti libero di andartene semplicemente e cercare un altro progetto.
  11. 11
    Non rimanere vincolato al progetto di dimensioni ridotte troppo a lungo. Non appena ti ritrovi a lavorare con successo in quella squadra, è tempo di cercare qualcosa di più serio.
  12. 12
    Trova un progetto di software libero serio, di alto livello. Le organizzazioni GNU o Apache sono i proprietari della maggior parte dei progetti di questo tipo.
  13. 13
    Siccome ora stai compiendo il grande passo, sii pronto per un'accoglienza ben più fredda. Ti verrà chiesto probabilmente di lavorare per un periodo di tempo senza avere accesso diretto al codice repository. Il progetto minore precedente tuttavia, dovrebbe averti insegnato parecchio. Dopo parecchi mesi di contributi produttivi potrai quindi provare a chiedere i diritti che pensi ti dovrebbero cominciare a spettare.
  14. 14
    Prendi e porta a termine un lavoro serio. È tempo, non avere paura. Vai avanti anche dopo aver scoperto che il compito è molto più difficile di quello che avevi pensato all'inizio, in questo momento, è molto importante non mollare.
  15. 15
    Se riesci, fai domanda col tuo lavoro serio al "Summer of Code" di Google per ottenere qualche soldo da questa avventura. Ma non ti preoccupare in alcun modo se la domanda non viene accettata dal momento che hanno molte meno possibilità di finanziamento che programmatori veramente bravi.
  16. 16
    Cerca una conferenza adatta nelle vicinanze (una "Giornata Linux" o qualcosa di simile) e prova a presentare lì il tuo progetto (tutto il progetto, non solo la parte che stai programmando tu). Dopo aver informato gli organizzatori che stai rappresentando un progetto libero/open source serio, di norma dovresti essere esonerato dal pagamento dell'ingresso alla conferenza (se non lo fanno, la conferenza non è probabilmente adatta in ogni caso). Porta il tuo portatile con Linux (se ne hai uno) e fai partire le demo. Chiedi all'amministratore del progetto il materiale che potrebbe servirti per preparare il tuo discorso o la tua presentazione.
  17. 17
    Cerca su internet annunci riguardanti una festa di installazione che ha luogo nelle vicinanze e prova a unirti, come utente la prima volta (cercando di osservare i vari problemi e il modo con cui i programmatori li risolvono), e come installatore quella successiva.
  18. 18
    Porta a termine il lavoro, completalo con testi automatici e porta il tuo contributo al progetto. Hai finito! Per esserne sicuro, prova a incontrare di persona gli altri programmatori del progetto per una birra.
  19. 19
    Per una comprensione migliore, cerca un esempio concreto di progetto di software libero (vedi sopra) nella cronologia di sviluppo. Ogni curva crescente rappresenta un contributo (linee di codici) da parte di un singolo sviluppatore. Gli sviluppatori tendono a diventare meno attivi con il passare degli anni ma la velocità del progetto spesso addirittura cresce quando si aggiungono nuove persone. Quindi se arrivi già con delle capacità utili, non ci sono ragioni per cui il team scelga di non invitarti.

Consigli

  • Prima di fare qualsiasi domanda riguardo le regole di comportamento nel progetto, cerca di trovare le risposte nella documentazione del progetto e negli archivi della mailing list.
  • Continua sempre la programmazione che hai cominciato. Non funziona, va in crash? C'è una ragione per tutto e se hai disposizione il codice sorgente, di solito significa che puoi forzare il sistema a fare qualsiasi cosa tu voglia, specialmente con l'aiuto della ricerca sul web. Questa regola ha i suoi limiti ma, nel complesso tende a rimanere valida.
  • Definisciti un hacker solamente dopo che qualche vera comunità di hacker ti abbia riconosciuto come tale.
  • All'inizio, scegli una classe, un modulo o qualche altra unità alla quale nessuno stia lavorando attivamente al momento. Lavorare insieme alla stessa classe o anche solo alla stessa funzione necessita capacità maggiori e moltissima cura da parte di tutti.
  • I datori di lavoro di alcuni programmatori hacker sembrano avere motivazione sufficiente da consentire contributi ai progetti open source durante l'orario di lavoro (di solito perché la compagnia stessa utilizza il programma open source che l'hacker sta sviluppando). Pensaci, potresti riuscire a ottenere almeno parte del tempo necessario in questo modo.
  • Se ancora non hai abbastanza fiducia in te stesso, comincia da alcune parti del codice che pensi siano mancanti e possano venire scritte da zero. Modifiche al codice esistente hanno più probabilità di divenire oggetto di critica.

Avvertenze

  • Nei meeting informali di un progetto (come una birra fuori la sera) a cui non hai ancora contribuito in alcun modo, potrai avere la spiacevole sensazione di essere totalmente ignorato. Non ti preoccupare, alcuni hacker diventano ottimi amici più avanti, una volta ottenuto rispetto con i tuoi contributi alla programmazione.
  • Non cominciare da piccoli perfezionamenti del codice, commenti accessori, miglioramenti dello stile di programmazione e altre cose di "piccolo calibro". Rischi di attrarre molte più critiche che contributi seri. Raccogli invece tutti questi elementi in un singolo aggiornamento (patch) di 'cleanup'.
  • La tua reputazione di hacker nella comunità del progetto rispecchia maggiormente il tuo presente che il passato. In particolare, se vuoi essere raccomandato, referenziato o qualunque cosa di simile dal leader del tuo progetto chiedigli di farlo quando stai ancora contribuendo attivamente.
  • Evita di fare qualsiasi domanda connessa ai fondamentali o agli strumenti di programmazione. Il tempo di un programmatore di software libero è prezioso. Al contrario, discuti le basi della programmazione in forum o ambienti per neofiti e principianti.
  • Se la parola "hacker" suscita rispetto nella maggior parte degli ambienti accademici, da qualche persona disinformata potrebbe venire associata a operazioni illegali nei sistemi di sicurezza o a crimini informatici simili compiuti da gruppi di persone con intenzioni differenti (detti cracker in gergo). A meno che non tu sia disposto a spiegare ogni volta, fai attenzione alla persona con cui stai usando questa parola. I veri hacker, così come vengono intesi in questo articolo, non partecipano mai ad attività di programmazione che possano anche solo apparire loro illegali. Innanzitutto, sono fieri di seguire l' etica hacker e in secondo luogo, le violazioni della legge non vengono necessariamente pagate meglio.
  • Se hai intenzione di incontrare faccia a faccia degli hacker del software libero, lascia sempre a casa il tuo portatile con Windows. I Mac vengono in qualche modo tollerati di più, ma comunque non sono i benvenuti. Se porti con te il portatile, deve avere installato Linux o un altro sistema operativo che sia considerato "software libero".
  • Nel mondo di cooperazione del software libero quando programmi, in rari casi perfino l'intero progetto del tuo gruppo può venire improvvisamente sostituito dal contributo di qualcun altro. Degli hacker maturi danno il "benvenuto" e traggono benefici dal nuovo codice reso disponibile, e non c'è modo migliore di reagire. Quest'attitudine tuttavia, non sorge spontanea e va imparata e migliorata con tempo ed esperienza.
  • Per lo stesso motivo, non ti aspettare mai che un hacker più esperto si metta a fare una descrizione dettagliata del tuo compito o ti fornisca un qualsiasi tipo di supervisione. Sebbene i progetti open source possano spesso avere numerose regole strette, funzionano di solito sulle linee guida di quello che è conosciuto come l'extreme programming nella metodologia di sviluppo del software.
  • Se il tuo client di posta elettronica supporta i messaggi html, disattiva questa funzione. Non mandare mai in allegato documenti che solo software di proprietà (come Microsoft Word) sono in grado di aprire adeguatamente. Gli hacker lo prendono come un insulto.
  • Non contribuire volontariamente a progetti di proprietà di aziende che non rilasciano alcune parti del codice sotto una licenza open source approvata. In questi casi è più probabile che le parti veramente importanti del progetto restino nelle cartelle private dei proprietari, impedendoti di imparare qualcosa di utile.
  • Non iniziare cominciando un progetto tuo personale, a meno che tu non voglia restare in un'orgogliosa solitudine per sempre. Per lo stesso motivo, non iniziare dal tentativo di far rinascere un progetto abbandonato che ha già visto dileguarsi il suo team precedente.
  • I progetti già molto di successo possono avere regole, scritte o no, che non ti danno niente in cambio del lavoro che fai (niente denaro, possibilità di auto promuoversi, posizioni di prestigio, ecc) a prescindere dai contributi, come ad esempio nel caso di wikipedia). Se un'attitudine del genere non ti va a genio, resta su progetti che siano più di media taglia e non possono permettersi un comportamento simile.
  • Progetti di software libero di grandi dimensioni, specialmente attorno al dominio GNU, non considerano il tuo lavoro (di professione, pagato) una questione privata. Se ottieni o cambi lavoro in un'azienda informatica, spesso richiedono al tuo datore di lavoro di firmare alcuni accordi [1] che questi potrebbe decidere di firmare o meno. Questo può spingerti a scegliere il progetto con le condizioni meno esigenti.

Cose che ti Serviranno

  • Linux. Molti progetti di software libero sono o troppo complicati da programmare in ambiente Windows o per nulla in grado di essere programmati in modo adeguato. È particolarmente significativo per i progetti avanzati, rivolti alla programmazione di software per telefoni cellulari, mini computer, chiavette USB e altri dispositivi simili.
  • Un computer con una connessione a internet relativamente buona. Se vuoi mantenere il doppio boot con Windows, un secondo hard disk o una partizione specifica per Linux costituiscono una buona soluzione.
  • Conoscenza di base di almeno un linguaggio di programmazione e una forte volontà di imparare di più a riguardo. I linguaggi più diffusi al momento sembrano essere C e Java.
  • Una considerevole quantità di tempo, almeno 5 ore a settimana (un tipico hacker irriducibile contribuisce anche per 14 ore).
  • Sebbene la formazione ufficiale in scienze informatiche ti renderebbe la strada decisamente più facile e spianata, non ne avrai bisogno come condizione necessaria e nessuna vera comunità di hacker te la chiederà mai. Gli hacker si giudicano a vicenda dall'operato svolto nella programmazione e non da falsi criteri come titolo di studio, età, razza, o posizione sociale. In ogni caso, almeno il 60 % degli hacker che controlla i tuoi aggiornamenti possiede a tutti gli effetti il diploma universitario "giusto" e non ti permetterà di compiere alcuna operazione senza senso nel progetto.
  • Durante gli ultimi passaggi (conferenza e festa di installazione) trarrai vantaggi dall'avere a dietro il tuo computer portatile. Tuttavia, spesso, non è adeguato per lavorare da casa, quindi compralo solo se puoi permettertelo come seconda macchina.
  • Il percorso indicato per diventare programmatore hacker necessita di almeno un paio d'anni per essere completato.

Informazioni sull'Articolo

wikiHow è una "wiki"; questo significa che molti dei nostri articoli sono il risultato della collaborazione di più autori. Per creare questo articolo, 39 persone, alcune in forma anonima, hanno collaborato apportando nel tempo delle modifiche per migliorarlo.

Categorie: Programmazione

In altre lingue:

English: Become a Free Software Hacker, Español: ser un hacker de software libre, Português: Se Tornar um Hacker do Software Livre, Русский: стать хакером свободного программного обеспечения, Deutsch: Ein freier Software Hacker werden, Français: devenir un développeur de logiciels libres, Nederlands: Een programmeur worden van open software, العربية: أن تصبح خبيرا في البرمجيات الحرة, Bahasa Indonesia: Menjadi Peretas Perangkat Lunak Gratis, Tiếng Việt: Trở thành nhà phát triển phần mềm tự do, 中文: 成为一名自由软件黑客

Questa pagina è stata letta 2 101 volte.
Hai trovato utile questo articolo?