Conselho de carreira: PhD em teoria de linguagens de programação [closed]

14

Estou muito interessado nas teorias de linguagens de programação e vou aplicar um doutorado neste tópico, mas quero saber mais sobre a carreira depois da pós-graduação. além de ser professor, mas também que ocupação posso conseguir?

    
por user16854 11.02.2011 / 07:20
fonte

9 respostas

17

Se você é um profissional em linguagens de programação e teoria de autômatos, então você deve ter oportunidades suficientes na indústria como um desenvolvedor de compilador ou especialista em otimização de back-end.

Idiomas mais recentes estão surgindo o tempo todo e os idiomas existentes estão sendo aprimorados ou direcionados a plataformas mais recentes. Por exemplo, C ++ está se movendo para C ++ 0x, caras de hardware estão se movendo de Verilog para SystemVerilog e ARM é cada vez mais utilizado em dispositivos de consumo. Todos eles apresentam boas oportunidades para desenvolvedores de compiladores.

Por último, mas não menos importante, os desenvolvedores de compiladores que podem fazer uso de arquiteturas multi-core governarão o poleiro por muitos anos.

Para trabalhos do compilador, veja aqui .

    
por 11.02.2011 / 08:05
fonte
14
Michael Feathers escreveu que descobriu que a maioria das pessoas envolvidas em programação pertencia a uma escala que variava de cientista a engenheiro.

Os cientistas aprendem a aprender e entender, enquanto os engenheiros gostam de construir coisas e vê-las funcionar.

No extremo dos engenheiros, você tem pessoas constantemente lançando novos códigos, ou hacks, apenas para fazer as coisas funcionarem. Eles tendem a ignorar o quadro geral. Os cientistas extremos, por outro lado, tornam-se astronautas arquitectos com as suas cabeças nos quadros grandes e nublados, e nunca entregaram uma linha de código funcional durante toda a sua vida. Os melhores programadores estão em algum lugar no meio.

Eu costumava pensar que era programador, já que adorava ler sobre isso e passava horas com isso. Alguns trabalhos depois, percebi que realmente tenho um problema de entrega, já que estou sempre procurando uma maneira melhor, ou "o caminho certo" para fazer as coisas. Acontece que eu sou muito do lado cientista para ser eficaz, pelo menos em um trabalho de desenvolvedor "normal".

De qualquer maneira, eu acho que você nasceu com uma preferência por um ou outro (eu tenho lido muito sobre os tipos de personalidade ultimamente, especialmente o http://www.humanmetrics.com/cgi- win / jtypes2.asp "> Myers-Briggs Type Indicator , e tenho um palpite de que isso pode estar relacionado à função S / N, para aqueles de vocês que estão interessados nisso). Eu tentei forçar-me a ser mais prático e mais um "fazedor", mas eu apenas me queimei.

Meu ponto em relação à pergunta original é que, se você seguir o caminho do PhD, provavelmente estará mais inclinado a gostar do material teórico do que do material "construindo coisas práticas". Nada de errado com isso, mas acho que essa escolha de carreira muitas vezes o trancará em uma carreira científica / educacional. Você não pode esperar ser capaz de ir direto de um PhD para um emprego de consultor altamente remunerado. As coisas que você aprende trabalhando no "mundo real" diferem bastante das melhores práticas aprendidas nos livros.

Uma alternativa é, naturalmente, iniciar o seu próprio negócio após o PhD e desenvolver (ou contratar alguém para desenvolver) um aplicativo baseado nas teorias fantásticas que você descobriu enquanto fazia pesquisas.

    
por 11.02.2011 / 09:19
fonte
6

Eu tenho pensado em fazer um PhD por alguns anos agora (atualmente trabalhando em uma tese de mestrado) e a primeira coisa que me foi dito por doutores na academia e na indústria é o seguinte:

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 cobriu o lado da carreira das coisas muito bem, mas não há tantos empregos lá fora para um doutoramento, então você precisa ter certeza de que você quer investir o tempo em aprender algo por outras razões que o dinheiro antes de entrar no programa de doutoramento.

    
por 16.02.2011 / 14:51
fonte
2

NÃO vá a um doutorado se estiver contando com um emprego acadêmico, ou se não se importar em perder muitos anos só para acabar se tornando engenheiro, como faria antes.

Não para desencorajá-lo, mas a grande maioria das pessoas com PhDs no CS, e especificamente em tópicos como linguagens de programação, NÃO terminam como professores. Simplesmente não há trabalhos de pesquisa suficientes para contornar.

Os empregos em pesquisa na indústria são ainda menos comuns e disponíveis do que os empregos em pesquisa na academia, uma vez que eles pagam melhor e não têm requisitos de ensino.

Pense desta forma: se você olhar para o número de artigos científicos do PL publicados por ano e assumir um doutorado por artigo, nem todas essas pessoas serão professores.

Eu fiz meu PhD em Engenharia de Software na CMU, onde o PL é um dos campos mais strongs (estamos no top 3 do PL). Tanto quanto sei, de todos os que se formaram com um PhD em PL, apenas dois terminaram em cargos acadêmicos. Todo mundo é empregado como engenheiro de software. Eu conheço um que trabalha com coisas relacionadas ao PL, mas os outros são generalistas.

Entre em contato comigo em particular se você quiser que eu o coloque em contato com pessoas que fizeram pesquisas sobre PL e que podem lhe contar mais sobre a experiência.

    
por 02.03.2011 / 19:11
fonte
1

Eu esperaria que você pudesse trabalhar para um dos laboratórios de pesquisa que trabalham em linguagens de programação, a Microsoft e a IBM os têm, como muitas outras empresas. Sem mencionar qualquer loja que desenvolve ou implementa idiomas.

    
por 16.02.2011 / 05:17
fonte
1

Você deve conversar com seus professores antes de iniciar o doutorado.

Normalmente, um PhD trabalha em um laboratório de pesquisa ou se torna professor. Ganhos vitalícios são tipicamente consideravelmente abaixo do nível de MS.

Uma teoria da linguagem de programação diss provavelmente o colocaria no campo da escrita de compiladores.

Além disso, essas coisas não são difíceis de se descobrir lendo - eu expresso dúvidas de que você está pronto para o PhD se estiver fazendo essa pergunta.

    
por 16.02.2011 / 17:34
fonte
1

Eu estava interessado em estudar essa mesma carreira / curso (minha tese de pós-graduação é relacionada ao Compiler-Design, e também dou uma aula sobre "Comparação de linguagens de programação", ambos conceitos relacionados à "Teoria das Linguagens de Programação").

Mas, era mais como um hobby que uma carreira de "pagar as contas".

Existe também o problema de que, a Teoria das Linguagens de Programação, aplica muita matemática, mas é difícil aplicá-la, de uma maneira prática.

Se você já tem esse curso, como você se aplica?

Exemplo, crie seu próprio Java Compiler, torne-o mais rápido que o original, adicione algumas coisas e venda-o. Exemplo: "HotSpot"

Ou algo como "Java / C # executando em um compilador" e vendê-lo; -)

Ensinando classes conceituais relacionadas em um Colegial / Universidade, como Automatons, Design de Compiladores, Comparação de Linguagens de Programação e assim por diante.

Você também pode criar sua própria pequena inicialização, tempo integral ou tempo livre / parcial, tendo um trabalho de programador padrão, que pague as contas (Tentei e falhe). : -s

Existem várias empresas que podem produzir produtos de software que realmente exigem habilidades específicas.

(Principalmente, projetar uma linguagem de programação e o compilador correspondente, para uma máquina virtual / física específica, um analisador XML próprio, etc.).

Mas, parece que a maioria deles prefere contratar um desenvolvedor genérico barato, do que um desenvolvedor com alguma especialização ...

    
por 02.03.2011 / 18:46
fonte
1

Um doutorado em CS com foco em teoria de linguagens de programação pode lhe dar um emprego fora da academia, mas provavelmente ainda dentro do campo de pesquisa. Microsoft (seja via MS Research ou Microsoft), Google, Amazon, Ericsson, HP, IBM Research, Oracle seriam possíveis empregadores.

Se você expandir suas oportunidades de trabalho fora de sua futura dissertação, Ph.D. Contratar grupos também irá considerá-lo para a profundidade de seus estudos.

E isso é apenas no setor comercial. Se você olhar para o DoE e seus muitos laboratórios (Laurence Livermole, Sandia, etc) ou o DoD ou empreiteiros militares como Raytheon, General Dynamics (meu empregador) ou Lockheed Martin, há vagas disponíveis para cientistas e pesquisadores. A NSA também gostaria de contratá-lo.

Oportunidades não-acadêmicas para pessoas com doutorado em ciências são menos (muito menos) do que aquelas que exigem um B.S ou M.S. grau, mas eles ainda são muito, decentemente remunerados e recompensadores.

Boa sorte.

    
por 11.04.2011 / 15:43
fonte
-2

Vários trabalhos disponíveis:

C # / .NET na Microsoft
Java no Oracle
Perl6 (não vou receber muito, acho)

ActionScript no Adobe

    
por 21.04.2012 / 10:55
fonte