วิธีหลีกเลี่ยงการกระโดดไปยังทางออกเมื่ออยู่ภายใต้แรงกดดัน? [ปิด]


18

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

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

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

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


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

1
นั่นคือสองเทคนิค หากผู้คนระบุเทคนิคที่เพียงพอเทคนิคที่แตกต่างจะใช้ได้ผลกับคนอื่น
GlenPeterson

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

2
@ZJR - คำแนะนำที่ดีในการฝึกด้วยการทดสอบที่กำหนดเวลาและดูแหล่งที่มาทางจิตวิทยาของประสิทธิภาพที่ดีขึ้นภายใต้ความเครียด บางทีฉันอาจจะติดลบที่นี่ แต่บางส่วนของความคิดเห็นของคุณอ่านเหมือนที่คุณคิดว่าฉันไม่มีความสามารถหรือฉันมีปัญหาด้านจิตวิทยาคลินิก อุ๊ย!
GlenPeterson

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

คำตอบ:


17

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

หากคุณต้องการแนวทางที่มีโครงสร้างในการจัดการกับ "ไฟ" อาจนำหนังสือเล่มใหม่ที่กำหนดขั้นตอนหลายอย่างออกมา

RRAPID

  1. ปฏิกิริยา - ระดมทรัพยากรกับเหตุการณ์
  2. การสำรวจใหม่ - รวบรวมข้อมูลเกี่ยวกับสถานการณ์
  3. การแข็งค่า - เลือกแนวทางการปฏิบัติตามสถานการณ์กรณีที่ดีที่สุดและแย่ที่สุด
  4. แผน - พัฒนาแผนตามแนวทางปฏิบัติ
  5. การออกคำสั่ง - ใช้รูปแบบการบรรยายสรุปมาตรฐาน
  6. การปรับใช้ - ดำเนินการและตรวจสอบ

หรือในแง่ทั่วไปเพิ่มเติม:

  1. ปลุกทุกคนตื่นขึ้นมาและทำให้พวกเขาเคลื่อนไหว
  2. ออกกำลังกายว่าเกิดอะไรขึ้น
  3. ระดมสมองแก้ปัญหา
  4. เลือกหนึ่งรายการและวางแผน
  5. บอกทุกคนว่างานของพวกเขาคืออะไร
  6. ดำเนินการและตรวจสอบ

1

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

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

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

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

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


1

... แนวโน้มของฉันคือการกระโดดเข้าสู่การเขียนโปรแกรมโดยไม่มีแผนจริงและหวังว่าฉันจะคิดออกเมื่อฉันไปตาม

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

... ในการสัมภาษณ์มันไม่ประสบความสำเร็จเลยทีเดียวหากไม่ตอบโต้อย่างจริงจัง ฉันไม่สบายใจที่จะนั่งอยู่ที่นั่นขณะที่นาฬิกากำลังเหินไป

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

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

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

เมื่อใดที่การคิดและออกแบบมากขึ้นเมื่อเทียบกับการเขียนโค้ดการทดลองบางอย่างและคิดออกการออกแบบโดยรวมในภายหลัง

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

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