Post più popolari

28 luglio 2013

Il programmatore...

Un linguaggio di programmazione è un linguaggio che, come un linguaggio naturale, è composto da caratteri, lettere, simboli e che quindi ha una propria sintassi. Questo viene utilizzato con accuratezza dal programmatore che per controllare il comportamento di un computer, scrive il codice sorgente di un software. Nel 1949 nasce il primo linguaggio di programmazione di uso comune conosciuto come Short Code dal quale è poi derivato l'Assembler cioè il linguaggio macchina che era particolarmente ostico bensi era molto potente e consentiva al programmatore di avere un controllo praticamente completo del computer.

 L'Assembler ha reso parecchie notti insonni a molti programmatori. A seguire nacquero a macchia d'olio tutti gli altri linguaggi fino ad arrivare ai giorni d'oggi, in cui il cavallo di battaglia è la "programmazione ad oggetti" che è un tipologia di programmazione sicuramente molto piu comprensibile per la mente umana. A differenza dell'antico Assembler che puntava direttamente agli indirizzi di memoria della macchina e che quindi pero consentiva la creazione di software altamente performanti soprattutto in termini di ristretti tempi di esecuzione,  la programmazione ad oggetti permette di accedere a delle classi (interfacce) già in essere all'interno dei sistemi operativi (l'anima pulsante dei pc) e che contengono i metodi (le istruzioni) per poter comandare un computer a proprio piacimento. In pillole un po di storia dei vari linguaggi per chi ne fosse appassionato: nel 1954 è nato il Fortran, nel 1959 è nato il Cobol, nel 1964 è nato il Basic, nel 1970 è nato il Pascal, nel 1972 è nato il famoso C, nel 1983 è nato Ada, nel 1986 è nato lo C++, nel 1987 è nato il Perl, nel 1989 con l'arrivo del World Wide Web è nato l'Html, nel 1992 è nato il Visual Basic, nel 1995 è nato il Java, nel 1998 è nata la versione Enterprise di Java, nel 2000 è nato lo C Sharp. Diciamo che (ad eccezione di alcuni linguaggi come ad esempio lo C e lo C++ che ancora oggi sono largamente utilizzati per lo sviluppo di applicazioni "real-time") una versione di un linguaggio esclude quella precedente poichè contiene l'evoluzione necessaria ed indispensabile per sviluppare software sempre piu potenti e versatili soprattutto in termini di sopportazione di carico, cioè la capacità che uno o piu computer e database collegati a catena e dei software associati ad essi hanno di sopportare migliaia di accessi da parte degli utenti collegati in rete (internet) senza che nulla vada storto nella gestione dei calcoli. Infatti il trend, relativamente giovane, che coinvolge quasi tutte le aziende moderne, gli organismi e le associazioni a livello mondiale è quello di trasferire interamente il proprio modello di business su internet (e qui nasce la cultura del Cloud Computing, dove idealmente internet è inteso come una grande nuvola contenete tutti i dati) in modo che le informazioni siano condivisibili e gestibili da qualsiasi postazione da tutti i soggetti coinvolti (tecnica conosciuta come SaaS - Software as a Service). Insomma stiamo parlando in parole povere di una vera e propria scienza con specifici criteri che solamente oggi ha raggiunto dei livelli molto alti di standard in termini globali: l'Information Technology. Lavoro come analista/programmatore all'interno dell'Information Technology dall'anno 2000 essendomi specializzato tramite la programmazione ad oggetti nel linguaggio Java  su piattaforma Enterprise Edition (post sulla Java-lobby). Questa è la mia esperienza.

Dopo questa breve premessa, mi auguro esaustiva per i neofiti, mi sta a cuore identificare la figura del programmatore, spesso visto dalla massa come un'enigmatico, un po taciturno ma conoscitore di tutto il necessario per creare quello che serve. Una volta il programmatore era soprannominato "nerd" che non significa "cretino" come il suono della parola potrebbe far intendere bensi tutto il contrario. Di solito questo tipo di ruolo esclusivamente tecnico nasce e si alimenta all'interno di grandi vivai (conosciuti come open-space cioè larghe aree destinate all'interno degli uffici per lo svolgimento di questa professione al fine di facilitare la condivisione delle conoscenze senonchè la competizione)  dalle quali non è semplice uscirne in quanto la carriera tecnica è particolarmente dura e la scalata della salita si basa sull'esperienza acquisita nell'arco di molti anni, in questo senso assume particolare peso la capacità che solo un buon programmatore ha nell'aggiornarsi continuamente, considerando lo studio e la sperimentazione la base che fa parte delle sue mansioni. Quando un programmatore diventa manager sara di sicuro un manager con le  competenze quadrate. L'aspetto positivo è che il programmatore è il braccio operativo dell'Information Technology ed in quanto tale sara tra gli ultimi della catena produttiva a rischiare un licenziamento in periodi difficili...infatti negli ultimi tempi, in cui siamo attanagliati da una crisi senza pietà, questo settore è invece rimasto stabile cioè non è ne sceso ne salito.

Per essere programmatori è essenziale prima di tutto essere degli appassionati, munirsi di sana e buona pazienza, molta memoria, velocità di comprensione e di analisi. Infatti i programmatori piu produttivi sono quelli che vanno dai diciotto anni ai quarantacinque anni massimo, fascia di età in cui il cervello è maggiormente predisposto per questo tipo di attività che richiede un'alta resistenza allo stress. Superata questa fascia di età il programmatore ha ormai la mente allenata e vive di rendita in base alle competenze ed alle esperienze acquisite negli anni.

In questo contesto è molto importante capire chi è un buon programmatore, cioè chi è capace di sviluppare veramente software dando valore aggiunto al prodotto. Purtroppo questa è una materia che fin dai suoi albori non si è basata su regole ufficiali, scientifiche e standardizzate...solo ultimamente tutto questo si è verificato. Proprio per questo però, ancora oggi, ci sono delle persone che sostengono arbitrariamente di avere la conoscenza assoluta, tendono a buttare fumo negli occhi ha chi non ha le idee più che chiare e si basano su metodi puramente obsoleti o inventati da loro stessi o malamente interpretati. E' il caso ad esempio di alcuni (non tutti per fortuna!) laureati tecnici, che non sono mai stati portati per la materia ed hanno tutt'altro che una mente tecnica che pero sfruttano sulla carta la loro posizione arrecando, magari involontariamente, danni consistenti all'ignara azienda. La stessa cosa fanno alcuni programmatori con una certa età che non si sono mai aggiornati e che si basano su vecchie concezioni di progettazione e senza alcun principio predefinito. Un buon programmatore al contrario progetta in base a standard certificati dalla comunità scientifica, ragionando in un'ottica a largo raggio, considerando i rischi, la sicurezza, la scalabilità e la manutenibilità. Le distinzioni appena descritte sono, ripeto per fortuna, non sono sempre vere.

Infine, il programmatore con il passare del tempo diventa anche analista, cioè si deve occupare di analizzare tramite il cliente i requisiti necessari per lo sviluppo del software...quindi deve essere capace e flessibile al fine di addentrarsi al punto giusto in materie che non gli appartengono come ad esempio operazioni bancarie o pratiche ministeriali.

2 commenti:

  1. Ciao, anche io sono una programmatrice e ho apprezzato molto il tuo post. Sfortunatamente ci sono molte persone che si buttano nell'ambito della programmazione perchè si trova facilmente lavoro e alla fine si ritrovano con una laurea e un lavoro che non li soddisfa. Personalmente credo che per essere programmatore bisogna essere appassionati, la programmazione è qualcosa che o ami oppure odi! Se ti va, passa sul mio blog! : http://pensieritecnologici.blogspot.it/

    Chiara

    RispondiElimina
    Risposte
    1. Grazie Chiara...è proprio vero...la programmazione o la ami o la odi e noi l'amiamo senza ombra di dubbio. In bocca al lupo, la strada è lunga !

      Elimina

Nota: i post che non vengono firmati saranno eliminati