คำถามสัมภาษณ์เทคนิคโดยละเอียดสำหรับนักพัฒนาอาวุโสคืออะไร [ปิด]


10

ฉันเคยสัมภาษณ์การเลื่อนขั้นภายในเพื่อให้ได้ตำแหน่งโปรแกรมเมอร์ในระดับที่สูงขึ้นเช่น Senior plus และฉันถูกสัมภาษณ์โดยประมาณ 7 คนที่ใช้เทคโนโลยีที่แตกต่างกันและผู้ที่ใช้เทคโนโลยีเดียวกันกับฉัน (.Net) มักจะถามคำถามที่มีรายละเอียดมากเกี่ยวกับเทคนิคซึ่งสามารถพบได้ง่ายผ่าน Google เช่น JIT, GC ทำงานอย่างไร ความแตกต่างระหว่างรายการและอาร์เรย์คลาสนามธรรมและอินเทอร์เฟซผู้ร่วมประชุมและเหตุการณ์แม้ชื่อคลาสเมื่อคุณประมวลผลอัปโหลดไฟล์ ฯลฯ และฉันมีคำถามเดียวที่ถามเกี่ยวกับแนวคิดการออกแบบของฉันในโครงการของฉันและเพียงแค่ การอภิปรายอย่างง่าย แต่สำหรับตัวเลือกการออกแบบอื่น ๆ ของฉันพวกเขาดูเหมือนจะไม่สนใจ

ฉันยังไม่ได้รับผลลัพธ์และจะประมาณปลายสัปดาห์นี้ แต่นี่เป็นข้อกังวลของฉัน:

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

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

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

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

หรือนี่เป็นเพียงปัญหาของฉันเองที่ฉันควรพยายามจดจำทุกอย่างใน MSDN ในใจให้ดีขึ้นเพื่อที่ฉันจะสามารถทำงานได้แม้ไม่มีมันและอินเทอร์เน็ต

แก้ไข

เพื่ออธิบายสถานการณ์ของฉันให้ดีขึ้นเกี่ยวกับความกังวลของ Frank เกี่ยวกับงานที่ทำ ขออภัยมันไม่ดีของฉันไม่ได้ชี้แจงพื้นหลังเหล่านั้น

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


8
โดยทั่วไปแล้วความเห็นของฉันคือการถามคำถามว่าจำนวนเรื่องเล็กน้อยหรือเรื่องย่อทางเทคนิคเกี่ยวกับบทบาทระดับสูงเป็นธงสีแดงเกี่ยวกับกระบวนการสัมภาษณ์และอาจเป็นไปได้ว่ากลุ่ม ฉันจะบอกว่านี่เป็นจริงทวีคูณถ้าคุณกำลังมองหาการส่งเสริมภายใน ไม่ใช่ทุก บริษัท ที่เป็นเช่นนี้ - ฉันจะหาที่ไม่ได้
Erik Dietrich

ขอบคุณสำหรับความคิดเห็นอันมีค่าของคุณ Erik ใช่ฉันคิดว่าถึงเวลาที่จะต้องพิจารณาอย่างรอบคอบเกี่ยวกับอนาคต
Simon Wang

คำตอบ:


15

ในฐานะวิศวกรอาวุโสและผู้ว่าจ้างวิศวกรดูเหมือนว่ากระบวนการสัมภาษณ์จะไม่ได้รับข้อมูลเชิงแนวคิดทั้งหมด

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

หวังว่ามันจะออกมาดี


ขออภัยที่ตอบช้าฉันดีใจที่ดูเหมือนว่าฉันไม่ใช่คนที่มีปัญหา
Simon Wang

10

ไม่แน่ใจว่างานของอาวุโส + ในกรณีของคุณจะเกี่ยวข้องกับอะไร พึงระลึกไว้เสมอว่าการรู้ว่างานของคุณเป็นอย่างไรสำคัญกว่าตำแหน่งงานของคุณ ในขณะที่มีอาวุโสอยู่หน้าตำแหน่งงานของคุณอาจส่งผลกระทบต่อผลลัพธ์ทางการเงินของคุณ แต่ก็ไม่ได้บอกอะไรเกี่ยวกับสิ่งที่คุณทำจริง ๆ ในการทำงาน อย่างไรก็ตามมี "ผู้พัฒนา" ระดับอาวุโสสองประเภทที่แตกต่างกัน

สถาปนิกระบบ

หากคุณถูกสัมภาษณ์ในตำแหน่งดังกล่าวแน่นอนว่ามีบางอย่างผิดปกติ ฉันเห็นด้วยกับ gahoo ว่าการสัมภาษณ์ดังกล่าวควรมุ่งเน้นไปที่การคิดภาพรวมของผู้สมัครซึ่งดูเหมือนจะหายไปในตัวคุณ

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

ผู้เชี่ยวชาญทางเทคนิค

ในกรณีนี้คุณอาจไม่สามารถมีอิทธิพลต่อสถาปัตยกรรมระบบโดยรวมและทิศทางของ บริษัท ได้มาก แต่คุณจะมุ่งเน้นไปที่ระดับการออกแบบ โปรดทราบว่าคำถามทั้งหมดที่คุณให้ไว้เป็นตัวอย่างที่ลงตัวในหมวดหมู่นี้ จากนักพัฒนาอาวุโสที่รับผิดชอบการออกแบบ SW ฉันคาดหวังว่าเขา / เธอจะรู้เรื่องต่าง ๆ เช่น JIT, GC, โครงสร้างข้อมูลและอื่น ๆ - โดยไม่จำเป็นต้องค้นหาอะไรนอกจากรายละเอียดที่ซับซ้อนที่สุด หากคุณควรจะออกแบบซอฟต์แวร์ แต่ก็ไม่ทราบถึงความแตกต่างระหว่างอาร์เรย์และรายการที่คุณอยู่ผิดตำแหน่ง

จากการอ่านคำถามของคุณฉันสงสัยว่าตำแหน่งงานของคุณ (ปัจจุบันและที่เสนอ) มุ่งเน้นไปที่การออกแบบซอฟต์แวร์ ในกรณีนี้คุณอาจต้องการคิดใหม่ในสิ่งที่คุณควรรู้ / จำและสิ่งที่ไม่จริง เนื่องจากคุณทำงานกับสิ่งเหล่านี้ในแต่ละวันไม่จำเป็นต้องมองหาอะไรในการตอบคำถามเบื้องต้นเช่นนั้น


ในบันทึกด้าน: อดีตศาสตราจารย์ของฉันมีนิสัยที่น่าสนใจในการถามคำถามเกี่ยวกับวิชาพื้นฐานในการสอบปากเปล่าในหลักสูตรขั้นสูง ในขณะที่วิชาเหล่านี้ไม่ได้ครอบคลุมอย่างชัดเจนในหลักสูตรขั้นสูงนักเรียนควรจะรู้ว่าพวกเขาจากการศึกษาระดับประถมศึกษาของพวกเขา ในการสัมภาษณ์ (ไม่ว่าจะเรียงลำดับใด ๆ ) ฉันก็ปฏิบัติตามพฤติกรรมนี้เช่นกันเพราะในช่วงหลายปีที่ผ่านมาฉันได้เห็นถึงการที่นักเรียน / ผู้สมัครรับบางสิ่งบางอย่าง "ขั้นสูง" มีพื้นฐานที่รุนแรง ด้วยเหตุผลดังกล่าวฉันจึงไม่มีความมั่นใจเกี่ยวกับการขอผู้สมัครรับตำแหน่งอาวุโสว่ารูปแบบการฟังคืออะไรหรือข้อดี / ข้อเสียคือการทำให้ผู้ฟังอยู่ในรายการ vs vs array


ก่อนอื่นขอขอบคุณสำหรับคำตอบของคุณ จริง ๆ แล้วจะไม่มีการเปลี่ยนแปลงงานของงานโดยเฉพาะฉันคิดว่าสิ่งที่ฉันได้ทำไปแล้วในฐานะผู้อาวุโสเช่นการตรวจสอบรหัสครูที่ปรึกษาทบทวนเอกสารของ BA และให้ความเห็นด้านเทคนิคการออกแบบการทำโครงการใหม่ให้สำเร็จ พักอยู่โดยไม่มีผู้อาวุโสและฉันขอให้หนึ่งคนเพื่อสะท้อนสลิปเงินเดือนและนำไปสู่การสัมภาษณ์ดังกล่าว และเป้าหมายของฉันคือการทำงานอย่างแน่นอนเพื่อที่จะเป็น System Architect เช่นเดียวกับ บริษัท Saas ที่พวกเขาต้องการ System Architect แต่ไม่ใช่ผู้เชี่ยวชาญด้านเทคนิค
Simon Wang

3

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

  • JIT คืออะไร: นี่คือความกังวลทางเทคโนโลยีขั้นพื้นฐาน โปรแกรมเมอร์อาวุโสควรรู้อย่างแน่นอนว่านี่หมายถึงอะไรในระดับสูงอย่างน้อย ตัวอย่างเช่นสิ่งนี้มีผลต่อประสิทธิภาพของ VM และเวลาที่ต่างกันดังนั้นจึงควรพิจารณาอย่างน้อยเมื่อประเมินเทคโนโลยีใหม่
  • GC ทำงานอย่างไร: คล้ายกับด้านบน อัลกอริธึมสำหรับ GC อยู่ที่แกนกลางค่อนข้างเรียบง่ายและอย่างน้อยก็ควรทำความคุ้นเคยกับ generational GC เมื่อเทียบกับการทำเครื่องหมาย & การกวาดเปรียบเทียบกับการนับการอ้างอิงและการแลกเปลี่ยนที่หลากหลาย
  • ความแตกต่างระหว่าง List and Array: นี่เป็นคำถามพื้นฐานที่ฉันคาดหวังให้โปรแกรมเมอร์รุ่นเยาว์รู้
  • คลาสนามธรรมและอินเตอร์เฟส: เหมือนข้างบน ฉันไม่เข้าใจว่าจะสร้างระบบที่ซับซ้อนได้อย่างไรโดยไม่ต้องรู้จักอินเตอร์เฟสอย่างน้อย
  • ผู้ได้รับมอบหมายและเหตุการณ์: อีกครั้งเพื่อออกแบบระบบที่แข็งแกร่งและยืดหยุ่นการมอบหมายเหตุการณ์เป็นหนึ่งในรูปแบบพื้นฐาน

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


+1 - คำถามที่ OP มีปัญหาคือมีคำถาม "undetails" มาก พวกเขาอยู่ในระดับค่อนข้างสูงและอาจจำเป็นต้องรู้เพื่อออกแบบระบบอย่างถูกต้อง แต่นั่นจะเป็นเพียงในกรณีที่ความทนทานการบำรุงรักษาและการตอบสนองเป็นปัญหาสำหรับแอปพลิเคชันที่ออกแบบและสร้างขึ้น
Dunk

ดังนั้นตามคำถามเหล่านั้นที่ได้รับคำตอบแล้วคุณจะระบุผู้สมัครได้อย่างไรว่าเป็นผู้อาวุโสหรือระดับกลางหรือแม้กระทั่งเป็นผู้อยู่ใต้บังคับบัญชาเพราะเขา / เธออาจจะขาดความสามารถ แต่เก่งเรื่องความจำและอ่านหนังสือที่ชื่อว่า. ระบุความสามารถในการออกแบบการแก้ปัญหาความสามารถจากคำถามเหล่านั้น
Simon Wang

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

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

ฉันขอโทษถ้าฉันเข้าใจผิดคิดว่าคำถามของคุณ มีผู้คนจำนวนมากที่ถามคำถามคล้าย ๆ กันที่นี่เพื่อรับความช่วยเหลือหากพวกเขาสัมภาษณ์ไม่ดี หากประเด็นของคุณคือคุณรู้วิธีตอบคำถามเหล่านั้น แต่คุณอยากถามคำถามที่ซับซ้อนมากขึ้นเกี่ยวกับการออกแบบซอฟต์แวร์ฉันสามารถพูดได้ว่าคำถามเหล่านี้ไม่ได้แย่และจำได้เหมือนที่คนอื่นถามในการสัมภาษณ์ เป็นไปได้ที่จะทำได้ดีกว่า แต่ก็สมเหตุสมผล
Andrea
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.