คำแนะนำอาชีพ: ปริญญาเอกในทฤษฎีภาษาโปรแกรม [ปิด]


16

ฉันสนใจทฤษฎีของภาษาโปรแกรมและจะสมัครปริญญาเอกในหัวข้อนี้ แต่ฉันต้องการทราบเพิ่มเติมเกี่ยวกับอาชีพหลังจบการศึกษาระดับบัณฑิตศึกษา นอกเหนือจากการเป็นอาจารย์ แต่ฉันสามารถรับอาชีพใดได้บ้าง


'ทฤษฎีของภาษาโปรแกรม' หมายถึงอะไร
Kirk Broadhurst

4
สาขาวิทยาการคอมพิวเตอร์ที่เกี่ยวข้องกับการออกแบบการใช้งานการวิเคราะห์ลักษณะและการจัดหมวดหมู่ของการเขียนโปรแกรมภาษาและคุณสมบัติส่วนบุคคลของพวกเขา
user16854

@ เคิร์ก: มันเป็นสนามที่ใช้งานมากกับการประชุมและวารสารของตัวเอง (นอกเหนือจากสิ่งพิมพ์จำนวนมากในการประชุมทั่วไป) PLDI เป็นตัวอย่างที่ดี มีการจัดอันดับแยกต่างหากสำหรับโรงเรียน CS ใน PL
Uri

คำตอบ:


17

หากคุณเป็นมืออาชีพในการเขียนโปรแกรมภาษาและทฤษฎีออโตมาตะคุณควรมีโอกาสทางอุตสาหกรรมมากพอในฐานะผู้พัฒนาคอมไพเลอร์หรือผู้เชี่ยวชาญด้านการเพิ่มประสิทธิภาพแบ็กเอนด์

ภาษาที่ใหม่กว่ากำลังจะเกิดขึ้นตลอดเวลาและภาษาที่มีอยู่กำลังได้รับการปรับปรุงหรือกำหนดเป้าหมายแพลตฟอร์มใหม่ ยกตัวอย่างเช่น C ++ กำลังย้ายไปที่ C ++ 0x พวกฮาร์ดแวร์กำลังเปลี่ยนจาก Verilog ไปเป็น SystemVerilog และ ARM ถูกนำมาใช้มากขึ้นในอุปกรณ์ของผู้บริโภค ทั้งหมดนี้เป็นโอกาสที่ดีสำหรับนักพัฒนาคอมไพเลอร์

สุดท้ายนี้ไม่ใช่อย่างน้อยนักพัฒนาคอมไพเลอร์ที่สามารถใช้ประโยชน์จากสถาปัตยกรรมแบบมัลติคอร์จะเป็นผู้ครองพักแรมในอีกหลายปีข้างหน้า

สำหรับคอมไพเลอร์งานดูที่นี่


14

Michael Feathers เคยเขียนว่าเขาพบว่าคนส่วนใหญ่ที่เกี่ยวข้องในการเขียนโปรแกรมอยู่ในระดับตั้งแต่นักวิทยาศาสตร์ถึงวิศวกร

นักวิทยาศาสตร์ได้รับความบันเทิงจากการเรียนรู้และความเข้าใจในขณะที่วิศวกรชอบที่จะสร้างสิ่งต่าง ๆ และดูการทำงาน

ในตอนท้ายของวิศวกรสุดขีดคุณจะต้องมีคนพ่นรหัสใหม่หรือแฮ็กอย่างต่อเนื่องเพื่อให้ทุกอย่างดำเนินไปได้ พวกเขามักจะมองข้ามภาพรวม ในขณะที่นักวิทยาศาสตร์สุดขั้วกลายเป็นนักบินอวกาศสถาปนิกด้วยหัวของพวกเขาในกรอบที่มีขนาดใหญ่และมีเมฆมากและไม่เคยส่งรหัสทำงานมาตลอดชีวิตของพวกเขา โปรแกรมเมอร์ที่ดีที่สุดอยู่ตรงกลาง

ฉันเคยคิดว่าฉันเป็นโปรแกรมเมอร์เนื่องจากฉันชอบอ่านหนังสือและใช้เวลาหลายชั่วโมง ไม่กี่งานต่อมาฉันรู้ว่าจริง ๆ แล้วฉันมีปัญหาในการส่งเนื่องจากฉันมักจะค้นหาวิธีที่ดีกว่าหรือ "วิธีที่เหมาะสม" ในการทำสิ่งต่าง ๆ ปรากฎว่าฉันอยู่ด้านนักวิทยาศาสตร์มากเกินไปที่จะมีประสิทธิภาพอย่างน้อยในงานพัฒนา "ปกติ"

ฉันคิดว่าคุณเกิดมาพร้อมความชอบอย่างใดอย่างหนึ่ง (ฉันได้อ่านเรื่องราวเกี่ยวกับบุคลิกภาพหลายอย่างเมื่อเร็ว ๆ นี้โดยเฉพาะตัวบ่งชี้ชนิดของ Myers-Briggsและมีลางสังหรณ์ว่าสิ่งนี้อาจเกี่ยวข้องกับ S / N ฟังก์ชั่นสำหรับผู้ที่สนใจ ฉันพยายามบังคับตัวเองให้ทำงานได้มากขึ้นและเป็น "ผู้กระทำ" มากขึ้น แต่ฉันก็รู้สึกเหนื่อยหน่าย

ประเด็นของฉันที่มีต่อคำถามเดิมคือถ้าคุณเดินไปในระดับปริญญาเอกคุณอาจมีแนวโน้มที่จะชอบสิ่งเชิงทฤษฎีมากกว่า "การสร้างสิ่งที่ใช้ประโยชน์ได้" ไม่มีอะไรผิดปกติกับเรื่องนี้ แต่ฉันคิดว่าตัวเลือกอาชีพดังกล่าวมักจะล็อคคุณในอาชีพทางวิทยาศาสตร์ / การศึกษา คุณไม่สามารถคาดหวังได้ว่าจะสามารถทำงานตรงจากปริญญาเอกไปยังที่ปรึกษาที่ได้รับค่าตอบแทนสูง สิ่งที่คุณเรียนรู้จากการทำงานใน "โลกแห่งความจริง" นั้นแตกต่างจากการฝึกฝนที่ดีที่สุดจากหนังสือ

อีกทางเลือกหนึ่งคือการเริ่มต้นธุรกิจของคุณเองหลังจากปริญญาเอกและพัฒนา (หรือจ้างคนเพื่อพัฒนา) แอปพลิเคชันที่อิงตามทฤษฎีที่คุณค้นพบในขณะทำการวิจัย


6

ฉันกำลังคิดเกี่ยวกับการทำปริญญาเอกเป็นเวลาสองสามปีแล้ว (ปัจจุบันทำงานในระดับปริญญาโทติดตามวิทยานิพนธ์) และจำนวนสิ่งหนึ่งที่ฉันได้รับการบอกเล่าจากผู้ถือระดับปริญญาเอกในสถาบันการศึกษาและอุตสาหกรรมดังต่อไปนี้:

อย่าได้รับปริญญาเอกเพราะเงินหรือโอกาสในการทำงานเพียงได้รับถ้าคุณสนุกกับสิ่งที่คุณกำลังทำและต้องการใช้เวลาเรียนหลายปีในเชิงลึก

Fanantic23ครอบคลุมด้านอาชีพของสิ่งต่าง ๆ ค่อนข้างดี แต่มีงานไม่มากสำหรับปริญญาเอกดังนั้นคุณต้องแน่ใจว่าคุณต้องการใช้เวลาในการเรียนรู้บางสิ่งด้วยเหตุผลอื่นนอกเหนือจากเงินก่อนเข้าเรียนหลักสูตรปริญญาเอก .


2

อย่าไปเรียนปริญญาเอกหากคุณคาดหวังว่าจะได้งานวิชาการหรือถ้าคุณไม่รังเกียจที่จะเสียเวลาหลายปีเพื่อที่จะได้เป็นวิศวกรเหมือนที่คุณเคยมีมาก่อน

ไม่ใช่เพื่อกีดกันคุณ แต่คนส่วนใหญ่ที่มีปริญญาเอกใน CS และโดยเฉพาะในหัวข้อเช่นภาษาการเขียนโปรแกรมไม่ได้จบลงด้วยการเป็นอาจารย์ มีงานวิจัยไม่เพียงพอที่จะไปรอบ ๆ

งานวิจัยในอุตสาหกรรมมีน้อยและหาได้ง่ายกว่างานวิจัยในสถาบันการศึกษาเนื่องจากพวกเขาจ่ายเงินได้ดีกว่าและไม่มีข้อกำหนดการสอน

คิดแบบนี้: ถ้าคุณดูจำนวนเอกสารวิทยาศาสตร์ PL ที่ตีพิมพ์ต่อปีและสมมติว่านักศึกษาปริญญาเอกหนึ่งคนต่อกระดาษไม่ใช่คนเหล่านี้ทุกคนที่จะเป็นอาจารย์

ฉันทำปริญญาเอกสาขาวิศวกรรมซอฟต์แวร์ที่มหาวิทยาลัยเชียงใหม่ซึ่ง PL เป็นหนึ่งในสาขาที่แข็งแกร่งที่สุด (เราเป็นโปรแกรมอันดับ 3 ใน PL) เพื่อความรู้ที่ดีที่สุดของฉันจากทุกคนที่จบการศึกษาระดับปริญญาเอกใน PL เพียงสองคนก็จบลงด้วยตำแหน่งทางวิชาการ ทุกคนมีงานทำในฐานะวิศวกรซอฟต์แวร์ ฉันรู้หนึ่งที่ทำงานกับสิ่งที่เกี่ยวข้องกับ PL แต่คนอื่น ๆ เป็นคนทั่วไป

ติดต่อฉันเป็นการส่วนตัวถ้าคุณต้องการให้ฉันติดต่อกับคนที่ทำวิจัย PL ที่สามารถบอกคุณเกี่ยวกับประสบการณ์ได้


1
ฉันใช้เวลาหลายปีในการเรียนปริญญาเอกสาขาฟิสิกส์และได้ลงเอยด้วยงาน 'วิศวกร' ที่น่าสนใจมากมาย อาจเป็นงานวิศวกรรมที่หลากหลายแบบเดียวกับที่ฉันจะได้รับ แต่นั่นไม่ได้หมายความว่ามันเสียเปล่า!
Martin Beckett

ฉันจะติดต่อกับคุณได้อย่างไร?
TPA

1

ฉันคาดหวังว่าคุณสามารถทำงานกับหนึ่งในห้องปฏิบัติการวิจัยที่ทำงานเกี่ยวกับภาษาการเขียนโปรแกรม Microsoft และ IBM มีพวกเขาเช่นเดียวกับ บริษัท อื่น ๆ ไม่ต้องพูดถึงร้านค้าที่พัฒนาหรือใช้ภาษา


1

คุณควรพูดคุยกับอาจารย์เก่าของคุณก่อนที่จะเริ่มปริญญาเอก

โดยทั่วไปแล้วปริญญาเอกจะทำงานในห้องปฏิบัติการวิจัยหรือเป็นอาจารย์ รายได้ตลอดชีวิตมักต่ำกว่าระดับ MS อย่างมาก

ทฤษฎีของการเขียนโปรแกรมภาษาอาจจะทำให้คุณเขียนคอมไพเลอร์

นอกจากนี้สิ่งเหล่านี้ไม่ยากที่จะค้นพบโดยการอ่าน - ฉันสงสัยว่าคุณพร้อมสำหรับปริญญาเอกหากคุณกำลังถามคำถามนี้


คนที่มีปริญญาเอก CS มักจะทำมากกว่า 10K-20K / ปีมากกว่าคนที่มี BS / MS มีปริญญาเอกมากมายที่ทำงานเป็นวิศวกรซอฟต์แวร์ที่ Google, Microsoft, Adobe, Oracle และอื่น ๆ รับข้อเท็จจริงของคุณตรงและเพลิดเพลินกับการรับรายได้น้อยลง
stackoverflowuser2010

@stackoverflowuser: ผิด รายได้ตลอดชีวิตแตกต่างจากเงินเดือนประจำปี ค้นดูสิ. ปริญญาเอกมักจะทำงานในห้องปฏิบัติการวิจัยของ Google, Microsoft และคณะ
พอลนาธาน

1
@oosterwal: ไม่ผิดนัดไม่ได้มีการค้นหาเล็กน้อย มันเป็นหนึ่งในสิ่งที่ถูกโยนลงไปในแวดวงวิชาการ สิ่งสำคัญที่คุณต้องทำเพื่อคำนวณเอฟเฟกต์คือเรียกใช้ "ดอกเบี้ย" เงินเดือนแบบผสมจากเวลาเริ่มต้นที่แตกต่างกันและเงินเดือนเริ่มต้นที่แตกต่างกัน ฉันทำอย่างนั้นเมื่อประมาณ 2 ปีที่แล้ว: โดยพื้นฐานแล้วคณิตศาสตร์แนะนำให้รับปริญญาโทใน 2 ปีและเข้าสู่อุตสาหกรรม การเลื่อนวันที่เริ่มต้น 3-5 ปี (ปริญญาเอก) ทำให้เกิดการรวมตัวกัน แน่นอนว่าสิ่งนี้ไม่ได้คำนึงถึงคนที่อยู่อันดับต้น ๆ แต่ถ้ามีคนคิดว่าเป็นคนธรรมดามันจะดีกว่าไม่ใช่ระดับปริญญาเอก
พอลนาธาน

1
@oosterwal - ขึ้นอยู่กับโรงเรียน แต่ส่วนใหญ่แล้วนักศึกษาปริญญาเอกจะไม่จ่ายค่าเล่าเรียนและจะได้รับค่าตอบแทนจากโรงเรียน ชีวิตส่วนใหญ่ได้รับการคำนวณขึ้นอยู่กับความจริงที่ว่าพวกเขาอาจมีโรงเรียนอีกหกถึงแปดปีซึ่งในฐานะผู้ถือปริญญา Bacholors จะทำงานและหารายได้ในช่วงเวลานั้น
rjzii

2
@ stackoverflowuser2010 คุณทำตามจุดของคุณแล้ว ปล่อยมันไป.
อดัมเลียร์

1

ฉันสนใจที่จะศึกษาว่าอาชีพ / หลักสูตรเดียวกัน (วิทยานิพนธ์ระดับบัณฑิตศึกษาของฉันเกี่ยวข้องกับการออกแบบคอมไพเลอร์และฉันยังสอนชั้นเรียนเกี่ยวกับ "การเปรียบเทียบภาษาโปรแกรม" ซึ่งแนวคิดทั้งสองเกี่ยวข้องกับ "ทฤษฎีภาษาโปรแกรม")

แต่มันเป็นงานอดิเรกมากกว่าที่เป็นอาชีพที่ "จ่ายเงิน"

นอกจากนี้ยังมีปัญหาที่ทฤษฎีภาษาการเขียนโปรแกรมใช้คณิตศาสตร์จำนวนมาก แต่มันยากที่จะนำไปใช้ในทางปฏิบัติ

หากคุณมีหลักสูตรนั้นแล้วคุณจะสมัครอย่างไร

ตัวอย่างสร้าง Java Compiler ของคุณเองทำให้มันเร็วกว่าของเดิมเพิ่มบางสิ่งและขาย ตัวอย่าง: "HotSpot"

หรือคอมไพเลอร์ "Java / C # ทำงานในเครื่องปิ้งขนมปัง" และขายมัน ;-)

การเรียนการสอนแนวคิดที่เกี่ยวข้องใน Collegue / มหาวิทยาลัยเช่น Automatons การออกแบบคอมไพเลอร์การเปรียบเทียบภาษาโปรแกรมและอื่น ๆ

นอกจากนี้คุณยังสามารถสร้างการเริ่มต้นเล็ก ๆ เต็มเวลาหรืออิสระ / นอกเวลาในขณะที่มีงานโปรแกรมเมอร์มาตรฐานที่ชำระค่าใช้จ่าย (พยายามและล้มเหลว) : -s

มีหลาย บริษัท ที่อาจผลิตผลิตภัณฑ์ซอฟต์แวร์ที่ต้องการทักษะเฉพาะจริง ๆ

(ส่วนใหญ่การออกแบบภาษาการเขียนโปรแกรมและคอมไพเลอร์ที่ตรงกันสำหรับเครื่องเสมือน / กายภาพเฉพาะตัวแยกวิเคราะห์ XML ของตัวเอง ฯลฯ )

แต่ดูเหมือนว่าพวกเขาส่วนใหญ่ต้องการจ้างนักพัฒนาราคาถูกทั่วไปมากกว่าผู้พัฒนาที่มีความเชี่ยวชาญ ...


1

ปริญญาเอกใน CS โดยมุ่งเน้นไปที่ทฤษฎีภาษาโปรแกรมสามารถที่ดินงานนอกสถาบันการศึกษาของคุณ แต่ส่วนใหญ่ยังคงอยู่ในขอบเขตของการวิจัย Microsoft (ผ่าน MS Research หรือ Microsoft), Google, Amazon, Ericsson, HP, IBM Research, Oracle น่าจะเป็นนายจ้าง

หากคุณขยายโอกาสในการทำงานนอกเหนือจากการทำวิทยานิพนธ์ในอนาคต กลุ่มการจ้างงานจะพิจารณาคุณในเชิงลึกของการศึกษาด้วย

และนั่นเป็นเพียงในภาคการค้า ถ้าคุณดูที่ DoE และห้องทดลองหลายแห่ง (Laurence Livermole, Sandia ฯลฯ ) หรือกระทรวงหรือผู้รับเหมาทางทหารเช่น Raytheon, Dynamics ทั่วไป (นายจ้างของฉัน) หรือ Lockheed Martin มีตำแหน่งว่างสำหรับนักวิทยาศาสตร์และนักวิจัย NSA ต้องการจ้างคุณเช่นกัน

โอกาสที่ไม่ใช่ทางวิชาการสำหรับผู้ที่สำเร็จการศึกษาระดับปริญญาเอกด้านวิทยาศาสตร์นั้นมีน้อย (มากน้อยกว่า) ที่ต้องมีระดับ BS หรือ MS แต่พวกเขายังมีความอุดมสมบูรณ์ได้รับค่าตอบแทนและผลตอบแทนที่เหมาะสม

โชคดี.


-2

มีงานว่างมากมาย:

C # /. NET ที่ Microsoft
Java ที่ Oracle
Perl6 (ฉันจะไม่ได้รับค่าจ้างเท่าไหร่)
ActionScript ที่ Adobe

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.