จะเป็นไรถ้าฉันไม่สามารถแก้ปัญหาได้เมื่อนั่งอยู่หน้าคอมพิวเตอร์? [ปิด]


12

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

บางครั้งฉันสามารถแก้ปัญหาได้ขณะนั่งอยู่หน้าคอมพิวเตอร์ แต่มีปัญหา ไม่เป็นไร?


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

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

8
นี่เป็นทัศนะที่สมบูรณ์ ทุกคนเรียนรู้และทำงานแตกต่างกัน ทำในสิ่งที่เหมาะกับคุณ

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

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

คำตอบ:


34

ฉันมักจะแก้ปัญหาที่ยากที่สุดของฉัน:

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

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

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


1
ขอบคุณ! คุณถูกต้องยิ่งฉันอยู่ห่างจากคอมพิวเตอร์มากเท่าไหร่ฉันก็ยิ่งมุ่งเน้นที่ปัญหามากขึ้นเท่านั้น
Mahmood Muhammad Nageeb

2
ฉันจำได้ว่าอ่านหนังสือ (จำไม่ได้ว่าน่าเสียดายอย่างใด) ที่แนะนำให้เก็บเป็ดยางไว้ที่โต๊ะทำงานของคุณและเมื่อคุณนิ่งงันให้อธิบายปัญหาที่เกิดขึ้นกับเป็ดยาง
Gort the Robot

7
@StevenBurnap สิ่งนี้เรียกว่าdebug เป็ดยางและคุณน่าจะอ่านเกี่ยวกับมันในThe Pragmatic Programmerโดย Addison Wesley
Philipp

2
"การพิมพ์รหัสโปรแกรมเป็นเพียงวิธีการอธิบายวิธีแก้ปัญหาของคุณกับคอมพิวเตอร์" - Alan Perlis กล่าวว่า: "โปรแกรมควรถูกเขียนขึ้นเพื่อให้มนุษย์อ่านและมีเพียงเครื่องจักรเท่านั้นที่ทำงานได้" ผมค่อนข้างจะดูที่วิธีนี้: พิมพ์รหัสเป็นเพียงวิธีการที่คุณจะอธิบายวิธีการแก้ปัญหาของคุณไปยังเพื่อนร่วมงาน ความจริงที่ว่าเมื่อคุณอธิบายวิธีแก้ปัญหาอย่างคลุมเครือในลักษณะที่มนุษย์คนใด (รวมถึงตัวคุณเอง 6 เดือนจากนี้) สามารถเข้าใจมันก็จะกลายเป็นปฏิบัติการโดยเครื่องเป็นเพียงผลข้างเคียงของมันถูกอธิบายอย่างจริงจัง พอที่จะคลุมเครือ …
Jörg W Mittag

4
เรื่องยางเป็ด นอกจากนี้ยังมีเรื่องราวที่คล้ายกันกับตุ๊กตาหมี ผู้สอนที่ MIT เคยนั่งหมีเท็ดดี้อยู่นอกสำนักงาน คุณได้รับอนุญาตเท่านั้นที่จะเคาะหลังจากที่ได้อธิบายปัญหาของคุณกับหมี นักเรียนครึ่งหนึ่งไม่เคยเคาะประตูโดยพบปัญหาขณะที่อธิบายกับหมี การกำหนดคำถามที่มีคุณภาพสูงที่เขียนไว้เป็นอย่างดีการวิจัยที่จัดรูปแบบดีมีรายละเอียดที่ดีเยี่ยมใน StackExchange อาจมีผลเช่นเดียวกันซึ่งเป็นหนึ่งในเหตุผลที่ทำไมเราถึงทำแบบนั้น!
Jörg W Mittag

7

ฉันคิดว่านี่เป็นคำถามที่ดี จากที่ฉันตีความสิ่งนี้สิ่งที่ฉันคิดว่าคุณถามคือ "ไม่เป็นไรที่ฉันต้องออกจากคอมพิวเตอร์เป็นระยะ"

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

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

บางสิ่งที่คุณสามารถทำได้เพื่อล้างใจและแก้ไขปัญหา:

  • หยุดพัก
  • พูดคุยกับเพื่อนร่วมงาน
  • ไวท์บอร์ดปัญหา / แนวคิด
  • นอนบนมัน!

อย่าแปลกใจถ้าคุณตื่นขึ้นมากลางดึกด้วยวิธีแก้ปัญหา


1

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

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