Карьерный совет: доктор философии по теории языков [закрыт]

16

Я очень интересуюсь теориями языков программирования и собираюсь применить докторскую степень в этой теме, но я хочу узнать больше о карьере после получения высшего образования. Помимо того, что я профессор, но также и какую профессию я могу получить?

user16854
источник
Что вы подразумеваете под «теориями языков программирования»?
Кирк Бродхерст
4
отрасль информатики, которая занимается разработкой, реализацией, анализом, характеристикой и классификацией языков программирования и их индивидуальных особенностей.
user16854
@Kirk: Это очень активное поле со своими конференциями и журналами (в дополнение к множеству публикаций на общих конференциях). PLDI - хороший пример. Есть даже отдельные рейтинги для школ CS в PL.
Ури

Ответы:

17

Если вы профессионал в области языков программирования и теории автоматов, то у вас должно быть достаточно отраслевых возможностей в качестве разработчика компилятора или специалиста по внутренней оптимизации.

Новые языки появляются постоянно, а существующие языки улучшаются или нацелены на новые платформы. Например, C ++ переходит на C ++ 0x, аппаратные специалисты переходят от Verilog к SystemVerilog, и ARM все чаще используется в потребительских устройствах. Все это предоставляет хорошие возможности для разработчиков компиляторов.

Наконец, что не менее важно, разработчики компиляторов, которые могут использовать многоядерные архитектуры, будут править в течение многих лет.

Для работы компилятора посмотрите здесь .

Fanatic23
источник
14

Майкл Фезерс однажды написал, что обнаружил, что большинство людей, занимающихся программированием, принадлежат к разным масштабам - от ученых до инженеров.

Ученые получают удовольствие от изучения и понимания, в то время как инженеры любят создавать вещи и наблюдать за их работой.

Со стороны экстремального инженера у вас есть люди, постоянно изрыгающие новый код или хаки, просто чтобы все заработало. Они склонны игнорировать общую картину. Экстремальные ученые, с другой стороны, становятся астронавтами-архитекторами с головой в больших облачных средах и никогда не создавали ни одной рабочей строки кода за всю свою жизнь. Лучшие программисты находятся где-то посередине.

Раньше я думал, что я программист, так как я любил читать об этом и тратил на это часы. Спустя несколько рабочих мест, я понял, что у меня действительно есть проблема с доставкой, так как я всегда ищу лучший или «правильный» способ сделать что-то. Оказывается, я слишком сторонник ученого, чтобы быть эффективным, по крайней мере, в «нормальной» работе разработчика.

В любом случае, я думаю, что вы родились с предпочтением одного или другого (в последнее время я много читал о типах личности, особенно об индикаторе типа Майерса-Бриггса , и у меня есть догадка, что это может быть связано с S / N). функция, для тех из вас, кто заинтересован в этом). Я пытался заставить себя быть более практичным и более «делающим», но я просто сгорел.

Моя точка зрения на исходный вопрос заключается в том, что если вы идете по пути доктора философии, вы, вероятно, более склонны любить теоретические вещи, чем материал «создания практических вещей». Ничего плохого в этом нет, но я думаю, что такой выбор профессии часто приведет вас к научной / образовательной карьере. Вы не можете ожидать, что сможете сразу перейти от доктора наук к высокооплачиваемой работе консультанта. То, что вы изучаете, работая в «реальном мире», довольно сильно отличается от лучших практик, извлеченных из книг.

Альтернатива - это, конечно, начать свой собственный бизнес после получения степени доктора философии и разработать (или нанять кого-то для разработки) приложение, основанное на фантастических теориях, которые вы обнаружили во время исследования.

erikric
источник
6

Я уже несколько лет думаю о том, чтобы получить докторскую степень (в настоящее время работаю над магистерской диссертацией), и первая вещь, которую мне сказали обладатели докторской диссертации в академических и промышленных кругах, заключается в следующем:

Не получайте докторскую степень из-за денег или карьерных перспектив, получайте ее только в том случае, если вам действительно нравится то, что вы делаете, и вы хотите потратить годы на углубленное изучение.

Fanantic23 довольно хорошо освещал карьерную сторону, но для доктора философии не так много рабочих мест, поэтому вам нужно убедиться, что вы хотите потратить время на изучение чего-то по причинам, отличным от денег, прежде чем попасть в программу PhD. ,

rjzii
источник
2

НЕ ходите в аспирантуру, если вы рассчитываете получить академическую работу, или если вы не возражаете тратить много лет, просто чтобы стать инженером, как вы это делали до этого.

Не для того, чтобы вас обескуражить, но подавляющее большинство людей с докторской степенью в CS, особенно в таких темах, как языки программирования, НЕ заканчивают как профессора. Исследовательских работ просто недостаточно.

Исследовательские работы в промышленности даже менее распространены и доступны, чем исследовательские работы в академических кругах, поскольку они платят лучше и не требуют обучения.

Подумайте об этом следующим образом: если вы посмотрите на количество научных работ ПЛ, публикуемых за год, и предположите, что в каждой статье один аспирант, не все из этих людей станут профессорами.

Я защитил докторскую диссертацию по программной инженерии в CMU, где PL - одна из самых сильных областей (мы - топ-3 программы в PL). Насколько мне известно, из всех, кто получил степень доктора философии в области PL, только два оказались на академических должностях. Все остальные работают программистами. Я знаю один, который работает над вещами, связанными с PL, но остальные - универсалы.

Свяжитесь со мной в частном порядке, если вы хотите, чтобы я связал вас с людьми, которые проводили исследования PL, которые могут рассказать вам больше об опыте.

Uri
источник
1
Я потратил годы, чтобы получить докторскую степень в области физики, и я оказался в самых разных очень интересных «инженерных» работах. Вероятно, такое же разнообразие инженерных работ я бы получил в любом случае, но это не значит, что оно было потрачено впустую!
Мартин Беккет
Как я могу связаться с вами?
TPA
1

Я ожидаю, что вы могли бы работать в одной из исследовательских лабораторий, которые работают над языками программирования, Microsoft и IBM имеют их, как и ряд других компаний. Не говоря уже о любом магазине, который разрабатывает или реализует языки.

Захари К
источник
1

Вы должны поговорить с профессорами alma mater, прежде чем приступить к PhD.

Обычно доктор философии либо работает в исследовательской лаборатории, либо становится профессором. Заработная плата, как правило, значительно ниже степени магистра.

Теория диссипации языка программирования, вероятно, поставит вас в область написания компиляторов.

Кроме того, эти вещи нетрудно выяснить, прочитав - я выражаю сомнение, что вы готовы к PhD, если вы задаете этот вопрос.

Пол Натан
источник
Кто-то с докторской степенью CS обычно зарабатывает на 10-20 тыс. В год больше, чем кто-либо с BS / MS. В Google, Microsoft, Adobe, Oracle и т. Д. Есть множество докторов наук, которые работают инженерами-программистами. Выясняйте свои факты и получайте меньше удовольствия.
stackoverflowuser2010
@stackoverflowuser: Неверно . заработок отличается от годовой зарплаты. Поищи это. Обычно доктора наук работают в исследовательских лабораториях Google, Microsoft и соавт.
Пол Натан
1
@oosterwal: Не случайно, не с банальными поисками. Это одна из вещей, которую обычно используют в академических кругах. По сути, вы рассчитываете, как рассчитать эффекты, чтобы рассчитать «проценты» для сложного оклада с разных времен начала и разных начальных зарплат. Я сделал это около 2 лет назад: в основном, математика предполагает получить степень магистра через 2 года и перейти в индустрию. Задержка даты начала на 3-5 (PhD) лет приводит к сложному эффекту. Конечно, это не принимает во внимание людей высшего пилотажа, но если предположить, что он средний, то лучше не PhD.
Пол Натан
1
@oosterwal - Зависит от школы, но большую часть времени аспирант не будет платить за обучение и будет получать стипендию от школы. Расчеты большинства заработков на протяжении всей жизни основаны на том факте, что они могут учиться в школе еще от шести до восьми лет, когда в качестве обладателя степени бакалавра будет работать и зарабатывать деньги в течение этого периода времени.
rjzii
2
@ stackoverflowuser2010 Вы сделали свою точку зрения. Отпусти ситуацию.
Адам Лир
1

Мне было интересно изучать ту же карьеру / курс (моя дипломная работа связана с проектированием компиляторов, и я также преподаю урок "Сравнение языков программирования", оба понятия относятся к "Теории языков программирования").

Но это было скорее хобби, чем карьера "оплачивать счета".

Существует также проблема, заключающаяся в том, что в теории языков программирования применяется много математики, но ее трудно применить на практике.

Если у вас уже есть этот курс, как вы подали заявку?

Например, создайте свой собственный Java-компилятор, сделайте его быстрее оригинального, добавьте несколько вещей и продайте его. Пример: "HotSpot"

Или что-то вроде компилятора "Java / C # running in a toaster" и продавайте его ;-)

Преподавание связанных концептуальных классов в колледже / университете, таких как автоматы, проектирование компиляторов, сравнение языков программирования и т. Д.

Вы также можете создать свой собственный небольшой стартап, полный или свободный / неполный рабочий день, имея стандартную работу программиста, которая оплачивает счета (пробовал и терпел неудачу). : -s

Есть несколько компаний, которые могут производить программные продукты, которые на самом деле требуют определенных навыков.

(В основном, разработка языка программирования и соответствующего компилятора для конкретной виртуальной / физической машины, собственного анализатора XML и т. Д.).

Но, похоже, что большинство из них предпочитают нанимать общего дешевого разработчика, чем разработчика с какой-то специализацией ...

umlcat
источник
1

Докторантура по CS с акцентом на теорию языков программирования может найти работу за пределами академического сообщества, но, скорее всего, все еще в сфере научных исследований. Microsoft (через MS Research или Microsoft), Google, Amazon, Ericsson, HP, IBM Research, Oracle могли бы стать работодателями.

Если вы расширяете свои возможности трудоустройства за пределами вашей будущей диссертации, Ph.D. нанимающие группы также рассмотрят вас на предмет глубины обучения.

И это только в коммерческом секторе. Если вы посмотрите на DoE и его многочисленные лаборатории (Laurence Livermole, Sandia и т. Д.) Или DoD или военных подрядчиков, таких как Raytheon, General Dynamics (мой работодатель) или Lockheed Martin, есть места, доступные для ученых и исследователей. АНБ хотело бы вас также нанять.

Неакадемические возможности для людей со степенью доктора наук меньше (намного меньше), чем те, которые требуют степень бакалавра или магистра, но они все еще достаточно, достойно оплачиваются и приносят пользу.

Удачи.

luis.espinal
источник
-2

Много рабочих мест доступно:

C # / .NET в Microsoft
Java в Oracle
Perl6 (думаю, не получится много)
ActionScript в Adobe

jondinham
источник