Come hai avuto la possibilità di imparare più lingue? [chiuso]

9

Ho letto Un programmatore dovrebbe concentrarsi su almeno quante lingue? , e ho scoperto che non conosco le lingue nel numero 2, 3 della prima risposta. Voglio imparare più lingue per aumentare le mie conoscenze e capacità di programmazione. Tuttavia, di solito nelle aziende usano framework e linguaggi fissi e cambiano raramente. Quindi non sono sicuro di avere la possibilità di imparare quelle lingue e penso che sarebbe lo stesso per altri programmatori.

Tuttavia, ho visto molti sviluppatori che conoscono più lingue qui. Come hai la possibilità di imparare molte lingue?

Aggiorna

Penso che ci siano molte persone che si sentono a disagio perché sembra che non voglia affatto studiare nel mio tempo libero. In realtà, non è vero. :) Sono un appassionato programmatore ed è per questo che ho postato questo tipo di domanda qui. Studio nel mio tempo libero ma ho pensato che non sarebbe stato abbastanza abile nelle lingue. Comunque, grazie per tutte le risposte!

    
posta Sanghyun Lee 04.09.2011 - 15:40
fonte

9 risposte

10

Trovo che il modo migliore per imparare una lingua sia utilizzarlo immediatamente per creare qualcosa di utile o di cui hai bisogno .

Per esempio mi sono trovato nella necessità di automatizzare molte operazioni che dovevo fare manualmente ogni volta. Attività ripetitive, creazione di file e cartelle, ecc. Quindi ho scelto semplicemente un linguaggio di scripting per fare qualche utile strumento. Ho scelto Perl e ho iniziato a imparare la sintassi e le funzioni di cui avevo bisogno per realizzare il mio script, grazie a tutorial e libri online.

In un paio di giorni ho avuto il mio strumento attivo e funzionante, quindi nel tempo libero continuavo a imparare cose nuove sulla lingua e aggiungevo altre funzionalità.

Un'altra grande opzione che viene in mente è: se non trovi una lingua che ti piace, o pensi che non soddisfi completamente le tue esigenze, puoi ancora creare la tua lingua .

Lo sto facendo ora con Perl, ho scelto una sintassi che mi avrebbe aiutato a risolvere al meglio i miei problemi specifici (dal momento che stai scrivendo la tua lingua, potresti scegliere la sintassi giusta per il lavoro, quella che meglio si adatta descrive e risolve i tuoi problemi specifici del dominio).

Il risultato? Lo sviluppo è ora molto più veloce e il codice stesso è molto più descrittivo perché è un linguaggio specifico del dominio. Ho fatto una domanda relativa a questo argomento alcune settimane fa con molti link utili.

Puoi utilizzare qualsiasi linguaggio di scripting per crearne uno nuovo, anche con PHP.

    
risposta data 04.09.2011 - 16:26
fonte
8

Questo genere di domande mi sconcerta sempre. Ho usato 7 lingue professionalmente, ho scritto codice in circa 5 altre lingue in ambito hobbistico e accademico, e posso leggere il codice in forse una dozzina di altre lingue. Non una volta ho imparato una lingua solo per il gusto di farlo. C'è sempre un obiettivo concreto e immediato in mente. Ad esempio, questo fine settimana ho appreso abbastanza librerie Android per iniziare a lavorare su un'app per la mia famiglia. Se avessimo degli iPhone avrei appreso Objective-C.

La mia sensazione è che conoscere più lingue sia un sintomo di essere un programmatore abile, o almeno entusiasta, non una causa di esso. Se non riesci a pensare a un motivo convincente per imparare una nuova lingua, non so quanto ti possa giovare.

    
risposta data 04.09.2011 - 19:51
fonte
3

Il modo migliore per imparare una nuova lingua quando hai un problema da risolvere. Piuttosto che usare semplicemente ciò che ti è comodo, dedica del tempo a esaminare quali strumenti (linguaggi, framework, librerie) potrebbero essere utili per aiutarti a risolvere il problema. Se hai tempo per imparare il nuovo strumento, fallo. Potresti non essere in grado di farlo al lavoro, quando hai pressioni programmatiche e limitazioni tecnologiche guidate da fattori esterni, ma non c'è motivo per cui non puoi adottare questo approccio nei progetti personali.

    
risposta data 04.09.2011 - 16:24
fonte
2

Devi solo trovare il tempo per farlo. Dai un'occhiata al libro "Seven Languages in Seven Weeks" dei Braies. Vi darà un'introduzione a sette lingue molto interessanti e da lì potrete andare in tutti i tipi di posti.

    
risposta data 04.09.2011 - 16:16
fonte
1

Inizia a usarlo. Ovviamente, costruire un sistema di produzione da zero in una lingua a cui non hai mai avuto alcuna esposizione è una cattiva idea, ma ecco alcuni suggerimenti:

  • Impara nel tuo tempo libero. Scegli un progetto che trovi interessante, in cui sei sicuro di poterlo finire da solo. È meglio fare alcune letture introduttive sulla tua nuova lingua per giudicare se è adatto - ogni lingua ha punti di forza e di debolezza, e la cosa migliore è iniziare con un problema che il linguaggio è stato progettato per eccellere.
  • Iniziare a fare attività di manutenzione su un progetto esistente. In questo modo, puoi raccogliere gran parte della lingua senza nemmeno leggere la documentazione: molto può essere dedotto dal codice di esempio e per le parti in cui devi leggere la documentazione, sarà molto più chiaro perché hai visto la codice già. È anche più semplice cercare "cosa fa questo codice" rispetto a "come posso scrivere codice che fa X".
  • Usa la tua nuova lingua per i piccoli strumenti e gli helper che ti servono: script di shell, codice usa e getta per attività specifiche, calcoli rapidi (ad es. interpreti interattivi di molti linguaggi dinamici: python, lisp, haskell, ecc. ). Tuttavia, non tutte le lingue sono adatte per questo.
risposta data 04.09.2011 - 17:19
fonte
1

Scegli qualcosa di relativamente piccolo che hai fatto in una lingua e sviluppa una sostituzione drop-in in un'altra lingua. Fai questo solo per metterti alla prova. Per completarlo, imparerai molto sull'altra lingua.

Solo nell'ultima settimana, ho deciso di imparare e riscrivere un back-end del servizio web in NodeJS (precedentemente un servizio JSP). Ci è voluto solo un giorno per far funzionare il servizio bare-bone e pochi giorni dopo avevo ampliato la sua infrastruttura, la gestione degli errori, la registrazione e aggiunto il monitoraggio dal vivo. Ora è superiore all'originale. Se la direzione lo accetta o meno è irrilevante, come ho imparato qualcosa e ne sono molto felice.

    
risposta data 04.09.2011 - 17:27
fonte
1
  • Ritengo che una parte del mio lavoro sia "ricerca". Nel 1998 la ricerca significava correggere i bug Y2K. La ricerca del mese scorso ha significato imparare Subversion. Ho fatto ricerche per 40 anni. Quando elenco le lingue, devo elencarle in ordine alfabetico.

  • Quando imparo una lingua, leggo la copertina del manuale di riferimento per la copertina. Quindi lo uso effettivamente per alcuni mesi. Poi ho letto di nuovo il manuale di riferimento. La seconda lettura rivela molti trucchi e implicazioni che ho perso la prima volta.

  • La ricerca pratica copre lingue normali, come C # e Pascal. La ricerca avanzata copre lingue strane, come LISP e FORTH. Probabilmente non userete mai LISP professionalmente, ma impararlo amplia notevolmente la mente.

  • Naturalmente, nel mio ambiente, non sono pagato per tempo, sono pagato per la consegna. Se posso consegnare in due settimane, usando sei ore al giorno, posso usare gli altri tre per la ricerca. Se ci vogliono dodici ore al giorno, beh, nessuna ricerca quindi.

  • Tutte le ricerche, ovviamente, dovrebbero avere qualche utilità potenziale per colui che mi paga. Le piccole utility sono buone; la prossima volta che vuoi elaborare il tuo codice sorgente C, provalo in Python. (No, non conosco Python, ma ho sentito che è buono per la manipolazione delle stringhe.)

risposta data 05.09.2011 - 08:07
fonte
0

A volte le opportunità vengono dal tuo impiego. Di solito ci sono uno dei tre driver per questo tipo di opportunità.

  1. È una tecnologia nuova di zecca. Ad esempio, molte aziende hanno pagato per la formazione C # per i loro sviluppatori nei primi due o tre anni dopo che .NET è stato rilasciato.

  2. È facile da imparare. Ad esempio, in un negozio di Linux, troverai la necessità di scrivere script .bash. Se hai utilizzato sessioni terminali, ecc. E ci sono altri sviluppatori con esperienza nella scrittura, dovresti essere in grado di acquisire questa abilità, anche solo per automatizzare alcune delle tue attività.

  3. È un'abilità tecnica non comune utilizzata e la tua azienda non vuole passare il tempo e le spese per trovare un consulente per svolgere il lavoro. Ad esempio, ho imparato a scrivere XSLT perché avevamo bisogno di un modo semplice per trasformare alcuni file XML (log) per la visualizzazione.

Altre opportunità che devi fare per te stesso al di fuori del lavoro. Scegli attentamente - quali tecnologie ritieni utili in futuro? In questi casi, devi dedicare tempo e impegno all'apprendimento e all'applicazione della tecnologia. Questo dovrebbe far parte di un piano generale di carriera e potresti dover pagare per le lezioni. (Sono stato fortunato - quando ho imparato Java, stavano insegnando le serate in un college della comunità locale).

    
risposta data 05.09.2011 - 08:02
fonte
0

Rispondere alla tua domanda, dalla mia esperienza (sono abbastanza nuovo nell'industria, quindi non molto di più). Imparo nuove lingue facendo ricerche per vedere quale lingua si adatta meglio alle mie esigenze. All'università, avevo un progetto in crittografia che richiedeva l'uso di interi grandi. Stava diventando piuttosto avvincente in C ++, quindi mi sono rivolto a Java perché forniva la classe BigInteger. Nel mio attuale lavoro, ho visto che lo scripting della shell non era in grado di risolvere completamente il mio problema senza diventare troppo complesso, così ho imparato il Perl. Impara al volo è il mio consiglio come requisito uno. Ovviamente se ti senti annoiato, c'è un intero mondo di lingue da esplorare.

    
risposta data 05.09.2011 - 12:15
fonte

Leggi altre domande sui tag