จะอธิบายให้ผู้ที่ไม่ใช่โปรแกรมเมอร์ทราบได้อย่างไรว่าการเขียนโปรแกรมไม่ใช่งานซ้ำ ๆ [ปิด]


11

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

วิธีที่คุณควรอธิบายว่าการเขียนโปรแกรมเป็นไม่ได้เป็นงานที่ซ้ำโปรแกรมเมอร์ไม่ ?


5
ถามว่างานของพวกเขาเป็นงานที่ทำซ้ำ ๆ หรือไม่? ถ้าเป็นเช่นนั้นก็ดีสำหรับพวกเขาพวกเขาอาจไม่รู้จักความสุขของอาชีพที่สร้างสรรค์และหลากหลาย หากไม่เป็นเช่นนั้นก็บอกว่าเหมือนกันทุกประการ
Mark Canlas

4
@ Mark Canlas: จุดดี คนเหล่านี้ทำงานอะไร (ด้วยมุมมองของการเขียนโปรแกรมเป็นการพิมพ์ซ้ำ ๆ ) มี? โอกาสที่คุณจะได้ชี้ให้เห็นบาง repetitiveness ตื้นในงานประจำวันของพวกเขาและลดงานของพวกเขาจะ "ซ้ำบางสิ่งบางอย่างหรืออื่น ๆ" และแล้วขอให้พวกเขาอธิบายว่ามันไม่ได้เป็น
FrustratedWithFormsDesigner

14
หากเป็นการทำซ้ำแสดงว่าคุณทำผิด

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

2
สมมติว่าฟุตบอลเป็นกีฬาที่เล่นซ้ำ (ทุกคนยังคงทำสิ่งเดียวกันเตะลูกบอลต่อไป)
apoorv020

คำตอบ:


31

ยกตัวอย่างที่พวกเขาสามารถเกี่ยวข้องได้

เทนนิสซ้ำแล้วซ้ำอีก คุณแค่ตีลูกตลอดเวลาไปยังอีกฝั่งหนึ่งของตาข่าย

ฟุตบอลซ้ำแล้วซ้ำอีก คุณเพิ่งเตะบอลทุกครั้งจนกว่าคุณจะเจอเสาประตู

การเล่นเปียโนซ้ำ ๆ คุณยังคงเลื่อนนิ้วของคุณบนกระดาน

เหี้ยน่าเบื่อมาก !!!


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

1
@Avi ในการเขียนโปรแกรมหลอดเลือดดำเดียวกันน่าเบื่อในแบบที่เทนนิสหรือเปียโนไม่ได้ดังนั้นจึงเป็นข้อโต้แย้งที่สงสัย
Maurycy

18

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


18

มันเป็นไปในทาง คุณพิมพ์ตัวอักษรซ้ำ ๆ กัน (AZ, az, 0-9) ซ้ำแล้วซ้ำอีก เพียงในชุดที่แตกต่างกัน

ฉันมักจะพยายามหลีกเลี่ยงการพูดคุยกับคนเหล่านั้น


1
@ โกง - คำแนะนำที่ดี
John Shaft

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

1
ฉันหวังว่าคุณจะไม่หลีกเลี่ยงทุกคนที่มีความสนใจในตัวคุณ

3
@ โกง: มีคนถามคำถามเกี่ยวกับโลกการเขียนโปรแกรมเป็นพระพร อย่าหลีกเลี่ยงพวกเขา คุยกับพวกเขา มากทึ่สุดเท่าที่คุณสามารถ.

4
ฉันพยายามที่จะผสมผสานสิ่งต่าง ๆ โดยใช้เครื่องหมายวรรคตอน AZ ไม่น่าสนใจพอสำหรับฉัน
MJB

13

การเขียนโปรแกรมสวยมากเช่นการประพันธ์เพลง ซึ่งอยู่ไกลจากการเป็นกระบวนการซ้ำ ๆ

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

บางครั้งคุณไม่รู้ว่าคุณต้องการอะไรและเล่นไปรอบ ๆ อาจเป็นวิธีที่ดีที่สุดในการแต่งเพลงที่น่าสนใจที่สุด ...


1
ฮ่าฮ่า ... +1 เมื่อเล่น (F5 ใน Visual Studio) ตอนนี้ถ้าฉันสามารถเพิ่มปุ่ม F5 กีตาร์ของฉัน ...
JasCav

3
-1 สำหรับ Visual Studio;)
Jordan

ปิแอร์ในขณะที่ไม่เห็นด้วยกับการตอบสนองโดยรวมของคุณต่อ OP ฉันไม่เห็นด้วยที่การประพันธ์เพลงคล้ายกับการเขียนโปรแกรม การเขียนเรียงความยากขึ้น - ฉันคิดว่าฉันพูดได้ดีในบทความนี้: linkedin.com/…
azheglov

1
@azheglov: ยากขึ้นอยู่กับอะไร ทุกคนสามารถแต่ง ตอนนี้จะมีน้อยมากที่ MTV เช่นเดียวกับพวกเราน้อยคนที่จะถูกสัมภาษณ์โดย CNN

แม้ว่าการแต่งเพลงจะ "ยากขึ้น" แต่ปัญหาในระดับ CS ที่จะชดเชย: แต่ละบรรทัดของโค้ดอาจเขียนได้ง่ายกว่าโน้ตเดี่ยวดังนั้นเราจึงมีโปรเจ็กต์ที่มีโค้ดนับล้านเส้น (ถ้าไม่มาก) ดังนั้นแม้ว่าการกระทำของแต่ละอะตอมจะง่ายกว่า แต่โปรแกรมเมอร์ที่ดีที่สุดก็คาดหวังว่าจะแก้ปัญหาที่ยากขึ้นได้
Tikhon Jelvis

4

ฉันมักจะอธิบายว่าการเขียนโปรแกรมเป็นการแก้ปัญหาอย่างสร้างสรรค์ คุณมีปัญหา - คุณต้องการคุณสมบัติในผลิตภัณฑ์ (และฉันมักจะเลือกผลิตภัณฑ์ที่รู้จักกันดี, Amazon.com, MS Word, ฯลฯ ) และมันไม่ได้มี มันไม่เคยทำมาก่อนและคุณเป็นคนแรกดังนั้นนี่จึงเป็นเหมือนโครงการศิลปะใด ๆ - คุณมีวิสัยทัศน์ แต่คุณต้องหาเส้นทาง

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

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

มุ่งเน้นไปที่:

  • ดินแดนที่ไม่รู้จัก
  • ไม่มีใครตอบ
  • อาจมีการตีความ

แสดงให้เห็นว่างานนี้เป็นเหมือนศิลปะมากขึ้นและไม่ค่อยชอบงานน่าเบื่อซ้ำซาก

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

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


2
เป็นศิลปินของตัวเองฉันชอบการเปรียบเทียบนี้ มันจะสมเหตุสมผลกับศิลปินส่วนใหญ่ทุกประเภทและผู้ที่เกี่ยวข้องกับกิจกรรมศิลปะ (ฉันไม่แน่ใจเกี่ยวกับผู้ที่ไม่ใช่ศิลปิน)
DarenW

3

การเขียนโปรแกรมเป็นเรื่องเกี่ยวกับ abstractions ยิ่งคุณเขียนความคล้ายคลึงกันมากเท่าใดคุณก็ยิ่งเห็นมากขึ้นเท่านั้น แต่ถึงเวลาแล้วที่จะเป็นนามธรรม โดย refactoring กรอบวิวัฒนาการซึ่งช่วยลดการทำซ้ำ สิ่งนี้จะช่วยลดความซับซ้อนในรหัสโดเมนของปัญหา

สามารถตั้งโปรแกรมซ้ำ ๆ ได้ แต่มันไม่มีประสิทธิภาพ


+1 เมื่อการเข้ารหัสซ้ำไปซ้ำมามากมันเป็นสัญญาณว่าบางทีคุณอาจทำผิด!
FrustratedWithFormsDesigner

3

หากเป็นจริงเราจะใช้การคัดลอกและวาง: D

หนึ่งในความท้าทายที่สำคัญในการเขียนโปรแกรมคือการสร้างบล็อคแฟชั่นที่มีคุณภาพสูงเช่นคุณ

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

โดยธรรมชาติของความท้าทายนี้เรียกร้องให้คุณไม่ได้ที่จะทำซ้ำตัวเอง

ในฐานะที่เป็นข้อสรุป: หากคุณทำซ้ำตัวเองในฐานะโปรแกรมเมอร์คุณเสียเวลากับการสร้างซอฟต์แวร์ที่ไม่เสถียรและไม่ยืดหยุ่น


1

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

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

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

0

การเขียนโปรแกรมส่วนใหญ่ทำหน้าที่พิมพ์ การทาสีเกี่ยวข้องกับการแปรงด้วยแปรง แต่การโทรซ้ำ ๆ นั้นค่อนข้างตื้น

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

ถ้าเป็นเช่นนั้นนั่นเป็นสาเหตุที่พวกเขาไม่ใช่โปรแกรมเมอร์


-2

หากคุณต้องการเขียนโปรแกรมได้ดีจะซ้ำซ้อน แต่สามารถพูดอะไรก็ได้ การทำซ้ำเป็นหัวใจสำคัญของการฝึกฝนทักษะใด ๆ


-2

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


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