Sono a un bivio...farò il programmatore tutta la vita?

di il
10 risposte

Sono a un bivio...farò il programmatore tutta la vita?

Scrivo qui perché mi farebbe piacere ricevere consigli e spunti di riflessione, magari da chi ha già qualche annetto sulle spalle. Sono un programmatore da ormai 7 anni, anche se all’università ho studiato tutt’altro. Questo lavoro mi piace e se avessi scoperto prima questa passione (che mi è venuta proprio durante gli anni dell’uni) di sicuro avrei studiato informatica, questo per farvi capire che comunque tengo al mio lavoro. Ho anche apprezzato il fatto di poter lavorare da remoto durante questa pandemia, un lusso che pochi hanno potuto permettersi. Nonostante questo, forse condizionato da certi discorsi in famiglia (sono figlio di dipendenti statali), e nonostante non sia mai stato precario da quando faccio questo mestiere, sento di non essere “al sicuro”. Fino a quando resterò competitivo e appetibile per le aziende? Lo sarò ancora a 50 anni? Adesso sono ancora “giovane” ma io al dopo ci penso...forse perché conosco solo programmatori relativamente giovani. A 50 anni avrò ancora la voglia di imparare nuovi linguaggi? Sarò sostituito dal 25enne smanettone fresco di laurea? La paura di non essere in grado di svolgere questo mestiere per sempre mi sta portando a considerare i concorsi pubblici, per i quali però non potrei aspirare a nessun posto da informatico non avendo l’apposita laurea. In questi anni ho maturato comunque delle competenze molto richieste sul mercato, ha senso pensare di rinunciare a questo lavoro per fare l’impiegato amministrativo in qualche p.a.? Ovviamente lascerei il lavoro attuale solo dopo aver vinto un concorso. E se tra qualche anno saranno facilmente licenziabili pure gli statali...? Le cose potrebbero cambiare anche per loro. Durante la pandemia tutti quelli che conosco con un lavoro statale sono stati comunque costretti a recarsi fisicamente a lavoro, con poche eccezioni, in quanto non tutte le amministrazioni erano dotate di infrastrutture per permettere ai dipendenti di lavorare da casa. Qualche privilegio il mio lavoro me l’ha dato. Insomma, solo io mi faccio queste paranoie...?

10 Risposte

  • Re: Sono a un bivio...farò il programmatore tutta la vita?

    È un lavoro come un altro: l'esperienza accumulata compenserà la mancanza di freschezza mentale. Certo, se non si fa niente per decenni poi potrà essere un problema
  • Re: Sono a un bivio...farò il programmatore tutta la vita?

    Se hai talento a 50 anni varrai 10 di 25.
    Ti faresti, in analogia, operare a un ginocchio da un 25 enne che lo ha letto su un libro, o da uno di 50 che ha già fatto 7000 operazioni come la tua e potrebbe operarti con un tagliacarte mentre impasta la pizza?
    Io non avrei il minimo dubbio a scegliere
  • Re: Sono a un bivio...farò il programmatore tutta la vita?

    La mia paura è proprio che rispetto ad altri mestieri e professioni più “tradizionali” dove l’esperienza è certamente un valore aggiunto, nel campo dell’ict lo sia invece fino a un certo punto. L’esperienza è un valore, forse, soltanto se sei anche giovane anagraficamente...? Forse la mia è una percezione sbagliata data dal fatto che in tutti i posti dove ho lavorato vedevo intorno a me solo persone max 40 anni, e se c’era qualcuno di più “anziano” era un PM...
    L’unico posto in cui ho visto programmatori anziani era una società di consulenza bancaria con programmatori cobol. Se entro in un ufficio pubblico, invece, è tutto capovolto: solo “anziani” e qualche giovane (ma neanche tanto) come una mosca bianca
  • Re: Sono a un bivio...farò il programmatore tutta la vita?

    Pensare che l'esperienza non conti nulla nella programmazione è una modo di pensare molto diffuso che sta facendo disastri peggio della grandine in Italia. Però tu sei un programmatore e hai già 7 anni sul groppone, non dovresti avere questi dubbi...
  • Re: Sono a un bivio...farò il programmatore tutta la vita?

    Sonar ha scritto:


    La mia paura è proprio che rispetto ad altri mestieri e professioni più “tradizionali” dove l’esperienza è certamente un valore aggiunto, nel campo dell’ict lo sia invece fino a un certo punto.
    Nel campo dell'ICT più che altrove.
    Esperienza non è altro che la somma degli errori compiuti, e quanto hai imparato da essi
    Questo fa sì che il "programmatorello" perderà sei mesi tentando di fare qualcosa che il "vecchietto" sa già che non funzionerà, e che andrà fatto in tutt'altro modo, in una settimana.
    Perchè ci ha già provato, fallendo, magari più volte.

    Ho come l'impressione che, per te, programmare sia usare non so quale nuova libreria fatta da qualche (spesso) bimbominkia ieri e che domani sparirà a favore di un altro framework del tutto inutile e così via.

    In realtà no, è più che sufficiente il GW-BASIC.

    Guarda se vuoi ti faccio uno dei miei "test" (ne ho fatto uno a un altro utente e a momenti si suicidava).
    Problema: vuoi calcolare il CRC-32 di una sequenza di byte a zero anche lunga (diciamo anche terabyte)
    vuoi CRC-32 0
    CRC-32 di 00000000000000000000000000

    CRC-32 di 0000000 (dieci miliardi di zeri)
    Dunque avrai una funzione con in input la dimensione (lunghezza degli zeri) in output il suo CRC-32
    La funzione può essere richiamata tante volte (diciamo anche decine di migliaia)

    Come faresti?
    (lo posto anche per un altro utente)
    Sono un programmatore da ormai 7 anni
    Dopo 7 anni di programmazione, quindi a 20, ho scritto il mio primo sistema operativo, quindi direi che l'esperienza dovrebbe essere più che sufficiente (per te intendo) per una risposta sensata.

    Perchè rammenta: se ripeti mille volte l'alfabeto, o anche un milione di volte, non diventi un poeta.
  • Re: Sono a un bivio...farò il programmatore tutta la vita?

    Farò pure una figuraccia ma quello che hai scritto per me è arabo. Non ho la minima idea di cosa sia il crc-32. Ho dato uno sguardo veloce su Google .
    Sono un programmatore Java. È grave? Abbi pazienza, io a 20 anni a quest’ora ero chino sul manuale di Diritto Costituzionale.
  • Re: Sono a un bivio...farò il programmatore tutta la vita?

    Sonar ha scritto:


    Farò pure una figuraccia ma quello che hai scritto per me è arabo. Non ho la minima idea di cosa sia il crc-32. Ho dato uno sguardo veloce su Google .
    Sono un programmatore Java. È grave? Abbi pazienza, io a 20 anni a quest’ora ero chino sul manuale di Diritto Costituzionale.
    Non c'è nulla di male, è solo per dare una vaga idea che (quasi sempre, non sempre) i "programmatori" si convincono che il mondo della... programmazione siano le 4 cazzatelle che fanno di solito.
    Attenzione, non c'è nulla di male in questo.
    Provo a riformularlo in termini più facili ( )

    CRC-32 è (cuttone) un "qualcosa" che, dato in input una sequenza di byte, dà in output un intero a 32 bit
    Come e perchè lo faccia non ci interessa (in realtà sì, ma per adesso no).

    Dunque uno potrebbe dire
    dammi la funzione int crc32(vettore di byte) la quale, magicamente, dato un vettore di qualcosa mi ritorna il crc32.
    La copio da internet [approccio tipico odierno]
    Gli passo un vettore di zeri, e questa mi darà il risultato.

    OK, questo è l'approccio diciamo così "bimbominkia" (cioè programmatore zero esperienza).

    Quello con un minimo di esperienza inizierà a porsi dei problemi
    1) come faccio a creare un vettore di zeri poniamo da un terabyte e poi passarlo alla funzione?
    2) quanto tempo impiegherà la funzione a calcolare questo codice, se gli passo un vettore da un terabyte?
    3) quanto tempo impiegherà la funzione, se essa verrà chiamata un migliaio di volte, tipo
    for i=0; i<10000;i++
    crc32(vettore-di-zeri)

    Ora lasciamo stare il fatto che non sappia cosa sia CRC32 (lo puoi imparare da google, ci sono 1 milione di articoli, paper, esempi, tutto quello che ti pare), vediamo come affronteresti la questione 1-2-3

    Lì si vede, o almeno io vedrei, subito la differenza tra un 25 e un 50enne

    EDIT: ecco qua per darti un'idea
    import java.util.zip.CRC32;

    // Calculates CRC32 checksum for a string
    public class CRC32Generator {

    public static void main(String[] args) {
    String input = "Hello World!";
    CRC32 crc = new CRC32();
    crc.update(input.getBytes());
    System.out.println("input:"+input);
    System.out.println("CRC32:"+crc.getValue());
    }
    }
    Ti aiuto anche di più, ti do questo
    https://docs.oracle.com/javase/8/docs/api/java/util/zip/CRC32.html
  • Re: Sono a un bivio...farò il programmatore tutta la vita?

    Dunque ricapitolando, potendo usare java.util.zip.CRC32 o quello che ti pare (prendo quella per farti vedere come in realtà i metodi sono semplici, insomma non serve una conoscenza mostruosa di quello che c'è dietro, non ho preso un problema che richiede un dottorato solo per comprendere cosa si vuol fare), come faresti?

    Hai questi metodi
    long getValue()
    Returns CRC-32 value.

    void reset()
    Resets CRC-32 to initial value.
    void update(byte[] b)
    Updates the CRC-32 checksum with the specified array of bytes.
    void update(byte[] b, int off, int len)
    Updates the CRC-32 checksum with the specified array of bytes.
    void update(ByteBuffer buffer)
    Updates the checksum with the bytes from the specified buffer.
    void update(int b)
    Updates the CRC-32 checksum with the specified byte (the low eight bits of the argument b).
    Diciamo per fissare le idee che vogliamo il CRC-32 di una sequenza di 10GB di zeri (cioè 10 miliardi di zeri)
    La prima cosa che potresti fare è, ovviamente,
    richiamare 10 miliardi di volte l'ultimo metodo:
    inizializza
    for i=1 to 10 miliardi
    update(0)

    scrivi il risultato
    Faresti così?

    Il secondo
    inizializza
    crea un vettore da 10 miliardi di zeri
    chiami questo update(byte[] b)
    cancella il vettore
    scrivi il risultato
  • Re: Sono a un bivio...farò il programmatore tutta la vita?

    Ecco un esempio di quello che si vuole ottenere
    
    int main()
    {
    	int64_t tempocalcolo=0;
    	for (int i=1;i<=10000;i++)
    	{
    		uint64_t dimensione=10000000000*i+(167*i+i);
    		int64_t inizio=GetTickCount();
    		uint32_t valorecrc=funzionemagica(dimensione);
    		tempocalcolo+=GetTickCount()-inizio;
    		printf("%05d size %19s CRC-32 %08X\n",i,migliaia(dimensione),valorecrc);
    	}
    	printf("Tempo calcolo %f\n",(tempocalcolo)/1000.0);
    }
    
    00001 size      10.000.000.168 CRC-32 CD728876
    00002 size      20.000.000.336 CRC-32 CF6BCB2C
    00003 size      30.000.000.504 CRC-32 2B94E9AB
    00004 size      40.000.000.672 CRC-32 3A5AA12C
    00005 size      50.000.000.840 CRC-32 A4925732
    00006 size      60.000.001.008 CRC-32 5BAF7A5D
    00007 size      70.000.001.176 CRC-32 F330CA5C
    00008 size      80.000.001.344 CRC-32 DED2E77D
    00009 size      90.000.001.512 CRC-32 768DF84E
    00010 size     100.000.001.680 CRC-32 A74FE96A
    (...)
    09989 size  99.890.001.678.152 CRC-32 709E7CE0
    09990 size  99.900.001.678.320 CRC-32 F87D9429
    09991 size  99.910.001.678.488 CRC-32 A06CE6B8
    09992 size  99.920.001.678.656 CRC-32 9C9E0DE7
    09993 size  99.930.001.678.824 CRC-32 D514F585
    09994 size  99.940.001.678.992 CRC-32 C28C4C0B
    09995 size  99.950.001.679.160 CRC-32 5EFA4C7B
    09996 size  99.960.001.679.328 CRC-32 2E148472
    09997 size  99.970.001.679.496 CRC-32 468D8E8A
    09998 size  99.980.001.679.664 CRC-32 E003281B
    09999 size  99.990.001.679.832 CRC-32 3D5C5612
    10000 size 100.000.001.680.000 CRC-32 78534AD8
    Tempo calcolo 6.827000
    
    Il tempo di elaborazione di circa 7 secondi è sul mio PC, ovviamente può
    variare, è un programma C etc etc, ma dà un'idea.
    Il blocco finale è da 100.000 gigabyte
  • Re: Sono a un bivio...farò il programmatore tutta la vita?

    La discussione ha smarrito la rotta. Ho cancellato i messaggi fuori tema e chiudo il thread visto che è ormai esaurito.
Devi accedere o registrarti per scrivere nel forum
10 risposte