ขอตัวอย่างโค้ดของ บริษัท ในระหว่างการสัมภาษณ์ [ปิด]


69

การขอคนหางานให้แสดงรหัสเป็นเรื่องธรรมดาสำหรับ บริษัท ซอฟต์แวร์ อย่างไรก็ตามจะเป็นที่ยอมรับหรือไม่สำหรับผู้สมัครที่จะขอให้ผู้สัมภาษณ์แสดงรหัสชิ้นเล็ก ๆ ที่เขาคิดว่าเขียนได้ดี?


14
ฉันอยากจะถามเกี่ยวกับมาตรฐานการเข้ารหัสรีวิวรหัส ฯลฯ
user16764

5
บริษัท ผ่านการทดสอบแบบ "Joel" หรือไม่: joelonsoftware.com/articles/fog0000000043.html
Martin York เมื่อ

2
@LokiAstari การทดสอบ joel ไม่เกี่ยวข้องโดยตรงกับวัฒนธรรมการเข้ารหัส (เฉพาะสภาพแวดล้อมในการทำงาน)
Simon Bergot

8
@ user16764 ที่เหมือนกับถามคำถามเชิงทฤษฎีกับผู้สมัคร: มันเป็นขั้นตอนแรกที่ดี แต่มันไม่ได้แสดงให้คุณเห็นว่าเขาใช้ความรู้นี้อย่างไร
Simon Bergot

2

คำตอบ:


69

ฉันมักจะขอดูรหัสด้วยเหตุผลหลายประการ:

  • ฉันอยากรู้ว่าฉันกำลังทำอะไร แน่นอนว่าไม่มี บริษัท ซอฟต์แวร์ที่สมบูรณ์แบบและฉันไม่คาดหวังให้ทุกคนประหลาดใจในความสง่างามตลอดเวลา (เพราะฉันไม่ทำ) แต่ถ้าฉันขอรหัสที่ดีที่สุดของ บริษัท และสิ่งที่พวกเขาสามารถแสดงให้ฉันเห็นคือ ปาเก็ตตี้ชนิดย่อยที่ฉันรู้ว่าฉันอยู่ในช่วงเวลาที่น่าสังเวชแก้ปัญหาก้อนขนและต่อสู้กับหนี้ทางเทคนิคเพื่อทำทุกอย่างให้เสร็จ การดูรหัสที่ดีที่สุด บริษัท สามารถแสดงให้เห็นขีด จำกัด สูงสุดของประเภทคุณภาพที่เป็นไปได้ แม้ว่ามันไม่น่าเป็นไปได้ที่รหัสทั้งหมดของพวกเขาจะเป็นเช่นนั้น แต่คุณก็ยังรู้ว่ามันเป็นสิ่งที่พวกเขาต้องการ
  • การดูตัวอย่างโค้ดบอกฉันมากมายเกี่ยวกับวัฒนธรรมการเข้ารหัสของ บริษัท พวกเขาใช้ความคิดเห็นเอกสารหรือไม่ พวกเขาเอนไปทางสไตล์เชิงวัตถุหรือไม่พวกเขามีแนวโน้มการเขียนโปรแกรมเชิงหน้าที่หรือไม่? พวกเขาอนุรักษ์หรือก้าวหน้า? พวกเขาให้ความสำคัญกับการตั้งชื่อที่สอดคล้องกันการจัดรูปแบบที่เหมาะสมและการเยื้องและรหัสที่เรียบร้อยโดยทั่วไป? รหัสง่ายต่อการติดตามหรือไม่ พวกเขาทำโครงสร้างโครงการอย่างไร พวกเขาเข้าใกล้สิ่งสำคัญอย่างไร - การทดสอบอัตโนมัติการจัดการข้อผิดพลาดและอื่น ๆ ? รูปแบบการเข้ารหัสเป็นอย่างไร
  • การดูรหัสที่มีอยู่จะช่วยให้คุณตัดสินว่าคุณสามารถใช้ชีวิตตามมาตรฐานของพวกเขาหรือไม่
  • ความจริงที่ว่า บริษัท ยินดีที่จะแบ่งปันตัวอย่างโค้ดเพียงอย่างเดียวนั้นเป็นสัญญาณที่ดีในหลักการ หมายความว่าพวกเขาเสนอให้ฉัน, ผู้สมัคร, ความน่าเชื่อถือ , เนื่องจาก codebase ของพวกเขาเป็นหนึ่งในสินทรัพย์ที่มีค่าที่สุดของพวกเขา มันก็หมายความว่าพวกเขาจะไม่ละอายใจกับรหัสของพวกเขาพวกเขามั่นใจว่าการแสดงรหัสนั้นจะช่วยให้ฉันสนใจที่จะทำงานกับพวกเขา
  • หากพวกเขาจะไม่แสดงตัวอย่างรหัสใด ๆ ให้คุณนั่นไม่จำเป็นต้องเป็นรูปธงสีแดง แต่ก็ควรที่จะถามว่าทำไมพวกเขาถึงไม่แบ่งปัน (น่าจะเป็นเพราะพวกเขาไม่มีเหตุผลทางกฎหมาย) รวมทั้งอธิบายว่าทำไมคุณถึงอยากเห็น ฉันไม่คิดว่าการแสดงความสนใจในรหัสของพวกเขาจะถูกมองว่าเป็นสัญญาณเชิงลบตราบใดที่คุณถามอย่างสุภาพและเชิงบวก

แล้วมีผลข้างเคียงเพิ่มเติม:

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


1
หากนายจ้างที่มีศักยภาพแสดงรหัสที่ไม่ดีอย่างชัดเจนจำไว้ว่ามันอาจเป็นโอกาสที่จะนำพวกเขาไปสู่การปรับปรุงรหัสและกระบวนการของพวกเขา อย่างที่พูดไปแล้วว่า "ฉันทำได้แค่ทำให้ผิดพลาด แต่ฉันสามารถแก้ไขได้!" นอกจากนี้จำรหัสการแสดงหรือโดยผู้สมัครอาจเป็นเรื่องที่เข้มงวดมากขึ้นและตรวจสอบกว่ารหัสอื่น ๆ
akton

@akton มันเป็นทัศนคติของฉันที่มีต่อโค้ดที่ไม่ดี อย่างไรก็ตามมันไม่มีประโยชน์เมื่อคุณอยู่คนเดียวในการค้นหา "แก้ไขรหัสยุ่ง" การขอดูรหัสที่ดีอาจช่วยให้รู้สึกว่าทีมในอนาคตของคุณมีคุณค่าเช่น SOLID
Simon Bergot

1
"ฉันมักจะขอให้ดูรหัส" คุณจะแสดงรหัสหลังจากได้อย่างไร คุณกำลังขอให้พวกเขาเตรียมอะไรไว้ล่วงหน้าหรือส่งบางอย่างให้คุณในภายหลัง? ไม่ว่าคุณจะมองไปทางไหนดูเหมือนว่าไม่จริง
Burhan Ali

1
@BurhanAli: ฉันแค่ถาม หลายคนปฏิเสธที่จะแสดงให้ฉันเห็นใด ๆ และโดยปกติแล้วพวกเขาให้เหตุผลที่ดีแก่ฉันซึ่งก็ดี ผู้ที่เห็นด้วยกับฉันให้การท่องเที่ยวแบบมีผู้ดูแล ฉันสงสัยว่าจะมีใครส่งจดหมายถึงแหล่งข้อมูลที่สมบูรณ์เพื่อส่งให้ฉัน แต่การคลิกไปรอบ ๆ โครงการใน IDE ในขณะที่ฉันดูบ่อยครั้งเป็นที่ยอมรับ
tdammers

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

14

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

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

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


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

5
นอกจากนี้แนวคิดของผู้สัมภาษณ์เกี่ยวกับรหัสที่ดีอาจไม่ใช่ความคิดของคุณเกี่ยวกับรหัสที่ดี ฉันคิดว่ามันจะมีประโยชน์ในการค้นหาว่าเร็วกว่านี้ในภายหลัง
Eric King

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

12

มันจะเป็นที่ยอมรับสำหรับผู้สมัครที่จะขอให้ผู้สัมภาษณ์แสดงให้เขาเห็นชิ้นส่วนของรหัสที่เขาคิดว่าเขียนได้ดีหรือไม่?

คุณสามารถถามสิ่งที่คุณต้องการ แต่:

  • คุณอาจจะไม่ได้รับมัน

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

  • คุณจะดูเหมือนกางเกงที่ฉลาด นั่นไม่ใช่ความช่วยเหลือที่ยิ่งใหญ่หากคุณตัดสินใจว่าคุณต้องการทำงานที่นั่นในที่สุด

  • มันเสียเวลาสัมภาษณ์อันมีค่า

  • มีวิธีที่ดีกว่าในการค้นหาสิ่งที่คุณต้องการรู้ ถามคำถามเช่น:

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

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

2
@ Antonio2011a น่าจะดีถ้าคุณถามถูก - บางที "คุณใช้ตัวชี้วัดคุณภาพของรหัสอะไร? เพียงทำให้ชัดเจนว่าคุณต้องการเรียนรู้เพิ่มเติมเกี่ยวกับวิธีที่พวกเขาทำสิ่งต่าง ๆ คุณกำลังเรียนรู้เกี่ยวกับพวกเขาไม่จัดการทดสอบ สามารถทำงานได้แม้จะขอรหัส: "ฉันเห็นรหัสของคุณเป็นอย่างไรบ้าง" มากกว่า "ฉันต้องการตัวอย่างสิ่งที่คุณพิจารณาว่าเป็นรหัสที่ดี"
คาเลบ

3

มันขึ้นอยู่กับ ฉันมักจะชอบที่จะรู้ว่าฉันจะไปทำงานที่ไหน

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

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


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

2

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

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

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

ฉันเห็นว่าไม่มีอะไรจะเสียด้วยการถามอย่างสุภาพและสามารถอธิบายได้ว่าทำไมคุณถึงอยากเห็น


"ความงามของชีวิตคือถ้ามันช่วยเพิ่มโอกาสของคุณนั่นคือสถานที่ที่คุณอยากทำงาน" +1
Spidey

2

ฉันได้ถามคำถามนี้ในการสัมภาษณ์ทั้งสองครั้งซึ่งพวกเขาอ้างว่าพวกเขามีรุ่นพี่ที่ย้ายไปยัง asp.net mvc3 หรือ 4 หรือเมื่อพวกเขาบอกว่าพวกเขาต้องการรหัสที่แสดงความคิดเห็นอย่างหนัก ฉันปฏิเสธทั้งสองครั้งเนื่องจากขาดความรู้เกี่ยวกับมาตรฐานรหัสจริง มาตรฐานเดียวที่ฉันพบคือถ้ามันทำงานได้คัดลอกและวางและมันจะทำงาน ฉันจะไม่ถามคำถามนี้ถ้าฉันกำลังทำโครงการใหม่หรือต้องเขียนรหัสเป็นอิสระจากคนอื่น ๆ ในทีม ฉันจะเห็นรหัสแน่นอนถ้าฉันถูกจ้างให้แก้ไขซอฟต์แวร์หรือฟังก์ชั่นที่มีอยู่และฉันจะไม่พูดว่าใช่เว้นแต่ฉันจะรู้คำตอบ สมมติว่าคุณไม่ถามและพวกเขาบอกว่าคุณสามารถแก้ไข datepicker เพื่อเริ่มต้นจากวันที่วันนี้ เมื่อคุณดูที่รหัสดั้งเดิมคุณจะไม่เห็น jQuery หรือ jquery ui แต่เป็นตัวใช้เลือกวันที่ที่กำหนดเองซึ่งมีวันที่ทั้งหมดที่เก็บไว้ในไฟล์ xml และทุกคืนงาน cron จะทำงานเพื่ออัปเดตเดือนในอนาคต ที่จะเริ่มปวดหัวเป็นรหัสเพื่อให้บรรลุนี้น้อยกว่าคำในตัวอย่างนี้ หากคุณกำลังจะไปทำงานกับรหัสของพวกเขาขอให้ดู การไม่ถามเป็นเหมือนการอ้างถึงงานที่เชื่อว่าลูกค้าพูดว่าเล็ก เขาอาจมีที่ดิน 20 เอเคอร์และการทำสวนบนเนื้อที่ 1 เอเคอร์ของเขานั้นเล็กสำหรับเขา แต่การ์ดเนอร์ไม่สามารถเรียกเก็บเงิน 50 quid เพียงเพราะงานเล็ก ๆ ของเขาเริ่มต้นที่ 50


1

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

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

ฉันจะไม่ขอตัวอย่างเพียงเพราะพวกเขาจะแสดงรหัสที่ดีที่สุดที่พวกเขามีให้คุณ นี่ไม่ใช่รหัสที่คุณใช้งาน มันอาจจะอยู่ในขวดโหลในห้องล็อค คุณจะทำงานกับรหัสยุ่งที่หลายคนต้องยุ่งกับ


0

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

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