Tôi nghĩ rằng đây là một dấu hiệu rất tích cực về kỹ năng của bạn. Điều phổ biến hơn nhiều đối với những người gặp khó khăn khi đưa ra thiết kế 'tốt hơn' trong một nhóm là hoàn toàn không có khả năng nhận ra lý do tại sao một thiết kế khác tốt hơn.
Bạn có hai điểm mạnh thực sự tuyệt vời (và đáng ngạc nhiên là không phổ biến) dành cho bạn:
- Bạn có khả năng đánh giá thiết kế của bạn so với người khác một cách khách quan
- Bạn có mong muốn và nỗ lực để làm cho thiết kế của bạn tối ưu
Bạn chỉ còn vài năm nữa và còn một chặng đường dài để đi, nhưng với thái độ này, bạn chắc chắn sẽ đến đó, đừng bỏ cuộc; tất cả chúng ta đối phó với các thiết lập tinh thần như thế này. Thường xuyên có cơ hội tôi thích cắm Nguyên tắc thiết kế (KHÔNG giống như mẫu thiết kế) và tôi nghĩ đây là một ví dụ hoàn hảo về nơi chúng có ích. Nghiên cứu chúng và thực hành áp dụng chúng trong thiết kế của bạn, bạn sẽ trước khi bạn biết rằng nó đã tiến thêm một bước về vấn đề này.
Vào cuối ngày nhớ, thiết kế là khó. Chúng ta đang đối phó với sự trừu tượng ở mức độ cao phức tạp mỗi ngày, để tạo ra chúng từ không khí mỏng, để chúng hoạt động tốt và dễ sử dụng bởi các đồng nghiệp là một nhiệm vụ cực kỳ khó khăn. Nó cần thực hành, trong nhiều năm .
Vì vậy, hãy nhớ và chỉ cần nhớ: có một nhóm người ngoài kia không thể đánh giá hai thiết kế và thực sự nhận ra một thiết kế phù hợp hơn một thiết kế khác, bạn nghĩ họ hợp nhau như thế nào trong việc tạo ra các thiết kế tốt?
Chỉnh sửa:
tip mẹo nhỏ, sau khi hiểu rõ các nguyên tắc và thực hành ứng dụng của họ một chút, tôi nghĩ rằng có một viên ngọc khác từ một câu hỏi khác ở đây nói về giá trị của việc nghiên cứu nhiều ngôn ngữ có mục đích và quy tắc khác nhau:
Lý tưởng nhất, mỗi lập trình viên nên biết một ngôn ngữ từ mỗi lớp. Bạn có thể học được gì:
- Một ngôn ngữ chính OOP gõ tĩnh: Java, C # (chủ yếu được sử dụng trong phần mềm doanh nghiệp) và C ++ (lập trình hệ thống và các ứng dụng máy tính để bàn phức tạp)
- Ngôn ngữ OOP dựa trên nguyên mẫu: Javascript (lập trình web phía máy khách)
- Một ngôn ngữ thủ tục: C (phần mềm nhúng và lập trình hệ thống)
- Một ngôn ngữ chức năng: Haskell, ML hoặc Lisp (ngôn ngữ chức năng tốt cho phần mềm song song cao).
Một ngôn ngữ lập trình logic (Prolog) có lẽ không hữu ích trong công nghiệp, được sử dụng chủ yếu trong nghiên cứu về AI.
Điều này sẽ giúp mở rộng sự đa dạng của các ý tưởng nảy ra trong đầu khi cố gắng thiết kế một giải pháp.