Tôi hơi bối rối vì tại sao "bạn có thể xóa cái này không?" được coi là một câu hỏi thú vị. Bất cứ ai đã viết mã COM trong C ++ đều biết rằng điều đầu tiên bạn học được vào ngày đầu tiên của lập trình COM cơ bản là làm thế nào để sử dụng "xóa cái này" một cách chính xác. Tôi cho rằng có thể hữu ích để xác định xem, có ai đó đang nói dối về việc họ đã viết chương trình COM hay không, nhưng như một câu hỏi chung về C ++, nếu ai đó không thể trả lời ngay lập tức thì họ sẽ không phù hợp cho đội của tôi
Dù sao, nếu mục tiêu của bạn là đưa ra một câu hỏi đo lường các kỹ năng C ++, thì chọn một câu hỏi là con đường sai lầm. Xoay nó Câu hỏi đúng để hỏi là:
Trên thang điểm từ một đến mười, bạn là một lập trình viên C ++ giỏi đến mức nào?
Đây không phải là câu hỏi giúp bạn có câu trả lời bạn muốn. Mọi người đều nói "tám" bất kể. Câu hỏi giúp bạn có câu trả lời bạn muốn là:
OK, vì vậy bạn là một tám. Một lĩnh vực vấn đề mà bạn nghĩ rằng bảy sẽ có một thời gian khó khăn để làm việc với là gì?
Và bùng nổ , bây giờ bạn đã có chúng. Nếu ứng viên nghĩ rằng "một cái gì đó để làm với đệ quy" hoặc "khi nào nên sử dụng một hàm hủy ảo" là loại thứ mà bảy người gặp khó khăn, thì bạn biết rằng họ biết một chút về đệ quy hoặc hàm hủy hoặc bất cứ điều gì và kiến thức của họ không đi xa hơn thế.
Điều đó sẽ cung cấp cho bạn hiệu chuẩn tốt hơn nhiều so với việc đưa ra một số câu hỏi đố. Nếu bạn buộc tôi phải đưa ra một câu hỏi hay về một sự thật về C ++, có lẽ tôi sẽ hỏi một câu như "làm thế nào bạn thiết kế bộ phân tích ngữ nghĩa và trình tạo mã cho phần của trình biên dịch C ++ liên quan đến các phương thức ảo được gọi trong một hàm hủy lớp cơ sở? " Bạn nên đặt câu hỏi liên quan đến những thứ thực sự mà bạn làm việc và ứng viên có khả năng làm việc. Đó là vấn đề tôi phải giải quyết một lần và tôi nghĩ nó sẽ cung cấp một cái nhìn sâu sắc khá tốt về cách một người thiết kế các máy phân tích ngữ nghĩa và trình tạo mã, cũng như kiến thức về C ++ của họ.