In quanti linguaggi di programmazione ci si aspetta che un programmatore sia un esperto? [chiuso]

21

La maggior parte dei programmatori è specializzata in un singolo stack, lasciando che siano altre cose o che siano esperti in più lingue allo stesso tempo? Se è più di uno, quanti sono standard?

Per esperto, intendo più che semplicemente conoscendo la sintassi di una lingua - un esperto conosce abbastanza di librerie standard, strumenti, ambienti e sintassi per essere in grado di scrivere programmi non banali senza dover costantemente cercare o leggere libri / esercitazioni.

    
posta blueberryfields 03.12.2010 - 02:54
fonte

11 risposte

33

Il vantaggio principale di conoscere più lingue non è quello di scriverle direttamente. A parità di altre condizioni, preferirei lavorare con un programmatore C # che conosca anche C, Python e Lisp (ad esempio) rispetto a uno che è sempre stato hackerato in C #. Non è che conoscere più lingue sia meglio, è che essere in grado di pensare a problemi a più livelli e da più punti di vista è davvero utile.

A programming language that doesn't change the way you think about programming is not worth knowing. -Alan Perlis

Non si tratta di spuntare un'altra lingua, o di metterla sul tuo curriculum; hai solo bisogno di capire i suoi concetti sottostanti abbastanza bene da programmarlo per ottenere il massimo beneficio. Non otterrai questo da una comprensione di base della sintassi.

La risposta più diretta è "dipende".

Nelle società più grandi ci si aspetta / è consentito specializzarsi, ma come ho detto sopra, credo che ci sia ancora un vantaggio nel comprendere le cose oltre il proprio strumento preferito.

In luoghi più piccoli, non puoi davvero farla franca. Se non altro, in genere è necessario mantenere l'app e crearla, e probabilmente non si potrebbero usare le stesse lingue per l'esecuzione di registri / dati munging così come si fa per costruire effettivamente l'app. Immagino che potresti tecnicamente scappare con la conoscenza di una singola lingua, ma il vantaggio di avere un linguaggio performante, strongmente tipizzato (o almeno capace di asserzione), probabilmente compilato, è quello di sollevare pesi pesanti, e un linguaggio di scripting per compiti di manutenzione / setup / scripting sembra piuttosto grande. Non vorrei farne a meno, certamente.

    
risposta data 03.12.2010 - 03:40
fonte
14

Hai una domanda molto interessante:

Non penso che ogni programmatore debba essere un "esperto" su una lingua specifica. La mia opinione è che come programmatori intendiamo essere esperti di programmazione, progettare algoritmi, pensare in passaggi chiari, ma un linguaggio di programmazione è qualcosa che impari.

Un programmatore "buono", intendo dire che gestisce i progetti di sviluppo senza spaventare il classico "Non ho mai lavorato con quello prima", dovrebbe imparare una lingua in meno di 5 giorni lavorativi. Si impara best practice, strumenti e librerie principalmente da 2 modi, 1: lettura e 2: lavoro. O fai rimbalzare la testa contro il codice o leggi un sacco di libri.

In pochi anni dopo la premessa di "I buoni programmatori scrivono solo codice" senza codice C # o codice C ++ o codice Java, ti renderai conto che dopo aver imparato a sviluppare programmi, il linguaggio e le tecnologie non sono così importanti. Certo, saprai come spostarti attorno a C # meglio di PHP, ma se hai imparato bene, scoprirai che troverai Python se necessario.

Spero che le mie idee ti piacciano!

    
risposta data 03.12.2010 - 07:02
fonte
3

Uno, ma ciò non significa che puoi trascurare gli altri. Devi sapere abbastanza per giustificare il motivo per cui non li stai usando o conosci i tuoi limiti, quindi puoi chiedere aiuto se necessario.

    
risposta data 03.12.2010 - 03:23
fonte
3

Penso che probabilmente dipenda dalla tua personalità, ci sono persone che si divertono a scavare negli angoli di un soggetto, e ci sono altri a cui piace avere una visione ampia delle cose. Probabilmente avrai bisogno di capire che tipo di personalità sei. Non sto mettendo uno sopra l'altro, ognuno ha i loro usi.

Come prima sarai l'esperto, il guru, lo specialista. Dato che quest'ultimo sarà di uso più generale e possibile utilizzato in una varietà di situazioni, ma probabilmente non andare in profondità o a lungo in un argomento.

    
risposta data 03.12.2010 - 04:23
fonte
2

Uno. Ma faresti meglio a essere dannatamente bravo.

    
risposta data 03.12.2010 - 04:06
fonte
2

Un

Quello davanti a te.

    
risposta data 03.12.2010 - 15:33
fonte
1

Come Joel ha detto nel podcast SO, è meglio conoscere molte lingue e sapere come / quando usare la lingua giusta per l'attività. Ci sono cose che puoi fare più velocemente in una lingua piuttosto che in un'altra. Penso che sarebbe bello conoscere una lingua imperativa e un linguaggio funzionale per esempio. Molte volte l'apprendimento di un linguaggio più duro o più esoterico allena il cervello a essere solo un programmatore migliore in generale.

    
risposta data 03.12.2010 - 04:34
fonte
1

Nessuna in quanto è probabile che alcuni programmatori non siano esperti in qualsiasi lingua, ma apprezzano l'ambiente diversificato che hanno e utilizzeranno vari linguaggi a seconda delle circostanze, poiché alcuni potrebbero conoscere alcune tecnologie sul lato server come PHP, ASP. Net in C # .Net o VB.Net, o Java, un paio di linguaggi di scripting lato client come JavaScript o Flash, e questo è senza entrare in qualsiasi hardware utilizzato per mettere il materiale web qui.

Allo stesso tempo, ci possono essere alcuni programmatori esperti in una dozzina di lingue o più poiché è quello che studiano piuttosto fedelmente la maggior parte del tempo per essere sempre al top in ogni lingua.

    
risposta data 03.12.2010 - 05:38
fonte
1

Uno, ma deve essere in grado di leggere programmi non banali del mondo reale che sono scritti in poche altre lingue di volta in volta. In qualche modo, quello in cui il programmatore è un esperto è come la loro lingua materna, ci pensano, ma imparare e parlare altre lingue è molto buono in quanto mostra che il programmatore può apprezzare altri modi di pensare. Se riescono a pensare in più di una lingua fluente come la loro lingua madre, è fantastico.

    
risposta data 03.12.2010 - 05:57
fonte
1

Questa è una buona domanda, ma non penso che ci sia uno standard. Normalmente da quello che ho visto le persone sono esperte in un unico linguaggio di alto livello (C ++, Java, ecc.) In un unico ambiente (windows / linux, mac, solaris). Conoscono approssimativamente un altro linguaggio di alto livello, ma non lo comprendono appieno. (ad esempio C ++, le persone Java si conoscono a grandi linee). In parole povere intendo che possono confrontare le prestazioni di un compito nella lingua che sono esperti e nell'altra lingua. E poi sono moderati in alcuni dei linguaggi di scripting. (ad esempio, le persone Linux conoscono bash, le persone Windows conoscono VBA, le persone del Web conoscono PHP).
Per me ciò che conta è la conoscenza dell'algoritmo di base rispetto alla lingua. Se le tue basi sono buone, ci sono meno possibilità di rovinarti in qualsiasi lingua.
Ma sì, a volte può essere utile sapere quale linguaggio potrebbe essere migliore per quale compito. per esempio il seguente codice è molto più veloce in Pascal che in C.

strcat (A, "Ciao"); strcat (A, "WOrld"); strcat (A, "I say hi!");

Questo perché Pascal salva la lunghezza della stringa nella prima posizione e quindi è facile passare all'ultima posizione. In C la terminazione della stringa è '\ 0' e quindi dovrai attraversare l'intera stringa per l'operazione strcat.

    
risposta data 03.12.2010 - 06:47
fonte
0

Dipende dall'ambiente in cui stai programmando. In un precedente lavoro, la maggior parte del mio lavoro era in Perl; durante il mio tempo lì ho avuto abbastanza bravo a questo. Ora lavoro in un posto che ha programmi legacy in tre lingue che conosco a malapena la sintassi; Mi aspetto di mantenerli in aggiunta al mio lavoro su nuovi progetti. Ora sono meno padrone di qualsiasi lingua, ma penso di aver avuto una sensazione migliore per programmazione . Ho imparato a pensare in modo più astratto, vedere prima l'immagine grande e poi cercare la sintassi e le librerie per riempire i dettagli.

    
risposta data 03.12.2010 - 05:54
fonte

Leggi altre domande sui tag