Qual è la correlazione tra linguaggio di programmazione ed esperienza / abilità dei propri utenti? [chiuso]

3

Sono sicuro che esiste una correlazione di questo tipo, perché

  • l'esperienza e le competenze portano i bravi programmatori a scegliere linguaggi migliori per loro, in cui sono più produttivi e
  • lavorare in una lingua si forma come i programmatori pensano e influenzano i loro metodi e competenze.

Esiste qualche ricerca o alcuni dati statistici su questo fenomeno?

Forse questa non è una domanda puramente accademica. Ad esempio, se qualcuno sta iniziando un nuovo progetto, potrebbe valere la pena considerare una lingua (tra gli altri criteri ovviamente) per la quale esiste una maggiore possibilità di trovare o attirare programmatori esperti.

Aggiornamento: non effettuare la correzione sull'ultimo paragrafo. Non è mia intenzione scegliere una lingua basata su questo criterio e so che ce ne sono altre molto più importanti. Il mio interesse è per lo più accademico. Viene dall'osservazione (soggettiva) e mi chiedo se qualcuno lo abbia studiato un po '. Inoltre, sto parlando di una correlazione , non di una regola. Certo, ci sono programmatori grandi e terribili in ogni lingua. Solo che in generale mi sembra che ci sia una correlazione.

    
posta Petr Pudlák 11.11.2012 - 18:56
fonte

6 risposte

10

Ad una ipotesi, direi che esiste una correlazione, ma solo una vaga, non vale la pena di dare alcun peso reale.

Un programmatore può utilizzare o acquisire esperienza in una determinata lingua per molte ragioni. In cima alla mia testa:

  • $ COMPANY ha molti progetti in $ LANGUAGE quindi ho dovuto impararlo
  • I lavori che utilizzano $ LANGUAGE pagano molto bene
  • tutti dicono che $ LANGUAGE è quella da imparare, in generale o per qualche spazio applicativo
  • $ LANGUAGE è supportato meglio (aperto anche all'interpretazione)
  • $ LANGUAGE ha una raccolta più ampia di librerie
  • Ho imparato $ LANGUAGE a $ EDUCATIONAL_COURSE ed è quello con cui mi sono bloccato.
  • $ LANGUAGE è divertente!

Google potrebbe darti dei siti che mostrano una correlazione tra langauage e salario , ma questo è diverso dall'esperienza.

Se stai iniziando un nuovo progetto e vuoi scegliere una lingua che ti darà dei buoni programmatori, considera:

  • I buoni programmatori generalmente costano di più e / o sono più difficili da inserire nel tuo progetto
  • I migliori programmatori conoscono più lingue e possono iniziare a utilizzare una nuova lingua con relativa facilità
risposta data 11.11.2012 - 19:37
fonte
5

Ci sono linguaggi che richiedono abilità extra (l'assembly è un ottimo esempio), ma nella stragrande maggioranza dei casi il programmatore non sceglie in che lingua lavorare.

La maggior parte di noi passa il proprio tempo facendo manutenzione o aggiungendo funzionalità a un progetto esistente, non avviando nuovi progetti. E anche quando si inizia un nuovo progetto, ci sono molti fattori che vanno nella scelta di una o più lingue - principalmente non correlate a ciò che rende una lingua buona o meno. L'esempio principale per questo è che se progetti includi una presenza sul Web, quasi sicuramente utilizzerai JavaScript.

Fondamentalmente, penso che la tua ipotesi sia errata.

    
risposta data 11.11.2012 - 21:08
fonte
1

Non esiste un modo semplice per rispondere a una domanda come questa, non sono a conoscenza di alcuna informazione statistica in merito, ma posso parlare della mia esperienza come programmatore e delle aziende e dei progetti su cui ho lavorato.

La scelta di scegliere un Lagrange di programmazione è intorno a poche cose come quello che stai cercando di fare, quanto velocemente stai provando a farlo, e se ci sono altri requerments come numero di utenti e così via, praticamente call scale in questi giorni.

Un esempio di questo è, se stai creando il front-end di una pagina web, le tue scelte sono cose come html, css, javascript, script flash / azione. Ora mentre crei la pagina web vuoi aggiungere una regione extra alla pagina non puoi farlo con javascript a meno che non usi l'html con esso e il css possa davvero modificare solo l'aspetto di esso così sei veramente rimasto con html e flash, ora che cosa Finisce per accadere è che il mondo si sta allontanando dal flash in modo da scrivere un sito web in flash può farti male perché si potrebbe finire per dover rifare quella funzionalità di nuovo, le persone su alcuni dispositivi mobili come telefoni e tablet non saranno in grado di vedere il tuo lavoro. / p>

Ora, quando si tratta di codice back-end, diventa un po 'più complicato, ma è abbastanza sicuro affermare che non si desidera creare l'intero sito Web in script bash se si intende gestire un numero qualsiasi di utenti e scelte come java è popolare ma potrebbe essere più costoso di quello che è necessario per fare la tua pagina di indagine di compleanno. Alla fine ha molto a che fare con scambi ed esperienze. Per esempio sto lavorando su un progetto in questo momento e sto scrivendo un sacco di pulizia del back-end e di estrazione di dati in python, ma il sito dell'utente che si trova in php. Ho il sospetto che avrò bisogno di cambiare la roba di Python in java nella funzione, ma per ora voglio solo riprendere il progetto e tornerà a qualcosa di simile a java più tardi.

Infine, non aver paura di imparare cose nuove e spingere i tuoi limiti, e chiediti perché è stato fatto qualcosa del genere, quella piccola conoscenza in più può fare molto.

    
risposta data 11.11.2012 - 19:44
fonte
1

Una lingua è uno strumento e diversi strumenti sono più adatti per lavori diversi. È vero che alcune lingue richiedono più abilità di altre, ma questo non dovrebbe essere il criterio principale per scegliere una lingua per un progetto. Osserva il tuo progetto, scopri quali lingue sono in genere utilizzate per questo tipo di progetto su qualsiasi piattaforma tu preveda di utilizzare e poi decidi tra di loro in base alle tue possibilità di trovare o attirare programmatori esperti.

Inoltre, non è tanto il linguaggio che forma come pensano i programmatori, ma il paradigma di programmazione che supporta, io. e. imperativo vs funzionale e orientato agli oggetti ecc. I programmatori Java e C # pensano quasi allo stesso modo. I programmatori C ++ possono pensare in una varietà di modi diversi, a seconda del sottoinsieme dei paradigmi supportati dal C ++ che effettivamente usano.

L'abilità di un programmatore non è conoscere una lingua particolare, ma conoscere diverse lingue che supportano paradigmi diversi e conoscerle bene. Ciò ti dà la flessibilità per riprendere rapidamente qualunque sia la lingua corrente del giorno.

    
risposta data 11.11.2012 - 19:45
fonte
1

LinkedIn tiene traccia di alcune statistiche interessanti su un'ampia gamma di competenze, compresi i linguaggi di programmazione.

link

link

link

link

Su queste pagine, puoi vedere il nome dell'abilità, una breve descrizione, link a competenze correlate, una tendenza anno su anno (il C ++ è sceso dell'8%). È possibile visualizzare un grafico a barre che mostra una crescita relativa rispetto a alcune tecnologie scelte per te, la dimensione del gruppo di persone che usano il linguaggio (913k per C ++) o l'età per le persone che usano la lingua (31% per 18- 24, 45% 25-35 e 17% 35-45). Java ha circa un milione e ha un profilo sorprendentemente simile. C # ha tendenza tendenziale -3% a / a, ha una base più piccola 617k, 18-24 23%, 25-34 50% e 35-44 20%.

Per abilità come l'assemblatore x86, c'è un pool solo su circa 12K utenti, e sorprendentemente, 25-34 anni sono 41%, 18-24 anni sono il 29%.

L'uso di questi numeri da LinkedIn ha tutti i tipi di complicazioni perché la popolazione degli sviluppatori di software non è nemmeno tra i gruppi di età (18-24 9%, 25-34 47%, 35-44 31%, 45-54 17% per il termine sviluppo del software), e alcuni dei conteggi possono riguardare chi usa LinkedIn (potrebbe rappresentare studenti universitari che non sono ancora alla ricerca di lavoro e professionisti più anziani che sono stabiliti e non cercano lavoro o che usano la rete da persona a persona più che online).

link parla della popolarità della lingua, ma non fornisce alcuna caratterizzazione riguardo alle preferenze degli sviluppatori rispetto all'età.

    
risposta data 12.11.2012 - 02:33
fonte
1

My interested is mostly academic. It comes from the (subjective) observation and I wonder if someone has researched it a bit. Also, I'm talking about a correlation, not about a rule.

Innanzitutto, no non sono a conoscenza di tali ricerche.

Il problema è che sarebbe difficile condurre questo tipo di ricerca (oggettiva) in un modo scientificamente significativo.

  • Come misura oggettivamente l'esperienza e l'abilità di un singolo programmatore? L'autovalutazione ovviamente ti darà risposte inaffidabili, quindi devi (in qualche modo) testare queste cose.

  • Come si fa in un modo che non configura queste due misure con le altre variabili - in particolare, il numero di lingue conosciute e / o utilizzate?

  • Come fai a farlo in un modo che coinvolge programmatori esperti? (Non è possibile utilizzare la tipica coorte di studenti studenti di laurea CS ... che in genere non hanno esperienza in alcun modo significativo.)

Se eri un accademico serio, potresti essere in grado di trovare un modo per fare questo genere di cose. Ma prima dovresti giustificare le spese di condurre la ricerca a un ente finanziatore. E probabilmente chiederebbero "Qual è il valore di conoscere la risposta?". E questa è una domanda difficile a cui rispondere ... IMO.

    
risposta data 13.11.2012 - 02:00
fonte

Leggi altre domande sui tag