Perché gli sviluppatori devono tenersi aggiornati con tecnologie e metodologie? [chiuso]

27

Mi viene sempre dato il consiglio che gli sviluppatori debbano essere aggiornati con le tecnologie più recenti - cose come webrtc, aggiornamenti su html5 e css3 e nuove librerie js, metodologie software come TDD, DDD e BDD.

La domanda è perché ? Perché abbiamo bisogno di aggiornarci costantemente? Non possiamo limitarci a ciò che conosciamo e migliorare con esso?

    
posta Wern Ancheta 16.08.2012 - 14:57
fonte

8 risposte

41

Le nuove tecnologie emergono per una ragione. Di solito questo motivo è perché sono più efficienti o potenti nel realizzare un particolare compito.

C'è ancora molto valore nel mantenere la vecchia tecnologia per i sistemi legacy, ma quando alla fine raggiungeranno la fine della tua vita sarai dietro il gioco.

Motivi aziendali a parte, l'apprendimento costante di nuove tecnologie ti tiene in pugno e ti apre gli occhi su diversi modi di affrontare le attività, anche nelle vecchie tecnologie e così via, così via.

    
risposta data 16.08.2012 - 15:05
fonte
26

Sebbene sia certamente possibile costruire una carriera su un singolo stack tecnologico se si è fortunati 1 , è quasi certo che la tecnologia cambierà più di una volta nel momento in cui sono impiegati con profitto. Puoi (e dovresti) migliorare ciò che già sai, ma imparare cose nuove in anticipo ti aiuterà a ridurre la curva di apprendimento quando il prossimo cambiamento tecnologico arriverà nel tuo angolo del settore.

C'è anche un lato meno apparente: imparare cose nuove molto spesso ti aiuta a vedere le cose che già conosci da una prospettiva diversa, nello stesso modo in cui imparare una nuova lingua ti aiuta a imparare più cose sul tuo attuale lingua 2 .

Infine, un valore di puro intrattenimento per l'apprendimento di nuove cose non deve essere sottovalutato: per me, batte la TV a mani basse.

1 Ad esempio, scegliendo COBOL su PL / I all'inizio della tua carriera nel 1965.

2 Funziona sia per i linguaggi naturali che per quelli di programmazione.

    
risposta data 16.08.2012 - 15:12
fonte
11

Can't we just stick with what we know and become better with it?

puoi , ma è davvero facile cadere nella trappola di non voler mai imparare qualcosa di nuovo. Le tue prospettive di lavoro diminuiscono, i tuoi compagni di squadra smettono di voler lavorare con te perché sei "quel programmatore che è completamente fuori dal mondo".

Per lo più, devi mantenere un equilibrio. Cercare di imparare tutto di nuovo tutto il tempo ti porterà ad essere povero in molte cose, percepito come un agitatore. Impara bene alcune cose e concentrati almeno sulla conoscenza di ciò che esiste, anche se non puoi usarlo efficacemente.

    
risposta data 16.08.2012 - 15:18
fonte
6

Beh, probabilmente è dovuto al fatto che sei uno sviluppatore web e le tecnologie in quel campo sono molto volatili con linguaggi, piattaforme, strumenti e metodologie in aumento e in calo di popolarità. È un campo molto MOLTO alto livello. Se uno qualsiasi degli strati sottostanti è alterato, questo cambia la posizione in alto. E, francamente, è nuovo (ish). I nuovi campi hanno molto spazio per l'innovazione.

Personalmente, lavoro su dispositivi embedded, ho imparato C, e questo ha funzionato abbastanza bene per me.

Ma sto ancora imparando nuove cose su base abbastanza regolare. Socket, librerie SQL, ncurses, oggetti in C. E le metodologie sono liberamente accoppiate con le tecnologie. Il test delle unità è stato insegnato in modo orribile nella mia scuola, e ora sto girando la testa. Ho appena saputo dell'iniezione di dipendenza l'altro giorno e ho capito che è esattamente come ho risolto il mio ultimo problema con l'unità che testava una funzione di console.

La maggior parte dei programmatori non sono operai che fanno la stessa cosa ogni giorno. Quei lavori possono (e dovrebbero) essere automatizzati. Nessuno paga per un'altra implementazione bubble-sort. È stato fatto.

    
risposta data 16.08.2012 - 18:38
fonte
5

Direi che puoi ignorare molto di ciò che è là fuori. Gran parte di esso è hype e fad e nuovi nomi per la vecchia tecnologia. I veri progressi saranno presto sostituiti da quelli ancora più recenti che non realmente dipenderanno da quelli vecchi, anche se i vecchi timer dicono che dovresti capire i vecchi per capire il nuovo. Se hai lasciato il campo per 10 anni, al tuo ritorno avresti solo 2 anni di ritardo.

Detto questo, individuare la nuova vera nuova tecnologia può essere complicato. Sono contento di non aver perso l'OOP, ma all'inizio sembrava sicuramente solo una manciata di parole. E spesso hai bisogno di usare la tecnologia attuale per fare un lavoro, anche se tutti lo avessero dimenticato in 3 anni.

Il clamore e la confusione della tecnologia software moltiplica il cambiamento che dobbiamo affrontare giorno per giorno. Ma la tecnologia elettronica sta sta avanzando rapidamente e sta spingendo il software insieme a esso. C'è un sacco di reali cambiamenti là fuori. Stiamo ancora guidando le macchine, volando sugli aerei e andando nello spazio con gli stessi veicoli che abbiamo usato nel 1965. Ma l'hardware elettronico del 1995 è irrimediabilmente obsoleto.

Quindi la risposta profonda alla tua domanda è che gli scienziati e gli ingegneri che lavorano con l'elettricità sono stati molto impegnati. Il software deve evolversi per sfruttare l'hardware. Peggio ancora (o meglio, meglio?), Penso che il software sia stato lasciato indietro dall'hardware. Se domani le persone dell'hardware andranno in pensione, il software si evolverà furiosamente per almeno i prossimi due decenni.

Se hai bisogno della nuova tecnologia per fare un lavoro, devi impararlo. Se c'è una possibilità che sia una nuova tecnologia che sarà ancora qui tra 20 anni, devi tenerla d'occhio - e se guardi 20 tecnici che muoiono per tutti quelli che vivono, stai andando piuttosto bene. E in realtà puoi ignorare tutto il resto. Tranne quel po 'di fumo evidente che sarà alla base di tutto il software del 2020.

    
risposta data 16.08.2012 - 16:49
fonte
2

IMHO, devi trovare un equilibrio. Ciò richiede abilità ed esperienza.

Devi trovare una o due lingue in cui sei specializzato, tenerti aggiornato in cambiamenti di struttura / stile che si evolvono in questa lingua e mantenere le tue capacità di prim'ordine.

Ma devi anche vedere come si evolve questo linguaggio e capire le dinamiche dello sviluppo del software nel suo complesso. Java sarà in giro tra 10 anni, Phyton è lì per restare, PHP sarà sostituito con .NET e Mono?

Si tratta di domande strategiche su larga scala, risposte alle quali ti permetteranno di diventare un professionista molto apprezzato nel tuo campo, pur avendo un backup solido (1 o 2 lingue) e sapendo quando spostarti dalla tua piattaforma principale.

IMHO, seguire tutti i linguaggi moderni che vengono sviluppati ogni giorno è uno dei maggiori problemi per l'intero settore. Abbiamo un sacco di lingue sottosviluppate, senza quasi nessun professionista, e le persone che perdono tempo su di loro sono raramente dei veri professionisti anche in una sola lingua. Principalmente scrivono il codice che è misto di tutte le lingue e non fa nulla di giusto. Allo stesso tempo, la quantità di anni-uomo sprecata in questi linguaggi non standard potrebbe essere spesa per migliorare alcuni framework e specifiche del linguaggio core.

    
risposta data 16.08.2012 - 17:53
fonte
1

Come altri hanno sottolineato, molte nuove tecnologie emergono per rispondere a nuovi bisogni e quindi rendono più facile la risoluzione di determinati problemi. Pertanto è necessario tenersi aggiornati e almeno sapere cosa sta succedendo nel proprio campo e capire quali nuove tecnologie sono rilevanti per il proprio caso.

D'altra parte, penso che a volte ci sia anche un fattore di hype in alcune innovazioni: alcune idee sono estremamente vecchie ma solo negli ultimi anni vengono spinte a diventare mainstream. A volte ho l'impressione che un nuovo linguaggio di programmazione (o una sua nuova versione) venga spinto solo perché "nuovo è meglio" e una nuova tecnologia significa nuovi libri, nuovi strumenti di programmazione, nuovi compilatori, nuovi corsi di programmazione o, in altre parole, entrate.

Quindi può capitare che tu debba imparare una nuova tecnologia senza vedere alcun vantaggio reale sulla tecnologia che hai usato in precedenza, altrimenti rischi di essere fuori dal mercato perché le tue abilità sembrano vecchio stile . Spetta a te seguire lo sviluppo di nuove tecnologie e cercare di capire quali possono renderti più produttivo e quali sono solo convenienti per migliorare il tuo CV.

Conclusione: penso che dovresti cercare di imparare ciò che trovi davvero utile, indipendentemente dal fatto che sia nuovo o vecchio.

    
risposta data 16.08.2012 - 18:37
fonte
1

Perché "attenersi a ciò che sai" rappresenta un fallimento nel "migliorarsi". Non è necessario adottare ogni nuova pratica e struttura che si presenta, ma si dovrebbe almeno avere un'opinione informata su quelli popolari. Nello sviluppo del web solo porre la domanda sarebbe orribile per un intervistatore. Web Dev è disseminato di cadaveri di persone che volevano smettere di apprendere nuove cose dopo il 2000 e questo è come dovrebbe essere perché fanno più lavoro per il resto di noi. Stai lontano da dev se non ti interessa. È un pessimo rapporto $ / ora se la parte in cui impari nuove cose sembra funzionare.

    
risposta data 16.08.2012 - 20:32
fonte

Leggi altre domande sui tag