Bạn nói rằng bạn đang phỏng vấn cho các vị trí thực tập trong câu hỏi vì vậy đây là từ quan điểm đó, đối với các nhà phát triển toàn thời gian, thanh sẽ cao hơn một chút.
Khi bạn đang phỏng vấn thực tập, bạn phải nhớ rằng họ có thể chưa hoàn thành việc học và họ cũng có thể vào đại học mà không có bất kỳ nền tảng nào về lập trình và khoa học máy tính. Như vậy, bạn cần mở rộng kỳ vọng đến những gì bạn có thể mong đợi một cách hợp lý để ai đó biết và mức độ uy tín của vị trí (tức là Google có thể thoát khỏi những kỳ vọng mà một công ty mà mọi người chưa từng nghe thấy có thể).
Nhìn qua các câu hỏi mà bạn trình bày, tôi có thể sẽ xem chúng như sau trong một cuộc phỏng vấn:
1) Viết hàm trả về true nếu các cạnh tam giác (tất cả các số nguyên) a, b và c có thể biểu diễn một tam giác vuông.
Ứng dụng cơ bản của hình học với mã hóa đơn giản, hầu hết sinh viên sẽ có thể làm điều này mà không gặp nhiều khó khăn. Nhiều nhất là một lời nhắc nhở của Định lý Pythagore có thể cần thiết nếu họ đang thể hiện một chút căng thẳng vì đang trong một cuộc phỏng vấn. Điều này gần như có thể được coi là một vấn đề "tăng cường bản ngã" ở chỗ nó có thể giúp giải quyết một số người nếu họ rất lo lắng khi đi vào cuộc phỏng vấn.
2) FizzBuzz
Một lần nữa, một ứng dụng khác của một số tuyên bố kiểm soát cơ bản. Học sinh chưa được tiếp xúc với toán tử mô đun, hoặc chưa sử dụng nó nhiều, có thể cần được nhắc nhở về nó, nhưng không nên gặp bất kỳ vấn đề thực sự nào khi giải quyết vấn đề.
3) Tính toán phần tử thứ N của Fibonacci bằng cách sử dụng đệ quy (nếu họ không biết Fibonacci là gì, tôi thậm chí sẽ viết cho họ định nghĩa F (n) = F (n-1) + F (n-2); F (1 ) = 1; F (0) = 1).
Đây có thể là một vấn đề khá phổ biến vì vậy hầu hết (nếu không phải tất cả) sinh viên sẽ nhìn thấy nó tại một số điểm trước khi tốt nghiệp. Điều hấp dẫn là nó thường xuất hiện khi đệ quy được trình bày cho sinh viên vì nó cho vay chính nó hoặc một giải pháp dựa trên đệ quy hoặc vòng lặp mà sau đó có thể được so sánh để sinh viên từ các trường khác nhau có thể nhìn thấy nó vào các thời điểm khác nhau tùy theo trình tự các khóa học. Trong thực tế, nếu ai đó không thể đưa ra đệ quy tôi sẽ yêu cầu một giải pháp thay thế bằng cách sử dụng các vòng lặp và nếu họ không thể đưa ra điều đó thì tôi sẽ quan tâm hơn đến khả năng tiềm năng của họ.
4) Thực hiện danh sách cấu trúc cho số nguyên và hàm ghi để đảo ngược nó.
Câu hỏi này thực sự có thể hơi quá mở vì nó được viết nên nó cũng có thể là một câu hỏi hay để xem ứng viên tìm kiếm thông tin bổ sung như thế nào (ví dụ nên xóa các hàm, chuyển đổi sang mảng, v.v.), nhưng cũng được cung cấp tuyên bố vấn đề được xác định ("Thực hiện cấu trúc danh sách cơ bản cho các số nguyên cho phép các số được thêm vào cuối hoặc ở một chỉ số tùy ý, bị xóa và bao gồm một hàm để trả về một bản sao đảo ngược của danh sách") học sinh có thể giải quyết vấn đề miễn là danh sách là một cấu trúc phổ biến được trình bày trong khóa học cấu trúc dữ liệu ban đầu hoặc trong khóa học khoa học máy tính cơ bản sớm.
Về mặt đối phó với các ứng cử viên, nếu họ gặp khó khăn, hãy chắc chắn rằng họ thoải mái và cho phép họ một chút khoan dung vì họ có thể chỉ lo lắng về hiệu suất vì đây có thể là cuộc phỏng vấn thực sự đầu tiên của họ. Lời khuyên về việc giải quyết các vấn đề có thể được yêu cầu, hầu hết trong trường hợp của vấn đề thứ ba và thứ tư trái ngược với hai vấn đề đầu tiên.
Ngoài ra, cấu trúc quy trình phỏng vấn tổng thể để có các điểm "lối ra duyên dáng" được tích hợp. Ví dụ: bạn có thể có chương trình nghị sự sau:
- Gặp gỡ và chào hỏi, làm thủ tục phỏng vấn.
- Phỏng vấn ngắn với (các) nhân viên lập trình, các câu hỏi cơ bản về lý lịch.
- Trình bày bài kiểm tra lập trình.
- Phá vỡ
- Trở về sau giờ nghỉ, sa thải một số ứng cử viên không phù hợp.
- Phỏng vấn mở rộng với nhân viên lập trình viên.
- Phỏng vấn nguồn nhân lực (nếu được yêu cầu).
- Gói lại.
Luồng phỏng vấn này có xu hướng hoạt động tốt nếu bạn muốn có thể loại bỏ các ứng viên sớm vì họ biết ngay từ đầu rằng họ có thể bị đuổi việc sau giờ nghỉ. Cuộc phỏng vấn ngắn trước bài kiểm tra cũng có nghĩa là họ không xuất hiện để làm bài kiểm tra giúp họ thực hành phỏng vấn và cũng có thể cho phép họ quyết định rằng họ không phù hợp. Nếu có các lập trình viên khác quan sát bài kiểm tra hoặc hỗ trợ ứng viên trong suốt quá trình đó thì điều đó cũng cho họ cơ hội vượt qua / thất bại ứng viên trong khi họ đang nghỉ ngơi ngắn.
Tại mọi thời điểm khi bạn đang phỏng vấn thực tập và ứng viên là sinh viên, bạn phải nhớ rằng họ vẫn là sinh viên và có thể không thực hành nhiều với các cuộc phỏng vấn (dẫn đến lo lắng về hiệu suất có thể) và cũng có thể không đạt được điểm trong nghiên cứu của họ thậm chí có thể trả lời các câu hỏi có nghĩa là có thể nên gửi chúng theo cách của họ với một bản sao của "giải pháp lý tưởng" cho các vấn đề họ đưa ra.