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


9

Ho letto Un programmatore dovrebbe concentrarsi almeno su quante lingue? e ho scoperto che non conosco le lingue al numero 2, 3 della prima risposta. Voglio imparare più lingue per aumentare le mie conoscenze e abilità di programmazione. Tuttavia, di solito nelle aziende usano un framework e linguaggi fissi e cambiano raramente. Quindi non sono sicuro di poter avere l'opportunità 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 possibilità di imparare molte lingue?

Aggiornare

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 pubblicato questo tipo di domanda qui. Studio nel mio tempo libero, ma ho pensato che non sarebbe bastato essere abili nelle lingue. Comunque, grazie per tutte le risposte!


7
Semplicemente, impara nuove cose nel tuo tempo libero.
Jonas,

1
Amico, quella risposta è stata pubblicata da un programmatore di 39 anni. Penso che sia una buona lista, ma non ti ammazzare su di essa.
Giobbe

7
Non "ottieni" possibilità. RISCHI. Se vuoi imparare più lingue, esci e fallo. Non aspettare che una mitica responsabilità lavorativa venga da te.
Joel Etherton,

Risposte:


10

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

Ad 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 semplicemente scelto un linguaggio di scripting per creare uno strumento utile. Ho scelto Perl e ho iniziato a imparare la sintassi e le funzioni di cui avevo bisogno per realizzare la mia sceneggiatura, grazie a tutorial e libri online.

In un paio di giorni ho avuto il mio strumento attivo e funzionante, quindi nel mio tempo libero ho continuato a imparare nuove cose sulla lingua e ad aggiungere più funzionalità ad essa.


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 comunque creare la tua lingua .

Lo sto facendo ora con Perl, ho scelto una sintassi che mi aiutasse a risolvere meglio i miei problemi specifici (poiché stai scrivendo la tua lingua, potresti voler scegliere la sintassi giusta per il lavoro, quella che meglio descrive e risolve i tuoi problemi di dominio specifici).

Il risultato? Lo sviluppo è ora molto più rapido 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 usare qualsiasi linguaggio di scripting per crearne uno nuovo, anche con PHP.


Non sapevo di poter creare la mia lingua con Perl. Potresti elaborarlo o darmi qualche riferimento?
Sanghyun Lee,

Ho chiesto questo qui . Fondamentalmente devi creare uno script che comprenda (analizza) i tuoi input e realizzi diverse attività in base a ciò che scrivi. Può essere semplicemente un insieme di funzioni o una sintassi del linguaggio completamente nuova. Quindi puoi automatizzare tutto se necessario. Non solo con Perl, puoi usare qualsiasi linguaggio di scripting per crearne uno nuovo.
Jose Faeti,

8

Questo tipo di domande mi sconcerta sempre. Ho usato 7 lingue in modo professionale, ho scritto codice in circa altre 5 lingue in contesti di hobby e accademici e posso leggere il codice in forse una dozzina di lingue in più. Non una volta ho imparato una lingua solo per il gusto di farlo. C'è sempre qualche obiettivo concreto e immediato in mente. Ad esempio, questo fine settimana ho imparato abbastanza librerie Android per iniziare a lavorare su un'app per la mia famiglia. Se avessimo iPhone avremmo imparato Objective-C.

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


3

Il modo migliore per imparare una nuova lingua quando hai un problema da risolvere. Piuttosto che usare semplicemente ciò di cui ti senti a tuo agio, dedica un po 'di tempo a esaminare quali strumenti (lingue, framework, librerie) potrebbero essere utili per aiutarti a risolvere il problema. Se hai il tempo di imparare il nuovo strumento, provalo. Potresti non essere in grado di farlo sul posto di lavoro, quando hai pressioni programmate e limitazioni tecnologiche guidate da fattori esterni, ma non c'è motivo per cui non puoi adottare questo approccio ai progetti personali.


2

Devi solo trovare il tempo per farlo. Dai un'occhiata al libro "Sette lingue in sette settimane" dai Braies. Ti darà un'introduzione a sette lingue molto interessanti e da lì puoi andare in tutti i tipi di luoghi.


1

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

  • Impara a tuo tempo. Scegli un progetto che ritieni interessante, dove sei sicuro di poterlo finire da solo. È meglio fare una lettura introduttiva sulla tua nuova lingua per giudicare se è adatta - ogni lingua ha punti di forza e di debolezza, ed è meglio iniziare con un problema che la lingua è stata progettata per eccellere.
  • Inizia a svolgere attività di manutenzione su un progetto esistente. In questo modo, puoi prendere gran parte della lingua senza nemmeno leggere la documentazione: molto può essere dedotto dal codice di esempio e per le parti in cui è necessario leggere la documentazione, sarà molto più chiaro perché hai visto il codice già. È anche più facile cercare "cosa fa questo codice" che "come posso scrivere codice che fa X".
  • Usa la tua nuova lingua per piccoli strumenti e aiutanti di cui hai bisogno: script di shell, codice usa e getta per attività specifiche, calcoli rapidi (ad esempio, gli interpreti interattivi di molti linguaggi dinamici - python, lisp, haskell, ecc. - rendono eccellenti calcolatori). Tuttavia, non tutte le lingue sono adatte a questo.

1

Scegli qualcosa di relativamente piccolo che hai fatto in una lingua e sviluppa un sostituto drop-in in un'altra lingua. Fallo solo per sfidare te stesso. Per completarlo, imparerai molto sull'altra lingua.

Proprio nella scorsa 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-bones, e pochi giorni dopo Avevo ampliato la sua infrastruttura, la gestione degli errori, la registrazione e aggiunto il monitoraggio in tempo reale. Ora è superiore all'originale. Non importa se il management lo accetti o meno, poiché ho imparato qualcosa e ne sono molto contento.


1
  • Ritengo che una parte del mio lavoro sia la "ricerca". Nel 1998 la ricerca significava correggere i bug Y2K. Il reserch del mese scorso significava 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. Quindi lo uso davvero per alcuni mesi. Quindi ho letto di nuovo il manuale di riferimento. La seconda lettura rivela molti trucchi e implicazioni che mi sono perso la prima volta.

  • La ricerca pratica copre linguaggi normali, come C # e Pascal. La ricerca avanzata copre lingue strane, come LISP e FORTH. Probabilmente non utilizzerai mai LISP in modo professionale, ma impararlo allarga notevolmente la tua mente.

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

  • Tutte le ricerche, ovviamente, dovrebbero avere qualche potenziale utilità per chi 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.)


0

A volte le opportunità derivano dal tuo impiego. Di solito ci sono 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 il rilascio di .NET.

  2. È facile da imparare Ad esempio, in un negozio linux, troverai che devi scrivere script .bash. Se hai utilizzato sessioni terminali, ecc., E ci sono altri sviluppatori che hanno esperienza nel scriverle, dovresti essere in grado di acquisire questa abilità, se non altro per automatizzare alcune delle tue attività.

  3. Si tratta di un'abilità tecnica non comune 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 cogliere al di fuori del lavoro. Scegli con attenzione: quali tecnologie ritieni utili in futuro? In questi casi, devi dedicare tempo e energie all'apprendimento e all'applicazione della tecnologia. Questo dovrebbe far parte di un piano di carriera generale e potrebbe essere necessario pagare per le lezioni. (Sono stato fortunato - quando ho imparato Java, insegnavano serate in un college della comunità locale).


0

Rispondendo alla tua domanda, per esperienza personale (sono abbastanza nuovo nel settore, quindi non molto) posso imparare nuove lingue facendo delle ricerche per vedere quale lingua si adatta meglio alle mie esigenze. Al college, avevo un progetto di crittografia che richiedeva l'uso di interi di grandi dimensioni. Stava diventando piuttosto complicato in C ++, quindi mi sono rivolto a Java perché forniva la classe BigInteger. Nel mio lavoro attuale, ho visto che lo scripting della shell non era in grado di risolvere completamente il mio problema senza diventare troppo complesso, quindi ho imparato il Perl. Imparare al volo è il mio consiglio come requisito uno. Naturalmente se ti annoi, c'è un intero mondo di lingue da esplorare.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.