CodeGym /Corso Java /Frontend SELF IT /Percorso dello sviluppatore

Percorso dello sviluppatore

Frontend SELF IT
Livello 47 , Lezione 4
Disponibile

6.1 Carriera

Carriera

Anche i programmatori stessi hanno delle gradazioni a seconda della qualificazione. Una volta si usavano termini come “coder”, “programmatore” e “hacker”, ma ora tutti utilizzano i titoli dall'IT americano.

Per uno sviluppatore ci sono 6 livelli principali:

  1. Intern Software Engineer
  2. Junior Software Engineer
  3. Middle Software Engineer
  4. Senior Software Engineer
  5. Tech Lead
  6. Principal Software Engineer

Da paese a paese alcuni parametri possono differire, ma la sostanza è più o meno questa:

Intern Software Engineer — sono stagisti. Sono nel processo di apprendimento della programmazione, non hanno esperienza commerciale né esperienza in grandi progetti. Di solito lavorano sotto la supervisione di colleghi più esperti. Il loro compito principale è studiare la base del codice e i fondamenti dello sviluppo del software, svolgendo compiti semplici di codifica e partecipando ai test.

Junior Software Engineer — sono già programmatori, ma senza seria esperienza commerciale o con meno di un anno di esperienza. Lavorano sotto la guida di sviluppatori più esperti, realizzando parti di progetti e partecipando ai cicli di code review. Questa fase della carriera è focalizzata sull'approfondimento delle competenze tecniche e sulla comprensione delle sfide del progetto.

Middle Software Engineer (o semplicemente Software Engineer): hanno più autonomia nel prendere decisioni tecniche, sono responsabili di parti significative del progetto, iniziano a mentore i colleghi meno esperti e partecipano attivamente alle discussioni architettoniche. Di solito hanno 2-5 anni di esperienza pratica.

Senior Software Engineer: sono responsabili della progettazione e realizzazione di sistemi complessi, forniscono mentoring e guida all'interno del team, partecipano alla pianificazione strategica dei progetti e spesso rappresentano il team nei rapporti con i clienti e altre parti interessate. Di solito hanno 5-10 anni di esperienza.

TechLead: come leader tecnico, è responsabile del risultato tecnico finale del progetto, dirige lo sviluppo, risolve i compiti più complessi, garantisce il rispetto degli standard tecnici e coordina le attività degli sviluppatori.

Principal Software Engineer: lavora al più alto livello tecnico, spesso partecipando alla formazione della strategia tecnica dell'azienda, sviluppando soluzioni innovative e stabilendo standard tecnici, serve come principale mentore per i leader tecnici ed è l'esperto chiave in questioni tecniche complesse.

Questo è interessante

Le grandi aziende possono avere ruoli e sottoruoli aggiuntivi. Ad esempio, in Google ci sono ruoli come:

  • Staff Software Engineer (L6): ha un'influenza significativa sulla politica tecnica della propria divisione.
  • Senior Staff Software Engineer (L7): lavora su progetti di grandi dimensioni e complessi, definisce la direzione strategica dello sviluppo tecnologico in azienda.

6.2 Prodotti Lego

Tanto tempo fa (nel 1975) Niklaus Wirth, creatore del linguaggio Pascal, scrisse un libro “Algoritmi + Strutture dati = Programmi”. Da allora molto è cambiato.

Un moderno prodotto software non è ciò che era 10 anni fa e sicuramente non ciò che era 20 anni fa. Parlando del 1975, è passato mezzo secolo.

Un programmatore moderno non scrive più programmi a mano. Piuttosto, li assembla da parti pronte (librerie) e scrive codice che aiuta queste parti a interagire.

I prodotti software moderni possono consistere di decine e centinaia di programmi, alcuni dei quali vengono eseguiti sul computer dell'utente, sui suoi dispositivi mobili, mentre la maggior parte viene eseguita sui server nei data center.

Molti di questi programmi, come un web-server o un database, sono già scritti. Devono essere semplicemente configurati correttamente, affinché funzionino come devono. Anche se col tempo il processo di configurazione può diventare così complesso da trasformarsi effettivamente in sviluppo. 🤦‍♂️

I programmatori combattono costantemente contro se stessi. Invece di riscrivere un codice simile in programmi diversi, scrivono librerie che possono essere configurate secondo le proprie esigenze e semplicemente le collegano ovunque siano necessarie.

Negli ultimi 20 anni i programmatori hanno scritto tantissime librerie, framework e repository open source. Ce ne sono letteralmente milioni. E ora scrivere tutto il codice da zero è considerato un cattivo gusto. Invece bisogna assemblare un programma da soluzioni di qualità e comprovate — librerie, framework, pacchetti e moduli.

Ma anche questo approccio sta diventando obsoleto. La tendenza degli ultimi 10 anni è il trasferimento nel cloud — grandi data center che forniscono tutto ciò di cui i vostri programmi hanno bisogno. Volete un database? Ne abbiamo centinaia tra cui scegliere. Volete un raro server web unico - ne ho uno. Qualsiasi capriccio per i vostri soldi.

6.3 “Io sono un ingegnere” (c) Elon Musk

Razzo in orbita

Non c'è più bisogno di scrivere cose complesse e noiose. Ora, se avete bisogno di una funzionalità complessa e interessante, c'è sempre una libreria per questo. Basta: a) sapere che esiste, b) trovarne una adatta (ci possono essere decine di alternative di diversa qualità), c) capire come integrarla nel vostro progetto.

Il lavoro è diventato più interessante grazie a questo approccio. Ora siete 10 volte più veloci ad aggiungere nuova funzionalità al prodotto. 30 anni fa, se avevate bisogno di un web-server, dovevate scriverlo voi stessi. 20 anni fa — comprarlo, installarlo e configurarlo. Ora — basta accedere al pannello di controllo del "cloud" e attivarlo.

Questa, tra l'altro, è una delle ragioni della popolarità del Frontend. Ora potete scrivere un backend complesso in JavaScript usando Node.js, o semplicemente "attivare" vari servizi nei data center del cloud. Il Frontend non dipende più tanto dai limiti del backend e ha sfruttato appieno il suo potenziale. E a giudicare dalla sua popolarità, svolge perfettamente il suo ruolo.

Anche la professione di sviluppatore Frontend è stata trasformata in Frontend Fullstack Software Engineer. Uno sviluppatore Frontend moderno deve capire come funziona un database per lavorare bene con esso. Comprendere HTML & JavaScript, NginX per configurare il funzionamento del frontend con il backend. Anche Docker è necessario — ormai è semplicemente uno standard del settore.

Lo sviluppo moderno è davvero poco simile a quello che era 20 anni fa. Un programmatore moderno scrive codice per non più del 50% del suo tempo. Il resto del tempo lo trascorre leggendo documentazione, studiando nuove tecnologie e partecipando a meeting (riunioni). I programmatori solitari sono ormai lontani nel passato.

Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION