Competenze trasversali Vs Competenze specifiche & Java vs .NET

Antonio Esposito

è come mischiare la lana con la pecora

Competenze trasversali Vs Competenze specifiche & Java vs .NET

  • Comments 3

Ciao a tutti

 

Spesso capita di leggere su blog e forum vari gente che si chiede cosa fare nel futuro come DEV?

E’ meglio Java o .NET?

E le risposte sono le solite: è meglio java, è meglio .net, impara tutto, impara cobol ke si usa ancora….

Ormai sono anni ke lavoro in questo campo…. di sicuro non ho la risposta finale alla questione, ma dirò la mia:

 

Java è un linguaggio cui tutti NOI dobbiamo fare l’inchino… senza Java non esisterebbe il mondo di oggi (per noi DEV)

Detto questo, c’è da dire anche che Java non è più l’unica piattaforma di qualità per sviluppare software a 360 gradi su più piattaforme. Vedi Mono, MonoTouch, MonoDroid

Oggi in .NET è possibile scrivere programmi, programmare servizi, giochi e rich UI, senza mai abbandonare lo stesso IDE (eccellente) o lo stesso linguaggio (più vasto di Java). Non solo general-purpose, ma anche funzionale grazie a F#.

Non amo guerre di religione perchè in genere quando si parla di Java vs .NET questo accade, su Wiki EN c’è 1 interessante comparativa a livello di framework e di linguaggio:

http://en.wikipedia.org/wiki/Comparison_of_C_Sharp_and_Java

http://en.wikipedia.org/wiki/Comparison_of_the_Java_and_.NET_platforms

 

Ciò che invece non condivido, sono le 2 frasi: “impara tutto ke ti rivendi su tutto”, e “impara cobol ke tanto si usa sempre”.

 

1) Impara tutto?!?!? Io sono pluricertificato su .NET e non conosco tutto il framework, ed è giusto così. Il mercato vuole esperti, e il settore dell’IT vuole esperti. Non esiste il tuttologo, e benchè abbia lavorato con persone ritenutesi tali, il risultato è sempre molto qualunquistico. Scappate da idee simili.

Specializzarsi è il nostro obbiettivo migliore. UI, Servizi, Integrazione, Modellazione dati, DBA, Software Engineering (ke sarebbe la programmazione specifica di domini, es: automatica, elettronica, componentistica, domotica, dove vanno alla grande gli ingegneri informatici perchè bravi anche in matematica, fisica, etc, vedi Ferrari s.p.a. che ha bisogno di 1 SE senior ke capisca cos’è la Stiffness - http://en.wikipedia.org/wiki/Stiffness - prima di fargli programmare il modellatore o il simulatore per le monoposto. Io da buon informatico non sapevo cosa fosse prima di incontrare 1 ingegnere ke mi ha spiegato).

Insieme al ruolo però, credo sia importante il linguaggio/piattaforma. Se hai bisogno di un esperto in .NET chiami la tal persona, se hai bisogno di 1 esperto su Java, chiami l’altra tal persona, non chiami mai lo smanettone su entrambe… Oggi è importante certificarsi e aiutarsi a vicenda, partecipare a community e “entrare nel giro”, solo così si garantisce la qualità professionale, quella derivata da studi formalizzati (cerfificazioni) e dalla partecipazione che mantiene alta la guardia, l’interesse per il settore (le community/conferenze/etc).

 

2) Imparare oggi Cobol, tanto di cappello al linguaggio, ma credo che sia 1 altro errore….

Andare all’università, studiare tanto, e poi imparare qualcosa ke è così vecchio, che aliena così tante conoscenze e competenze odierne, è assurdo dal mio punto di vista.

 

Concludendo, io sono per la specializzazione. Siamo diversi noi, e come noi sono diversi I linguaggi e le piattaforme. Qualità significa:

1) Usare la piattaforma ke ha più attinenza con le nostre necessità

2) Usare la piattaforma nel modo per cui più è stata pensata

Posso scrivere 1 gioco in VB6, certo, ma non sarà mai come il gioco scritto con XNA, perchè? Perchè ho usato il mio tempo/competenze su di un volano (l’ambiente) che mi ha dato molto di più.

 

Come sempre, sono qui per ogni commento/critica/etc

 Smile

 

Anto

Your comment has been posted.   Close
Thank you, your comment requires moderation so it may take a while to appear.   Close
Leave a Comment
  • Post
  • Io sono per la specializzazione orizzontale; ho passato la vita a cercare di utilizzare quante più tecnologie potevo toccare senza arrivare al massimo di nessuna. Penso che per me sia stato più utile (e lo sia tuttora) avere una tale conoscenza orizzontale da poter convogliare un qualsivoglia progetto IT complesso nei giusti binari. Conoscendo più tecnologie questo processo è più semplice, poichè spesso ogni tecnologia ha un limite e viceversa ognuna ha un punto forte. Così posso trovarmi davanti ad un cliente o ad una realtà che ha bisogno di una tale soluzione e sentirmi libero di consigliare la scelta che nel mio universo ritengo migliore. Con la razionalità limitata dalla conoscenza anche molto approfondita di un particolare scenario, il DBA rimarrà sempre DBA e l'SE sempre SE. Il piacere del mio lavoro deriva invece da conoscere un pò tutte le parrocchie.. ma attenzione, senza la pretesa di cambiare il cappello ad ogni occasione, c'è differenza tra sapere che esiste e saperlo fare.

    Io so che esiste ruby on rails e lo consiglio se l'utenza mi chiede certi requisiti con priorità rispetto ad altri: so che c'è, so cosa fa ma poi lo faccio fare ad altri; altresì saprei posizionarmi in uno scenario J2EE o in molte altre tecnologie perchè ho maturato una visione d'insieme in continua espansione che mi porta a provare.

    Il tuttologo in quanto esperto di tutto non esiste, ma è anche aberrante conformarsi all'idea sempre più comune nel mondo lavorativo che non sia possibile che uno sappia fare bene più di una sola cosa alla volta. Oggi ai molti è difficile pensare che una persona sia un ottimo pianista e un ottimo sciatore, bisogna per forza dire "ma è più bravo come pianista, in effetti come sciatore è mediocre". E se un giorno non dicesse di essere anche pianista probabilmente sarebbe un ottimo sciatore.

    Il problema è anche quello, la riluttanza di chi ti guarda a prenderti sul serio se sai fare tante cose, per il solo motivo che la maggioranza si specializza, concetto per me tanto essenziale quando brutalizzante per l'anima.

  • Ciao Rob

    Se fossero tutti come te, il mondo dei DEV sarebbe 1 posto migliore :)

    Come te credo sia assolutamente importante avere una conoscenza ampia ma sempre guidata da un filo conduttore, una competenza/specializzazione principale a farla breve.

    Quello che invece non amo nei discorsi sulla trasversalità, in genere sono le frasi tipiche come:

    Il linguaggio si impara sempre.....

    Non bisogna specializzarsi perchè ci si fossilizza......

    Bisogna avere 1 sguardo d'insieme......

    Queste frasi, prese da sole possono nascondere delle verità, ma analizziamole nel contesto reale:

    1) Un linguaggio si impara, ma a che livello? Certo, se ti accontenti di saper scrivere class {} o bean {} allora è tutto facile... io uso .NET da quasi 10 anni e ancora non so tutto.... quindi, la verità è che se ci si accontenta di non sapere niente in realtà, e di continuare a credere o a spacciarsi per esperto, allora la frase è vera. Tutto sta nel proprio livello di paragone

    2) Dipende, le tecnologie crescono e noi con loro.. se hai scelto cobol allora ti fossilizzi, se hai scelto silverlight, allora non hai nemmeno il tempo di provare a certificarti, tanto memmeno MSL ha il tempo di creare le certificazioni tante le novità che escono.....

    3) Assolutamente vero. Ma io MAI mi sogno di dire: il bean serve per questo o quest'altro, perchè io non so nemmeno cos'è 1 bean! Invece spesso (ndr. vedasi mia ultima esperienza lavorativa) sento dire: io non conosco la tecnologia di cui parli, non conosco nemmeno il SOA, non conosco bene il mondo .NET, ma sono sicuro di avere ragione a proporti di usare quest'altro prodotto, che nemmeno io conosco, ma ne ho sentito parlare bene e sono convinto! Ma stiamo scherzando?!?!?!? Ma che professionista sei? Lo sguardo di insieme va avuto, ma per davvero. Cioè, se una tecnologia/linguaggio/competenza non la ho, allora non parlo, altrimenti posso parlarne, ma entro i miei limiti di conosceza, che molto spesso altri superano.

  • Ma cosa vi siete fumati?

Page 1 of 1 (3 items)