OOP – chủ đề huyền thoại trong các cuộc phỏng vấn tuyển dụng


Có lẽ các bạn đã từng tham gia phỏng vấn không lạ gì câu hỏi: “Bạn có thể trình bày về lập trình hướng đối tượng được không?”, tại sao nó lại trở thành một chủ đề được quan tâm như vậy? Hãy cùng xem qua những lý do sau nhé.

No photo description available.

1. OOP là một cách tư duy: bạn có nhớ lần đầu tiên học về OOP không? Bạn sẽ ngạc nhiên vì sao người ta có thể nghĩ ra những ý tưởng hay đến như vậy, hay đến mức mình làm hoài vẫn không đúng, thậm chí có thể vài năm sau mới nhận ra trước giờ mình toàn làm sai. Cách suy nghĩ của nó khác hoàn toàn với phương pháp lập trình tuyến tính trước đó, và nhờ vậy giúp xây dựng các ứng dụng lớn dễ dàng hơn rất nhiều. Chẳng phải tự nhiên mà hầu hết các nền tảng và ngôn ngữ lập trình hiện tại đều dựa trên, hoặc chí ít là hỗ trợ OOP.

2. OOP còn là một phương pháp thiết kế: có bao giờ bạn tự hỏi làm thế nào từ một đề bài trong thực tế, người ta lại nghĩ ra được phải có class nào, interface gì, class này thì có những property nào… không phải người ta ngồi đoán đâu. OOP giống như một thế giới, trong đó có các đối tượng, chúng vận động, tác động lẫn nhau, làm thay đổi các thuộc tính của nhau, từ đó dẫn đến việc thay đổi dữ liệu từ đầu vào sang đầu ra. Đó là một thế giới rất năng động, và ta là người tạo ra nó, điều đó rất thú vị phải không?

3. OOP là các ràng buộc giúp bạn tránh lỗi: nếu bạn đã quan tâm đến OOP designing, vậy bạn hãy tìm hiểu bộ 5 quy tắc có tên SOLID. Một phần mềm nhỏ và một phần mềm to khác nhau điều gì? Tất nhiên một cái nhỏ và một cái to. Nhưng có một điểm khác vô cùng quan trọng là: cái sai trong phần mềm to rất khó sửa. Chẳng phải tự nhiên người ta cứ đòi kinh nghiệm này kinh nghiệm nọ đâu, vì có khi một lỗi bạn tạo ra làm người ta mất hàng trăm giờ để sửa chữa, chưa nói đến vấn đề tiền bạc.Mình hiện đang làm trong một dự án về vận tải, có thể nói rất lớn, có hơn 400 khách hàng doanh nghiệp sử dụng hàng ngày, được cài đặt trên vài trăm máy chủ, mỗi ngày có khoảng 50-100 ngàn lệnh giao nhận được tạo ra, cùng với hàng trăm ngàn lệnh cập nhật/chỉnh sửa khác. Nếu sai sót chỉ là 1/1000 thôi thì có nghĩa mỗi ngày có 50-100 lệnh bị sai, đó rõ ràng là một con số quá lớn và không chấp nhận được. Vậy nên, hiểu và tuân thủ các nguyên tắc tránh lỗi là một việc vô cùng quan trọng.

4. Việc bạn hiểu OOP đến đâu cho tôi biết tư duy của bạn đến đâu: trái với nhiều người nghĩ, developer là những người rất thảnh thơi, hoàn toàn không phải là người ngồi code hùng hục cả ngày lẫn đêm. Những người đó họ có tên khác – họ là coder 😀. Developer phải suy nghĩ và tư duy nhiều, và tốc độ gõ phím của họ khá thành thạo nên lúc nào họ cũng nghĩ chậm hơn gõ. Trong thiết kế và lập trình, đôi khi không có ranh giới rõ giữa tốt và xấu, mà chỉ có khá tốt, rất tốt, tạm được, khá củ chuối, củ chuối nhưng vẫn xài tốt… Việc hiểu một cách chính xác, cộng thêm kinh nghiệm thực tế giúp bạn lựa chọn phương án một cách đúng đắn. Nghe một ai đó nói về OOP có thể giúp tôi biết rất nhiều về cách họ học, cách họ rút kinh nghiệm từ thực tế, cách họ suy nghĩ để giải quyết vấn đề, thậm chí tôi có thể đoán được họ sẽ tiến xa đến đâu trong công việc nữa.

Đó là những lý do người phỏng vấn thường hỏi về OOP, tất nhiên trả lời thế nào là quyền của bạn 😀. Nhưng tôi khuyên thật lòng là hãy tìm hiểu thật kỹ, tự đặt câu hỏi: vì sao người ta cần abstraction, polymorphism thế nào là đúng, và giống như đã nói trong phần 2.: từ một bài toán thực tế, làm sao để biết được cần có những class nào?

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: