Eugene Cozac sul diventare uno sviluppatore di alto livello
Pubblicato: 2022-10-26TechBullion: Come ti sei avvicinato alla programmazione?
Eugene Cozac: Crescendo ho scoperto il mio interesse per la matematica e le scienze STEM. Ho iniziato a programmare da solo e, naturalmente, quando ho finito il liceo, ero sicuro al 100% di voler lavorare nell'IT. Quindi, mi sono laureato in Ingegneria Informatica presso la migliore università della Moldova. Prima di iniziare a programmare ho assemblato più di 300 computer poiché la mia prima laurea era in Ingegneria Informatica.
TechBullion: Qual è stato uno dei progetti più impegnativi per te all'inizio?
Eugene Cozac: Beh, non posso dire di aver avuto delle difficoltà proprio all'inizio. Ma ce n'è stato uno nel terzo anno della mia carriera quando sono diventato uno sviluppatore front-end per Samsung Pay. Dato che ero il principale sviluppatore dell'interfaccia utente di Samsung Pay Promotions, ero responsabile di tutto. All'epoca Samsung Pay contava più di 15 milioni di utenti e qualsiasi problema o bug poteva influenzare la loro esperienza. Se qualcosa andava storto in un dato momento, tutti gli utenti potevano vederlo. Quindi sono stato molto attento e ho cercato di fornire la massima qualità possibile.
TechBullion: Di solito, le persone sono specializzate in un ambito ristretto di linguaggi di programmazione. Come sei finito per essere così completo in termini di linguaggi di programmazione?
Eugene Cozac : Di solito, il percorso di carriera di uno sviluppatore è fondamentalmente una promozione dal livello Junior a quello Senior nel tempo, con il miglioramento delle loro competenze. Ma questo non basta. La maggior parte degli sviluppatori lavorerebbe probabilmente nella stessa azienda e sullo stesso progetto per un paio d'anni, ma questo non è il modo in cui puoi diventare l'1% migliore degli sviluppatori. Inoltre, le persone non sono necessariamente in grado di scambiare progetti molto velocemente e se vogliono trasferirsi in un'altra azienda, questo può diventare difficile. Quindi voglio dire che molti sviluppatori sono nella loro zona di comfort, il che va bene. Allo stesso tempo, anche gli sviluppatori senior non sarebbero sempre disposti ad assumersi la responsabilità di essere a capo del progetto, stanno solo facendo i loro compiti. Probabilmente, ha a che fare con una personalità% la maggior parte delle persone semplicemente non vuole partecipare a hackathon, far parte della scienza o costruire qualcosa che risolva un problema nella programmazione. Sono un po' pigri e stanno bene nella loro zona di comfort. Sono sempre stato curioso e la mia capacità di imparare diverse lingue deriva dalla mia volontà di risolvere il problema nel miglior modo possibile piuttosto che essere in grado di programmare su un'altra lingua.
TechBullion: Hai preso parte ad alcuni hackathon o sprint di programmazione?
Eugene Cozac: Non proprio. So che molti sviluppatori possono mettere alla prova le loro abilità sugli hackathon, ma penso che la cosa più importante sia provare a costruire quanti più progetti possibile e lavorare in ambienti diversi. È vero, gli sviluppatori spesso vogliono dimostrare agli altri o a se stessi quanto sono fighi attraverso gli hackathon, ma, per quanto mi riguarda, un altro modo per dimostrare le tue abilità è costruire il tuo framework su JS/CSS e renderlo pubblico o implementare il tuo quadro in un'azienda in cui lavori. E lì per dimostrare perché questa azienda dovrebbe utilizzare il tuo framework, ma non React o Bootstrap o Material UI. Ad ogni modo, solo l'1% degli sviluppatori vince hackathon, creando il proprio framework può costruire alcune piattaforme che saranno riutilizzabili per milioni di utenti.
TechBullion: Qual è stato il tuo prodotto di costruzione più veloce? Come hai interagito con il team durante il processo?
Eugene Cozac: Di solito, gli sviluppatori lavorano in un ambiente Agile e hanno un numero di attività per sprint (2 settimane). Cosa fare se queste attività sono divise per 2 settimane, ma puoi fare tutto in 3 giorni? Non tutte le aziende sono etiche nel chiedere più compiti perché siamo uguali, e anche i Project Manager stanno pianificando una quantità di lavoro per tutti gli sviluppatori. Ma ho avuto una situazione in cui ero un appaltatore per un'azienda in cui ero solo uno sviluppatore, ed è per questo che scelgo quella società. Per me non è stato così interessante lavorare su un numero limitato di compiti, volevo costruire una Web App per un'azienda tutta da solo, ad esempio invece di 5 sviluppatori. In 11 mesi ho creato un sistema CRM da zero fino alla fine, c'era lavoro su API, UI e UX. Questo progetto è stato eseguito molto velocemente con molte funzionalità come la gestione dei progetti, il monitoraggio dell'inventario, la generazione di fatture, la creazione e la gestione di preventivi, nonché il monitoraggio dell'inventario tramite GPS. Non ho informazioni aggiornate, ma questo CRM verrà venduto come abbonamento a causa della piccola nicchia di business: l'acustica nelle costruzioni.
TechBullion: Cosa serve per essere uno sviluppatore di prim'ordine?
Eugene Cozac: Molti sviluppatori possono risponderti che l'esperienza è la cosa più importante se vuoi essere uno sviluppatore di prim'ordine, ma questo non è necessariamente vero. Conosco molti sviluppatori che hanno più di 10 anni di esperienza, ma molti progetti o diverse attività complesse possono essere difficili per loro. Questo può spiegare perché per qualcuno ci vogliono dai 7 agli 8 anni per diventare un Senior Developer mentre per altri ci vogliono solo 4 anni. Quindi, l'approccio migliore è sviluppare le tue abilità eccezionali e il modo giusto per risolvere i compiti e quindi sperimentare. Allo stesso tempo è bene fare interviste in sviluppo per assunzione: ho fatto più di 100 interviste per vari clienti. Come ho detto, dimostrare le tue eccezionali capacità e abilità nella programmazione è implementare un progetto nel tuo quadro nell'azienda per cui stai lavorando. Ciò significa che non solo conosci i linguaggi di programmazione e come utilizzare i framework, ma puoi creare il tuo framework e dimostrare all'azienda di usarlo. Quindi, sulla base del tuo framework, costruirai un prodotto che utilizzerà milioni di utenti. Penso che questo possa fare solo l'1% degli sviluppatori. Ad esempio, sto costruendo il mio framework dell'interfaccia utente che può essere utilizzato in combinazione con React il nome è Krypton. Non è ancora finito, ma per uno dei miei attuali clienti sto usando parti di Krypton per costruire un nuovo progetto. Quindi l'attuale cliente non sta usando il mio framework interamente ma in parte, ma spero che fino a quando non finiremo il progetto per questo cliente, il mio Krypton sarà realizzato e oltre il 60% del progetto sarà costruito su Krypton. Inoltre, un buon consiglio per essere uno sviluppatore di prim'ordine è scrivere pubblicazioni scientifiche su riviste professionali, ne ho più di 25. Inoltre, ho fatto più di 100 recensioni di articoli tra pari, perché come sviluppatore, devi essere non solo una parte della programmazione ma anche una parte della scienza.
TechBullion: Quali sono le tue abilità più forti?
Eugene Cozac: Direi, la possibilità di partecipare a qualsiasi progetto in qualsiasi lasso di tempo. Mi trovavo in situazioni diverse da quando ho iniziato il progetto da zero o mi sono unito quando il progetto era in corso. Molte aziende ti danno circa 2-3 settimane per capirlo, di solito per me ci vogliono 2 giorni. Gli sviluppatori con capacità eccezionali sono in grado di comprendere qualsiasi progetto e iniziare a risolvere problemi o svolgere attività in pochi giorni, non settimane. Inoltre, posso lavorare su 4 progetti contemporaneamente. Suppongo che solo l'1% degli sviluppatori possa farlo, intendo tutti i tipi di sviluppatori da Junior a Tech Leads. Ho avuto l'esperienza di lavorare su 2, 3 e 4 progetti contemporaneamente, ottenendo ottimi risultati, inoltre, su tutti sono almeno un Senior o un team leader per circa 4 sviluppatori. Inoltre, a questo livello, devi essere in grado di fare da mentore ad altri sviluppatori da Junior a Senior. Per lavorare anche molto velocemente non solo in progetti quotidiani, ma anche per costruire qualcosa come un framework open source, scrivere pubblicazioni scientifiche e così via. Qualità. Velocità. Diversificazione.
TechBullion: Quale lingua è stata la più difficile per te?
Eugene Cozac: Non penso che nessun framework o linguaggio sia molto impegnativo, una volta che conosci un linguaggio di programmazione, altri sono più o meno gli stessi hanno solo alcune altre regole, oppure un framework può avere meno o più funzionalità. Per uno sviluppatore di capacità eccezionali non esiste alcun linguaggio di programmazione impegnativo.