Devo cambiare lingua per non diventare stantio? [chiuso]

6

Sono un programmatore ASP.Net/C# che utilizza SQL Server come back-end.

Sono il direttore tecnico dell'azienda, sono estremamente felice in tutto ciò che faccio e considero i linguaggi e il sistema che utilizziamo per essere perfetti per ciò che facciamo.

Nel retro della mia mente, anche se so che nel tempo i programmatori possono diventare obsoleti. Ricordo come un giovane ragazzo che tutti quei "vecchi" sviluppatori lo avevano superato e non potevano stare al passo con i giovani.

Quindi considerando di essere felice in tutto ciò che sto facendo. Quali opzioni ci sono per stare al passo con tutto ed evitare di diventare stantio.

Un'idea particolare che uso è lasciare che tutti i nuovi sviluppatori usino e mostrino le cose che pensano siano interessanti. Se qualcosa cattura la mia attenzione, allora sarà assolutamente qualcosa che useremo in futuro.

Pensieri?

    
posta Robin Day 16.09.2010 - 10:03
fonte

8 risposte

12

L'apprendimento di molte lingue offre diversi approfondimenti - diversi strumenti - nei problemi.

Penso che sia molto importante imparare diverse molto lingue diverse. Forse un linguaggio funzionale (Scheme, Haskell), uno orientato agli oggetti (Smalltalk, Ruby), uno orientato alla concorrenza (Erlang), uno programmatore logico (Prolog) e and and.

L'importante è che le lingue non siano più le stesse. Se conosci C #, l'apprendimento di Java non ti insegnerà più di tanto. Se conosci C, imparare Pascal non espanderà i tuoi orizzonti intellettuali.

    
risposta data 16.09.2010 - 10:12
fonte
6

Per aggiungere a @ la risposta di Frank: vale la pena imparare nuove lingue anche se non hai intenzione di usarle nel tuo lavoro . [*]

Il punto importante è che l'apprendimento di una lingua a cui non sei abituato (ad esempio, Haskell) ti rende un programmatore migliore in quello che usi quotidianamente (C #). Ti aiuta ad apprezzare la differenza tra la logica fondamentale che si applica a tutti i programmi rispetto alle idiosincrasie nel tuo linguaggio di programmazione giorno per giorno che hai dato per scontato.

([*] In effetti, è una cattiva idea iniziare a controllare il codice in una lingua che hai utilizzato solo per una settimana.)

    
risposta data 16.09.2010 - 10:21
fonte
2

Non sono un direttore tecnico, ma se diventassi uno, lo farei.

Organizzerei una certa frazione di ore lavorative per i progetti collaterali in cui gli sviluppatori dovrebbero scrivere qualcosa di pulito usando linguaggi e strumenti, che sono diversi da quelli che di solito utilizzi. Sono sicuro che puoi trovare un programma che ti serve (ma non lo sai ancora). Ecco alcune idee:

  • Ruby sul sistema Rails che raccoglie i voti dei membri del team per diversi tipi di pizza e ordina automaticamente la pizza in base alla distribuzione dei voti. Molto utile quando si effettua una festa corporativa.
  • Se inizi a destinare il tuo tempo tra diversi progetti, potresti sicuramente aver bisogno di un sistema di tracciamento del tempo che raccolga e analizzi il modo in cui gli sviluppatori passano il loro orario di lavoro. Dì, implementato in C ++? (alcuni dei nostri programmatori Perl lo stanno facendo in questo momento).
  • Una patch per il sistema di tracciamento dei bug basato sul web che usi riflette il tuo modo molto specifico di gestire i bug? Oh, il sistema è implementato in Perl, ma è il punto!
  • ...

Se si scava, è possibile trovare molti programmi "utili" che aiutano gli sviluppatori in ufficio. Certo, potresti semplicemente acquistarli con il supporto a tempo pieno, ma puoi anche utilizzarli come progetti che impediscono alle persone di diventare obsolete.

    
risposta data 16.09.2010 - 11:37
fonte
2

Le persone della Pragmatic Bookshelf hanno un nuovo libro in uscita, scritto da Bruce A. Tate, dal titolo "Seven Languages in Seven Weeks". Il suo scopo è quello di coprire sette lingue molto diverse con l'intenzione del lettore di ottenere una comprensione significativa di ciascuna per il momento in cui hanno finito.

link

Penso che sia un ottimo rimedio per mantenersi fresco.

    
risposta data 23.09.2010 - 04:11
fonte
1

Non solo dovresti guardare in un'altra lingua, ma fare progetti per immergerti in essa (il software Rosetta Stone usa questo approccio). Non vuoi correre il rischio di "so come farlo in C #, quindi come si chiama in Python?"

Dai un'occhiata a ciò che hai fatto e identifica le aree problematiche. Quindi trova una lingua che faccia meglio. Potrebbe essere necessario provarne più di uno, ma una volta trovato il candidato migliore, avviare un progetto utilizzandolo.

O utilizza la tua stessa lingua, ma sviluppa su una piattaforma diversa come gli smartphone.

    
risposta data 22.09.2010 - 23:09
fonte
0

Secondo i programmatori pragmatici dovresti imparare una nuova lingua ogni anno. Questo ti aiuta a evitare di diventare stantio. Ci sono così tanti modi diversi di programmazione per la programmazione, e ogni lingua ti incoraggia a vedere i problemi da una prospettiva diversa.

C # è un linguaggio in rapida evoluzione. È iniziato come un semplice linguaggio OO, quindi ha sviluppato un carico di funzionalità (LINQ) e con C # 4 si è spostato nel regno del linguaggio dinamico. Per abbracciare pienamente tutte queste nuove idee, può davvero aiutare a imparare una lingua in cui quel paradigma è l'obiettivo principale della lingua. Questo ti darà l'agilità mentale per utilizzare appieno l'aspetto rilevante di C # che risolverà al meglio il tuo problema.

Ora ci sono un sacco di lingue che puoi imparare senza uscire dal framework .Net. Impara F # per utilizzare la programmazione funzionale, IronRuby o IronPython per alcune programmazioni dinamiche. Boo for (qualunque cosa Boo sia bravo a) ... Essendo tutto in .Net, queste lingue possono dialogare direttamente tra loro, quindi potresti essere in grado di usarle direttamente nel tuo lavoro.

    
risposta data 16.09.2010 - 10:31
fonte
0

Può essere interessante fare come un hobby e puoi ottenere delle buone intuizioni. Potresti persino decidere che ti piace il "nuovo modo" di fare le cose meglio della vecchia maniera. Tuttavia, per esperienza personale vorrei essere cauto contro l'assunzione di un cambiamento di lavoro per lavorare su una nuova lingua. Per non dire che non funzionerà per tutti, ma certamente non ha funzionato per me.

Ho lavorato su Objective-C su NeXT / Mac / iOS per innumerevoli eoni e, a parte un piccolo dilettevole, in numerose lingue, ma principalmente Python e Java, è stato il mio pane e burro. Ho deciso che sarebbe valsa la pena di immergermi completamente in Java per vedere come si differenziasse e magari acquisire una certa conoscenza che potrei usare in ObjC e ottenere un lavoro come ingegnere Java. Avanti di due mesi e ho già smesso.

Il fatto è che può essere difficile trovare il tempo (o comunque lo trovo difficile) per lavorare su progetti di programmazione al di fuori del lavoro, perché dovrebbe essere il tempo libero. Se sei un lavoratore autonomo o se sei d'accordo con il tuo manager, impostare un tempo di ricerca durante l'orario di lavoro può essere il modo migliore per andare.

    
risposta data 08.11.2010 - 11:15
fonte
0

Imparare una nuova lingua e / o struttura aprirà nuove idee e orizzonte per rendere il tuo lavoro più piacevole. Non diventare obsoleto e imparare nuovi bit ogni giorno a rendere felici gli sviluppatori di software.

Credo che uno sviluppatore reale e appassionato guardi sempre all'apprendimento di nuove tecnologie all'avanguardia e all'introduzione / condivisione di questo con i colleghi.

Il mio suggerimento è anche guardare le recenti tendenze nello sviluppo web di ASP.NET e il progresso nello scripting lato client. Una tendenza relativamente nuova con i framework MVC e Web API sta diventando sempre più popolare con il sostegno della community.

Ad esempio: le librerie jQuery and KnockoutJs possono essere facilmente applicate a progetti esistenti su asp.net, migliorando la presentazione in poco tempo :)

Tuttavia, esiste una curva di apprendimento che andiamo tutti comunque.

    
risposta data 07.08.2012 - 19:14
fonte

Leggi altre domande sui tag