Estou muito interessado nas teorias das linguagens de programação e vou aplicar um PhD neste tópico, mas quero saber mais sobre a carreira após a pós-graduação. além de professor, mas também qual profissão posso obter?
Estou muito interessado nas teorias das linguagens de programação e vou aplicar um PhD neste tópico, mas quero saber mais sobre a carreira após a pós-graduação. além de professor, mas também qual profissão posso obter?
Respostas:
Se você é profissional em linguagens de programação e teoria de autômatos, deve ter oportunidades suficientes no setor como desenvolvedor de compiladores ou especialista em otimização de back-end.
Os idiomas mais novos estão surgindo o tempo todo e os idiomas existentes estão melhorando ou direcionando-se a plataformas mais novas. Por exemplo, o C ++ está mudando para o C ++ 0x, o pessoal do hardware está mudando do Verilog para o SystemVerilog e o ARM é cada vez mais usado em dispositivos de consumo. Todos esses apresentam boas oportunidades para desenvolvedores de compiladores.
Por último, mas não menos importante, os desenvolvedores de compiladores que podem fazer uso de arquiteturas com vários núcleos dominariam o cenário nos próximos anos.
Para trabalhos de compilador, veja aqui .
Michael Feathers escreveu uma vez que descobriu que a maioria das pessoas envolvidas na programação pertencia a uma escala que variava de cientista a engenheiro.
Os cientistas aprendem e aprendem, enquanto os engenheiros gostam de criar coisas e vê-las funcionar.
No extremo engenheiro, você tem pessoas constantemente lançando novos códigos, ou hacks, apenas para fazer as coisas acontecerem. Eles tendem a ignorar o quadro geral. Os cientistas extremos, por outro lado, tornam-se astronautas arquitetos com a cabeça em grandes estruturas nubladas e nunca entregaram uma linha de código de trabalho a vida inteira. Os melhores programadores estão em algum lugar no meio.
Eu pensava que era programador, pois adorava ler sobre isso e passava horas nisso. Alguns trabalhos depois, percebi que, na verdade, tenho um problema na entrega, pois estou sempre procurando uma maneira melhor, ou "a maneira certa" de fazer as coisas. Acontece que estou muito do lado do cientista para ser eficaz, pelo menos em um trabalho de desenvolvedor "normal".
De qualquer forma, acho que você nasceu com uma preferência por um ou outro (tenho lido muito sobre tipos de personalidade ultimamente, especialmente o Indicador de Tipo Myers-Briggs , e tenho um pressentimento de que isso pode estar relacionado ao S / N para aqueles que estão interessados nisso). Eu tentei me forçar a ser mais prático e mais "executor", mas acabei me esgotando.
Meu argumento em relação à pergunta original é que, se você seguir o caminho do doutorado, provavelmente estará mais inclinado a gostar do material teórico do que do material "construção de material prático". Não há nada errado com isso, mas acho que essa escolha de carreira geralmente o trará em uma carreira científica / educacional. Você não pode esperar ser capaz de passar diretamente de um doutorado para um emprego de consultor bem remunerado. As coisas que você aprende trabalhando no "mundo real" diferem bastante das melhores práticas aprendidas nos livros.
Uma alternativa é, é claro, iniciar seu próprio negócio após o doutorado e desenvolver (ou contratar alguém para desenvolver) um aplicativo baseado nas fantásticas teorias que você descobriu ao fazer pesquisas.
Estou pensando em fazer um doutorado há alguns anos (atualmente trabalhando em uma faixa de tese de mestrado) e a primeira coisa que me foi dito pelos detentores de doutorado na academia e na indústria é o seguinte:
Não faça um doutorado por causa do dinheiro ou das perspectivas de carreira; só o faça se você realmente gosta do que está fazendo e deseja passar anos estudando-o em profundidade.
A Fanantic23 cobriu muito bem o lado da carreira, mas não há tantos empregos disponíveis para um doutorado, então você precisa ter certeza de que deseja investir tempo em aprender algo por outras razões além do dinheiro antes de ingressar no programa de doutorado .
NÃO faça doutorado se você está contando com um emprego acadêmico ou se não se importa em desperdiçar muitos anos apenas para acabar sendo engenheiro da mesma maneira que faria antes.
Não para desencorajá-lo, mas a grande maioria das pessoas com doutorado em ciências da computação e especificamente em tópicos como linguagens de programação NÃO acabam como professores. Simplesmente não há trabalhos de pesquisa suficientes para dar a volta.
Os trabalhos de pesquisa na indústria são ainda menos comuns e disponíveis do que os trabalhos de pesquisa na academia, uma vez que pagam melhor e não têm necessidade de ensino.
Pense da seguinte maneira: se você observar o número de artigos científicos publicados em PL por ano e presumir um estudante de doutorado por artigo, nem todas essas pessoas serão professores.
Eu fiz meu doutorado em Engenharia de Software na CMU, onde PL é um dos campos mais fortes (somos um dos três principais programas em PL). Que eu saiba, de todos os que se formaram com doutorado em PL, apenas dois acabaram em cargos acadêmicos. Todos os outros estão empregados como engenheiros 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.
Você deve conversar com os professores de sua alma mater antes de iniciar o doutorado.
Normalmente, um doutorado trabalha em um laboratório de pesquisa ou se torna professor. Os ganhos ao longo da vida geralmente são consideravelmente inferiores a um diploma de MS.
Uma teoria da linguagem de programação diss provavelmente colocaria você no campo de escrever compiladores.
Além disso, essas coisas não são difíceis de serem descobertas pela leitura. Expresso dúvidas de que você está pronto para o doutorado se estiver fazendo essa pergunta.
Eu estava interessado em estudar a mesma carreira / curso (minha tese de graduação é relacionada ao Design de Compiladores e também dou uma aula sobre "Comparação de Linguagens de Programação", ambos os conceitos relacionados à "Teoria das Linguagens de Programação").
Mas, foi mais como um hobby que uma carreira de "pagar as contas".
Há também o problema de que a teoria das linguagens de programação aplica muita matemática, mas é difícil aplicá-la, de maneira prática.
Se você já possui esse curso, como se inscreveu?
Por 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 o compilador "Java / C # em execução em uma torradeira" e venda ;-)
Ministrar aulas de conceitos relacionados em um colega / universidade, como autômatos, design de compiladores, comparação de linguagens de programação etc.
Você também pode criar sua própria pequena inicialização, em período integral ou em período parcial / livre, enquanto possui um trabalho de programador padrão, que paga as contas (Tentativa e falha). : -s
Existem várias empresas que podem produzir produtos de software que realmente exigem essas habilidades específicas.
(Principalmente, projetar uma linguagem de programação e o compilador correspondente, para uma determinada máquina virtual / física, um analisador XML próprio, etc.).
Mas, parece que a maioria deles prefere contratar um desenvolvedor barato genérico, do que um desenvolvedor com alguma especialização ...
Um doutorado em ciências da computação com foco na teoria das linguagens de programação pode conseguir um emprego fora da academia, mas provavelmente ainda dentro do campo da pesquisa. Microsoft (via MS Research ou Microsoft), Google, Amazon, Ericsson, HP, IBM Research e Oracle seriam possíveis empregadores.
Se você expandir suas oportunidades de trabalho fora de sua dissertação futura, Ph.D. os grupos de contratação também considerarão você pela profundidade de seus estudos.
E isso é apenas no setor comercial. Se você observar 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, existem posições disponíveis para cientistas e pesquisadores. A NSA também gostaria de contratá-lo.
As oportunidades não acadêmicas para pessoas com doutorado em ciências são menos (muito menos) do que aquelas que exigem um bacharelado ou mestrado, mas ainda são muitas, decentemente remuneradas e recompensadoras.
Boa sorte.