Linguaggi, framework e conoscenze varie:

Avendo cominciato nel mondo web (e senza un'educazione formale) il mio linguaggio principale è il php. Fortunamente ho iniziato abbastanza presto ad adottare dei framework (Codeigniter prima, poi l'amore per Laravel ed ora Symfony per esigenze aziendali) ricevendo cosi, fin da subito, un'impostazione ed un'organizzazione che spesso, purtroppo, manca a chi proviene da questo linguaggio (soprattutto nell'interazione con i database!).

Negli ultimi anni questa mia "specializzazione" ha iniziato ad essermi stretta e ho rivolto lo sguardo ad altri lidi:

  • ho apprezzato tanto la rapidità e la potenza con cui si può fare un sito in Rails;
  • continuo ad apprezzare la semplicità ed immediatezza di utilizzo di Python, che uso tuttora per automatizzare e semplificare alcuni task "noiosi" di tutti i giorni;
  • sono incuriosito dai linguaggi funzionali come Elixir, un giorno o l'altro proverò a fare qualcosa (me lo prometto);
  • sono rimasto sconvolto dalla crescita esponenziale di Javascript: un momento sei lì che sviluppi un'interfaccia all'avanguardia con Angular 1 (eri un pazzo solo a pensare di togliere jQuery), ti distrai neanche un paio d'anni dedicandoti al backend e pam! Angular è alla versione 6, React è sempre più gigante e lo stesso JS è quasi un altro linguaggio - per non parlare della miriade di framework e strumenti che sono comparsi dal nulla (babel, typescript, webpack, electron...😳)
  • vorrei colmare qualche lacuna teorica, ad esempio negli algoritmi (scarsissimi tempi permettendo)
  • Unit Testing e TDD!
  • Non sto qui ad elencare tutti i tutorial di cose belle e nuove fatti ché sennò non la finiamo più (Go, React Native, Electron, Rust, MongoDB...)

Insomma, quando il panorama cambia completamente bisogna tornare ad esplorarlo di nuovo per vedere cosa offre, ed oggi c'è così tanto da esplorare che è difficile anche capire dove guardare.
Se devo però trarre degli insegnamenti dall'esperienza lavorativa maturata finora posso dire che:

  1. non importa in quale linguaggio sei specializzato, se c'è bisogno ne usi un altro
  2. non importa se non ti ricordi una funzione o l'ordine degli argomenti, né se c'è una funziona nativa per quello che vuoi fare: StackOverflow + Google + le query di ricerca giuste e risolvi ogni problema 😇
  3. usare la command line è fondamentale (e meraviglioso)
  4. la progettazione iniziale è fondamentale - anche se le Change Request sono inevitabili e inevitabilmente costringeranno a riprogettare tante cose
  5. tutti i progetti sono da terminare per ieri, l'ideale sarebbe riscriverli tutti da capo ma il bug dev'essere risolto domani, le API prima o poi non risponderanno o lo faranno male 😩
  6. negli openspace c'è troppo casino
  7. una risata con i colleghi vale più di qualsiasi codice ben scritto

... Ed ora una carrellata di icone colorate perchè anche l'occhio vuole la sua parte: