มีอะไรเป็นโปรแกรมเมอร์ซุปเปอร์หรือไม่? [ปิด]


14

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

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

แก้ไข : อินพุตที่น่าสนใจทุกรอบขอบคุณ สามารถรวบรวมบางสิ่ง:

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

  1. คำจำกัดความของThorbjørn : บุคคลที่ทำหน้าที่เทียบเท่าทีมที่ดีอย่างต่อเนื่องเป็นเวลานาน

  2. ฟรีอิเล็กตรอนเชื่อมโยงจากคำตอบของเฮนรี่ คนที่มีประสิทธิผลมากมีความสามารถพิเศษ คำอธิบายคือการอ่านที่ดี

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

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

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


3
ใช่และชื่อของเขาคือจอห์น Carmack
Gary Willoughby

1
ฉันมีรายการอิเล็กตรอนอิสระ 4 ตัวบนกระดาษแผ่นเล็ก ๆ ที่ถูกล็อกด้วยการวาดที่โต๊ะของฉัน
เฮนรี่

หาก 'super programmer' == 'โปรแกรมเมอร์อัจฉริยะ' click_this google.com/events/io/2009/sessions/MythGeniusProgrammer.html
James

ดูการตอบสนองของ Jeff เกี่ยวกับการเขียนโปรแกรมที่ไม่เหมาะสม
rwong

ฉันแค่อยากจะเพิ่มความคิดจากหนังสือ The Mythical Man-Month, en.wikipedia.org/wiki/The_Mythical_Man-Monthรายงานการวิจัยอ้างว่าเป็นโปรแกรมเมอร์ที่ดีกว่าหลายครั้ง ฉันไม่จำรายละเอียดทั้งหมด แต่เห็นได้ชัดว่ามีคุณค่ามากมายในคนที่สามารถสร้างทีมได้สั่งขนาดใหญ่กว่าคนอื่น
เทรวิส

คำตอบ:


17

ฉันจะพิจารณาคำว่า "super programmer" เฉพาะสำหรับผู้ที่สามารถทำงานที่มักจะต้องมีทีมโปรแกรมเมอร์ที่ดีและทำอย่างสม่ำเสมอเป็นเวลานาน

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

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

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

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

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

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


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

@Huper การไม่เปิดเผยตัวคือการหลีกเลี่ยงปัญหานี้ในการเริ่มต้น หากคุณเชื่อว่าคุณเป็นมนุษย์ธรรมดาคุณอาจไม่วิจารณ์อย่างดีนัก (หรือคำถามนี้จะไม่ถูกถามตั้งแต่แรก)

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

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

1
@ Muhammad เนื่องจากคำจำกัดความของฉันคือ super programmer เขียนโค้ดที่สะอาดและบำรุงรักษาได้ด้วยเอกสารที่ดีซึ่งแม้แต่โปรแกรมเมอร์อาวุโสก็สามารถเข้าใจได้ (ยกเว้นอัลกอริธึมที่ซับซ้อนมากซึ่งไม่ค่อยจำเป็นใน Java เนื่องจากสิ่งที่มีอยู่ใน runtime ดังนั้นฉันไม่พิจารณาพวกเขา) ฉันคิดว่ามันจะง่ายเหมือนกัน แต่อาจใช้เวลานานกว่านี้ในการอธิบายให้โปรแกรมเมอร์ระดับต้น

5

ซุปเปอร์โปรแกรมเมอร์คือบุคคลใด ๆ ที่สามารถสร้างโค้ดได้เร็วกว่าคอมไพเลอร์เร่งความเร็วมีประสิทธิภาพมากกว่าฟังก์ชั่นวนซ้ำและสามารถกระโดดข้ามกองซ้อน FIFO ได้ภายในเวลาอันสั้น

วิธีที่คุณจัดการกับคนในทีมของคุณที่เชื่อว่าเขาเป็นซุปเปอร์โปรแกรมเมอร์คือการเปิดเผยให้เขาเห็นถึงจุดอ่อนเพียงอย่างเดียวของเขา - แสงแดด


5
@Chetan: สแต็ค FIFO คืออะไร
rwong

3
@Chetan: นี่เป็นคำตอบที่ไม่ช่วยเหลือ บางทีคุณอาจไม่ได้ทำงานกับโปรแกรมเมอร์ที่ยอดเยี่ยมมากคุณเริ่มสงสัยว่าคุณมีค่าหรือไม่
JBRWilkinson

superprogrammer ควรจะอยู่ในเมฆและให้ประชาชน API สำหรับเขาใจ Query Language
rwong

@rwong เข้าก่อนออกก่อน stack หรือที่เรียกว่าคิว
ทางเลือก

1
@ คณิตศาสตร์: ถ้าคุณสามารถเรียกคิวสแต็กก็หมายความว่า LIFO และ FIFO เป็นสิ่งเดียวกัน (เพื่อถอดความลินคอล์น)
rwong

3

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


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

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

1
@Dan Molding: ตราบใดที่เขาปิดเครื่องและปล่อยให้โปรแกรมเมอร์ที่เขาสัมภาษณ์ในหนังสือเล่มนั้นพูดคุยกันทุกเรื่องฉันไม่สนใจสิ่งที่เขาเรียกร้อง (ฉันเพิ่งซื้อหนังสือเล่มนั้นและรอคอยที่จะอ่านมันหวังว่ามันจะดีเท่าที่ฉันคิดว่ามันเป็น) =)
gablin

ความคิดนั้นดี แต่ผู้จัดพิมพ์มักจะยอมรับโปรแกรมเมอร์ที่มีชื่อเสียงมากกว่าโปรแกรมเมอร์ระดับสูง แก้ไข?
Muhammad Alkarouri

@Alkarouri: ถ้าซุปเปอร์มีความหมายเหมือนกับในซุปเปอร์สตาร์ใช่แล้วการเป็นซุปเปอร์โปรแกรมเมอร์หมายถึงการมีชื่อเสียงด้วย
rwong

2

มีคนที่สามารถสร้างผลผลิตได้มากกว่าคนอื่น

มีผู้ที่สามารถสร้างผลผลิตที่มีอัตราข้อบกพร่องต่ำกว่าคนอื่น ๆ

ผู้ที่สามารถสร้างผลผลิตได้อย่างต่อเนื่องโดยมีอัตราข้อบกพร่องต่ำกว่าปกติอาจสมควรได้รับการขนานนามว่าเป็น Super-Programmer

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

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

ทัศนคติ <> ความสามารถ


1

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


0

คุณเจอโปรแกรมเมอร์สุดยอดหรือไม่? สิ่งที่ระบุว่าเขาหรือเธอเป็นเช่นนี้

จากโปรแกรม / โครงการที่สร้างขึ้นซอร์สโค้ดของมันการศึกษาที่ได้ทำไป

เชื่อว่าเขาเป็นโปรแกรมเมอร์สุดยอด

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

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