อะไรคือสิ่งที่ทำให้โปรแกรมเมอร์ที่ยอดเยี่ยมแตกต่างจากโปรแกรมเมอร์ที่ดีจริงๆ? [ปิด]


59

คุณรู้ว่าพวกเขาเป็นใคร พวกเขาคือดาวแห่งการเขียนโปรแกรม:

  • พวกเขารหัส 10X เร็วขึ้น

  • รหัสของพวกเขาใช้งานได้

  • พวกเขาไม่เพียง แต่รู้ภาษาหลักของพวกเขาทั้งภายในและภายนอก แต่พวกเขายังรู้วิธีการทำงานภายใต้ประ

  • พวกเขารู้คำตอบของคำถามส่วนใหญ่ก่อนที่คุณจะถาม

  • บางคนคิดค้นหลักการเขียนโปรแกรมที่เราใช้

  • และพวกเขาก็มีแนวโน้มที่จะถ่อมตนเช่นกัน

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

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


49
โปรแกรมเมอร์ที่ยอดเยี่ยมไม่มีบล็อคแบบลองรอบรหัสของพวกเขา zing

11
@ จอห์น: ฉันไม่เห็นด้วยอย่างสิ้นเชิงฉันได้เห็นสิ่งที่เล่น 10 เท่าซ้ำแล้วซ้ำอีกและดูเหมือนว่าจะเป็นจริงเศร้าพอ ฉันคิดว่าปัญหามากมายคือโปรแกรมเมอร์มืออาชีพส่วนใหญ่ไม่สามารถเขียนโปรแกรมได้จริง ๆ และบางคนก็ไม่สามารถเขียนโปรแกรมสิ่งที่เรียบง่าย ไม่ใช่ว่า coder ที่เหมือนเทพอยู่เหนือ 10x coder ที่ดี แต่ coder ที่เหมือนเทพนั้นคือ 10x เหนือ coder ที่เลวร้ายที่สุดในองค์กรหรือทีมของเขา
สันติภาพ Noctis

10
@fennec: ทำได้หรือไม่ tryไม่มี
mmyers

29
ประสบการณ์ 18 ปีสำหรับภาษาที่คิดค้นขึ้นเมื่อ 15 ปีที่แล้วเป็นสิ่งที่น่าประทับใจมาก!
Ricky Clarkson

15
@Tjaart - ไม่เป็นจำนวนที่มั่นคงและการศึกษาตั้งแต่ปี 1960 ได้แสดงให้เห็นนี้ การศึกษาเริ่มต้นได้ดำเนินการในช่วงปลายทศวรรษที่ 1960 โดย Sackman, Erikson และ Grant พวกเขาศึกษาโปรแกรมเมอร์มืออาชีพที่มีประสบการณ์โดยเฉลี่ย 7 ปีและพบว่าอัตราส่วนของเวลาการเข้ารหัสเริ่มต้นระหว่างโปรแกรมเมอร์ที่ดีที่สุดและแย่ที่สุดคือประมาณ 20 ต่อ 1 อัตราส่วนของการดีบักคูณ 25 ต่อ 1 ขนาดโปรแกรม 5 ต่อ 1; และความเร็วในการทำงานของโปรแกรมประมาณ 10 ถึง 1 พวกเขาไม่พบความสัมพันธ์ระหว่างจำนวนประสบการณ์ของโปรแกรมเมอร์และคุณภาพของโค้ดหรือผลผลิต (ขอบคุณ Steve McConnell)
Jon Hopkins

คำตอบ:


88
  • ฮัมเบิล:โปรแกรมเมอร์พิเศษจะไม่เรียกร้องรหัสของพวกเขาเป็นที่ดีที่สุดในความเป็นจริงพวกเขามักจะมองหาวิธีที่ดีกว่า(ทุกโอกาสที่พวกเขาได้รับ.)

  • ผู้ป่วย:โปรแกรมเมอร์พิเศษจะมีความอดทนไม่มีที่สิ้นสุด(นี่ไม่ได้หมายความว่าพวกเขาจะเสียวันปัญหาดู:. การแก้ไขปัญหา)

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

  • อยากรู้อยากเห็น:โปรแกรมเมอร์พิเศษจะไม่สามารถต้านทานพยายามที่จะคิดออกว่าทำไมบางสิ่งบางอย่างเกิดขึ้น

  • วิศวกร:โปรแกรมเมอร์พิเศษจะวิศวกรระบบมากกว่าเดินกะโผลกกะเผลกกันยำกรอบ(นี่ไม่ได้หมายความว่าพวกเขาจะไม่ใช้กรอบ.)


5
ฉันชอบจุด "วิศวกร" ของคุณ!
Cedric H.

1
@Chaos - โปรแกรมเมอร์ที่เร็วที่สุดที่ฉันรู้จักสร้างกรอบเว็บของเขาเอง สิ่งที่ฉันคิดว่าเป็นสิ่งที่ทำให้คนดีขึ้นและเร็วขึ้น ขอบคุณสำหรับคำตอบ. มันทำให้ฉันรู้สึกหมดหนทางน้อยลงในการต้องการทำสิ่งใหม่ ๆ
orokusaki

11
"วิศวกร" เป็นจุดสำคัญ โค้ดทุกบรรทัดจะสร้างรากฐานที่แข็งแกร่งแทนที่จะเพิ่มการสร้างที่เหมือนเยินก้าที่ง่อนแง่น
Alex Feinman

5
ฉันจะไม่ -1 แต่เป็นจุดโต้กลับฉันมีสิทธิ์ได้รับทั้งหมดนี้ และฉันยังคงดูด (ยกเว้นโปรแกรมเมอร์เฉลี่ยที่พิเศษของฉันที่ฉันเปรียบเทียบกับน่ากลัวจริง)
สตีเว่น Evers

1
@Chaos, "อยากรู้อยากเห็น" แต่เพียงจุดเดียว

28

คุณพบเจอมันมากมายในกระสุนนัดสุดท้ายของคุณ:

"และพวกเขาก็มีแนวโน้มที่จะถ่อมตนเช่นกัน"

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

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

แน่นอนว่าคำแนะนำนั้นดีเท่าแหล่งที่มาดังนั้น ... ทั้งหมดแค่ความคิดเห็นของฉัน


“ ฉันไม่ได้ล้มเหลวฉันพบ 10,000 วิธีที่ไม่ทำงาน” - Thomas Edison
ninjalj

1
วิธีเดียวที่จะเรียนรู้ได้อย่างรวดเร็วคือยอมรับว่าคุณสามารถปรับปรุงและต้องการได้

25

พวกเขาใส่ใจอย่างลึกซึ้งเกี่ยวกับรหัสของพวกเขา


2
ไม่ต้องสงสัยความจริง
Robert Harvey

3
โปรแกรมเมอร์ผู้น่าสงสารไม่สามารถดูแลรหัสของพวกเขาได้อย่างลึกซึ้งใช่ไหม แม้ว่ามันอาจจะไม่ดีเท่าไหร่?
วอลเตอร์

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

15

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

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

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


2
สำหรับข้อความไฟล์grep, awk, sortและuniqสามารถตอบคำถามจำนวนมาก หากคุณมีperlมากเกินไป!

2
ฉันคิดว่ามันเป็นงานฝีมือไม่ใช่วิทยาศาสตร์หรือศิลปะ
Alexander Gessler

11

เมื่อฉันเริ่มครั้งแรกฉันทำงานกับผู้ชายคนนี้ซึ่งฉันคิดว่ามันยอดเยี่ยมมากในทุกสิ่งที่เขาทำในแง่ของการเขียนโปรแกรม เขาอาจจะยังอยู่ แต่เขาก็ขยับขึ้นมาเป็นผู้อำนวยการของ บริษัท ในเอเชียตะวันออกเฉียงใต้ในตอนนี้

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

เขาไม่กลัวที่จะถามคำถามเช่นกัน ฉันคิดว่านั่นคือสิ่งที่ยิ่งใหญ่ที่สุด


ดูเหมือนว่าฉันพร้อมแล้ว (ดูคำถามของฉันมีความสำคัญกับ SO)

2
@ acidzombie24 - หรือ ... คุณเพิ่งเริ่มต้น
orokusaki

ฮ่าฮ่าโอรุกุซากิ +1

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

10

เมทริกซ์สมรรถนะของโปรแกรมเมอร์

มีหัวข้อมากมายที่จะช่วยระบุระดับของคุณในหัวข้อการเขียนโปรแกรม


ความรู้เกี่ยวกับ stackoverflow: 2 ^ n: ไม่เคยได้ยินเลย O (n ^ 2): โพสคำถามง่าย ๆ เป็นประจำเกี่ยวกับ SO O (n): โพสคำถามที่น่าสนใจและรู้โปรแกรมเมอร์ (SE (log)): ด้านบน ผู้ใช้บนไซต์ SE ที่เกี่ยวข้องกับ CS ;-)
shuhalo

ขอบคุณมากสำหรับลิงค์นี้! มันทำให้ฉันมีความมั่นใจเกี่ยวกับสิ่งที่ฉันรู้และชี้นำฉันไปยังส่วนที่ฉันควรปรับปรุง
oksayt

7

ฉันเรียนรู้คำตอบสำหรับคำถามนี้ในหนังสือเกี่ยวกับ Texas Hold'em poker แต่มันใช้ได้กับความพยายามที่น่าผิดหวังทั้งหมด โคเดกที่ดีที่สุดไม่เคยเอียง การดำเนินการ Tilt เป็นช่วงเวลาที่บางสิ่งบางอย่างไม่ทำงานอย่างที่คุณคาดไว้และคุณตอบสนองด้วยวิธีที่ทำให้เกิดข้อผิดพลาดแบบเอกซ์โปเนนเชียล ในการแข่งขันโปกเกอร์มันทำให้คุณวางเดิมพันที่แย่และล้มลง

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

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


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

@orokusaki - กิจกรรมที่ง่ายที่สุดในการหลีกเลี่ยงการเอียงคือการเปลี่ยนคำถามพื้นฐานที่โปรแกรมเมอร์ถามตัวเองทุกวัน เมื่อมอบหมายให้กับปัญหาแทนที่จะคิดว่า: "ทำไมฉันต้องแก้ปัญหาด้วยวิธีนี้" ถาม: "ทำไมฉันควรหลีกเลี่ยงการแก้ไขด้วยวิธีนี้" บ่อยครั้งที่คำตอบว่าทำไมคุณไม่ควรแก้ปัญหาด้วยการแก้ปัญหาเฉพาะจะให้ชุดของตัวชี้สำหรับการหาทางออกที่ดีกว่า
JMC

6

โปรแกรมเมอร์พิเศษ:

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

สองสิ่งเกี่ยวกับปัจจัย "10x":

  1. จะต้องมีการใช้แบบ end-to-end การเขียนโค้ดที่ดีกว่านี้ไม่เร็วกว่า 10x หากใช้เวลาในการทดสอบนานกว่า 10 เท่าทำใหม่และบำรุงรักษา
  2. ฉันเชื่อว่าปัจจัย "10x" นั้นสะท้อนให้เห็นว่าโปรแกรมเมอร์จำนวนมากนั้นยากจนเพียงใดเมื่อเทียบกับโปรแกรมเมอร์จำนวนน้อยที่ดีเพียงใด

3

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

ฉันมีเพื่อนที่เขียนโปรแกรม ASM ครั้งแรกเมื่ออายุ 10 ปีตอนนี้เขาอายุ 24 ปียังไม่จบมหาวิทยาลัย แต่นั่นไม่ได้หยุดเขาจากการสร้าง บริษัท ของตัวเองทำเงินหลายล้าน :) แต่จากสิ่งที่ฉันเห็นเขา มีความกระฉับกระเฉงในทุกสิ่ง :)

โปรแกรมเมอร์ที่ยอดเยี่ยมส่วนใหญ่มีแนวโน้มว่ารหัสนี้สามารถเขียนในอีกวิธีหนึ่งที่ดีกว่าแทนที่จะบอกว่ามันผิดทั้งหมดชื่อเสียงของโปรแกรมเมอร์อื่น ๆ ที่ลดลง :)

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

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


3

มีบางสิ่งที่แตกต่างกันไปในแบบพิเศษกับแบบทั่วไป

พิเศษ:

  1. หลงใหลในงานของเขาอย่างมากและมุ่งมั่นที่จะส่งมอบงานชิ้นเอก

  2. ประสิทธิภาพและคุณภาพเป็นภาพรวมในใจก่อนที่จะเริ่มการเข้ารหัส

  3. พวกเขาคิดว่าจะปรับปรุงอย่างต่อเนื่องหลังจากปล่อยแต่ละครั้ง

  4. พวกเขาเฝ้าระวังอย่างเข้มงวดในทางเลือกและเป็นผู้เริ่มต้น

  5. ธีมของพวกเขาในชีวิตการทำงานคือ: "เขียนสื่อน้อยลง"

  6. พวกเขายังคงคิดถึงมุมมองเชิงตรรกะแม้จะไม่ได้เข้ารหัส

ตามแบบฉบับ

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

  2. จะนึกถึงประสิทธิภาพในภายหลังพีซีในยุคนี้ก็เร็วพอ

  3. ปรับปรุงเฉพาะเมื่อไม่มีตัวเลือกเหลือให้บันทึกงาน

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

  5. ชุดรูปแบบของพวกเขาคือ: "ทำสิ่งที่ถามและกลับถึงบ้านในเวลา"


2

โปรแกรมเมอร์เจ๋งใช้หลักการสปาร์ตัน

รูปภาพที่ดึงดูดความสนใจ:

ป้อนคำอธิบายรูปภาพที่นี่

บทความนี้: http://willcode4beer.com/design.jsp?set=codeReduction

และคำพูดนี้:

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


5
ภาพเป็นภาพประกอบของสัญลักษณ์ Big-O

0

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


3
บางที แต่ฉันเชื่อว่า John Resig เป็นที่รู้จักกันดีสำหรับความสำเร็จอันน่าทึ่งของเขาด้วย Javascript และ jQuery สิ่งที่เขาใช้กันอย่างแพร่หลายเพราะยอดเยี่ยมไม่ใช่เพราะจอห์นมีทักษะการตลาดที่ยอดเยี่ยม
Robert Harvey

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

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

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

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


0

บทความที่เกี่ยวข้องดีมาก: The Free Electron (จาก randsinrepose.com)

ฉันขอโทษที่ไม่ได้สรุปบทความที่นี่ แต่คะแนนไม่ได้แยกออกจากร้อยแก้วได้อย่างง่ายดาย


ไม่พูดอะไรมากเกี่ยวกับสาเหตุ แต่ใช่เหล่านี้คือคนที่ฉันพูดถึง
Robert Harvey

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

0

พวกเขาเขียนโปรแกรมอย่างหมดจดโดยสัญชาตญาณ ไม่จำเป็นต้องคิดว่ามันก็ไหล


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

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

3
-1 นั่นเป็นสิ่งที่ผิดในทุกวิถีทาง ฉันหวังว่าจะทำได้ -100 ฉันจะบอกว่าตรงกันข้าม พวกเขาคิดผ่านและแก้ปัญหาก่อนที่จะเริ่ม
Dunk

@Dunk - ฉันไม่เห็นด้วย กับสิ่งที่คุณเขียนฉันจะบอกว่าเป็นสิ่งที่โปรแกรมเมอร์ปกติไม่ ไม่มีอะไรพิเศษเกี่ยวกับเรื่องนั้น ฉันเปรียบเทียบโปรแกรมเมอร์ที่ยอดเยี่ยมกับนักกีต้าร์ที่ยอดเยี่ยม พวกเขาไม่ได้คิดเกี่ยวกับโน้ตที่พวกเขากำลังเล่นพวกเขาแค่รู้สึก
John Shaft

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

0

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

พวกเขาสร้างสิ่งที่ยอดเยี่ยมจริงๆ


0

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

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

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


0

มีโพสต์เจตนาดีจำนวนมากที่นี่เกี่ยวกับความอ่อนน้อมถ่อมตน, วิศวกรรม, ความรัก, ผู้ป่วย, การแก้ไขปัญหา IMO เหล่านี้จำเป็นทั้งหมด อย่างไรก็ตามพวกเขาอธิบายถึง 30% สูงสุดของโปรแกรมเมอร์

ฉันคิดว่าคุณกำลังถามเกี่ยวกับโปรแกรมเมอร์ยอดเยี่ยมจริง ๆ อันดับ 1%

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

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


0

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

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

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