บริษัท เทคโนโลยียักษ์ใหญ่อย่าง Microsoft ส่วนใหญ่เน้นที่โครงสร้างข้อมูลเป็นหลัก ดูเหมือนว่าโครงสร้างข้อมูลเป็นสิ่งเดียวที่พวกเขาคาดหวังจากบัณฑิต
ไม่มีอีกมาก ตัวอย่างเช่นเรายังคาดหวังว่าคุณจะเรียนรู้อย่างรวดเร็วที่สามารถเรียนรู้กรอบใหม่ APIs หรือภาษาแม้กระทั่งการเขียนโปรแกรมภายในระยะเวลาสั้น ๆ นั่นคือแถบขั้นต่ำเปล่า คนที่ใช้เวลานานในการเรียนรู้กรอบใหม่ API หรือภาษาจะไม่เป็นนักพัฒนาที่ประสบความสำเร็จในทีมส่วนใหญ่ที่ Microsoft
และแน่นอนว่ายังมีอีกหลายแง่มุมที่เรามุ่งเน้นในการสัมภาษณ์นอกเหนือจากความรู้ดิบของโครงสร้างข้อมูล ความสามารถในการจัดการกับข้อกำหนดที่ไม่ชัดเจนเช่นหรือความสามารถในการจดจำรูปแบบการเข้ารหัสที่สร้างรหัสที่ไม่ปลอดภัยหรือสิ่งอื่น ๆ อีกนับสิบ แต่ความสามารถในการเข้าใจโครงสร้างข้อมูลนั้นใหญ่มากอย่างแน่นอน
มันเป็นโดยเฉพาะอย่างยิ่งกรณีที่มีการสัมภาษณ์ความรู้ลำเอียงไปทดสอบโครงสร้างข้อมูลสำหรับบัณฑิต CS ล่าสุด ผู้สำเร็จการศึกษาเมื่อเร็ว ๆ นี้ซึ่งส่วนใหญ่ไม่มีประสบการณ์ในโลกแห่งความเป็นจริงไม่คาดว่าจะดีในสิ่งเดียวกันกับที่คนที่มีประสบการณ์ในอุตสาหกรรมสิบห้าปีจะทำได้ดี
ฉันต้องยอมรับว่าฉันไม่แข็งแรงในโครงสร้างข้อมูล
เป็นเรื่องดีที่คุณรู้เกี่ยวกับตัวคุณ หากคุณไม่สามารถหรือไม่ต้องการเปลี่ยนแปลงเกี่ยวกับตัวคุณเองคำแนะนำของฉันคือคุณไม่ได้สมัครงานที่ต้องใช้สิ่งอำนวยความสะดวกพร้อมโครงสร้างข้อมูล
มีมุมมองทั่วไปที่โปรแกรมเมอร์ที่ดีจำเป็นต้องมีความรู้เกี่ยวกับโครงสร้างข้อมูลที่ดี
เป็นเรื่องธรรมดาที่โปรแกรมเมอร์ที่ดีคือโปรแกรมเมอร์ที่เก่งในการสร้างโปรแกรมประเภทต่าง ๆ ที่จำเป็นต้องสร้างขึ้น โปรแกรมเมอร์จำนวนมากทำงานกับงานที่ไม่ต้องการความรู้อย่างลึกซึ้งเกี่ยวกับโครงสร้างข้อมูล บางคนทำงานเกี่ยวกับงานที่ต้องมีความรู้อย่างลึกซึ้งเกี่ยวกับการออกแบบส่วนต่อประสานผู้ใช้ หรือการฟื้นฟูฐานข้อมูล หรืออะไรก็ตาม คนเหล่านั้นยังสามารถเป็น "โปรแกรมเมอร์ที่ดี" ในโดเมนของพวกเขา
ทำไมทั้งหมดนี้เน้นโครงสร้างข้อมูล?
ฉันถามคำถามสัมภาษณ์เกี่ยวกับโครงสร้างข้อมูลเพราะในทีมของฉันนักพัฒนาออกแบบออกแบบและจัดการโครงสร้างข้อมูลที่ซับซ้อนทุกวันทุกวัน เมื่อวานนี้เรามีการประชุมสี่ชั่วโมงซึ่งนักพัฒนาครึ่งโหลโต้แย้งข้อดีและข้อเสียของการเพิ่มฟิลด์บูลีนเดียวในโหนดต้นไม้โดยเฉพาะ อาจไม่มีทักษะในทีมของฉันสำคัญไปกว่าความสามารถในการทำความเข้าใจโครงสร้างข้อมูลในระดับลึก มันคงจะโง่ถ้าไม่ถามคำถามสัมภาษณ์เพราะนั่นคือสิ่งที่เราทำ
การไม่มีความรู้ในโครงสร้างข้อมูลส่งผลกระทบต่ออาชีพการเขียนโปรแกรมหรือไม่?
แน่นอนมันจะป้องกันไม่ให้คุณได้งานในทีมของฉัน แต่เหมือนที่ผมกล่าวก่อนการเขียนโปรแกรมเป็นอย่างมากฟิลด์ มีการเขียนโปรแกรมคอมพิวเตอร์มากมายที่ไม่ต้องการความรู้เกี่ยวกับโครงสร้างข้อมูล
ความรู้ในเรื่องนี้เป็นพื้นฐานที่เพียงพอจริงๆที่จะแยกแยะความแตกต่างระหว่างดีและไม่ดีโปรแกรมเมอร์?
ไม่ แต่เกือบจะเพียงพอแล้วที่จะตรวจสอบผู้พัฒนาที่ไม่น่าจะประสบความสำเร็จใน Microsoft เนื่องจากนั่นคือสิ่งที่ฉันสนใจเป็นหลักในการตรวจจับความรู้เกี่ยวกับโครงสร้างข้อมูลเป็นหนึ่งในปัจจัยที่ฉันทดสอบในการสัมภาษณ์