Estoy muy interesado en las teorías de los lenguajes de programación y voy a aplicar un doctorado en este tema, pero quiero saber más sobre la carrera después de la educación de posgrado. además de ser profesor, pero ¿qué ocupación puedo obtener?
programming-languages
career-development
language-design
compiler
usuario16854
fuente
fuente
Respuestas:
Si es un profesional en lenguajes de programación y teoría de autómatas, debería tener suficientes oportunidades en la industria como desarrollador de compiladores o especialista en optimización de back-end.
Los idiomas más nuevos están apareciendo todo el tiempo, y los idiomas existentes están mejorando o apuntando a plataformas más nuevas. Por ejemplo, C ++ se está moviendo a C ++ 0x, los chicos de hardware se están moviendo de Verilog a SystemVerilog y ARM se usa cada vez más en dispositivos de consumo. Todos estos presentan buenas oportunidades para los desarrolladores de compiladores.
Por último, pero no menos importante, los desarrolladores de compiladores que pueden hacer uso de arquitecturas multinúcleo gobernarán el gallinero en los años venideros.
Para trabajos de compilación, mira aquí .
fuente
Michael Feathers escribió una vez que descubrió que la mayoría de las personas involucradas en la programación pertenecían a una escala que iba desde los científicos hasta los ingenieros.
A los científicos les gusta aprender y comprender, mientras que a los ingenieros les gusta construir cosas y ver cómo funcionan.
En el extremo del ingeniero extremo, hay personas que constantemente escupen nuevos códigos o hacks, solo para que las cosas funcionen. Tienden a ignorar el panorama general. Los científicos extremos, por otro lado, se convierten en astronautas arquitectos con la cabeza en los marcos grandes y nublados, y nunca han entregado una línea de código de trabajo durante toda su vida. Los mejores programadores están en algún punto intermedio.
Solía pensar que era un programador, ya que me encantaba leer sobre eso y pasaba horas en eso. Unos trabajos más tarde, me di cuenta de que realmente tenía problemas para entregar, ya que siempre estoy buscando una mejor manera o "la forma correcta" de hacer las cosas. Resulta que soy demasiado científico para ser efectivo, al menos en un trabajo de desarrollador "normal".
De cualquier manera, creo que naciste con una preferencia por uno u otro (he estado leyendo mucho sobre los tipos de personalidad últimamente, especialmente el Indicador de tipo Myers-Briggs , y tengo el presentimiento de que esto podría estar relacionado con el S / N función, para aquellos de ustedes que estén interesados en eso). He tratado de forzarme a ser más práctico y más "hacedor", pero me quemo.
Mi punto hacia la pregunta original es que si sigues el camino del doctorado, probablemente estés más inclinado a que te gusten las cosas teóricas que el material de "cosas prácticas de construcción". No tiene nada de malo, pero creo que una elección de carrera de este tipo a menudo lo encerrará en una carrera científica / educativa. No puede esperar pasar directamente de un doctorado a un trabajo de consultor bien remunerado. Las cosas que aprende trabajando en "el mundo real" difieren bastante de las mejores prácticas aprendidas de los libros.
Por supuesto, una alternativa es comenzar su propio negocio después del doctorado y desarrollar (o contratar a alguien para desarrollar) una aplicación basada en las fantásticas teorías que descubrió mientras investigaba.
fuente
He estado pensando en hacer un doctorado durante un par de años (actualmente trabajando en un título de maestría) y lo más importante que me han dicho los titulares de doctorado en la academia y la industria es lo siguiente:
Fanantic23 cubrió bastante bien el lado profesional de las cosas, pero no hay tantos trabajos para un doctorado, por lo que debe asegurarse de que desea invertir el tiempo en aprender algo por razones distintas al dinero antes de ingresar al programa de doctorado. .
fuente
NO vaya a un doctorado si cuenta con obtener un trabajo académico, o si no le importa perder muchos años solo para terminar siendo ingeniero tal como lo habría hecho antes.
No para desanimarte, pero la gran mayoría de las personas con doctorados en CS, y específicamente en temas como los lenguajes de programación, NO terminan como profesores. Simplemente no hay suficientes trabajos de investigación para todos.
Los trabajos de investigación en la industria son aún menos comunes y disponibles que los trabajos de investigación en la academia, ya que pagan mejor y no requieren enseñanza.
Piénselo de esta manera: si observa el número de artículos científicos PL publicados por año, y asume un estudiante de doctorado por trabajo, no todas estas personas serán profesores.
Hice mi doctorado en Ingeniería de Software en CMU, donde PL es uno de los campos más fuertes (somos un programa de top 3 en PL). Que yo sepa, de todos los que se graduaron con un doctorado en PL, solo dos terminaron en puestos académicos. Todos los demás trabajan como ingenieros de software. Conozco uno que funciona en cosas relacionadas con PL, pero los otros son generalistas.
Contáctame en privado si quieres que te ponga en contacto con personas que investigaron PL y que pueden contarte más sobre la experiencia.
fuente
Esperaría que pudieras trabajar para uno de los laboratorios de investigación que trabajan en lenguajes de programación, Microsoft e IBM los tienen al igual que otras compañías. Sin mencionar cualquier tienda que desarrolle o implemente idiomas.
fuente
Debes hablar con tus profesores de alma mater antes de embarcarte en el doctorado.
Por lo general, un doctorado trabaja en un laboratorio de investigación o se convierte en profesor. Las ganancias de por vida suelen ser considerablemente inferiores a un título de maestría.
Una teoría de los diss del lenguaje de programación probablemente lo pondría en el campo de la compilación de compiladores.
Además, estas cosas no son difíciles de descubrir leyendo: expreso dudas de que esté listo para el doctorado si hace esta pregunta.
fuente
Estaba interesado en estudiar esa misma carrera / curso (mi tesis de posgrado está relacionada con el diseño del compilador, y también enseño una clase sobre "Comparación de lenguajes de programación", ambos conceptos se relacionan con la "Teoría de lenguajes de programación").
Pero, fue más como un pasatiempo que una carrera de "pagar las cuentas".
También existe el problema de que, la Teoría de Lenguajes de Programación, aplica muchas matemáticas, pero es difícil de aplicar, de manera práctica.
Si ya tienes ese curso, ¿cómo lo aplicaste?
Ejemplo, cree su propio compilador de Java, hágalo más rápido que el original, agregue algunas cosas y véndalo. Ejemplo: "HotSpot"
O, algo así como el compilador "Java / C # que se ejecuta en una tostadora" y lo vende ;-)
Enseñanza de clases de conceptos relacionados en un colegio / universidad, como autómatas, diseño de compiladores, comparación de lenguajes de programación, etc.
También puede crear su propio inicio pequeño, a tiempo completo o gratis / a tiempo parcial, mientras tiene un trabajo de programador estándar, que paga las facturas (Probado y fallado). : -s
Hay varias compañías que pueden producir productos de software que realmente requieren esas habilidades específicas.
(Principalmente, diseñando un lenguaje de programación y el compilador correspondiente, para una máquina virtual / física particular, un analizador XML propio, etc.).
Pero, parece que la mayoría de ellos prefieren contratar a un desarrollador genérico barato, que un desarrollador con cierta especialización ...
fuente
Un doctorado en CS con un enfoque en la teoría de los lenguajes de programación puede conseguirte un trabajo fuera de la academia, pero lo más probable es que aún esté dentro del ámbito de la investigación. Microsoft (ya sea a través de MS Research o Microsoft), Google, Amazon, Ericsson, HP, IBM Research, Oracle serían posibles empleadores.
Si amplía sus oportunidades de trabajo fuera de su futura disertación, Ph.D. la contratación de grupos también lo tendrá en cuenta para la profundidad de sus estudios.
Y eso es solo en el sector comercial. Si observa el DoE y sus numerosos laboratorios (Laurence Livermole, Sandia, etc.) o el DoD o contratistas militares como Raytheon, General Dynamics (mi empleador) o Lockheed Martin, hay puestos disponibles para científicos e investigadores. La NSA también querría contratarte.
Las oportunidades no académicas para las personas con un doctorado en ciencias son menos (mucho menos) que las que requieren un título de BS o MS, pero siguen siendo abundantes, remuneradas y gratificantes.
Buena suerte.
fuente
Muchos trabajos disponibles:
C # /. NET en Microsoft
Java en Oracle
Perl6 (creo que no pagará mucho)
ActionScript en Adobe
fuente