Consulenza professionale: dottorato di ricerca in teoria dei linguaggi di programmazione [chiuso]

14

Sono molto interessato alle teorie dei linguaggi di programmazione e ho intenzione di applicare un dottorato in questo argomento, ma voglio saperne di più sulla carriera dopo la laurea. oltre ad essere un professore, ma anche quale occupazione posso ottenere?

    
posta user16854 11.02.2011 - 07:20
fonte

9 risposte

17

Se sei un professionista nella programmazione di linguaggi e teoria degli automi, allora dovresti avere abbastanza opportunità di settore come sviluppatore di compilatori o specialista di ottimizzazione del back-end.

Le lingue più recenti vengono sempre aggiornate e le lingue esistenti vengono migliorate o indirizzate alle nuove piattaforme. Ad es. C ++ si sta spostando su C ++ 0x, i ragazzi dell'hardware si stanno spostando da Verilog a SystemVerilog e ARM è sempre più utilizzato nei dispositivi consumer. Tutti questi presentano buone opportunità per gli sviluppatori di compilatori.

Ultimo ma non meno importante, gli sviluppatori di compilatori che possono fare uso di architetture multi-core domineranno il roost per gli anni a venire.

Per i lavori del compilatore, guarda qui .

    
risposta data 11.02.2011 - 08:05
fonte
14

Michael Feathers ha scritto una volta che ha scoperto che la maggior parte delle persone coinvolte nella programmazione apparteneva a una scala che va dallo scienziato agli ingegneri.

Gli scienziati ottengono i loro calci dall'apprendimento e dalla comprensione, mentre gli ingegneri amano costruire cose e guardarle funzionare.

Alla fine dell'ingegnere estremo ci sono persone che vomitano continuamente nuovi codici, o hack, solo per far funzionare le cose. Tendono ad ignorare il quadro generale. Gli scienziati estremi, d'altro canto, diventano astronauti dell'architetto con la testa nei quadri grandi e nuvolosi e non hanno mai consegnato una linea di codice funzionante per tutta la loro vita. I migliori programmatori sono da qualche parte nel mezzo.

Ero solito pensare che fossi un programmatore, dal momento che mi piaceva leggerlo e passare ore a questo. Dopo alcuni lavori, mi sono reso conto che in realtà ho un problema di consegna, dal momento che sono sempre alla ricerca di un modo migliore, o "la strada giusta" per fare le cose. Risulta che sono troppo dal lato dello scienziato per essere efficace, almeno in un lavoro di sviluppo "normale".

In ogni caso, penso che tu sia nato con una preferenza per l'uno o l'altro (ho letto molto sui tipi di personalità ultimamente, specialmente su Myers-Briggs Type Indicator , e ha la sensazione che questo potrebbe essere correlato alla funzione S / N, per quelli di voi che sono interessati a questo). Ho cercato di costringermi ad essere più pratico e più "un agente", ma mi sono solo bruciato.

Il mio punto verso la domanda iniziale è che se cammini sul percorso di dottorato, probabilmente sei più incline ad apprezzare le cose teoriche che le cose da "costruire cose pratiche". Niente di male in questo, ma penso che una scelta di carriera così spesso ti bloccherà in una carriera scientifica / educativa. Non puoi aspettarti di essere in grado di passare direttamente da un dottorato a un lavoro di consulente altamente retribuito. Le cose che impari lavorando nel "mondo reale" differiscono parecchio dalle migliori pratiche apprese dai libri.

Un'alternativa è ovviamente quella di iniziare la propria attività dopo il dottorato di ricerca e sviluppare (o assumere qualcuno per sviluppare) un'applicazione basata sulle fantastiche teorie che hai scoperto mentre facevi ricerche.

    
risposta data 11.02.2011 - 09:19
fonte
6

Ho pensato di fare un dottorato di ricerca per un paio d'anni (attualmente sto lavorando a un master di tesi) e la cosa numero uno che mi è stato detto dai dottori di ricerca nel mondo accademico e industriale è la seguente:

Don't get a PhD because of the money or career prospects, only get it if you really enjoy what you are doing and want to spend years studying it in depth.

Fanantic23 ha coperto il il lato carriera delle cose piuttosto bene, ma non ci sono tanti posti di lavoro là fuori per un dottorato di ricerca quindi è necessario assicurarsi di voler investire del tempo nell'apprendimento di qualcosa per motivi diversi dai soldi prima di entrare nel programma di dottorato. p>     

risposta data 16.02.2011 - 14:51
fonte
2

NON andare a un dottorato di ricerca se stai contando di ottenere un lavoro accademico, o se non ti dispiace sprecare molti anni solo per finire come ingegnere proprio come faresti prima.

Non scoraggiarti, ma la stragrande maggioranza delle persone con dottorati in CS, e specificamente in argomenti come i linguaggi di programmazione NON finiscono in qualità di professori. Semplicemente non ci sono abbastanza lavori di ricerca da fare.

I lavori di ricerca nell'industria sono ancora meno comuni e disponibili rispetto ai lavori di ricerca nel mondo accademico, poiché pagano meglio e non hanno requisiti di insegnamento.

Pensaci in questo modo: se guardi il numero di pubblicazioni scientifiche PL pubblicate ogni anno e presumi uno studente di dottorato per carta, non tutte queste persone diventeranno professori.

Ho conseguito il dottorato in Ingegneria del software presso la CMU, dove PL è uno dei campi più forti (siamo un programma top-3 in PL). Per quanto ne so, da tutti quelli che si sono laureati con un dottorato in PL, solo due sono finiti in posizioni accademiche. Tutti gli altri sono impiegati come ingegneri del software. Ne conosco uno che funziona su argomenti correlati a PL, ma gli altri sono generalisti.

Contattami privatamente se vuoi che ti metta in contatto con persone che hanno fatto ricerche PL che possono dirti di più sull'esperienza.

    
risposta data 02.03.2011 - 19:11
fonte
1

Mi aspetto che tu possa lavorare per uno dei laboratori di ricerca che lavorano sui linguaggi di programmazione, Microsoft e IBM li hanno come fanno molte altre società. Per non parlare di qualsiasi negozio che sviluppa o implementa le lingue.

    
risposta data 16.02.2011 - 05:17
fonte
1

Dovresti parlare con i tuoi professori di Alma Mater prima di iniziare il dottorato.

In genere un dottorato di ricerca lavora in un laboratorio di ricerca o diventa professore. I guadagni a vita sono in genere considerevolmente al di sotto di un grado MS.

Una teoria del linguaggio di programmazione diss probabilmente ti metterebbe nel campo della scrittura di compilatori.

Inoltre, queste cose non sono difficili da scoprire leggendo - esprimo il dubbio che sei pronto per il dottorato di ricerca se stai facendo questa domanda.

    
risposta data 16.02.2011 - 17:34
fonte
1

Ero interessato a studiare quella stessa carriera / corso (la mia tesi di laurea è correlata al Compiler-Design, e insegno anche una lezione sul "Confronto dei linguaggi di programmazione", entrambi i concetti si riferiscono alla "Teoria dei linguaggi di programmazione").

Ma era più un hobby che una carriera di "pagare le bollette".

C'è anche il problema che, la teoria dei linguaggi di programmazione, applica molta matematica, ma è difficile applicarla, in modo pratico.

Se hai già quel corso, come hai applicato?

Ad esempio, crea il tuo compilatore Java, rendilo più veloce dell'originale, aggiungi alcune cose e vendilo. Esempio: "HotSpot"

Oppure, qualcosa come "Java / C # in esecuzione in un tostapane" compilatore e venderlo; -)

Insegnare le lezioni di concetto relative a un college / università, come gli automi, il design del compilatore, il confronto dei linguaggi di programmazione e così via.

Potresti anche creare un piccolo avvio, a tempo pieno o libero / a tempo parziale, pur avendo un lavoro programmatore standard, che paga le bollette (provato e fallito). : -S

Esistono diverse società che possono produrre prodotti software che richiedono effettivamente competenze specifiche.

(Principalmente, progettando un linguaggio di programmazione e il compilatore corrispondente, per una particolare macchina virtuale / fisica, proprio parser XML, ecc.)

Ma sembra che la maggior parte di loro preferisca assumere uno sviluppatore economico generico, piuttosto che uno sviluppatore con qualche specializzazione ...

    
risposta data 02.03.2011 - 18:46
fonte
1

Un dottorato in CS con un focus sulla teoria dei linguaggi di programmazione può farti un lavoro al di fuori del mondo accademico, ma molto probabilmente ancora nell'ambito della ricerca. Microsoft (tramite Microsoft Research o Microsoft), Google, Amazon, Ericsson, HP, IBM Research, Oracle sarebbero possibili datori di lavoro.

Se espandi le tue opportunità di lavoro al di fuori della tua futura dissertazione, il dottorato di ricerca anche i gruppi di assunzione ti prenderanno in considerazione per la profondità dei tuoi studi.

E questo è solo nel settore commerciale. Se si guarda al Doe e ai suoi numerosi laboratori (Laurence Livermole, Sandia, ecc.) O al Dipartimento della Difesa o ad appaltatori militari come Raytheon, General Dynamics (il mio datore di lavoro) o Lockheed Martin, ci sono posizioni disponibili per scienziati e ricercatori. La NSA vorrebbe assumerti anche tu.

Le opportunità non accademiche per le persone con un dottorato in scienze sono meno (molto meno) di quelle che richiedono un B.S o M.S. grado, ma sono ancora molti, decentemente remunerati e gratificanti.

Buona fortuna.

    
risposta data 11.04.2011 - 15:43
fonte
-2

Numerosi posti di lavoro disponibili:

C # /. NET su Microsoft
Java su Oracle
Perl6 (non otterrà molta retribuzione credo)
ActionScript in Adobe

    
risposta data 21.04.2012 - 10:55
fonte