Nasihat karir: PhD dalam teori bahasa pemrograman [ditutup]

16

Saya sangat tertarik dengan teori-teori bahasa pemrograman dan akan menerapkan PhD dalam topik ini, tapi saya ingin tahu lebih banyak tentang karir setelah pendidikan pascasarjana. selain menjadi profesor, tetapi juga pekerjaan apa yang bisa saya dapatkan?

pengguna16854
sumber
Apa yang Anda maksud dengan 'teori bahasa pemrograman'?
Kirk Broadhurst
4
cabang ilmu komputer yang berhubungan dengan desain, implementasi, analisis, karakterisasi, dan klasifikasi bahasa pemrograman dan fitur masing-masing.
user16854
@Kirk: Ini bidang yang sangat aktif dengan konferensi dan jurnalnya sendiri (selain banyak publikasi dalam konferensi umum). PLDI adalah contoh yang bagus. Bahkan ada peringkat yang terpisah untuk sekolah CS di PL.
Uri

Jawaban:

17

Jika Anda ahli dalam bahasa pemrograman dan teori automata, maka Anda harus memiliki peluang industri yang cukup sebagai pengembang kompiler atau spesialis optimasi backend.

Bahasa yang lebih baru muncul setiap saat, dan bahasa yang ada semakin ditingkatkan atau menargetkan platform yang lebih baru. Untuk misalnya C ++ pindah ke C ++ 0x, orang-orang perangkat keras bergerak dari Verilog ke SystemVerilog dan ARM semakin banyak digunakan dalam perangkat konsumen. Semua ini menyajikan peluang bagus untuk pengembang kompiler.

Yang terakhir, pengembang kompiler yang dapat menggunakan arsitektur multi-core akan memerintah di tahun-tahun mendatang.

Untuk pekerjaan kompiler lihat di sini .

Fanatic23
sumber
14

Michael Feathers pernah menulis bahwa ia menemukan bahwa kebanyakan orang yang terlibat dalam pemrograman berasal dari skala mulai dari ilmuwan hingga insinyur.

Para ilmuwan mendapatkan tendangan mereka dari pembelajaran dan pemahaman, sementara para insinyur suka membuat barang dan melihatnya bekerja.

Pada ujung insinyur ekstrem, Anda memiliki orang yang terus-menerus memuntahkan kode baru, atau peretasan, hanya untuk menyelesaikan masalah. Mereka cenderung mengabaikan gambaran besar. Sebaliknya, para ilmuwan ekstrem, menjadi astronot arsitek dengan kepala mereka di kerangka besar yang keruh, dan tidak pernah memberikan garis kerja kode sepanjang hidup mereka. Programmer terbaik ada di suatu tempat di tengah.

Dulu saya berpikir saya adalah seorang programmer, karena saya suka membaca tentang hal itu, dan menghabiskan waktu berjam-jam untuk itu. Beberapa pekerjaan kemudian, saya menyadari bahwa saya sebenarnya memiliki masalah dalam menyampaikan, karena saya selalu mencari cara yang lebih baik, atau "cara yang tepat" untuk melakukan sesuatu. Ternyata saya terlalu banyak di sisi ilmuwan untuk menjadi efektif, setidaknya dalam pekerjaan pengembang "normal".

Either way, saya pikir Anda dilahirkan dengan preferensi untuk satu atau yang lain (saya telah membaca banyak tentang tipe kepribadian belakangan ini, terutama Myers-Briggs Type Indicator , dan memiliki firasat bahwa ini mungkin terkait dengan S / N fungsi, bagi anda yang tertarik dengan itu). Saya telah mencoba untuk memaksa diri saya untuk lebih praktis dan lebih sebagai "pelaku", tetapi saya merasa lelah.

Maksud saya terhadap pertanyaan awal adalah bahwa jika Anda menempuh jalur PhD, Anda mungkin lebih cenderung menyukai hal-hal teoritis daripada "membangun hal-hal praktis". Tidak ada yang salah dengan itu, tapi saya pikir pilihan karier seperti itu sering akan mengunci Anda dalam karir ilmiah / pendidikan. Anda tidak dapat berharap untuk dapat langsung dari PhD ke pekerjaan konsultan bergaji tinggi. Hal-hal yang Anda pelajari saat berolahraga di "dunia nyata" sangat berbeda dari praktik terbaik yang dipelajari dari buku.

Alternatif tentu saja untuk memulai bisnis Anda sendiri setelah PhD dan mengembangkan (atau merekrut seseorang untuk mengembangkan) aplikasi berdasarkan teori fantastis yang Anda temukan saat melakukan penelitian.

erikric
sumber
6

Saya telah berpikir untuk melakukan PhD selama beberapa tahun sekarang (saat ini sedang mengerjakan gelar Master jalur tesis) dan hal nomor satu yang telah saya sampaikan kepada para pemegang PhD di bidang akademik dan industri adalah sebagai berikut:

Jangan mendapatkan gelar PhD karena prospek uang atau karier, hanya dapatkan jika Anda benar-benar menikmati apa yang Anda lakukan dan ingin menghabiskan waktu bertahun-tahun mempelajarinya secara mendalam.

Fanantic23 meliput sisi karir dari hal-hal dengan cukup baik, tetapi tidak ada banyak pekerjaan di luar sana untuk PhD sehingga Anda perlu memastikan Anda ingin menginvestasikan waktu untuk mempelajari sesuatu karena alasan selain uang sebelum masuk ke program PhD .

rjzii
sumber
2

JANGAN melanjutkan ke PhD jika Anda berharap mendapatkan pekerjaan akademis, atau jika Anda tidak keberatan menyia-nyiakan waktu bertahun-tahun hanya untuk akhirnya menjadi insinyur seperti yang akan Anda lakukan sebelumnya.

Bukan untuk mengecilkan hati Anda, tetapi sebagian besar orang dengan gelar PhD di CS, dan khususnya dalam topik-topik seperti bahasa pemrograman JANGAN berakhir sebagai profesor. Tidak ada cukup pekerjaan penelitian untuk berkeliling.

Pekerjaan penelitian di industri bahkan lebih jarang dan tersedia daripada pekerjaan penelitian di akademisi, karena mereka membayar lebih baik dan tidak memiliki persyaratan mengajar.

Pikirkan seperti ini: Jika Anda melihat jumlah makalah ilmiah PL yang diterbitkan per tahun, dan menganggap satu mahasiswa PhD per makalah, tidak semua orang ini akan menjadi profesor.

Saya meraih gelar PhD dalam Rekayasa Perangkat Lunak di CMU, di mana PL adalah salah satu bidang terkuat (kami adalah program top-3 dalam PL). Sepengetahuan saya, dari semua orang yang lulus dengan gelar PhD di PL, hanya dua yang berakhir di posisi akademik. Semua orang dipekerjakan sebagai insinyur perangkat lunak. Saya tahu satu yang bekerja pada hal-hal terkait PL, tetapi yang lain adalah generalis.

Hubungi saya secara pribadi jika Anda ingin saya berhubungan dengan orang-orang yang melakukan riset PL yang dapat memberi tahu Anda lebih banyak tentang pengalaman tersebut.

Uri
sumber
1
Saya menghabiskan waktu bertahun-tahun untuk mendapatkan gelar PhD dalam bidang fisika dan saya telah berakhir di berbagai pekerjaan 'insinyur' yang sangat menarik. Mungkin jenis pekerjaan teknik yang sama dengan yang akan saya dapatkan tetapi itu tidak berarti itu sia-sia!
Martin Beckett
Bagaimana saya bisa menghubungi Anda?
tpA
1

Saya berharap bahwa Anda dapat bekerja untuk salah satu laboratorium penelitian yang bekerja pada bahasa pemrograman, Microsoft dan IBM memilikinya seperti halnya sejumlah perusahaan lain. Belum lagi toko apa pun yang mengembangkan atau mengimplementasikan bahasa.

Zachary K
sumber
1

Anda harus berbicara dengan profesor almamater Anda sebelum memulai PhD.

Biasanya PhD bekerja di laboratorium penelitian atau menjadi profesor. Penghasilan seumur hidup biasanya jauh di bawah gelar MS.

Teori perbedaan bahasa pemrograman mungkin akan menempatkan Anda di bidang penulisan kompiler.

Juga, hal-hal ini tidak sulit untuk diketahui dengan membaca - Saya menyatakan ragu bahwa Anda siap untuk PhD jika Anda mengajukan pertanyaan ini.

Paul Nathan
sumber
Seseorang dengan PhD CS umumnya menghasilkan 10K-20K / tahun lebih dari seseorang dengan BS / MS. Ada banyak PhD yang bekerja sebagai insinyur perangkat lunak di Google, Microsoft, Adobe, Oracle, dll. Luruskan fakta Anda dan nikmati penghasilan yang lebih sedikit.
stackoverflowuser2010
@stackoverflowuser: Salah . Penghasilan seumur hidup berbeda dari gaji tahunan. Lihat itu. PhD biasanya bekerja di area lab penelitian Google, Microsoft et al.
Paul Nathan
1
@ oosterwal: Tidak begitu saja, tidak dengan pencarian sepele. Ini adalah salah satu hal yang biasa dilemparkan ke dalam lingkaran akademis. Pada dasarnya apa yang Anda lakukan untuk menghitung efeknya adalah menjalankan "bunga" gaji gabungan dari waktu mulai yang berbeda dan gaji awal yang berbeda. Saya melakukan itu sekitar 2 tahun yang lalu: pada dasarnya matematika menyarankan mendapatkan gelar Master dalam 2 tahun dan masuk ke industri. Menunda tanggal mulai oleh 3-5 (PhD) tahun nyali efek peracikan. Tentu saja ini tidak memperhitungkan orang-orang papan atas, tetapi jika orang menganggapnya rata-rata, itu lebih baik daripada bukan PhD.
Paul Nathan
1
@ oosterwal - Tergantung pada sekolah, tetapi sebagian besar waktu siswa PhD tidak akan membayar uang sekolah dan akan menerima tunjangan dari sekolah. Sebagian besar seumur hidup mendapatkan perhitungan didasarkan pada kenyataan bahwa mereka mungkin memiliki enam hingga delapan tahun lagi sekolah di mana sebagai pemegang gelar Bacholors akan bekerja dan menghasilkan uang selama jangka waktu tersebut.
rjzii
2
@ stackoverflowuser2010 Anda telah menyampaikan maksud Anda. Biarkan saja.
Adam Lear
1

Saya tertarik untuk mempelajari karir / kursus yang sama (Tesis pascasarjana saya terkait dengan Desain-Kompiler, dan saya juga mengajar kelas tentang "Perbandingan Bahasa Pemrograman", kedua konsep tersebut berhubungan dengan "Teori Bahasa Pemrograman").

Tapi, itu lebih sebagai hobi bahwa karier "membayar tagihan".

Ada juga masalah yang, Teori Bahasa Pemrograman, menerapkan banyak matematika, tetapi sulit untuk menerapkannya, secara praktis.

Jika Anda sudah memiliki kursus itu, bagaimana Anda mendaftar?

Contoh, buat Java Compiler Anda sendiri, buat lebih cepat dari aslinya, tambahkan beberapa hal, dan jual. Contoh: "HotSpot"

Atau, sesuatu seperti kompiler "Java / C # running in a toaster" dan jual ;-)

Mengajar kelas konsep terkait di Collegue / University, seperti Automatons, Compiler Design, Perbandingan Bahasa Pemrograman, dan sebagainya.

Anda juga dapat membuat Anda memiliki startup kecil, penuh waktu, atau bebas / paruh waktu, sambil memiliki pekerjaan programmer standar, yang membayar tagihan (Mencoba dan gagal). : -s

Ada beberapa perusahaan yang dapat menghasilkan produk perangkat lunak yang benar-benar memerlukan keterampilan khusus itu.

(Sebagian besar, merancang bahasa pemrograman, dan kompiler yang cocok, untuk mesin virtual / fisik tertentu, parser XML sendiri, dll).

Tapi, tampaknya sebagian besar dari mereka lebih suka menyewa pengembang murah generik, daripada pengembang dengan beberapa spesialisasi ...

umlcat
sumber
1

Gelar doktor di CS dengan fokus pada teori bahasa pemrograman dapat membuat Anda mendapatkan pekerjaan di luar akademisi, tetapi kemungkinan besar masih dalam bidang penelitian. Microsoft (baik melalui MS Research atau Microsoft), Google, Amazon, Ericsson, HP, IBM Research, Oracle akan menjadi perusahaan yang memungkinkan.

Jika Anda memperluas peluang kerja Anda di luar disertasi masa depan Anda, Ph.D. mempekerjakan kelompok juga akan mempertimbangkan Anda untuk kedalaman studi Anda.

Dan itu hanya di sektor komersial. Jika Anda melihat DoE dan banyak labnya (Laurence Livermole, Sandia, dll) atau DoD atau kontraktor militer seperti Raytheon, General Dynamics (perusahaan saya) atau Lockheed Martin, ada posisi yang tersedia untuk ilmuwan dan peneliti. NSA ingin mempekerjakan Anda juga.

Peluang non-akademik untuk orang-orang dengan gelar doktor sains kurang (jauh lebih sedikit) daripada mereka yang membutuhkan gelar BS atau MS, tetapi mereka masih banyak, dibayar dengan upah layak dan bermanfaat.

Semoga berhasil.

luis.espinal
sumber
-2

Banyak pekerjaan yang tersedia:

C # /. NET di Microsoft
Java di Oracle
Perl6 (tidak akan mendapatkan banyak bayaran saya pikir)
ActionScript di Adobe

jondinham
sumber