หากการเขียนโค้ดเป็นศาสตร์ นักพัฒนาทุกคนก็คงจะเหมือนกันหมด
เช่นเดียวกับในงานศิลปะ ไม่มีนักพัฒนาสองคนที่มีความคิดหรือการรับรู้ที่เหมือนกันหรือความจริงส่วนตัวในขณะที่เขียนโค้ดเพื่อให้ได้ผลลัพธ์ที่เหมือนกัน
ในขณะที่บางคนพยายามดิ้นรนเพื่อให้ได้ผลลัพธ์ที่ต้องการ แต่สำหรับบางคน มันเกือบจะเป็นธรรมชาติ ราวกับว่าความศักดิ์สิทธิ์กระทบพวกเขาในขณะที่พวกเขานั่งสร้างโปรแกรมหรือแก้ปัญหา
ใน โพสต์บล็อก สตีฟ แมคคอนเนลล์ (ซึ่งอ้างว่าเป็นผู้เชี่ยวชาญด้านวิศวกรรมซอฟต์แวร์) เขียนว่าการศึกษาดั้งเดิมที่พบว่ามีความแตกต่างอย่างมากในประสิทธิภาพการทำงานของโปรแกรมแต่ละรายการได้ดำเนินการในช่วงปลายทศวรรษ 1960 โดย Sackman, Erikson และ Grant พวกเขาพบว่าอัตราส่วนของเวลาการเขียนโปรแกรมเริ่มต้นระหว่างโปรแกรมเมอร์ที่ดีที่สุดและแย่ที่สุดคือประมาณ 20 ต่อ 1 พวกเขาไม่พบความสัมพันธ์ระหว่างจำนวนประสบการณ์ของโปรแกรมเมอร์กับคุณภาพของโค้ดหรือประสิทธิภาพการทำงาน
แม้ว่าจะมีข้อบกพร่องในการศึกษานี้ แม้ว่าหลังจากพิจารณาแล้วก็ตาม ข้อมูลยังคงแสดงให้เห็นความแตกต่างมากกว่า 10 เท่าระหว่างโปรแกรมเมอร์ที่ดีที่สุดและแย่ที่สุด
ซาร่าห์สเปนสูงเท่าไหร่
ที่ Arkenea เรามีประสบการณ์มากกว่าห้าปีในการจ้างนักพัฒนา และมันท้าทายเหมือนในสมัยก่อนที่จะบอกโปรแกรมเมอร์ที่ยอดเยี่ยมจากโปรแกรมที่ดี
มันไม่ใช่ความท้าทายที่ไม่เหมือนใคร เราได้เห็นองค์กรขนาดใหญ่และบริษัทต่างๆ ในอุตสาหกรรมต่างๆ ประสบปัญหาเดียวกัน หลายคนได้สร้างกระบวนการกรองด้วยการทดสอบต่างๆ แต่คุณสามารถทดสอบศิลปินได้จริงหรือ?
คำตอบตรงคือไม่
การเขียนโค้ดที่ดีไม่ได้เป็นเพียงปัจจัยเดียวในการตัดสินว่าโปรแกรมเมอร์เป็นแหล่งข้อมูลที่ดีหรือไม่
แต่มีวิธี มีตัวบ่งชี้อื่น ๆ (นอกเหนือจากคุณภาพของการเขียนโค้ด) ที่แยกโปรแกรมเมอร์ที่ยอดเยี่ยมออกจากโปรแกรมที่ดี
คริสโตเฟอร์เบิร์กในการตอบสนองต่อ Quora เน้นย้ำว่าใครที่เขียนโปรแกรมทำงานแก้ปัญหาได้ก็คือโปรแกรมเมอร์ ในทางกลับกัน โปรแกรมเมอร์ที่ดีคือผู้ที่ทำงานร่วมกับผู้อื่นเพื่อสร้างโปรแกรมที่บำรุงรักษาได้และสวยงาม ซึ่งเหมาะสำหรับการใช้งานโดยลูกค้า ตรงเวลาและมีอัตราข้อบกพร่องต่ำ โดยมีความขัดแย้งระหว่างบุคคลเพียงเล็กน้อยหรือไม่มีเลย
แต่สิ่งที่ทำให้โปรแกรมเมอร์ที่ยอดเยี่ยมคือผู้ที่เข้าใจอัลกอริธึมและสถาปัตยกรรมโดยสัญชาตญาณ สามารถสร้างระบบขนาดใหญ่ที่สอดคล้องในตัวเองได้โดยมีการควบคุมเพียงเล็กน้อย สามารถประดิษฐ์อัลกอริธึมใหม่ สามารถปรับโครงสร้างระบบสดโดยไม่ทำลายระบบ สามารถสื่อสารอย่างมีประสิทธิภาพและตรงประเด็นกับเจ้าหน้าที่ด้านเทคนิคที่ไม่ใช้เทคนิค และประเด็นที่ไม่ใช่ด้านเทคนิค เข้าใจวิธีรักษาอัตตาของตน และสามารถสอนทักษะของตนแก่ผู้อื่นได้
จากประสบการณ์ของผม ข้าพเจ้าจะเทียบคำจำกัดความของโปรแกรมเมอร์กับนิยามของโปรแกรมเมอร์ที่ดีและคำจำกัดความของเขาของโปรแกรมเมอร์ที่ดีกับนิยามของโปรแกรมเมอร์ที่ยอดเยี่ยม
คริสโตเฟอร์บางคนเรียกโปรแกรมเมอร์ที่ยอดเยี่ยมว่าไม่จำเป็นต้องเขียนโค้ดเมื่อไปถึงขั้นนี้ในอาชีพการงานของเขาหรือเธอ บุคคลนั้นจะทำงานกับบริษัทและทีมพัฒนาอย่างมีกลยุทธ์มากขึ้นเพื่อบอกทิศทางผลิตภัณฑ์ ซึ่งก็คือคนอย่าง CTO
ความเต็มใจที่จะอยู่กับปัญหาจนกว่าจะได้รับการแก้ไข (เพื่อไม่ให้สับสนกับการนั่งอยู่กับปัญหา) ควบคู่ไปกับความสามารถในการแก้ปัญหาอย่างสร้างสรรค์ เป็นทักษะหรือความถนัดที่ต้องการอย่างมากซึ่งพบได้เฉพาะในโปรแกรมเมอร์ที่ยอดเยี่ยมเท่านั้น
เจมส์ ฮินช์คลิฟฟ์ เขาแต่งงานหรือยัง
ดังนั้นคำถามที่สำคัญคือ คุณจะระบุโปรแกรมเมอร์ที่ยอดเยี่ยมได้อย่างไร บุคคลนี้จะสามารถเข้าถึงต้นตอของปัญหาได้อย่างรวดเร็ว เขาหรือเธออาจไม่ได้ให้วิธีแก้ปัญหาในทันที แต่สามารถกำหนดเส้นทางไปสู่การแก้ปัญหาอย่างรวดเร็วและมีประสิทธิภาพ