จะเริ่มโปรแกรมการแข่งขันได้อย่างไร [ปิด]


17

ฉันฝึกการเขียนโค้ดมาระยะหนึ่งแล้ว แต่ปัญหาคือฉันต้องใช้เวลามากในการเขียนวิธีแก้ปัญหา ฉันต้องการถามว่าการเขียนโปรแกรมการแข่งขันสามารถช่วยฉันในการปรับปรุงนี้

ถ้าใช่แล้วฉันจะเริ่มต้นได้อย่างไรและจะใช้เว็บไซต์ใด (เช่นTopCoder ) เห็นได้ชัดว่าฉันไม่สามารถแก้ปัญหาที่ยากได้ในตอนนี้ ฉันควรทำอย่างไรดี?

ถ้าไม่ฉันควรทำยังไงดี?

ฉันยังมีปัญหาอื่นที่ฉันต้องการเรียนรู้การเขียนโค้ด แต่สิ่งที่ฉันรู้สึกว่าฉันไม่ค่อยดี ฉันควรทำอย่างไรดี? มันเหมือนกับการดักฟังฉันจากภายใน

ฉันรู้ว่าบางคนอาจไม่พบคำถามนี้ให้ข้อมูล แต่อย่างน้อยโปรดให้ฉันได้รับคำตอบ


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

คำตอบ:


19

[สามารถ] การเขียนโปรแกรมการแข่งขันช่วยฉันในการปรับปรุง [ความเร็ว]?

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

ฉันจะเริ่มจากเว็บไซต์ใดเช่น TopCoder ได้อย่างไร

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

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


ขอบคุณมาก @dasblinkenlight!
Vaibhav Agarwal

10

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

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


แต่เมื่อคุณมีส่วนร่วมในการแข่งขันสมมติว่ามีการเขียนโค้ดการแข่งขันหรือขั้นตอนการสัมภาษณ์ความเร็วนั้นสำคัญใช่มั้ย และนั่นก็มากเกินไปฉันรู้สึก
Vaibhav Agarwal

@cdkMoose เป็นสิ่งที่ดี แต่คุณสามารถแนะนำให้ฉันรู้วิธีเริ่มต้นการเขียนโปรแกรมการแข่งขันหมายความว่าจะเริ่มจากตรงไหน
Vaibhav Agarwal

@VaibhavAgarwal ปัญหาออยเลอร์โครงการ 1 ถึง 50: ในขณะที่มันไม่ได้แข่งขัน (เว้นแต่คุณกำลังพยายามที่จะเป็นหนึ่งในคนแรกที่จะแก้ปัญหาล่าสุด) มันเป็นเรื่องที่ท้าทายและประเภทของคำถามที่อาจคาดหวังในการแข่งขันการเข้ารหัส หรือกระบวนการสัมภาษณ์

@ Vaibhav ฉันจะเริ่มเขียนโปรแกรมการแข่งขันในแบบที่ฉันจะเริ่มการแข่งขันอื่น ๆ : การปฏิบัติการปฏิบัติและการปฏิบัติ
cdk เลิก

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