Đâ là một câu hỏi tuyệt vời. Và tôi nghĩ rằng không chỉ các lập trình viên cao cấp gặp phải vấn đề này - giải quyết nó sớm có thể là một cách tuyệt vời để người học tăng tốc phát triển kỹ năng của họ.
Có hai mặt của vấn đề này - một mặt xấu và một mặt thực sự tốt .
Xấu - Chọn sai giải pháp
Dưới đây là một ví dụ - như một nhà phát triển có kinh nghiệm, bạn có thể chỉ thực sự giải quyết được hai vấn đề trước đây, vấn đề Một và B . Tại thời điểm này, bạn biết có những vấn đề bạn không biết, nhưng với ống kính của kinh nghiệm của riêng mình, rất nhiều những gì bạn nhìn thấy trông giống như nó có thể là một hoặc B .
Cùng đến một vấn đề mới. Để bạn, vấn đề này ngoại hình mới như vấn đề Một , vì vậy bạn giải quyết nó theo cách bạn thường giải quyết Một . Một cái gì đó không cảm thấy đúng, và nó mất nhiều thời gian, và khi bạn làm việc bạn kết thúc nhận ra đây là một vấn đề mới, C . Đó là một biến thể của A mà bạn không biết đã tồn tại.
Vậy bạn phải làm gì để không phạm sai lầm này nữa? Hai điều:
- Tìm hiểu những gì khác nhau về vấn đề mới này. Chỉ ra những cách tiếp cận có thể đã làm việc khác nhau và tại sao.
- Danh mục vấn đề này đi và chuyển sang giải quyết nhiều vấn đề mới.
Điều này sẽ giúp bạn tự nhiên giải quyết vấn đề này. Tại thời điểm bạn có 10 năm kinh nghiệm, bạn đã quen thuộc với các vấn đề từ A đến Z và tiết mục giải pháp của bạn rất rộng.
Tốt - Hiệu quả
Trong thế giới thực, với thời hạn và nguồn lực hạn chế, sử dụng những gì bạn biết không phải lúc nào cũng xấu:
- Khi bắt đầu quá trình giải quyết vấn đề, bạn so sánh vấn đề mới với tất cả các vấn đề bạn biết.
- Bạn sẽ cố gắng nhận ra các dấu hiệu và quyết định xem vấn đề này sẽ như thế nào.
- Nếu không thể thực hiện một trận đấu 100%, một nhà phát triển có kinh nghiệm sẽ cân nhắc rủi ro dành nhiều thời gian hơn để khám phá trước những rủi ro của việc thực thi có thể thiếu sót. Nếu nguy cơ lãng phí thời gian quá cao, thì bạn chỉ cần tiếp tục với những gì bạn biết.
Đó không phải là điều xấu - đó là sử dụng phân tích rủi ro để chọn hiệu quả trên độ chính xác 100%. Nó được thực hiện mỗi ngày và tất cả chúng ta sẽ bị trói buộc vào những thứ không đưa chúng ta đến bất cứ nơi nào nếu chúng ta không làm điều đó.
Để trả lời câu hỏi của bạn:
Là một lập trình viên có nhiều kinh nghiệm, làm thế nào một người có thể chống lại xu hướng này để luôn tiếp cận giải quyết vấn đề từ những con đường "đã thử và đúng" từ kinh nghiệm trong quá khứ?
- Tiếp tục tìm kiếm và lập danh mục các vấn đề mới
- Nhận tốt hơn trong việc lựa chọn giải pháp phù hợp cho vấn đề; thay vì chỉ biết giải pháp nào, hãy biết tại sao nó đúng.
- Thực hành và trau dồi kỹ năng ra quyết định của bạn . Đôi khi hiệu quả là sự lựa chọn đúng đắn và việc nhận ra những thời điểm đó sẽ tốt hơn sẽ dẫn đến những lợi thế trong thế giới thực.