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