FizzBuzz - จริงเหรอ? [ปิด]


60

เมื่อพูดถึง "คำถามสัมภาษณ์" คำถามของ FizzBuzz มักจะเกิดขึ้น นอกจากนี้ยังมีโพสต์สยองขวัญการเข้ารหัสเกี่ยวกับมัน

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

แต่มันเป็นความจริงหรือไม่ที่ 99% ของโปรแกรมเมอร์จะต้องต่อสู้กับมัน

จริงๆ?

มีหลักฐานอะไรที่จะสนับสนุนสิ่งนี้?

ตัวอย่างชีวิตจริงบางอย่างมีประโยชน์มากในการตอบคำถามนี้


57
ไม่ใช่ 99% ของโปรแกรมเมอร์ แต่เป็น 99.5% ของผู้สมัคร (ส่วนใหญ่ไม่ใช่โปรแกรมเมอร์)
webbiedave

4
ฉันไม่เชื่อว่ามันจนกว่าฉันจะได้รับในการสัมภาษณ์ - ในภายหลังฉันได้งานแล้วก็ยังคุยกับซีอีโอเกี่ยวกับเรื่องนี้ เห็นได้ชัดว่า 99% เป็นเรื่องถูกต้อง Oo
Fishtoaster

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

2
ฉันให้การทดสอบ FizzBuzz เป็นประจำที่การสัมภาษณ์และมีคนล้มเหลวเป็นประจำ นักออกแบบกราฟิกคนหนึ่งผ่านมันไป
ซัก

4
@Rogue Coder - เฮ้พวกเราไม่ได้โง่แค่แปลก ๆ และพวกเราส่วนใหญ่ดูดคณิตศาสตร์
Inaimathi

คำตอบ:


46

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

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

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

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

ฉันพูดแบบนี้ในฐานะผู้จัดการและในฐานะนักพัฒนา


1
มีเหตุผลอะไรที่พวกเขาปฏิเสธที่จะลองทำ?
Jon Hopkins

3
ฉันไม่เคยถามพวกเขาโดยตรง หลังจากการปฏิเสธครั้งที่สองของพวกเขาฉันจะถามคำถามอีกสองสามข้อแล้วปิดการสัมภาษณ์ ถ้าฉันจะคาดเดาว่าคงเป็นเพราะพวกเขากังวลเกินกว่าที่จะลอง (ถ้าฉันเป็นคนทำกุศล) หรือว่าพวกเขาไม่สามารถคิดออกได้ทันที (ถ้าฉันเป็นคนอื่นมากกว่า)
Todd Williamson

1
ฉันรู้ว่าผู้ชายคนหนึ่งที่ปฏิเสธที่จะให้รหัสในการสัมภาษณ์ นอกจากนี้เขายังปฏิเสธที่จะจำสิ่งที่เขาสามารถค้นหาได้ในไม่กี่วินาทีของ Google เขาเป็น "นักแก้ปัญหา"
kirk.burleson

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

@ Spike nope เพราะนักแก้ปัญหาไม่จำเป็นต้องรู้ไวยากรณ์ของภาษาการเขียนโปรแกรมใด ๆ ตอนนี้พวกเขาจะทำอย่างไร
Pierre Arlaud

25

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

นั่นเป็นธรรมชาติของกระบวนการหางานที่ทันสมัยของเรา หลายคนที่สมัครไม่ผ่านการรับรอง

โพสต์สยองขวัญการเข้ารหัสนั้นยังพูดถึงวิธีที่เราสอนวิทยาศาสตร์คอมพิวเตอร์ทุกวันนี้ ในอดีต (โดยเฉพาะที่ MIT) คุณจำเป็นต้องเรียนรู้สิ่งต่าง ๆ เช่น Lisp ซึ่งคุณต้องเข้าใจแนวคิดเช่นการเรียกซ้ำ

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


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

8
การถกเถียงกับการสอน Java เป็นสิ่งที่อ่อนแอ แนวคิดสามารถสอนในภาษาส่วนใหญ่ (การเขียนซ้ำได้ง่ายใน Java สำหรับเช่น) ฉันไม่เห็นด้วยว่าการสอนแนวคิดที่สอนนั้นเริ่มอ่อนแอลง แต่ฉันก็ไม่โทษว่าเป็นเรื่องของการใช้ภาษาอย่างเด็ดขาด
Steven Evers

1
โอ้เรื่องต่าง ๆ เช่น Recursion ได้รับการสอนพวกเขาไม่ได้ใช้ คุณจะได้เกรดเท่ากันสำหรับการเขียนคำสั่ง IF 100 บรรทัดเช่นเดียวกับการเขียนฟังก์ชั่นแบบเรียกซ้ำ (อย่างน้อยคุณก็ทำที่ที่ฉันไป) และคำสั่ง IF 100 บรรทัดนั้นง่ายกว่าที่จะเขียนเมื่อคุณรีบ (เช่นคุณ ข้ามการทำการบ้านของคุณจนถึง 5 นาทีก่อนที่คุณจะต้องเปิดใช้งาน)
Rachel

1
@SnOrfus: ฉันไม่ตำหนิบน Java ฉันไม่ได้โต้แย้งการสอน Java ใช่คุณสามารถสอนแนวคิดเหล่านี้ใน Java แต่ฉันไม่เคยเห็นสิ่งนั้นเกิดขึ้นไม่ใช่ในคลาส Java ที่ฉันใช้ไป นั่นคือ MIT ได้เลือก Scheme สำหรับชั้นเรียนการเขียนโปรแกรมเบื้องต้นเนื่องจากมีไวยากรณ์ที่ง่ายมากดังนั้นคุณจึงเริ่มคิดถึงแนวคิดการเขียนโปรแกรมตั้งแต่เนิ่นๆโดยไม่ต้องเน้นเรื่องไวยากรณ์ภาษามากนัก
Robert Harvey

4
ใครในโลกที่ไปมหาวิทยาลัยที่พวกเขา "สอน Java" โรงเรียนสอนภาษามีประโยชน์น้อยกว่า (ไม่ว่าจะเป็น Java, C ++, Lisp หรืออะไรก็ตาม) นั่นคือสิ่งที่คุณมีในสหรัฐฯ เมื่อฉันศึกษา CS คุณจะสอนภาษาของคุณเองไม่มากก็น้อย (ยกเว้นชั้นเรียนกระบวนทัศน์ฉันเดา) หลักสูตรมหาวิทยาลัยสอนคณิตศาสตร์ทฤษฎีซีเอสกระบวนทัศน์การเขียนโปรแกรมหลายอย่างแคลคูลัส ฯลฯ ผู้ที่สำเร็จการศึกษาจากนั้นสามารถแก้ปัญหา FizzBuzz ได้อย่างง่ายดายเพราะเราต้องแก้ปัญหาที่ยากขึ้นเพียงเพื่อผ่านหลักสูตร
Andres F.

20

ฉันเกลียดที่จะพูดแบบนี้ แต่

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

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

สั้น ๆ ก็คือฉันเคยเห็นหลายกรณีเกินไปที่มีคนสัมภาษณ์กำลังถามคำถามที่ไม่ผ่านเกณฑ์ต่อไปนี้:

  1. พวกเขารู้คำตอบที่ถูกต้องทั้งหมดที่เป็นไปได้
  2. พวกเขารู้ว่าทำไมคำตอบที่ถูกต้องถูกต้อง
  3. พวกเขารู้วิธีการให้ข้อมูลที่เพียงพอโดยไม่ต้องให้คำตอบ
  4. คำถาม "การแก้ปัญหา" ไม่ได้ขึ้นอยู่กับความรู้ของข้อเท็จจริงที่ไม่เปิดเผย (นี่คือปัญหาที่ใหญ่ที่สุดที่ฉันเคยเห็น)
  5. ใช้เวลาน้อยกว่า 1 นาทีในการเขียนคำตอบหากคุณไม่ต้องคิดออก หากใช้เวลาเพียง 5 นาทีในการพิมพ์รหัสมันต้องใช้การแก้ปัญหามากกว่าที่จะเป็นส่วนของการสัมภาษณ์ด้วยวาจา
  6. คำถามมีพื้นฐานมาจากมากกว่า "ปัญหาที่ฉันพบเจอครั้งเดียวหรือฉันได้รับในโรงเรียนดังนั้นคุณควรรู้วิธีแก้ปัญหาในตอนนี้ " ฉันจะพนันว่าคุณมีเวลามากกว่า 2 นาทีในการตอบคำถามทำไมคุณไม่ให้ผู้สมัครด้วยความสุภาพเหมือนกัน

อย่างจริงจัง (1) ฉันคิดว่าการขอให้คนเขียนรหัสในส่วนของวาจาในการสัมภาษณ์นั้นโง่

อย่างจริงจัง (2) ฉันคิดว่าการสัมภาษณ์ผู้คนโดยไม่ต้องขอให้พวกเขาเขียนรหัสก็โง่เช่นกัน

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


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

1
@Nemi - ใช่ฉันทำ บุคคลที่มีปัญหาไม่ใช่คนที่มีอำนาจการจ้างงาน แต่ฉันได้รับข้อเสนอในตำแหน่ง
MIA

8
int? result; for (int i = 0; i < int.MaxValue; i++) { T item = (i < array.Length) ? array[i] : someDummyItem; if (item == whatWereLookingFor) result = i; } return result;- เวลาคงที่ :)
กำหนดค่า

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

แฮชสามารถมีการชน นั่นเป็นเหตุผลที่มันมักจะระบุว่าเป็นเวลาคงที่ตัดจำหน่าย
Rig

10

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

  • ฉันถามหา 1 ถึง 100 และคุณทำ 1 ถึง 99 หรือ 0 ถึง 99
  • messing up ว่าจะพิมพ์หมายเลขพร้อมกับ fizz และ / หรือ buzz
  • ความขัดแย้งใน "fizzbuzz" vs "fizz-buzz"
  • การเพิ่มประสิทธิภาพที่ไม่ได้รับเช่นการเปรียบเทียบสองครั้งเมื่อทำครั้งเดียว
  • มากขึ้น

เมื่อฉันจ้างฉันขอให้คนเขียนรหัสที่ไวท์บอร์ดให้ฉันไม่มีอะไรใกล้ที่ซับซ้อน (ฉันรู้ว่าคุณไม่คิดว่ามันซับซ้อน) และผู้สมัครหลายคนล้มเหลวอย่างมาก ฉันหมายถึงชอบเขียน vb-style If, ​​End, If แต่ใส่วงเล็บปีกกาเช่นกัน (เพียงเพื่อความปลอดภัยฉันเดา) หรือเขียน C # (และถามก่อน, C #?) แต่ไม่มีโคลอนกึ่งหนึ่งที่ใดก็ได้ อย่าเริ่มต้นกับข้อผิดพลาดทางตรรกะ!


2
@Jeff devs ส่วนใหญ่ก่อนเขียนสิ่งที่จะไม่รวบรวม สิ่งที่ดีลองดูและแก้ไขข้อผิดพลาดทางไวยากรณ์อย่างง่าย เน้นความดีหรือความสงบโปรแกรมเมอร์ ok เขียนฟังก์ชั่น แต่ไม่มีรหัสที่จะเรียกมันเขียนสิ่งที่ไม่ได้รับการปรับปรุงให้ดีที่สุดต้องทนทุกข์ทรมาน (และไม่เห็น) off-by-one หรืออาจพลาดข้อผิดพลาดทางไวยากรณ์หรือสอง โปรแกรมเมอร์ที่น่ากลัวเขียนโค้ดที่ไม่สามารถคอมไพล์ได้ทำสิ่งที่ผิดทั้งหมด ฯลฯ ตัวอย่างเช่นการวนไปที่ 3 หรือ 5 เนื่องจากมันอยู่ในคำถามแทนที่จะวนเป็น 99 หรือ 100 หรือ 101 (ish.) หรือแม้แต่ไม่มี รหัสเลย คุณไม่อยากจะเชื่อจนกว่าคุณจะเห็นมัน
Kate Gregory

7
หาก {"หาก {} จากนั้น {} จบลง" จะถือว่าล้มเหลวอย่างสิ้นเชิง} จากนั้น {รูปแบบการสัมภาษณ์ของคุณมีข้อบกพร่องและ / หรือคุณโชคดีอย่างยิ่งที่จะยกเลิกผู้สมัครในเรื่องเล็กน้อย} EndIf
Sparr

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

2
@ Sparr - แน่นอน ดังนั้นที่ไวท์บอร์ดถ้าฉันขอให้คุณดูมันคุณอาจจะเห็นมันและพูดว่า "โอ๊ะโอ - ฉันใช้ภาษามากมาย" ถ้าคุณทำไม่ได้ฉันจะพูดว่า "คุณเขียนด้วยภาษาอะไร แล้วคุณจะ มันไม่ใช่คำถามลวงหรือกับดัก บางคนไม่เคยเขียนรหัสและอ้างว่ามี นั่นคือประเด็นคำถามเช่นนี้
Kate Gregory

2
แต่ฉันคิดว่าคำถามเหล่านั้นไม่ดีสำหรับเรื่องนั้น ฉันไม่สามารถบอกคุณได้ห้านาทีก่อนที่เธรดความคิดเห็นนี้จะเริ่มขึ้นหรือไม่ VB จำเป็นต้องใช้เครื่องหมายปีกการอบ ๆ โค้ดบล็อกหรือไม่ ฉันสามารถบอกคุณได้ว่า If / Then / EndIf ดูเหมือนว่า VB [.Net] เป็นส่วนใหญ่ และฉันเขียนโค้ดใน VB สำหรับ ... ประมาณสองชั่วโมงทุก ๆ สามเดือน (งาน rentacoder.com ฉันไม่เคยทำงาน VB จริงฉันเกลียดมัน)
Sparr

10

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

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

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

นายจ้างควรจ้างนักแก้ปัญหาไม่ใช่ลิงโค๊ดที่รู้เรื่องโมดูโล

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

ความคิดเห็นของฉันคือ FizzBuzz เป็นอันตรายสำหรับ บริษัท ที่กำลังมองหานักพัฒนาที่จะยับยั้งการเติบโตของ บริษัท


28
IMHO ปัญหาที่นี่คือ FizzBuzz เป็นคำถาม lowball ที่ถ้าคุณไม่สามารถตอบได้แม้ภายใต้ความเครียดคุณควรมีคนหัวเราะในหน้าของคุณถ้าคุณเรียกตัวเองว่า "โปรแกรมเมอร์" ถ้ามันเป็นสิ่งที่ซับซ้อนกว่าเล็กน้อยเช่น "ใช้การจัดเรียงฟอง" ดังนั้นข้อแก้ตัวและข้อกังวลเหล่านี้จะได้รับการพิสูจน์ แต่ไม่ใช่สำหรับ FizzBuzz
dsimcha

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

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

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

11
@snorfus: ยื่นใต้ "ปัญหาของคนอื่น" ฉันอยากจะพลาดเรือไปกับนักพัฒนาที่ดีคนหนึ่งที่มีความวิตกกังวลทางสังคมมากกว่าการเสียเวลาอันมีค่าและการฝึกอบรมเงินและรอผลจากคนที่ไม่มีความสามารถในการเขียนโปรแกรม ไม่สามารถจัดการกับมนุษย์คนอื่น ๆ ได้หรือ ดูนักบำบัดโรค
Aaronaught

10

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

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

80% ของผู้สมัครแก้ไขปัญหา แต่ไม่ได้ใช้ตัวดำเนินการโมดูลัส

15% ของผู้สมัครไม่สามารถแก้ไขปัญหาได้

5% ของผู้สมัครแก้ปัญหาโดยใช้ตัวดำเนินการโมดูลัส

ในขณะที่การสุ่มตัวอย่างของฉันค่อนข้าง จำกัด (ผู้สมัคร 50 คนจากประเทศหนึ่ง) ฉันสามารถบอกคุณได้ว่า:

95% ของพวกเขาสำเร็จการศึกษาระดับปริญญาตรีหรือสูงกว่าในหลักสูตร CS (มหาวิทยาลัยที่นี่แข่งขันกันโดยพยายามทำให้ CS มีความประทับใจมากขึ้น)

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


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

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

พวกเขาใช้อะไรแทนโอเปอเรเตอร์ที่เหลือ x - (x/y)*y?
CodesInChaos

9

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

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

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

นอกจากนี้คำถาม 'fizzbuzz' บางตัวที่ฉันเห็นเป็นเฉพาะโดเมน คุณสามารถพัฒนาด้วยภาษา / เฟรมเวิร์ค x เป็นระยะเวลาหลายปี (ด้วยประสบการณ์ z ปีกับ x) และไม่ได้ผ่านบางส่วนของมัน (ผู้พัฒนาห้องสมุดไม่ทราบมากเกี่ยวกับการพัฒนาองค์ประกอบ UI สำหรับเช่น)

ในทำนองเดียวกันผู้พัฒนาจำนวนมากทำการพัฒนาบำรุงรักษาวันนี้ดังนั้นสถาปัตยกรรม / ทักษะการออกแบบของพวกเขาอาจจะอ่อนแอในบางพื้นที่

ตอนนี้ฉันไม่แน่ใจว่า 99% นั้นถูกต้อง แต่ IME มันยังค่อนข้างสูง อย่างน้อยในช่วง 80%

* ไม่เราไม่ได้โทรหรือแม้แต่ให้แอปพลิเคชันเหล่านี้ดูอีกครั้ง


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

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

8

ใช่จริงๆ. อาจจะไม่ 99% แต่ก็ยังค่อนข้างสูง ฉันเคยสัมภาษณ์นักเรียนวิทยาการคอมพิวเตอร์สำหรับการฝึกงานและการจ้างงานเต็มเวลา ฉันสัมภาษณ์นักเรียนประมาณ 25 คนที่วิทยาลัยแห่งหนึ่ง เราถูกบอกให้ไม่ถามคำถามเดียวกันเพราะนักเรียนพูดคุยกัน ฉันเรียนรู้อย่างรวดเร็วว่ามันไม่สำคัญเพราะฉันจะรับนักเรียน 3 หรือ 4 คนจาก 25 คนที่สามารถตอบคำถามแรกของฉันได้ "เขียน strcmp"

ฉันขอให้พวกเขาเขียนฟังก์ชั่นเพื่อเปรียบเทียบสองสาย อาจใช้ฟังก์ชันเรียงลำดับคำสำหรับพจนานุกรม คุณจะประหลาดใจกับจำนวนนักเรียนที่ไม่เข้าใจวิธีการเปรียบเทียบสองคำให้คนเดียวรู้วิธีการเขียนฟังก์ชั่น และนักเรียนเหล่านี้บางคนอ้างว่าพวกเขาได้รับ A ทั้งหมดใน CSc

สิ่งคือการเขียนโปรแกรมเป็นเรื่องยากมาก ผู้คนจำนวนมากชอบคิดว่าพวกเขารู้วิธีเขียนโปรแกรม แต่พวกเขาไม่ทำ


3
อัตราเงินเฟ้อระดับแย่มากทำให้เสียเวลาสำหรับทุกคน!
DarenW

8

ความคิดบางอย่าง:

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

  • ฉันคิดว่ามันเป็นเรื่องน่าเศร้าที่มีคนจำนวนมากกำลังสมัครงานที่พวกเขาไม่รู้ว่าทำไม่ได้ ดูเหมือนว่าฉันจะมีปัญหากับเศรษฐกิจ

  • เป็นเรื่องง่ายมากที่จะถามคำถามที่ไม่ดีกับผู้คนซึ่งคำตอบที่ "ถูกต้อง" คือคำถามที่ผู้สัมภาษณ์จะให้


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

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

7

การทดสอบนี้ครอบคลุมอย่างมากหลายสิ่งที่ฉันต้องการทราบเกี่ยวกับโปรแกรมเมอร์ที่ฉันอาจจ้าง:

  1. คุณสามารถโปรแกรมได้หรือไม่?
  2. คุณสามารถเขียนโปรแกรมตั้งแต่ต้น (เพราะทุกคนไม่สามารถ !!!)
  3. คุณสามารถแก้ปัญหาได้โดยไม่ต้องมากกว่า -thinking มัน

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


6

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


3

มีคนสองประเภทที่ฉันหวังว่า FizzBuzz จะช่วยฉันหลีกเลี่ยง

  1. นักร้องที่ไม่มีความรู้ด้านการเขียนโปรแกรมหรือไม่มีความรู้ด้านการเขียนโปรแกรมที่เกี่ยวข้อง โดยปกติคุณสามารถจดจำสิ่งเหล่านี้จาก CV แต่ไม่เสมอไปและให้งานเขียนโปรแกรมอย่างง่ายแก่พวกเขาเป็นวิธีที่ดีในการทำให้ชัดเจนว่าพวกเขาไม่ใช่โปรแกรมเมอร์
  2. โรงเรียน Java จบการศึกษาหลักสูตรการเขียนโปรแกรมหรือปริญญา แต่ไม่ทราบวิธีการเขียนโปรแกรม คนเหล่านี้ยากที่จะกรองออกเพราะพวกเขาสามารถพูดคุยเกี่ยวกับทฤษฎี แต่พวกเขาไม่มีทักษะการปฏิบัติ การวางปัญหาง่าย ๆ ไว้ข้างหน้าพวกเขาและถามหาทางออกและคำอธิบายของการแก้ปัญหาเป็นวิธีที่ดีในการมองเห็นความแตกต่างระหว่าง Petra Java และ Paula Bean

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

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


A) "ดี" ดีแค่ไหน? B) คุณจ้างหรือไม่ :)
Sparr

3

เป็นการยากที่จะเชื่อว่านักพัฒนาซอฟต์แวร์ไม่สามารถเขียนรหัส FizzBuzz ได้จนกว่าคุณจะเห็น "ผู้ร่วมเก้าคน" ที่คัดลอกและวางงานของพวกเขาด้วยกันและพยายามอย่าเขียนรหัส ฉันไม่อยากจะเชื่อเลยเมื่อฉันได้ยินนักพัฒนาอาวุโสคนหนึ่งของเราที่สอนนักพัฒนา C # ด้วยประสบการณ์ 3 ปีวิธีใช้พจนานุกรม อินเตอร์เฟซ? รูปแบบการออกแบบ? stdout? YAGNI? ผู้นำของฉันไม่เคยได้ยิน YAGNI! มันน่าทึ่งที่คนเหล่านี้ไม่รู้

ตอนนี้ฉันเชื่อแล้ว ฉันยังคิดว่ามีนักพัฒนาจำนวนมากเกินไปทำเพียงพอ


3

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

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


3
ฉันสงสัยว่าตัวเลข 99% ชี้ไปที่ความจริง (ความจริงแบบเรียกซ้ำไม่น้อยกว่า) ของคำสั่งที่ 87% ของสถิติทั้งหมดถูกสร้างขึ้นในจุดที่
Adam Crossland

1
@Adam Crossland: 100% ของสถิติเกี่ยวกับสถิติถูกสร้างขึ้นในจุดที่เกินไป
มัจฉา

ถึงกระนั้นก็ดูเหมือนว่าน่ากลัวว่าบางคนไม่สามารถแก้ปัญหาฟองสบู่จากวิทยาลัยได้ หากพวกเขาไม่สามารถทำเช่นนั้นพวกเขาจะทำอย่างไร
Morgan Herlocker

2
@ironcode ฉันไปโรงเรียนกับคนที่ไม่สามารถแม้แต่จะเริ่มเข้าใจ fizzbuzz ... ฉันจะประหลาดใจถ้าพวกเขาสามารถเขียนสิ่งที่พิมพ์ออกมา 100 บรรทัดด้วยค่า fizzbuzz hardcoded พวกเขาจบการศึกษาด้วยเกียรตินิยม
Rachel

2

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

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

ในโลกแห่งความเป็นจริงสิ่งสำคัญคือการสามารถเข้าใจปัญหาการเขียนโปรแกรม / การออกแบบที่ได้รับมอบหมายให้คุณและรู้ว่าจะหาข้อมูลได้จากที่ไหน (IDE, หน้าคน, หนังสือ, google, ฯลฯ ) วิธีแก้ปัญหาของคุณ นี่เป็นสิ่งที่ผู้สัมภาษณ์ไม่เคยทดสอบ


14
คุณรู้หรือไม่ว่า FizzBuzz ง่ายแค่ไหน? คุณไม่จำเป็นต้องเจอมัน หากคุณดิ้นรนพิจารณาการเปลี่ยนอาชีพ
John Smith

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

0

ฉันยังเป็นนักเขียนโปรแกรมรุ่นเยาว์อยู่บ้าง (ฉันเขียนโปรแกรมเพื่อเงินเป็นเวลาประมาณ 2 ปีและเขียนโปรแกรมด้วยความสามารถระดับมืออาชีพในฐานะผู้รับผิดชอบด้านนี้มาก่อนประมาณ 2 ปี) ดังนั้นให้ใช้เกลือเม็ดพอเพียง

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

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

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

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

หลังจากการเริ่มต้นของการฝึกซ้อมและความผิดหวังเกี่ยวกับวิธีการที่ซอฟแวร์ / การทำสัญญาของรัฐบาลทำให้เมาฉันรู้สึกดีขึ้นมากเกี่ยวกับทักษะของตัวเองชัยชนะเล็ก ๆ น้อย ๆ ?

แก้ไข: ไม่ถูกต้องฉันไม่ได้หมายถึงข้อผิดพลาดแบบ off-by-one (เช่นฉันขอผ่าน 100 ไม่ใช่ 99) หรือข้อผิดพลาดที่ไร้เดียงสาอื่น ๆ ที่แก้ไขได้ง่าย ฉันหมายถึงไม่สามารถใช้งานได้จะไม่เรียกใช้ / คอมไพล์ / ฯลฯ หรือแสดงให้เห็นอย่างชัดเจนว่าปัญหานั้นไม่ได้ถูกอ่านและเข้าใจได้และยังเป็นส่วนสำคัญที่ดึงแอปพลิเคชันออกและไม่มีใครส่งรหัสอื่นมาแทน

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