วิธีที่ดีที่สุดในการมองเห็นโปรแกรมเมอร์ที่ยอดเยี่ยมในการสัมภาษณ์งานคืออะไร?


82

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

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

มันอาจจะเป็นสิ่งที่ทำให้เขามีโปรแกรมรถบักกี้ที่ค่อนข้างซับซ้อนและดูว่าเขาสามารถเร่งความเร็วและค้นหาปัญหาทั้งหมดได้หรือไม่?


คำถามสันนิษฐานว่าสามารถทำได้อย่างน่าเชื่อถือ
แอนโธนี


ไม่จำเป็น. คำตอบที่ถูกต้องจะเป็น 'ไม่มีทางเลย'
Claudiu

คำตอบ:


65

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

หน่วยสืบราชการลับทั่วไป (ของเล่นพัฒนาสมอง / ปริศนาตรรกะ)

ความรู้ด้านวิทยาการคอมพิวเตอร์

แบบฝึกหัดการเขียนโปรแกรม

  • GCD , Factorial , Fibonacci , หอคอยแห่งฮานอย
  • สตริงและการกลับรายการ
  • ตรวจสอบว่ารายการที่เชื่อมโยงโดยลำพังมีการวนซ้ำ (คุณสามารถทำได้ด้วยตัวชี้สองตัวเท่านั้นหรือไม่)
  • ค้นหาข้อผิดพลาด

ความรู้เกี่ยวกับเทคนิคการเขียนโปรแกรมเชิงวัตถุและรูปแบบการออกแบบทั่วไป

การวิเคราะห์อัลกอริทึม ( ความซับซ้อนของรันไทม์O (n)และความต้องการพื้นที่เก็บข้อมูล)

การใช้เครื่องมือและวิธีการ

ความรู้เกี่ยวกับช่องโหว่ความปลอดภัยทั่วไปและการโจมตี

คณิตศาสตร์พื้นฐาน

  • ระบบตัวเลข (แปลงจากฐานหนึ่งไปยังอีก)
  • ทฤษฎีความน่าจะเป็น
  • ระยะทางระหว่างจุดสองจุดบนระนาบคาร์ทีเซียน (ทฤษฎีบทพีทาโกรัส)
  • สแควร์รูท (นกกระสาของซานเดรียประมาณต่อเนื่อง)

การอ่านรหัส

  • การเข้ารหัสคีย์สาธารณะ
  • การเข้ารหัสคีย์สมมาตร
  • ฟังก์ชันแฮช
  • โปรโตคอลการเข้ารหัสลับ (การแบ่งปันความลับการพิสูจน์ความรู้แบบศูนย์)

คณิตศาสตร์ไม่ต่อเนื่อง

  • ตรรกะ
  • ทฤษฎีเซต
  • ทฤษฎีกราฟ
  • ทฤษฎีสารสนเทศ
  • combinatorics
  • พิสูจน์ (เช่นการมีอยู่ของจำนวนอตรรกยะจำนวนเฉพาะอนันต์)

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


10
ว้านั่นต้องเป็นการสัมภาษณ์ที่ยาวนาน
Rick Minerich

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

52
ในการสัมภาษณ์จิ๊กซอว์ดูดเพราะผู้ให้สัมภาษณ์รู้สึกประหม่าไม่ได้คิดอย่างถี่ถ้วนเป็นต้นนอกจากนี้ยังมีปริศนาอีกมากมายที่เป็นอาฮ่า! พิมพ์สิ่งที่ไม่ได้บอกคุณเกี่ยวกับผู้สมัคร

11
ฉันพบปัญหาทางคณิตศาสตร์ของความยากลำบากสูง หลังจากเรียนจบสาขาวิทยาการคอมพิวเตอร์เป็นเวลา 10 ปีคุณจะจำวิธีการพิสูจน์ตัวเลขที่ไม่มีเหตุผลได้อย่างไร

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

28

อาคำถามนิรันดร์

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

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

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

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

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

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

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

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

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


การทดสอบทางจิตวิทยา?

5
@ Ink-Jet: ไม่การทดสอบจิตถูกต้อง - ผู้สมัครจะถูกขอให้เขียนรหัสซึ่งจะถูกควบคุมโดยชายผู้มีความรุนแรงที่ยังรู้ที่อยู่บ้านของเขา / เธอ

นั่นคือสิ่งที่ฉันอ่านมันเป็นครั้งแรกที่จะซื่อสัตย์

@ Grundlefleck - ใช่นั่นเป็นเรื่องที่ถูกต้อง :)
Domchi

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

24

คำตอบนี้อยู่นอกกรอบเล็กน้อย แต่ฉันคิดว่ามันเป็นประเด็นที่มีค่า

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

ดังนั้น: วิธีที่ดีที่สุดที่จะบอกโปรแกรมเมอร์ที่ยอดเยี่ยมในการสัมภาษณ์งานคือการที่เขาไม่ได้มี


2
จริงอยู่ ... เป็นจุดที่ดี :)
Arnis Lapsa

5
ดังนั้น .... มันคือ "คุณรู้จักใคร" มากกว่า "คุณทำอะไร" โปรแกรมเมอร์ที่น่ากลัวอย่างแท้จริงยังได้งานของพวกเขาผ่านเพื่อนและครอบครัว โอ้ฉันขอโทษ "เครือข่ายผู้ร่วมงาน"
ฟิลิป

17

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


11

อาจเป็นโปรแกรมเมอร์ที่ "ยอดเยี่ยม" ไม่ได้มาสัมภาษณ์คุณ คุณอาจต้องขโมยเขาจากคนอื่น


Doh! คำตอบนี้ดูเหมือนจะเป็นที่นิยม เช่นเดียวกับฉันต้องเริ่มออกไปข้างนอกและสมัครงาน ...
interstar

9

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

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

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

หากพวกเขาไม่มีรายการหนังสือเล่มล่าสุดเลยพวกเขาอาจเป็นโปรแกรมเมอร์ในประสบการณ์ของฉัน

ไชโย

-R


8
รายการหนังสือเล่มล่าสุดของฉันมักเป็นนิยาย การอ่านทางเทคนิคล่าสุดของฉันเกือบทั้งหมดออนไลน์เพราะนั่นเป็นข้อมูลล่าสุด

1
ยังดีกว่าถามพวกเขาว่าพวกเขาเขียนหนังสืออะไรในเดือนนี้ :)

7

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

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


7

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

สารบัญ:

  • บทนำ
  • บทที่ 1: "การกดปุ่มบันทึกสูง"
  • บทที่ 2: "การหาผู้พัฒนาที่ยอดเยี่ยม"
  • บทที่ 3: "คู่มือภาคสนามสำหรับนักพัฒนา"
  • บทที่ 4: "การเรียงลำดับเรซูเม่"
  • บทที่ 5: "หน้าจอโทรศัพท์"
  • บทที่ 6: "คู่มือการรบแบบกองโจรเพื่อสัมภาษณ์"
  • บทที่ 7: "การแก้ไขทีมที่ไม่ดี"
  • ภาคผนวก: "การทดสอบ Joel"

บทความโดย Joel "คู่มือการรบแบบกองโจรเพื่อสัมภาษณ์ (รุ่น 3)"ก็มีประโยชน์เช่นกัน

และบทความ"เสร็จแล้วรับสิ่งที่ชาญฉลาด"โดย Steve Yegge ในหัวข้อ


4

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

หากพวกเขาไม่สามารถตอบคำถามง่าย ๆ แรก ๆ เช่น "write a for loop" หรือบางสิ่งบางอย่างง่าย ๆ อย่างโง่เขลาคุณก็รู้ว่าบุคคลนี้ไม่สามารถเขียนโค้ดได้


4

ให้พวกเขาเขียนโค้ดบนไวท์บอร์ด วิธีเดียวที่คุณจะสามารถบอกได้ว่าพวกเขารู้วิธีเขียนโค้ดหรือไม่


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

3
@ Kristopher: หากโปรแกรมเมอร์สามารถเขียนโค้ดที่ดีบนคอมพิวเตอร์อะไรที่ทำให้คุณคิดว่าพวกเขาจะสามารถเขียนมันบนไวท์บอร์ดได้? สิ่งเหล่านี้เป็นสภาพแวดล้อมที่แตกต่างกันมาก
David Thornley

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

3

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

หากต้องการเขียนโค้ดความท้าทายให้ใช้ IM กับสิ่งต่าง ๆ เช่น codepad.com และปล่อยให้พวกเขาทำจากความสะดวกสบายในบ้านของตัวเอง คุณเขียนโค้ดจำนวนมากบนไวท์บอร์ดต่อหน้าหัวหน้าของคุณด้วยกำหนดเวลา 30 นาทีและโบนัสของคุณในบรรทัดหรือไม่? ฉันไม่.

ดังนั้นการสัมภาษณ์ไม่มีจุดหมายหรือไม่ ไม่ แต่ควรเน้นที่พวกเขาอธิบายสิ่งที่พวกเขาทำและสิ่งที่พวกเขาสนับสนุน

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


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

2

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

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

แต่ฉันยอมรับถ้าเขาไม่สามารถเขียนลูปง่าย ๆ นับ 1 ถึง 10 คุณมีปัญหา


1

ก่อนอื่นมีวิธีหนึ่งที่คุณจะได้รับแนวคิดก่อนที่การสัมภาษณ์จะเริ่ม:

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

เป็นหลักพวกเขามีความหลงใหลในการเขียนโปรแกรมหรือไม่? นั่นเป็นคำถามที่แท้จริง


1

การมีโปรแกรมเมอร์ดีอยู่ในการสัมภาษณ์ดีที่สุดในความคิดของฉัน

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

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


1

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

ความหลงใหลไม่ได้รับประกันความเป็นเลิศ ฉันหมายถึงฉันใช้เวลาเกือบตลอดชีวิตในการเขียนโปรแกรมอ่านเกี่ยวกับการเขียนโปรแกรมการเรียนรู้ภาษาที่บ้าเช่น Erlang หรือ Clojure และฉันไม่ได้รับค่าตอบแทนใด ๆ เลย แต่ฉันดูดที่การเขียนโปรแกรม

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


1

http://www.inter-sections.net/2007/11/13/how-to-recognise-a-good-programmer/

จากบทความ:


เกณฑ์ในกระสุน

ดังนั้นโดยสรุปนี่คือตัวบ่งชี้และตัวนับจำนวนหนึ่งที่จะช่วยให้คุณรู้จักโปรแกรมเมอร์ดี

ตัวชี้วัดเชิงบวก :

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

ตัวชี้วัดเชิงลบ :

  • การเขียนโปรแกรมเป็นงานประจำวัน

  • ไม่ต้องการที่จะ "พูดคุยร้านค้า" แม้ว่าจะได้รับการสนับสนุน

  • เรียนรู้เทคโนโลยีใหม่ในหลักสูตรที่ บริษัท ให้การสนับสนุน

  • ยินดีที่จะทำงานกับเทคโนโลยีที่คุณเลือกไว้“ เทคโนโลยีทั้งหมดดี”

  • ดูเหมือนจะไม่ฉลาดเกินไป

  • เริ่มเขียนโปรแกรมที่มหาวิทยาลัย

  • ประสบการณ์การเขียนโปรแกรมทั้งหมดอยู่ใน CV

  • มุ่งเน้นไปที่สแต็คเทคโนโลยีหนึ่งหรือสองหลัก (เช่นทุกอย่างที่เกี่ยวข้องกับการพัฒนาแอปพลิเคชัน Java) โดยไม่มีประสบการณ์นอกเหนือจากนั้น


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

0

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

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


ฉันประหลาดใจที่คุณไม่ได้พบกับผู้ประกอบการโมดูโล ฉันได้รับการแนะนำในภาษาต่างๆที่ฉันได้เรียนรู้ตลอดปี

2
ถ้าคุณจบการศึกษาด้าน CS ในวิทยาลัยผู้ดำเนินการโมดูโล่จะเขียนโปรแกรม 101

สิ่งที่น่าประหลาดใจเช่น bit-shift และ modulo ถูกข้ามไปในวิทยาลัย
Claudiu

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

2
ที่จริงแล้วพวกเขาทั้งคู่สอนในโรงเรียนประถม ในขั้นตอนนี้พวกเขาจะเรียกว่า "ส่วนที่เหลือ" และ "คูณด้วย 10"
intuited

0

เกณฑ์หนึ่งที่ฉันใช้คือการดู 'ชนิด' ของภาษาและเครื่องมือที่เขาได้ทำงานทั้งในเชิงวิชาการหรือในโครงการมืออาชีพและสิ่งที่เขาประสบความสำเร็จ เขาเคยทำงานที่ระดับแอปพลิเคชั่นโดยใช้ไลบรารี่มาตรฐาน (มักจะเป็นผู้ชาย C # หรือ VB6 เสมอ) หรือเคยทำโครงการโดยใช้ C ใน Linux ที่จัดการกับสิ่งที่ไม่ยอมใครง่ายๆเช่นพอยน์เตอร์การจัดการหน่วยความจำการเรียกซ้ำ ถ้าเขาใช้แนวคิดหลักและพื้นฐานเหล่านี้ในเลเยอร์นามธรรมฉันจะไม่แน่ใจ

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


การเรียกซ้ำการซิงโครไนซ์กระบวนการการแยกซึ่งกันและกัน เทคโนโลยีเหล่านั้นมีความสำคัญเท่าเทียมกันไม่ว่าคุณจะทำงานกับ C #, VB.NET, C หรือภาษาแอสเซมบลี

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