Tôi cảm thấy điều quan trọng là tiếp tục thực hành các kỹ năng giải quyết vấn đề của mình. Viết các dự án nhỏ của riêng tôi là một cách, nhưng một cách khác là thử và giải quyết các vấn đề được đăng trực tuyến. Thật dễ dàng để tìm thấy các câu đố lập trình thú vị trực tuyến yêu cầu áp dụng các thuật toán thông minh để giải quyết - Project Euler là một ví dụ nổi tiếng.
Tuy nhiên, trong rất nhiều dự án thực tế, việc thiết kế phần mềm - đặc biệt là trong các giai đoạn ban đầu - có tác động lớn và ở giai đoạn sau, nó không thể được điều chỉnh dễ dàng như các thuật toán đơn giản. Để cải thiện các kỹ năng này, tôi đang tìm kiếm bất kỳ vấn đề thiết kế nào.
Khi tôi nói "thiết kế", ý tôi là thiết kế trừu tượng của một giải pháp phần mềm - ví dụ như các mô-đun sẽ có gì và sự phụ thuộc giữa chúng là gì, dữ liệu sẽ chảy trong chương trình như thế nào, loại dữ liệu nào cần được lưu trong cơ sở dữ liệu, vv Các vấn đề thiết kế là những vấn đề rất quan trọng cần giải quyết trong giai đoạn đầu của bất kỳ dự án nào, nhưng giải pháp của chúng là sơ đồ bảng trắng không có một dòng mã.
Tất nhiên các loại vấn đề này không có một giải pháp đúng, nhưng tôi sẽ đặc biệt hài lòng với bất kỳ nơi nào cũng hiển thị ưu và nhược điểm của các giải pháp điển hình có thể được sử dụng để tiếp cận vấn đề.