CodeGym/Java Blog/Random-IT/Non c'è bisogno di combattere il male nello sviluppo, ma ...
John Squirrels
Livello 41
San Francisco

Non c'è bisogno di combattere il male nello sviluppo, ma nemmeno di toccarlo: la storia di Irina la Programmatrice

Pubblicato nel gruppo Random-IT
membri
Sappiamo che gli studenti di CodeGym vogliono ascoltare le storie di coloro che già lavorano nel settore IT. Quindi abbiamo preso in mano la situazione e abbiamo lanciato una serie sugli sviluppatori di vari paesi e aziende, che hanno completato la nostra formazione Java. Questa storia parla di Irina. A scuola e all'università amava le scienze tecniche. Sapeva qualcosa di programmazione, ma ha scelto di lavorare nella pubblicità contestuale. Tuttavia, Irina voleva cimentarsi nello sviluppo. Un giorno, ha ricevuto un'e-mail che la informava che stavano assumendo stagisti sviluppatori per un particolare servizio. E anche se la nostra eroina non ha superato il colloquio, l'esperienza l'ha motivata a iniziare a imparare Java."Non c'è bisogno di combattere il male nello sviluppo, ma nemmeno di toccarlo": la storia di Irina la Programmatrice - 1

"Volevo assolutamente mettermi alla prova nello sviluppo"

Dopo la terza media, quando ho dovuto scegliere la direzione per gli studi successivi (ad esempio percorso tecnico, umanitario, economico e medico), ero diviso tra il percorso umanitario e quello tecnico. Per me, le discipline umanistiche hanno rappresentato una carriera da giornalista, denunciando il male e difendendo le buone cause in tutto il mondo. Mentre contemplavo la pista tecnica, ho pensato, se non sto combattendo il male, almeno non la toccherò. Ho seguito il percorso di minor resistenza e ho scelto il percorso tecnico. Dopo la scuola, sono entrato all'università, specializzandomi in Informatica e Ingegneria Informatica. Purtroppo, l'università non forniva alcuna competenza in nessuna lingua specifica. In modo sconnesso, ho imparato alcune cose su C++, C#, JavaScript e layout dell'interfaccia utente. Al terzo anno, mi sono interessato casualmente alla pubblicità contestuale e mi è capitato di trovare lavoro presso un'azienda abbastanza nota. Di conseguenza, sono rimasto nella pubblicità per 2 anni. Ho avuto discreti successi, ma volevo assolutamente mettermi alla prova nello sviluppo. Anche il mio ritorno alla programmazione è avvenuto senza un piano ben ponderato: ho ricevuto un'e-mail al lavoro su un nuovo servizio che cercava di assumere stagisti sviluppatori Java. Ho deciso di andare a un colloquio. Naturalmente a quel tempo le mie conoscenze di base non erano sufficienti per ottenere un'offerta, ma questo episodio mi ha spinto a cercare alcune risorse su Java. Mi sono imbattuto in questo corso su Internet. All'inizio non mi hanno catturato: tutte le immagini divertenti e le storie dei robot mi facevano sembrare poco serio, ma mi piaceva molto la possibilità di esercitarmi e verificare i miei compiti. Ho indugiato e ho deciso di provarlo, e poi sono stato coinvolto.

"Ho fallito i primi colloqui"

Ho studiato senza orari rigidi, a singhiozzo: durante le pause di lavoro, a volte di notte. Verso il livello 16-17 ho iniziato a provare a cercare un lavoro. A quel punto studiavo da circa tre mesi con alcune pause. Se non hai esperienza lavorativa, a loro piace chiedere informazioni sugli algoritmi, ma anch'io li conoscevo a malapena. Quindi ho fallito i primi colloqui. Ho dovuto prepararmi di più, cercare le domande più frequenti e memorizzarne le risposte. Ho imparato urgentemente SQL, studiato sistemi di controllo delle versioni del codice (IMO, CodeGym menziona Git a un livello irragionevolmente avanzato, non fino al livello 30) e principi SOLID e ho imparato algoritmi di ordinamento. Alla fine, sono stato assunto come sviluppatore junior presso una piccola azienda. I miei compiti nel mio primo lavoro erano estremamente banali: sviluppare nuove funzionalità di sistema, perfezionare le funzionalità esistenti, correggere bug. Abbiamo utilizzato la metodologia a cascata: un uomo d'affari invia un'attività, un analista la descrive un po' più in dettaglio, uno sviluppatore la implementa, un analista la testa e quindi lo sviluppatore la inserisce nel prodotto. Non abbiamo utilizzato tecnologie speciali: abbiamo scritto tutto in puro Java, un monolite anziché microservizi. Per lavorare con il database, abbiamo utilizzato il nostro framework closed source proprietario. All'inizio ci sono state tantissime difficoltà: dall'imparare a caricare il progetto nel repository, a come scrivere una richiesta nel database in modo che non scada. Ho dovuto cercare molto su Google per lavorare con JSON, SOAP, su cosa sia Maven e su come costruire un progetto Maven. Non ho abbandonato l'apprendimento. Ho provato a studiare almeno a giorni alterni, ma ci sono stati un paio di volte in cui ho dovuto metterlo da parte per un mese. Ma il mio obiettivo era finire i tanto amati 40 livelli. Parallelamente ho seguito un corso sul framework Spring. La primavera mi ha aperto tantissime nuove opportunità e le offerte che ricevo grazie al mio curriculum si sono moltiplicate molte volte. Durante la quarantena ho cambiato lavoro e sono passato a un progetto con un'architettura a microservizi. Stiamo creando un servizio per la ricerca, la vendita, l'acquisto e la locazione di immobili residenziali e commerciali, nonché per la richiesta e il servizio di mutui. L'80% dei nostri servizi sono scritti in Kotlin. Il restante 20% è scritto in Java.

I miei progetti per il prossimo futuro sono:

  1. Immersione più profonda nell'architettura. Vorrei approfondire la progettazione dell'architettura backend.

  2. Imparare il C++. Penso che questo sarà sicuramente utile per qualsiasi programmatore: essere in grado, se necessario, di scrivere le parti di un'applicazione che devono essere eseguite eccezionalmente velocemente. Questo sarà utile per qualsiasi calcolo matematico complesso.

  3. DevOps. Alcune aziende rendono addirittura questa competenza un requisito obbligatorio per i programmatori. E sarà sicuramente utile in qualsiasi altra azienda.

Non ho alcun rimpianto per il fatto che in prima media ho optato per il percorso tecnico e che due anni fa ho avuto il coraggio di lasciare la pubblicità e iniziare la carriera di programmatore. Lo sviluppo è una sorta di magia, un modo per rendere semplici le cose complesse per le persone, per sostituire la confusione con la chiarezza. Attualmente sto cercando di convincere mio fratello minore di 12 anni a interessarsi alla programmazione. Un anno fa gli ho regalato uno starter kit Arduino e sto pensando di comprargli un libro sulla codifica Python per Minecraft. Quando sarà un po' più grande, gli farò conoscere CodeGym. Penso che gli piacerà. Una cosa importante che ho ricevuto da CodeGym è la consapevolezza che non dovresti davvero aver paura di pagare per dei buoni materiali. Pagherà centuplicato.

Suggerimenti per gli sviluppatori principianti:

  • Continua la programmazione. Il lavoro di un programmatore consiste interamente nel risolvere determinati problemi, nel trovare determinati errori e nel correggerli. A volte questo può (e sicuramente lo sarà!) sembrare insopportabilmente difficile, noioso e irritante, ma quando finalmente risolvi il problema, sembra una vera svolta, una vittoria, quasi una scoperta. E questo ciclo si ripete. Rabbia, accettazione, lunghi tentativi e infiniti fallimenti, poi la vittoria. L'emozione del lavoro di un programmatore sta nell'anticipazione della prossima svolta e vittoria. "Non c'è bisogno di combattere il male nello sviluppo, ma nemmeno di toccarlo": la storia di Irina la Programmatrice - 2
  • Continua ad imparare quando e dove possibile. Leggi articoli e libri. Trova e segui corsi in varie aree dello sviluppo software. Assicurati di provare nuove tecnologie. Applicali ai tuoi progetti personali. Interagisci con altri appassionati di sviluppo software. Scambiare esperienze e idee. C'era una volta parlare con persone così ambiziose che mi ha aiutato a non languire nella mia prima azienda e a non aver paura di andare avanti.

  • Da qui il mio terzo consiglio: non aver paura di cambiare le cose : un nuovo lavoro, un nuovo framework, una nuova lingua (perdonami, CodeGym). Tutte le mie principali vittorie su me stesso sono avvenute esattamente nel momento in cui ho cambiato lavoro. Inizialmente, sembra spaventoso andare da qualche parte senza padroneggiare completamente la tecnologia o la lingua, ma questo stimola molta crescita, mentre studi questa tecnologia o lingua sconosciuta. Il tuo secondo vento entra in gioco e trovi un significato speciale nel comprendere e studiare qualcosa di nuovo.

  • Sii ragionevole nel valutare i tuoi punti di forza. Anche se riesci a combinare lavoro, studio indipendente a casa, alcuni corsi online, università e magari una famiglia, per un po’, c’è una grande possibilità che ti sentirai esausto. Sfortunatamente, conosco alcuni ragazzi che si sono esauriti e hanno abbandonato la programmazione dopo un lungo periodo di università, lavoro retribuito e lavoro come stagista sviluppatore non retribuito. Se avessero preso un giorno libero o un permesso accademico in più all'università, se si fossero presi un giorno di vacanza e avessero messo da parte lo studio, se si fossero presi una pausa dai corsi online per qualche settimana, allora forse tutto sarebbe andato bene diversamente.

Commenti
  • Popolari
  • Nuovi
  • Vecchi
Devi avere effettuato l'accesso per lasciare un commento
Questa pagina non ha ancora commenti