หลัก เทคโนโลยี วิธีแยกแยะความแตกต่างระหว่างโปรแกรมเมอร์ที่ดีและโปรแกรมเมอร์ที่ยอดเยี่ยม

วิธีแยกแยะความแตกต่างระหว่างโปรแกรมเมอร์ที่ดีและโปรแกรมเมอร์ที่ยอดเยี่ยม

ดวงชะตาของคุณในวันพรุ่งนี้

หากการเขียนโค้ดเป็นศาสตร์ นักพัฒนาทุกคนก็คงจะเหมือนกันหมด

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

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

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

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

ซาร่าห์สเปนสูงเท่าไหร่

ที่ Arkenea เรามีประสบการณ์มากกว่าห้าปีในการจ้างนักพัฒนา และมันท้าทายเหมือนในสมัยก่อนที่จะบอกโปรแกรมเมอร์ที่ยอดเยี่ยมจากโปรแกรมที่ดี

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

คำตอบตรงคือไม่

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

แต่มีวิธี มีตัวบ่งชี้อื่น ๆ (นอกเหนือจากคุณภาพของการเขียนโค้ด) ที่แยกโปรแกรมเมอร์ที่ยอดเยี่ยมออกจากโปรแกรมที่ดี

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

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

จากประสบการณ์ของผม ข้าพเจ้าจะเทียบคำจำกัดความของโปรแกรมเมอร์กับนิยามของโปรแกรมเมอร์ที่ดีและคำจำกัดความของเขาของโปรแกรมเมอร์ที่ดีกับนิยามของโปรแกรมเมอร์ที่ยอดเยี่ยม

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

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

เจมส์ ฮินช์คลิฟฟ์ เขาแต่งงานหรือยัง

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

บทความที่น่าสนใจ