Consigli per un futuro informatico da un informatico navigato

di il
19 risposte

Consigli per un futuro informatico da un informatico navigato

Ciao a tutti
Leggo molto di persone che vorrebbero
- intraprendere la carriera/studi da informatico
- riconvertirsi ad informatico
- avere un percorso da seguire per imparare e studiare
parlerò quindi di come vivere professionalmente di questo lavoro

Vorrei dare il mio contributo senza presunzione di possedere la verità: sono un ragazzo di 33 anni che lavora nel campo da 12 anni
Ho iniziato nel mondo Automazione (lato fornitore)
Sono passato come Software Engineer in un'azienda multinazionale
Ora gestisco la parte tecnica dell'ERP di un'azienda multinazionale spostandomi verso il middle-management ma non abbandonando la scrittura di codice

Partiamo col dire una cosa: informatica vuol dire tutto e niente; è talmente vasta che bisogna per forza specializzarsi

Il nostro percorso (ALGORITMO) partirà con lo step 1
SCEGLI COSA ESSERE: Frontend, Backend, Fullstack (per iniziare lo lascerei perdere), Funzionale/Tecnico/Manager, Sistemista, Microcontrollori/Basso Livello...
e cerca più informazioni possibili (non vuol dire studiare/imparare significa avere le idee chiare perchè dopo diventerà difficile cambiare) su quello che si ha scelto

Proseguiamo con lo step 2
SCEGLI UNO STACK: per esempio io sono nato (già con la scuola) cresciuto e credo che morirò con Microsoft. Nulla vieta di rinnegare l'azienda (anche se mi sembra stupido visto che una grossa fetta del mercato è occupata dalla stessa) e concentrarsi su altro; a volte il settore del mercato definisce già l'elenco delle tecnologie standard "DE-FACTO"

A questo punto non abbiamo ancora imparato nulla ma abbiamo definito i parametri di configurazione del nostro algoritmo o meglio creato le specifiche che verranno seguite alla lettera altrimenti, come in tutti i progetti che si rispettano, non si arriverà da nessuna parte e si butterà via del tempo

Step 3
Ora è il momento di studiare: studiare non vuol dire solo imparare tecnicismi, strumenti, linguaggi ma principalmente vuol dire informarsi ed aggiungere sempre nuovi tasselli
E' imperativo partire dalle basi teoriche; la cosa più semplice è consultare i primi esami introduttivi delle FACOLTA' UNIVERSITARIE ed attingere dal loro piano di studi ed elenco dei libri gli argomenti; in questa fase sarà necessario esercitarsi ed impratichirsi con gli strumenti che abbiamo identificato nei primi 2 steps
Questo è il blocco necessario per proseguire: non intrapendete lo studio della programmazione ad oggetti (OOP) senza avere capito le basi (è come essere musicisti: se non avete i fondamentali non otterrete risultati soddsfacenti e sarete costretti a tornare da capo per sopperire alla mancanza)

Step 4
Programmazione ad oggetti: qualunque cosa che serva al mercato al giorno d'oggi, a parte nicchie particolari, è sviluppata usando i concetti della programmazione ad oggetti: incapsulamento, ereditarietà, polimorfismo
Continuate ad usare gli strumenti e i linguaggi che a questo punto dovrebbero essere diventati abbastanza familiari

Step 5
Incrementate la difficoltà del progetto: passate al reperimento di dati da database (SQL, NOSQL) accompagnando il tutto con la teoria, studiate tecniche di ottimizzazione/rifinimenti, programmazione asincrona, interconnetete i componenti (principalmente tramite HTTP), pensate anche alla presentazione dei dati agli utenti, security...

Step 6
GOTO Step 1 e scegli qualcos'altro fino ad una personale soddisfazione

Step 7
Ingegneria del software: ottenere il massimo risultato con il minimo sforzo
Il programmatore professionista è PIGRO (nel senso buono del termine): odia scrivere più di una volta il codice, odia aspettare, odia fare fatica (nel raggiungere un risultato o nel capire il codice altrui) ed in ogni caso in ambito lavorativo dove si parla di qualità queste cose sono estremamente importanti

Step 8
Restate informati: trend del mercato, nuove tecnologie, letteratura, blogs, news, forum

Per concludere vi scrivo concretamente come ha funzionato per me:
1) Backend
2) Microsoft: VB6 --> .NET --> .NET Core, SQL Server, Dynamics
3) Perito Informatico --> Ingegneria Informatica
4) vedi 3
5) SQL server/MongoDB, Azure, WCF --> REST, XAML
6) Sistemista/DevOps: Cloud Azure, Azure DevOps
6) Project Management
6) Frontend/Mobile: HTML + CSS + JS + REACT, Xamarin
6) Dynamics 365
7) Design Patterns

Come contorno, durante la mia esperienza nel mondo dell'automazione, ho visto PLC, SCADA/HMI ed esperienza fisica come elettronico

In ultima analisi mi sento di lasciarvi alcune osservazioni:
- non focalizzatevi su un prodotto/tecnologia: se diventa obsoleto avete perso
- cercate di concentrare i vostri sforzi su qualcosa che vale la pena ed è ragionevolmente raggiungibile: non sempre l'ottimo è la soluzione corretta a tutti i problemi
- non abbiate fretta: all'inizio sembra di non andare da nessuna parte ma poi si noterà che tutto è collegato e spesso i salti da una tecnologia ad un'altra è abbastanza indolore (la cosa importante è padroneggiare i concetti che stanno sotto)
- procedete con gradualità: se scegliete C come linguaggio per esempio lasciate la parte dei puntatori a quando la nebbia si sarà diradata
- accompagnate sempre lo studio della parte tecnica con quella teorica: per esempio studiare Python/R senza sapere nulla di statistica ed analisi dati (che è uno dei settori in cui viene utilizzato maggiormente) è abbastanza inutile
- comprate dei libri cartacei: sembra una cazzata ma il supporto fisico in un mondo online fa la differenza

Se volete essere informatici diventate informatici: questo non è un lavoro è un modo di vivere/essere

In bocca al lupo a tutti

19 Risposte

  • Re: Consigli per un futuro informatico da un informatico navigato

    Mi sembra uno spiegone titanico, vedrai arrivare i rampognatori a frotte.
    Da informatico quasi 3 volte più navigato (34 anni) manca l'elemento più importante.
    Fare.
    Non puoi imparare a programmare se non programmi.
    Da progetti personali semplici fino ai più complessi.
    Il 95% della programmazione sono procedure di supporto.

    Lo studio universitario è inutile oggettivamente al 90%.
    Come attenuare? Col punto precedente.
    Cioè con elaborati 'come si facevano una volta'
    Progetta un microprocessore.
    Scrivi un assemblatore a passata singola.
    Scrivi un emulatore.
    Scrivi un disassemblatore.

    Fatto questo saprai abbastanza bene i rudimenti.

    Scrivi un sistema operativo stile mix
    Scrivi lo schedulatore.
    Gestore risorse.
    Filesystem
    Networking.

    Poi ti verrà da ridere sul lavoro se ti chiederanno se sai programmare un firewall o come funziona IP.

    Fate un previsore di ciclo femminile a rete neurale.

    Quando vi parleranno sul lavoro di IA riderete

    Etc etc

    Non sprecate il tempo università facendo il minimo possibile con elaboratini da terza elementare.
    Fate e studiate quello che NON fareste nel mondo non aaccademico.
    Fare i siti webbbb? Trovate 1000 tutorial e li può imparare anche la mia gatta.
    Ottimizzare la MTF di una TAC?
    Queste sono le cose che nel mondo normale non vedrete mai e poi mai.

    Prenderete la laurea, ma non saprete fare niente.
  • Re: Consigli per un futuro informatico da un informatico navigato

    mg87 ha scritto:


    Vorrei dare il mio contributo senza presunzione di possedere la verità [...]
    Leggendo il tuo post, lo trovo un quadro generale abbastanza completo che, al netto di alcuni dettagli, coincide con i percorsi di molti colleghi e collaboratori che conosco, e in parte anche con il mio.

    Visto che domande stile "Chi vuol essere programmatore?" vengono poste ogni giorno, io metterò il link a questa discussione.
  • Re: Consigli per un futuro informatico da un informatico navigato

    +m2+ ha scritto:


    Da informatico quasi 3 volte più navigato (34 anni) manca l'elemento più importante.
    Fare.
    Non puoi imparare a programmare se non programmi.
    Da progetti personali semplici fino ai più complessi.
    Ciao
    Questo lo davo per scontato: è inutile seguire un percorso da informatico senza applicarsi concretamente
    Se si ha la fortuna di avere gia' un posto di lavoro si fara' lì altrimenti occorre giochicchiare e smanettare per conto proprio
    Molto utile (e che serve anche come visibilita') partecipare a qualche progetto opensource in collaborazione
  • Re: Consigli per un futuro informatico da un informatico navigato

    Ovviamente, alcune osservazioni le condivido al 100%, altre NON le condivido al 75%

    Se si considera che il 75% del lavoro di informatica oggi e' lavoro di bassa manofalanza, va da se che nel 75% dei casi l'univ non serve a nulla.
    E' anche vero che il 75% di coloro che fanno gli informatici, sono soddisfatti del lavoro di bassa manovalanza perche' non richiede di spremersi le meningi piu' di tanto ed alla fine della giornata si puo' pensare ad altro.

    Ok, E fin qui' ci siamo. Vada per il 75% dell'inutilita' dell'universita'

    Pero' rimane un 25% (spero di essere in diffetto), che SPERA di fare qualcosa di meglio che non fare sempre e solo il lavoro di bassa manovalanza.
    Anche se si inizia con quello (da qualche parte bisogna pur iniziare), questo non vuol dire che si debba continuare sul quella strada vita natural durante.
    MA per fare qualcosa di meglio BISOGNA avere le basi. E certe basi non si imparano FACENDO ma STUDIANDO.
    Qui' l'univ fa la differenza. E magari anche quello che viene dopo l'univ (Master, dottorato, ecc).

    PIU' studio porta, sul lungo periodo, PIU' lontano. C'e' una parte anche di ""fortuna"" da mettere in consto, ovviamente. MA la ""fortuna"" si puo' anche ""forzare"". Avere "'fortuna"" SENZA le carte in regola non serve a niente.

    Come ho scritto tempo fa, se e' vero che nel mondo c'e' il 90% di poveri, e' anche vero che uno mica per forza debba ragionare da ""povero"
  • Re: Consigli per un futuro informatico da un informatico navigato

    migliorabile ha scritto:


    Ovviamente, alcune osservazioni le condivido al 100%, altre NON le condivido al 75%

    Se si considera che il 75% del lavoro di informatica oggi e' lavoro di bassa manofalanza, va da se che nel 75% dei casi l'univ non serve a nulla.
    E' anche vero che il 75% di coloro che fanno gli informatici, sono soddisfatti del lavoro di bassa manovalanza perche' non richiede di spremersi le meningi piu' di tanto ed alla fine della giornata si puo' pensare ad altro.

    Ok, E fin qui' ci siamo. Vada per il 75% dell'inutilita' dell'universita'

    Pero' rimane un 25% (spero di essere in diffetto), che SPERA di fare qualcosa di meglio che non fare sempre e solo il lavoro di bassa manovalanza.
    Anche se si inizia con quello (da qualche parte bisogna pur iniziare), questo non vuol dire che si debba continuare sul quella strada vita natural durante.
    MA per fare qualcosa di meglio BISOGNA avere le basi. E certe basi non si imparano FACENDO ma STUDIANDO.
    Qui' l'univ fa la differenza. E magari anche quello che viene dopo l'univ (Master, dottorato, ecc).

    PIU' studio porta, sul lungo periodo, PIU' lontano. C'e' una parte anche di ""fortuna"" da mettere in consto, ovviamente. MA la ""fortuna"" si puo' anche ""forzare"". Avere "'fortuna"" SENZA le carte in regola non serve a niente.

    Come ho scritto tempo fa, se e' vero che nel mondo c'e' il 90% di poveri, e' anche vero che uno mica per forza debba ragionare da ""povero"
    Certamente: condivido in pieno (anche se avrei da ridire sul discorso poveri: per me se uno deve lavorare per vivere è povero a prescindere dallo stipendio che porta a casa: il mio discorso era per dare una traccia almeno per entrare nel mondo dei poveri)
    Io l'Universita' l'ho fatta per piacere mio personale durante gli anni in cui gia' lavoravo ma le conoscenze che ti vengono date non sono immediatamente spendibili o almeno non sufficienti; proprio per questo nel mio post dico di ATTINGERE dai piani di studio delle facolta' non di frequentarle per forza
    Inoltre sarebbe da aprire una discussione Ingegneria Informatica vs Scienze Informatiche
  • Re: Consigli per un futuro informatico da un informatico navigato

    migliorabile ha scritto:


    Se si considera che il 75% del lavoro di informatica oggi e' lavoro di bassa manofalanza, va da se che nel 75% dei casi l'univ non serve a nulla.
    E' anche vero che il 75% di coloro che fanno gli informatici, sono soddisfatti del lavoro di bassa manovalanza perche' non richiede di spremersi le meningi piu' di tanto ed alla fine della giornata si puo' pensare ad altro.

    Ok, E fin qui' ci siamo. Vada per il 75% dell'inutilita' dell'universita'

    Pero' rimane un 25% (spero di essere in diffetto), che SPERA di fare qualcosa di meglio che non fare sempre e solo il lavoro di bassa manovalanza.
    Anche se si inizia con quello (da qualche parte bisogna pur iniziare), questo non vuol dire che si debba continuare sul quella strada vita natural durante.
    MA per fare qualcosa di meglio BISOGNA avere le basi. E certe basi non si imparano FACENDO ma STUDIANDO.
    Qui' l'univ fa la differenza. E magari anche quello che viene dopo l'univ (Master, dottorato, ecc).
    Condivido. Non so esattamente le percentuali (probabilmente basse in Italia, dove la cultura della bassa manovalanza tira tantissimo), ma le conoscenze universitarie servono, anche se in molti casi entrano in gioco più in là nella carriera.
  • Re: Consigli per un futuro informatico da un informatico navigato

    Ogni volta che leggo queste cose faccio qualche domanda concreta.
    Quante volte usate la conoscenza della legge di faraday lenz facendo i programmatori?

    Vediamo le risposte
  • Re: Consigli per un futuro informatico da un informatico navigato

    Mettiamola in un'altro modo:

    1) e' meglio non sapere nel momento in cui potrebbe servire

    OPPURE

    2) sapere e non avere mai occasione di usarlo?

    Oppure, ha senso o meno seguire la regola: "impara l'arte e mettila da parte" ???


    Secondo me l'approccio 1) da maggiori possibilita': uno, sapendo di ""sapere"" puo' anche cercare di sfruttare questa conoscenza.
    Magari non ci riesce, ma questa' e' un'altra storia.

    NON sapere impedisce a priori di tentare altre strade: se non sai e sei in concorrenza con quelli che sanno, che possibilita' ci sono di farsi scegliere?

    NESSUNA!
  • Re: Consigli per un futuro informatico da un informatico navigato

    Il discorso che l'universita' debba insegnare ad entrare nel mondo del lavoro e', onestamente, poco realistica.
    L'azienda vorrebbe assumere qualcuno che nell'arco di 5 minuti diventa operativo.
    Si, come no!

    Ci sono n-milioni di aziende ed ogn'una ha le sue esigenze, cosa si fanno, milioni di tipi diversi di corsi di laurea?
    E poi sapendo SOLO quello che serve all'azienza, uno non ha una visione PIU' ampia di quello che ci sta' attorno.

    Visto che oggi vogliono solo full stack developer e data scientist, insegnamo SOLO quello che serve per questi due profili.
    Ma questo vuol dire che l'univ dovrebbe formare SOLO personale da mandare alla catena di montaggio! E tutti gli altri?

    L'univ NON DEVE perparare per andare a lavorare, deve preparare affiche' uno SAPPIACOME PREPARARSI per il mondo del lavoro.
    Oggi e' l'azienda A per fare la cosa 1, domani l'azienda B per fare la cosa 2 e dopodomani l'aziena C per fare la cosa 3.
    E se ci saranno le aziende D, E, F, non c'e' problema, si studia per imparare a fare le cose 4,5 e 6.

    L'azienda vorebbe uno che sappia gia' programmare in Java, un'altra in Python, la terza in C#, ecc.
    Invece di insegnare 3 linguaggi di programmazione (fondamentalmente tutti uguali, per quelli che ""sanno""), si insegnano i concetti fondamentali, ed in questo modo che sia Java, C#, C++, Python, Ruby, PHP, Boo, Swift, Chapel, CLU, Curl, D, Dart, Rust, Eiffel, ELixr, Go, Julia, Kotlin, Scala, ecc, non cambia niente! Un paio di giorni per la sintassi, qualche settimana per la libreria di base, e si programma nel nuovo linguaggio di programmazione senza problemi!
  • Re: Consigli per un futuro informatico da un informatico navigato

    +m2+ ha scritto:


    Ogni volta che leggo queste cose faccio qualche domanda concreta.
    Quante volte usate la conoscenza della legge di faraday lenz facendo i programmatori?

    Vediamo le risposte
    Non è che se l'induzione elettromagnetica non conta nel tuo campo allora non conta tout court

    Comunque se vuoi un esempio pratico, un regolatore ad anello chiuso qualsiasi. Si vede chi non li ha fatti all'università o chi li ha fatti controvoglia.
  • Re: Consigli per un futuro informatico da un informatico navigato

    In realtà ho lavorato a un NLJD, o meglio a un dispositivo resistente a NLJD.

    Un regolatore ad anello chiuso qualsiasi è per caso un programma?
    Non mi risulta

    Dunque la risposta è: (a meno che non ti occupi di intercettazioni, ma non credo sia proprio un ambito così diffuso) zero
  • Re: Consigli per un futuro informatico da un informatico navigato

    Personalmente, in ambito di banale programmazione gestionale in un caso
    mi è stato utile l'esame di Analisi Numerica
    ( calcolo del lordo da disinvestire per ottenere un prefissato netto anche in
    presenza di anticipi e/o acconti già ricevuti che escludevano l'uso di formule inverse)

    ed in un altro Analisi Matematica I (formula dello sviluppo in serie di Fourier , non ricordo a che potenza, fornita con errori dal cliente)

    Niente di che per carità ... ma comunque furono utili conoscenze
    per portare a termine un lavoro di programmazione

    EDIT
    permetti la domanda m2:
    ma saresti riuscito a portare a termine il lavoro su NLJD
    anche senza la preparazione scolastica che hai ?
  • Re: Consigli per un futuro informatico da un informatico navigato

    Vabbè direi 10 minuti massimo (lordo da disinvestire?)
    Dunque si studiano poniamo 3 anni complessivi (pressoché inutili) per due volte in una carriera usare due formuline che trovi con 10 minuti di ricerca google.

    Per quanto mi riguarda non sono esattamente un caso 'tipico', non faccio particolarmente testo.
    Esistono programmatori di ambiti specializzati? Ma certo conosco una ragazza che lavora al mitico CERN.
    Ma è una.
    L'altro 99%?


    Sul resto è anche importante saper cucinare o ballare il flamenco.
    Ma non così tanto per programmare.
    Certo puoi fare un genetico che calcola il modo migliore per cuocere la pizza dati gli ingredienti, o determinare la velocità dei passi dei ballerini per farne una simulazione CGI per un film.

    Ma son sempre nicchissime.

    A me personalmente in ben più di un milione di righe scritte non è mai servito saper ballare, o in realtà anche cenni di relatività generale (non speciale, quella è per i liceali)
  • Re: Consigli per un futuro informatico da un informatico navigato

    +m2+ ha scritto:


    Vabbè direi 10 minuti massimo (lordo da disinvestire?)
    ...
    Concordo con te;
    è l'uovo di colombo ... ma solo se lo sai perchè lo hai studiato da qualche parte

    P.S.1
    ... tacci loro laureati in economia e commercio che manco un caffè mi offrirono
    per un problema che a loro sembrava irrisolvibile nonostante san google

    P.S.2
    sul fatto che tu non faccia testo concordo ugualmente
Devi accedere o registrarti per scrivere nel forum
19 risposte