Професійні поради: доктор наук з теорії мов програмування [закрито]


16

Мене дуже цікавлять теорії мов програмування і збираюся застосувати докторську ступінь у цій темі, але хочу знати більше про кар’єру після закінчення аспірантури. окрім того, що я є професором, але і яку професію я можу отримати?


Що ви маєте на увазі під «теоріями мов програмування»?
Кірк Бродхерст

4
галузь інформатики, яка займається розробкою, реалізацією, аналізом, характеристикою та класифікацією мов програмування та їх індивідуальних особливостей.
користувач16854

@Kirk: Це дуже активне поле з власними конференціями та журналами (крім багатьох публікацій на загальних конференціях). PLDI - хороший приклад. Існують навіть окремі рейтинги для шкіл CS в ПЛ.
Урі

Відповіді:


17

Якщо ви професіонал з мов програмування та теорії автоматів, у вас має бути достатньо галузевих можливостей як розробник компілятора або фахівець з оптимізації бекенду.

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

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

Про завдання для компілятора дивіться тут .


14

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

Вчені отримують удари від навчання та розуміння, а інженери люблять будувати речі та спостерігати, як це працює.

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

Раніше я вважав, що я програміст, оскільки любив читати про це і витрачав на це години. Через кілька робочих місць я зрозумів, що насправді виникає проблема з доставкою, оскільки я завжди шукаю кращого способу чи "правильного шляху" для виконання справ. Виявляється, я занадто багато на стороні вченого, щоб бути ефективним, принаймні в "нормальній" роботі розробника.

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

Мій погляд на первісне запитання полягає в тому, що якщо ви йдете докторською стежкою, ви, мабуть, більше схильні сподобатися теоретичним речам, ніж "будівельний практичний матеріал". Нічого поганого в цьому немає, але я думаю, що такий вибір кар’єри часто замикає вас у науковій / навчальній кар’єрі. Ви не можете розраховувати, що зможете перейти прямо з доктора наук на високооплачувану роботу консультанта. Те, що ви дізнаєтесь, працюючи в "реальному світі", сильно відрізняється від найкращих практик, виучених із книг.

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


6

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

Не отримуйте доктора наук з-за грошей чи перспектив кар'єри, отримайте її лише тоді, коли вам дуже сподобається те, що ви робите, і хочете витратити роки на глибоке вивчення.

Fanantic23 досить добре висвітлював кар’єрну сторону речей, але там не так багато робочих місць для кандидата наук, тому вам потрібно впевнитись, що ви хочете вкласти час у навчання чомусь з інших причин, ніж гроші, перш ніж потрапляти в докторську програму. .


2

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

Не перешкоджати вам, але переважна більшість людей, які мають докторантуру в КС, а саме з таких тем, як мови програмування, НЕ закінчуються професорами. Просто немає достатньо дослідницьких завдань, щоб обійти їх.

Дослідницькі робочі місця в галузі навіть менш поширені та доступні, ніж наукові роботи в наукових колах, оскільки вони платять краще і не вимагають викладання.

Подумайте про це так: Якщо ви подивитеся на кількість наукових праць з ПЛ, що публікуються за рік, і припускаєте одного докторанта за кожну роботу, не всі ці люди будуть професорами.

Я зробив докторську ступінь із програмної інженерії в КМУ, де ПЛ - одне з найсильніших напрямків (ми - топ-3 програми з PL). Наскільки мені відомо, з усіх, хто закінчив докторську ступінь в ПЛ, лише двоє потрапили на академічні посади. Усі інші зайняті як інженери програмного забезпечення. Я знаю одну, яка працює на пов'язаних з PL матеріалах, але інші - загальні фахівці.

Зверніться до мене приватно, якщо ви хочете, щоб я зв’язав вас з людьми, які проводили дослідження ПЛ, які можуть розповісти вам більше про досвід.


1
Я витратив роки на здобуття наукового ступеня доктора фізичних наук, і я потрапив у найрізноманітніші дуже цікаві «інженерні» роботи. Напевно, таку саму різноманітність інженерних робіт я б отримав у будь-якому випадку, але це не означає, що воно було марно!
Мартін Бекетт

Як я можу зв’язатися з вами?
tpA

1

Я би сподівався, що ви можете працювати в одній із дослідницьких лабораторій, яка працює над мовами програмування, Microsoft та IBM мають їх, як і низка інших компаній. Не кажучи вже про будь-який магазин, який розробляє або впроваджує мови.


1

Ви повинні поговорити зі своїми професорами alma mater, перш ніж приступати до доктора наук.

Зазвичай доктор наук працює або в науково-дослідній лабораторії або стає професором. Заробітки за життя, як правило, значно нижче ступеня MS.

Теорія мов програмування дисків, ймовірно, поставить вас у сферу написання компіляторів.

Крім того, ці речі не важко з’ясувати, прочитавши - я висловлюю сумніви, що ви готові до кандидата наук, якщо ви ставите це запитання.


Хтось із доктором фізичних наук зазвичай складає 10K-20K / рік більше, ніж хтось із BS / MS. Є багато кандидатів наук, які працюють в якості інженерів програмного забезпечення в Google, Microsoft, Adobe, Oracle тощо. Проясніть факти та отримуйте задоволення від заробітку менше.
stackoverflowuser2010

@stackoverflowuser: Неправильно . дохід за все життя відрізняється від річної зарплати. Подивіться. Кандидати, як правило, працюють у науково-дослідних лабораторіях Google, Microsoft та ін.
Пол Натан

1
@oosterwal: Не начебто, не з тривіальних пошуків. Це одна з речей, які зазвичай кидаються в академічні кола. По суті, те, що ви робите для підрахунку ефектів, полягає в тому, щоб запускати складні зарплатні "відсотки" в різні періоди початку та різні стартові зарплати. Я робив це близько 2 років тому: в основному математика пропонує отримати магістр через 2 роки та перейти до галузі. Затримка дати початку до 3-5 (PhD) років спричиняє ефект ущільнення. Звичайно, це не враховує людей з найвищих рівнів, але якщо припустити, що це один середній, то краще не здобувати ступінь доктора наук.
Пол Натан

1
@oosterwal - Залежить від школи, але більшу частину часу докторант не буде платити за навчання і отримуватиме стипендію від школи. Більшість підрахунків за все життя ґрунтується на тому, що вони можуть мати ще шість-вісім років навчання в школі, де, як диплом бакалавра, працював і заробляв гроші протягом цього періоду.
rjzii

2
@ stackoverflowuser2010 Ви зробили свою думку. Відпусти.
Адам Лір

1

Мені було цікаво вивчити ту саму кар’єру / курс (моя дипломна робота пов'язана з дизайном компілятора, а також я викладаю клас про "Порівняння мов програмування", обидва поняття стосуються "Теорії мов програмування").

Але це було скоріше хобі - кар'єра "оплата рахунків".

Існує також проблема, що Теорія мов програмування застосовує багато математики, але її важко застосувати, практично.

Якщо ви вже маєте цей курс, як ви подали заявку?

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

Або щось на кшталт компілятора "Java / C # працює в тостері" і продавати його ;-)

Викладання, пов'язані з викладанням у колегіумах / університетах, наприклад, Автомати, Дизайн компіляторів, Порівняння мов програмування тощо.

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

Є кілька компаній, які можуть виробляти програмні продукти, які фактично вимагають конкретних навичок.

(Здебільшого, проектування мови програмування та відповідного компілятора для певної віртуальної / фізичної машини, власного аналізатора XML тощо).

Але, схоже, більшість із них вважають за краще найняти загального дешевого розробника, ніж розробника з певною спеціалізацією ...


1

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

Якщо ви розширите свої можливості роботи за межами майбутньої дисертації, к.т.н. групи найму також розглядають вас за глибину навчання.

І це лише в комерційному секторі. Якщо ви подивитеся на DoE та його безліч лабораторій (Laurence Livermole, Sandia тощо) або DoD або таких військових підрядників, як Raytheon, General Dynamics (мій роботодавець) або Lockheed Martin, є в наявності позиції для вчених та дослідників. АНБ хотів би також найняти вас.

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

Удачі.


-2

Багато робочих місць:

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.