직업 조언 : 프로그래밍 언어 이론 박사 학위 [닫기]


16

저는 프로그래밍 언어 이론에 관심이 있고이 주제에 박사 학위를 적용하려고하지만 대학원 교육 후의 경력에 ​​대해 더 알고 싶습니다. 교수 일뿐만 아니라 어떤 직업을 얻을 수 있습니까?


'프로그래밍 언어 이론'은 무엇을 의미합니까?
Kirk Broadhurst

4
프로그래밍 언어 및 개별 기능의 설계, 구현, 분석, 특성 분석 및 분류를 다루는 컴퓨터 과학 분야.
user16854

@ 커크 : 자체 컨퍼런스와 저널이있는 매우 활발한 분야입니다 (일반 컨퍼런스의 많은 출판물 외에도). PLDI가 좋은 예입니다. PL에는 CS 학교에 대해 별도의 순위가 있습니다.
Uri

답변:


17

프로그래밍 언어 및 오토마타 이론 전문가라면 컴파일러 개발자 또는 백엔드 최적화 전문가로서 충분한 산업 기회를 확보해야합니다.

새로운 언어가 항상 등장하고 있으며 기존 언어가 향상되거나 새로운 플랫폼을 목표로하고 있습니다. 예를 들어 C ++은 C ++ 0x로 이동하고 하드웨어 사용자는 Verilog에서 SystemVerilog로 이동하고 있으며 ARM은 소비자 장치에서 점점 더 많이 사용되고 있습니다. 이 모든 것은 컴파일러 개발자에게 좋은 기회입니다.

마지막으로, 멀티 코어 아키텍처를 사용할 수있는 컴파일러 개발자는 앞으로 몇 년간 휴식처를 지배 할 것입니다.

컴파일러 작업은 여기를 참조하십시오 .


14

마이클 페더스 (Michael Feathers)는 한때 그는 프로그래밍에 관련된 대부분의 사람들이 과학자에서 엔지니어에 이르기까지 다양한 규모에 속한다는 것을 썼습니다.

과학자들은 학습과 이해를 통해 발차기를 얻지 만 엔지니어는 물건을 만들고 그것을 작동시키는 것을 좋아합니다.

극단적 인 엔지니어에게는 사람들이 지속적으로 새로운 코드 나 해킹을 쏟아 내고 있습니다. 그들은 큰 그림을 무시하는 경향이 있습니다. 반면에 극단적 인 과학자들은 크고 흐린 틀에서 머리를 가진 건축가 우주 비행사가되어 일생 동안 코드를 제공 한 적이 없습니다. 최고의 프로그래머는 중간에 있습니다.

나는 그것에 대해 읽는 것을 좋아하고 그에 몇 시간을 보냈기 때문에 프로그래머라고 생각했습니다. 몇 일 후, 나는 항상 더 나은 방법이나 일을하기위한 "올바른 방법"을 찾고 있기 때문에 실제로 전달하는 데 문제가 있음을 깨달았습니다. 나는 적어도 "정상적인"개발자 직무에서 효과적 이기에는 과학자 측에 너무 많은 것으로 밝혀졌습니다.

어느 쪽이든, 나는 당신이 하나 또는 다른 것을 선호하여 태어 났다고 생각합니다 (최근에 성격 유형, 특히 Myers-Briggs Type Indicator 에 대해 많이 읽었으며 이것이 S / N과 관련이 있다고 생각합니다. 기능에 관심이있는 사람들을 위해). 나는 좀 더 실용적이고 "행동 자"가되도록 강요하려했지만 타 버렸다.

원래의 질문에 대한 나의 요점은 당신이 박사 과정을 밟으면 아마도 "실용적인 것들을 구축하는 것"보다 이론적 인 것을 좋아하는 경향이 있다는 것입니다. 아무 문제가 없지만, 그런 직업 선택은 종종 과학적 / 교육적 경력에 방해가 될 것이라고 생각합니다. 당신은 박사 학위에서 고임금 컨설턴트 직업으로 바로 갈 수있을 것으로 기대할 수 없습니다. "실제 세계"에서 운동하는 것을 배우는 것은 책에서 배운 모범 사례와는 많이 다릅니다.

물론 박사 학위 후에 자신의 사업을 시작하고 연구하는 동안 발견 한 환상적인 이론을 바탕으로 응용 프로그램을 개발 (또는 개발할 사람을 고용)하는 대안도 있습니다.


6

저는 현재 2 년 동안 박사 학위를받는 것에 대해 생각하고 있습니다 (현재 논문 트랙 석사 학위를 받고 있습니다). 학계 및 산업 분야의 박사 학위 소지자에게 내가 들었던 것은 다음과 같습니다.

돈이나 직업 전망 때문에 박사 학위를받지 말고, 실제로하고있는 일을 즐기고 깊이 공부하는 데 몇 년을 보내고 싶은 경우에만 받으십시오.

Fanantic23 은 사물의 경력 측면을 꽤 잘 다루었지만 박사 학위에는 일자리가 많지 않으므로 박사 학위 프로그램에 들어가기 전에 돈 이외의 이유로 무언가를 배우는 데 시간을 투자해야합니다. .


2

만약 당신이 학업을하기를 기대하고 있거나, 당신이 그랬던 것처럼 엔지니어가되기 위해 오랜 시간을 낭비하고 싶지 않다면 박사 학위에 가지 마십시오.

당신을 낙담시키지 말고, CS, 특히 프로그래밍 언어와 같은 주제에서 박사 학위를 가진 대다수의 사람들은 교수로 끝나지 않습니다. 돌아 다닐 연구 작업이 충분하지 않습니다.

산업 분야의 연구 일자리는 학업 분야의 연구 일자리보다 훨씬 덜 일반적이며 이용 가능합니다. 왜냐하면 그들이 더 잘 지불하고 교육 요건이 없기 때문입니다.

이런 식으로 생각해보십시오 : 매년 발행되는 PL 과학 논문의 수를보고 논문 당 한 명의 박사 학위 학생을 가정한다면,이 사람들이 모두 교수가되는 것은 아닙니다.

나는 PL이 가장 강력한 분야 중 하나 인 CMU에서 소프트웨어 공학 박사 학위를 받았습니다 (PL의 최상위 3 개 프로그램입니다). 내가 아는 한, PL에서 박사 학위를 취득한 모든 사람들로부터 단 2 명만이 학업에 배치되었습니다. 다른 모든 사람들은 소프트웨어 엔지니어로 고용됩니다. 나는 PL 관련 것들에서 작동하는 것을 알고 있지만 다른 사람들은 일반인입니다.

PL 연구를 한 경험이있는 사람들과 연락을주고 받으려면 개인적으로 저에게 연락하십시오.


1
물리학에서 박사 학위를받는 데 몇 년을 보냈으며 매우 다양한 '엔지니어'직업을 갖게되었습니다. 어쨌든 내가 얻은 것과 같은 다양한 엔지니어링 작업이 아마 그것이 낭비되었다는 것을 의미하지는 않습니다!
Martin Beckett

어떻게 연락 할 수 있습니까?
tpA

1

프로그래밍 언어를 연구하는 연구소 중 한 곳에서 일할 수 있기를 기대합니다. Microsoft와 IBM은 다른 여러 회사와 마찬가지로 이들을 보유하고 있습니다. 언어를 개발하거나 구현하는 상점은 말할 것도 없습니다.


1

당신은 박사 학위를 시작하기 전에 당신의 알마 교 교수와 상담해야합니다.

일반적으로 박사는 실험실에서 일하거나 교수가됩니다. 평생 소득은 일반적으로 MS 학위보다 상당히 낮습니다.

프로그래밍 언어 diss의 이론은 아마도 컴파일러 작성 분야에 당신을 넣을 것입니다.

또한, 이러한 것들을 읽음으로써 찾아 내기는 어렵지 않습니다.이 질문을한다면 박사 학위를받을 준비가되었는지 의심됩니다.


CS PhD를 가진 사람은 보통 BS / MS를 가진 사람보다 연간 10K-20K를 더 많이합니다. Google, Microsoft, Adobe, Oracle 등에서 소프트웨어 엔지니어로 일하는 박사 학위가 많이 있습니다. 사실을 파악하고 수입을 줄이십시오.
stackoverflowuser2010

@stackoverflowuser : 잘못되었습니다 . 평생 소득 은 연봉과 다릅니다. 찾아 봐 PhD는 일반적으로 Google, Microsoft 등의 연구소에서 작동하는 것으로 보입니다.
Paul Nathan

1
@oosterwal : 사소한 검색이 아니라, 손이 아닙니다. 그래도 학계에서 일반적으로 사용되는 것들 중 하나입니다. 본질적으로 효과를 계산하기 위해해야 ​​할 일은 다른 시작 시간과 다른 시작 급여에서 복합 급여 "관심"을 실행하는 것입니다. 저는 약 2 년 전에 그렇게했습니다. 기본적으로 수학은 2 년 안에 석사 학위를 취득하고 산업에 진출 할 것을 제안합니다. 시작 날짜를 3-5 (PhD) 년 지연하면 복합 효과가 나타납니다. 물론 이것은 최고의 사람들을 고려하지는 않지만, 사람이 평균이라고 가정하면 PhD를 사용하지 않는 것이 좋습니다.
Paul Nathan

1
@oosterwal-학교에 따라 다르지만 대부분의 경우 PhD 학생은 수업료를 내지 않으며 학교에서 봉급을받습니다. 평생 소득 계산의 대부분은 Bacholors 학위 소지자가 그 기간 동안 일하고 돈을 벌 수있는 6 ~ 8 년 더 학교를 가질 수 있다는 사실에 근거합니다.
rjzii

2
@ stackoverflowuser2010 당신은 당신의 요점을 만들었습니다. 놓아 줘
Adam Lear

1

나는 같은 직업 / 과정에 대한 연구에 관심이있었습니다 (저의 대학원 논문은 컴파일러-디자인과 관련이 있으며, "프로그래밍 언어 비교"에 대한 수업을 가르치고 있습니다. 두 개념 모두 "프로그래밍 언어 이론"과 관련이 있습니다).

그러나 "지 불법"경력이 더 취미였다.

프로그래밍 언어 이론은 많은 수학을 적용하지만 실제로 적용하기 어려운 문제도 있습니다.

그 과정을 이미 가지고 있다면 어떻게 신청 했습니까?

예를 들어, 자신의 Java 컴파일러를 작성하여 원본보다 빠르게 만들고 몇 가지를 추가하여 판매하십시오. 예 : "HotSpot"

또는 "토스터에서 실행되는 Java / C #"컴파일러와 같은 것;;)

Automatons, Compiler Design, Comparison of Programming Languages ​​등과 같은 Collegue / University에서 관련 개념 클래스를 교육합니다.

또한 표준 프로그래머 작업을하면서 청구서를 지불하는 소규모 시작, 풀 타임 또는 프리 / 파트 타임을 소유 할 수도 있습니다 (Tried and Failure). :-에스

실제로 특정 기술이 필요한 소프트웨어 제품을 생산할 수있는 여러 회사가 있습니다.

(대부분 특정 가상 / 물리적 시스템, 자체 XML 파서 등을위한 프로그래밍 언어 및 일치하는 컴파일러 설계).

그러나 그들 대부분은 전문성을 가진 개발자보다 저렴한 일반 개발자를 고용하는 것을 선호하는 것 같습니다 ...


1

프로그래밍 언어 이론에 중점을 둔 CS의 박사 학위는 학계 외부에 직업을 옮길 수 있지만 여전히 연구 영역 내에 있습니다. Microsoft (MS Research 또는 Microsoft)를 통해 Google, Amazon, Ericsson, HP, IBM Research, Oracle이 고용주가 될 수 있습니다.

향후 논문 이외의 직업 기회를 확장하면 박사 학위. 그룹을 채용하면 공부의 깊이를 고려할 수 있습니다.

그리고 그것은 상업 부문에만 있습니다. DoE와 그 연구소 (Laurence Livermole, Sandia 등) 또는 DoD 또는 Raytheon, General Dynamics (나의 고용주) 또는 Lockheed Martin과 같은 군 계약자를 보면 과학자와 연구원이 이용할 수있는 직책이 있습니다. NSA도 당신을 고용하고 싶습니다.

과학 박사 학위를 소지 한 사람들을위한 비 학업 기회는 학사 또는 석사 학위를 요구하는 사람들보다 적습니다 (그러나 훨씬 적습니다).

행운을 빕니다.


-2

사용 가능한 많은 작업 :


Oracle
Perl6의 Microsoft Java C # /. NET (
Adobe의 ActionScript )

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.