ตัวอย่างรหัสและบทสัมภาษณ์? [ปิด]


23

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

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

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

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

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

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

ฉันสนใจที่จะรู้อย่างแท้จริงในกรณีที่ฉันอาจทำผิดพลาดใหญ่ซึ่งเพิ่งยังไม่ได้เผาฉัน

คำตอบ:


14

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

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

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


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

3
ปัญหาที่พบบ่อยและมีการวางแผนเช่นปัญหาของโครงการออยเลอร์โดยเฉพาะควรให้ผลลัพธ์ที่ดีกว่าและให้ความสำคัญกับผู้สมัครมากกว่าที่จะทำให้ผู้สมัครเกิดปัญหา มันเป็นเรื่องที่ดีสำหรับผู้สมัครเพราะมีจุดหยุดที่กำหนดไว้อย่างดี - ไม่มีใครรู้สึกกดดันที่จะใช้เวลาอย่างมากในการขัด UI หรือเพิ่ม "คุณสมบัติเพิ่มเติมอีกหนึ่งอย่าง" จะดีกว่าสำหรับคุณเพราะเปรียบเทียบผู้สมัครได้ง่ายกว่าเมื่อพวกเขาแก้ปัญหาคล้ายกัน มิฉะนั้นแล้วมันก็ยากที่จะไม่ได้รับอิทธิพลจากใครที่มีความคิดที่เจ๋งที่สุดหรือมีภาพที่ดีที่สุด
Justin Cave

ได้รับการมีตัวอย่างรหัสเป็นความคาดหวังที่สมเหตุสมผลมากขึ้นสำหรับนักพัฒนาเว็บฝั่งไคลเอ็นต์ แต่รูปแบบการสัมภาษณ์ที่ดีที่สุดที่ฉันเคยพบประกอบด้วยการนั่งลงและดูรหัสที่ฉันเขียนการแชร์ความคิดเกี่ยวกับสิ่งที่ฉันชอบ ฉันทำได้ดีกว่า ฯลฯ แล้วมองรหัสที่ผู้สัมภาษณ์เขียนและทำเช่นเดียวกัน ให้ความสำคัญกับทั้งสองฝ่ายมากกว่าการสัมภาษณ์แบบยิงทีม IMO แนวทางเชิงลบ - ผิด - ที่ยอมรับได้ของ Google คือเหตุผลที่ฉันไม่ต้องการทำงานให้พวกเขา มันเงอะงะ, ไม่งดงามและสิ้นเปลือง เช่นเดียวกับ JavaScript ของพวกเขา
Erik Reppen

6

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

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


4

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

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


2

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

การสัมภาษณ์นักพัฒนาทุกครั้งฉันเกี่ยวข้องกับการไปที่ไวท์บอร์ดเพื่อใช้การแก้ปัญหาอย่างง่าย อย่างไรก็ตามมีกฎ:

ผู้สมัครจะต้องพูดคุยผ่านการดำเนินการตามที่พวกเขากำลังทำ

  • ฉันสามารถวัดได้ว่าพวกเขาเข้าถึงปัญหาอย่างไร
  • ฉันเห็นว่าสื่อสารกันได้ดีแค่ไหน
  • ฉันสามารถวัดได้ว่าพวกเขาเร็วแค่ไหนกับเป้าหมายที่ชัดเจน

ฉันมีปัญหาสามประการที่การใช้งานคล้ายกันทั้งหมดและฉันแจ้งให้พวกเขารู้ว่าพวกเขาสามารถใช้ซ้ำหรือสร้างรหัสที่พวกเขาเขียน

  • ฉันสามารถดูว่าพวกเขาสามารถดึงกลับไปดูที่ภาพใหญ่ขึ้นได้ไหม
  • ฉันสามารถดูว่าพวกเขาใช้และ refactor หรือข้ามไปยัง generalizing
  • ฉันสามารถเข้าใจความคิดของพวกเขาได้ดีขึ้น

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


1

ตัวอย่างรหัสเป็นวิธีที่มีประสิทธิภาพมากในการกำจัดผู้สมัครออก - ฉันสามารถตัดสินตัวอย่างโค้ดได้ใน 5 - 10 นาที แต่หน้าจอโทรศัพท์ใช้เวลา 15 นาทีและต้องการกำหนดเวลา (และไม่มีประโยชน์อย่างมากในการกำจัดอะไร ด้านล่างของกองในประสบการณ์ของฉัน)

ฉันคิดว่าการคัดค้านหลักของโค้ดตัวอย่างนั้นมีสองเท่าและสามารถเอาชนะได้ง่าย:

  • การที่ต้องใช้ตัวอย่างโค้ดทำให้เกิดอุปสรรคสำหรับนักพัฒนาที่มีความสามารถ

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

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

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

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

  • ตัวอย่างนั้นปลอมง่าย

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

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

TL; DR - ตัวอย่างโค้ดเป็นเครื่องมือคัดกรองที่ยอดเยี่ยม แต่คุณควรคิดอย่างรอบคอบว่าคุณสามารถทำได้หรือไม่ เมื่อการคัดกรองที่ผ่านมาน้ำหนักสัมภาษณ์สูงกว่าตัวอย่าง

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