CodeGym /Corsi /Python SELF IT /Percorso del programmatore

Percorso del programmatore

Python SELF IT
Livello 63 , Lezione 4
Disponibile

6.1 Scala di carriera

Anche i programmatori hanno delle classificazioni in base alla qualifica. Un tempo si usavano termini come "coder", "programmer" e "hacker", ma ora si usano tutti termini in inglese provenienti dall'IT americano.

Per un developer ci sono 6 classificazioni principali:

  • Intern Software Engineer
  • Junior Software Engineer
  • Middle Software Engineer
  • Senior Software Engineer
  • TechLead
  • Principal Software Engineer

Da paese a paese e anche da azienda a azienda alcuni parametri possono variare, ma il concetto è questo:

Intern Software Engineer — sono stagisti. Sono nel processo di apprendimento della programmazione, non hanno né esperienza commerciale, né esperienza in progetti di grandi dimensioni. Di solito lavorano sotto la supervisione di colleghi più esperti. Il loro compito principale al lavoro è studiare la codebase e le basi dello sviluppo software, eseguendo semplici task di coding e partecipando ai test.

Junior Software Engineer — sono già programmatori, ma senza una significativa 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 sul miglioramento delle competenze tecniche e sulla comprensione delle esigenze progettuali.

Middle Software Engineer (o semplicemente Software Engineer): hanno più autonomia nel prendere decisioni tecniche, sono responsabili di sezioni significative del progetto, iniziano il mentoring di colleghi meno esperti e partecipano attivamente alle discussioni sull'architettura. Di solito hanno 2–5 anni di esperienza pratica.

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

TechLead: è responsabile del risultato tecnico finale del progetto, guida lo sviluppo, risolve i problemi più complessi, assicura il rispetto degli standard tecnici e coordina l'attività degli sviluppatori.

Principal Software Engineer: lavora al livello tecnico più alto, spesso partecipa alla definizione della strategia tecnica dell'azienda, allo sviluppo di soluzioni innovative e alla definizione degli standard tecnici, è il principale mentore per i leader tecnici ed è il principale esperto in questioni tecniche complesse.

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

  • Staff Software Engineer (L6): ha un'influenza significativa sulla politica tecnica del proprio dipartimento.
  • Senior Staff Software Engineer (L7): lavora su progetti su larga scala 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 chiamato "Algoritmi + Strutture dati = Programmi". Da allora molto è cambiato.

Il prodotto software moderno non è quello che era 10 anni fa, e sicuramente non quello di 20 anni fa. Non si può neanche parlare del 1975 — da allora sono passati 50 anni.

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

I prodotti software moderni possono essere costituiti da decine e centinaia di programmi. Alcuni di essi vengono eseguiti sul computer dell'utente, sui suoi dispositivi mobili, ma la maggior parte su server nei data center.

Molti di questi programmi, come il web server o il database, sono già scritti. Devono solo essere configurati correttamente per funzionare come necessario. Anche se col tempo il processo di configurazione può diventare così complesso da trasformarsi praticamente in sviluppo. (*facepalm*)

I programmatori combattono costantemente contro se stessi. Invece di riscrivere lo stesso codice in programmi diversi, scrivono librerie che possono essere configurate per le proprie esigenze e poi le collegano ovunque sia necessario.

Negli ultimi 20 anni i programmatori hanno scritto moltissime librerie, framework e repository open source. Ci sono letteralmente milioni di questi. Ora scrivere tutto il codice da zero è considerato di cattivo gusto. Invece, bisogna costruire il programma usando soluzioni collaudate e di qualità — librerie, framework, pacchetti e moduli.

Ma anche questo approccio sta già invecchiando. La tendenza degli ultimi 10 anni è il passaggio al cloud, grandi data center che forniscono ai tuoi programmi tutto ciò di cui hanno bisogno. Vuoi un database? Ne abbiamo centinaia tra cui scegliere. Vuoi un raro web server unico — ci sono anche quelli! Qualsiasi capriccio per i tuoi soldi.

6.3 "Io sono un ingegnere" © Elon Musk

Non c'è più bisogno di scrivere cose complicate e noiose. Se hai bisogno di una funzionalità complessa fantastica, c'è già una libreria per questo. Devi semplicemente: a) sapere che esiste, b) trovare quella giusta (possono esserci decine di analoghi di qualità diversa), c) capire come integrarla nel tuo progetto.

Il lavoro con questo approccio è diventato solo più interessante. Ora puoi aggiungere nuova funzionalità al prodotto 10 volte più velocemente. 30 anni fa, se avevi bisogno di un web server, dovevi scriverlo. 20 anni fa — comprarlo, installarlo e configurarlo. E ora — basta andare nella dashboard del "cloud" e attivarlo.

Questo è, tra l'altro, uno dei motivi per cui il linguaggio Python è così popolare. È molto adatto non a scrivere soluzioni grandi e complesse, ma per "incollare" le varie parti tra loro. E, a giudicare dalla sua popolarità, riesce perfettamente in questo compito.

Inoltre, la professione di sviluppatore Python si è trasformata in Python Fullstack Software Engineer. Lo sviluppatore Python moderno deve capire come funziona un database per lavorarci correttamente. Capire HTML & JavaScript, per configurare il frontend con il backend Python. E anche Docker è necessario — è ormai lo standard del settore.

Lo sviluppo moderno è molto diverso da quello che era ancora 20 anni fa. Il programmatore moderno scrive codice non più del 50% del suo tempo. Nel restante tempo legge documentazione, studia nuove tecnologie e partecipa a meeting. I programmatori solitari sono ormai lontani nel passato.

1
Sondaggio/quiz
Rivoluzione dell'informazione, livello 63, lezione 4
Non disponibile
Rivoluzione dell'informazione
Rivoluzione dell'informazione
Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION