Sono un programmatore freelance. La programmazione è stata il mio reddito principale da quando mi sono diplomato al liceo 9 anni fa. Ho ancora intenzione di laurearmi, ma al momento il momento non è ancora adatto a me.
Il mio percorso verso il riconoscimento autonomo è stato il seguente. Non sto dicendo che questi passaggi ti faranno riconoscere dalla comunità di programmazione, ma ti aiuterà ad aumentare la tua credibilità quando arriva il momento di intervistare.
Anche dopo che ero abbastanza esperto nella programmazione dell'IMO all'epoca, sono tornato alle basi e ho seguito i tutorial e mi sono costruito un portfolio basato su lavori ispirati da quelli. Ho anche iniziato a forzare me stesso a commentare il mio codice in modo simile a JavaDoc. Il portafoglio potrebbe non essere pieno di sfarzo e glamour in questo momento, ma ti dà una base da cui puoi costruire e eventualmente sostituire ciò che hai lì. Ho quindi avuto una serie di demo e esempi di codice da mostrare ai potenziali clienti. Questo è essenziale per ottenere il tuo primo lavoro. Nessuno vuole assumere qualcuno che non ha alcuna esperienza, tuttavia, ci sono un certo numero di persone che daranno la possibilità a un programmatore dall'aspetto promettente che non ha esperienza professionale.
Successivamente ho analizzato questi programmi e ho iniziato a scrivere librerie basate sui miei compiti più comuni. Con le mie nuove biblioteche ho iniziato a esaminare i problemi di CompSci su Internet e ho iniziato a programmare da solo il tempo necessario per creare una soluzione con le mie biblioteche. Ciò mi darebbe una base in futuro su ciò che dovrei addebitare per un compito specifico.
Fino a quel momento non avevo scoperto l'open source. Ho esaminato i progetti su sourceforge nella lingua che mi interessava e ho trovato applicazioni che potevo utilizzare. Ho installato queste applicazioni e ho iniziato a usarle come parte della mia esperienza informatica quotidiana. Sono stato in grado di vedere i punti di forza e di debolezza di queste applicazioni per quanto riguarda la mia interazione quotidiana e ho iniziato ad estenderle per soddisfare le mie esigenze. Inoltrerei le mie patch alla comunità in via di sviluppo per la revisione, e dopo alcune chiederei di diventare membro del progetto. È qui che ho imparato a utilizzare i diversi strumenti utilizzati quando lavoravo in un team che ha portato la mia "vasta esperienza", come la consideravo all'epoca, e la porta al livello successivo.
Ho adattato tutte le mie pratiche che avevo acquisito lavorando su progetti open source e implementato soluzioni acquistabili quando lavoravo come individuo. Ho iniziato a perseguire seriamente una carriera come sviluppatore freelance e mi sono unito a numerosi siti di reclutamento freelance. Ho guardato quali erano i lavori popolari e ho iniziato ad applicare. Per ogni lavoro che verrei rifiutato, lo completerei da solo come se avessi ottenuto il lavoro per ampliare le mie conoscenze. Ciò aiuterebbe a costruire il mio portafoglio e introdurmi ad alcune sfide del mondo reale. Quando finalmente ho ottenuto quella prima intervista, sono stato semplice, ho detto loro che non avevo alcuna esperienza professionale. Ho quindi iniziato a raccontare loro i progetti open source su cui avevo lavorato, cosa avevo realizzato lì. Ho incontrato alcuni ostacoli importanti e come li ho affrontati.