web-dev-qa-db-ja.com

キャリアアドバイス:プログラミング言語理論の博士号

私はプログラミング言語の理論に非常に興味があり、このトピックで博士号を適用するつもりですが、大学院教育後の経歴についてもっと知りたいです。教授であるだけでなく、どのような職業を得ることができますか?

16
user16854

プログラミング言語とオートマトン理論のプロであれば、コンパイラ開発者またはバックエンド最適化スペシャリストとして、業界で十分な機会を持つ必要があります。

新しい言語が常に登場し、既存の言語は改善されているか、新しいプラットフォームをターゲットにしています。例えばC++はC++ 0xに移行し、ハードウェアの連中はVerilogからSystemVerilogに移行し、ARMはますますコンシューマデバイスで使用されています。これらすべてがコンパイラ開発者に良い機会を提供します。

最後になりましたが、マルチコアアーキテクチャを利用できるコンパイラ開発者は、これから何年もの間、ねぐらを支配するでしょう。

コンパイラー・ジョブについては、 ここ を参照してください。

17
Fanatic23

Michael Feathersはかつて、プログラミングに携わるほとんどの人が科学者からエンジニアまでさまざまな規模に属していることを発見したと書いています。

科学者は学習と理解からキックを得る一方、エンジニアはものを構築してそれが機能するのを見るのが好きです。

極端なエンジニア側では、物事を進めるために、常に新しいコードまたはハックを吐き出しています。彼らは全体像を無視する傾向があります。一方、極端な科学者たちは、大きな曇ったフレームワークに頭を抱えた建築家の宇宙飛行士になり、生涯にわたってコードの実用的なラインを提供したことはありません。最高のプログラマーは真ん中のどこかにいます。

私はそれを読むのが好きだったので、自分はプログラマーだと思っていて、それに何時間も費やしていました。数仕事後、私は常により良い方法、つまり「正しい方法」を模索しているので、実際に配信に問題があることに気付きました。少なくとも「通常の」開発者の仕事では、私は科学者側では効果的ではないことがわかりました。

どちらにしても、あなたはどちらか一方の好みで生まれてきたと思います(私は最近、性格タイプ、特に Myers-Briggs Type Indicator についてたくさん読んでいます)、そしてこれがS/N機能に関連していること、それに興味がある人のために)。私は自分をより実用的でより「実行者」にしようと努力しましたが、燃え尽きてしまいます。

元の質問に対する私のポイントは、PhDのパスをたどると、おそらく「実際的なものを構築する」ことよりも理論的なものを好む傾向があるということです。何も問題はありませんが、そのようなキャリアの選択は、科学的/教育的なキャリアにあなたを固定することが多いと思います。博士課程から高額なコンサルタントの仕事に直接進むことができると期待することはできません。 「現実の世界」でワークアウトして学んだことは、本から学んだベストプラクティスとはかなり異なります。

もちろん、PhDの後に独自のビジネスを開始し、研究中に発見した素晴らしい理論に基づいてアプリケーションを開発する(または誰かに開発を依頼する)こともできます。

14
erikric

私は数年前から博士号を取得することを考えています(現在は修士論文の修士号を取得しています)。学界および産業界の博士号取得者から言われた一番のことは次のとおりです。

お金やキャリアの見通しのために博士号を取得しないでください。自分がやっていることを本当に楽しんでいて、何年もそれを深く研究したい場合にのみ、博士号を取得してください。

Fanantic2 キャリアの側面はかなりよくカバーされていますが、博士号を取得する仕事はそれほど多くないので、時間以外に何かを学ぶために時間を費やす必要があることを確認する必要があります。博士課程に入る前にお金。

6
rjzii

アカデミックな仕事を頼りにしている場合や、それまでと同じようにエンジニアになるために何年も無駄にしてかまわない場合は、博士号を取得しないでください。

あなたを落胆させるためではありませんが、CS、特にプログラミング言語のようなトピックで博士号を取得している人の大多数は、教授になることはありません。周りを回るのに十分な研究仕事がないだけです。

産業界での研究の仕事は、学業での研究の仕事よりも一般的でなく、利用可能です。

このように考えてください。年間に発行されるPL科学論文の数を見て、1論文あたり1人の博士課程の学生を想定すると、これらの人々のすべてが教授になるわけではありません。

私は、PLが最も強力な分野の1つであるCMUでソフトウェアエンジニアリングの博士号を取得しました(私たちはPLのトップ3プログラムです)。私の知る限りでは、PLで博士号を取得して卒業したすべての人のうち、2人だけが学位に就きました。他の誰もがソフトウェアエンジニアとして雇用されています。私はPL関連のもので動作するものを知っていますが、他はジェネラリストです。

経験について詳しく教えてくれるPL調査を行った人と連絡を取りたい場合は、私に私に連絡してください。

2
Uri

プログラミング言語の理論に焦点を当てたCSの博士号を取得すると、学界の外に就職できるようになりますが、それでもおそらく研究の領域にいるでしょう。 Microsoft(MS ResearchまたはMicrosoftのいずれかを介して)、Google、Amazon、Ericsson、HP、IBM Research、Oracleが雇用主になる可能性があります。

将来の論文の外で仕事の機会を拡大する場合、博士採用グループは、あなたの研究の深さについてもあなたを考慮します。

そして、それは商業部門にのみあります。 DoEとその多くのラボ(Laurence Livermole、Sandiaなど)、またはDoDやレイセオン、ゼネラルダイナミクス(私の雇用主)、ロッキードマーティンなどの軍事請負業者を見ると、科学者や研究者が利用できるポジションがあります。 NSAもあなたを雇いたいと思うでしょう。

理学博士号を取得している人の学業以外の機会は、理学士号または修士号を必要とする人よりも少ない(かなり少ない)。度、しかし、彼らはまだ十分であり、まともな報酬とやりがいがあります。

幸運を。

1
luis.espinal

同じキャリア/コースの研究に興味がありました(私の卒業論文はコンパイラデザインに関連しており、「プログラミング言語の比較」についてのクラスも教えています。どちらの概念も「プログラミング言語理論」に関連しています)。

しかし、それは「請求書支払い」のキャリアというより趣味でした。

また、プログラミング言語理論は多くの数学を適用しますが、実際的な方法で適用するのは難しいという問題もあります。

すでにそのコースを受講している場合、どのように応募しましたか?

例:独自のJavaコンパイラーを作成し、元のコンパイラーよりも高速にして、いくつかのものを追加して販売します。例: "HotSpot"

または、「トースターで実行されているJava/C#」コンパイラーのようなものを販売します;-)

オートマトン、コンパイラーデザイン、プログラミング言語の比較など、大学/大学で関連するコンセプトクラスを教える。

また、標準のプログラマーの仕事をしながら、自分の小さなスタートアップ、フルタイム、またはフリー/パートタイムを自分で作成して、請求書を支払う(試行して失敗する)こともできます。 :-s

特定のスキルを実際に必要とするソフトウェア製品を製造している会社がいくつかあります。

(主に、特定の仮想/物理マシン、独自のXMLパーサーなどのために、プログラミング言語とそれに対応するコンパイラーを設計する)。

しかし、彼らのほとんどは、いくつかの専門知識を持つ開発者よりも、一般的な安価な開発者を雇うことを好むようです...

1
umlcat

博士号を取得する前に、母校の教授に相談する必要があります。

通常、博士号は研究室で働くか、教授になります。通常、生涯収入は修士号をかなり下回ります。

プログラミング言語dissの理論は、おそらくコンパイラを書く分野にあなたを置くでしょう。

また、これらを読むことで見つけるのは難しくありません。この質問をしているのであれば、博士号を取得する準備ができていることは間違いありません。

1
Paul Nathan

プログラミング言語に取り組む研究ラボの1つで働くことができると思います。MicrosoftとIBMは、他の多くの企業と同じようにそれらを持っています。言語を開発または実装しているショップは言うまでもありません。

1
Zachary K