Tôi hoàn toàn muốn bạn kiểm tra mã bảng trắng tôi yêu cầu bạn viết. Tôi muốn bạn nói to trong khi bạn viết nó, xem nó, phát hiện ra hầu hết các lỗi cú pháp bạn đã thực hiện và chỉ ra làm thế nào nó có thể hiệu quả hơn. Trong thực tế, đó là loại điểm của việc làm nó ở bảng trắng. Không phải là một kiểu bắn một lần, viết ra tất cả, uh-huh-you-get-70/100. Đó là một cuộc trò chuyện, qua trung gian mã và được tổ chức tại bảng trắng thay vì trên bàn của tôi.
Dưới đây là một số cách tuyệt vời để thất bại trong bài kiểm tra "Mã hóa bảng trắng":
- từ chối nó
- đừng hỏi một câu hỏi làm rõ (ngôn ngữ, nền tảng, điều gì đó về các yêu cầu) VÀ đừng cho tôi biết những giả định của bạn về bất kỳ câu hỏi nào VÀ đưa ra những giả định loại bỏ những gì tôi sẽ trả lời
(vd
- hỏi tôi ngôn ngữ nào tôi muốn sử dụng, nhận câu trả lời trong phần mô tả công việc và sau đó viết nó bằng ngôn ngữ khác vì bạn không thoải mái với ngôn ngữ tôi yêu cầu.
(Chúng tôi là chuyên gia tư vấn ở đây. Tôi đang thử nghiệm hành vi tư vấn cũng như mã hóa. Hỏi khách hàng chỉ đúng nếu khách hàng thực sự có lựa chọn. Điều khiển cuộc trò chuyện với những người sẽ trả tiền cho bạn là khó khăn. Đây là bài 1. Đó là một đánh dấu bạn vào bất kỳ chủ đề nào, nhưng đối với cụ thể "bạn đang thuê một lập trình viên X nhưng tôi không muốn viết bằng X cho bạn" thì bây giờ bạn có hai dấu đen lớn.)
- cho tôi thấy bạn là một phi hành gia kiến trúc bằng cách lấp đầy hai bảng trắng với các giao diện, mẫu nhà máy, trừu tượng, tiêm và kiểm tra khi tôi muốn bạn "in các số từ một đến 5".
(bạn nghĩ tôi đang phóng đại nhưng tôi đã có một anh chàng khái quát vấn đề của mình một cách đáng kể - bám vào ví dụ trên, hãy nói thay vì 1 đến 5, giải pháp của anh ta sẽ thực hiện bất kỳ chuỗi số nguyên tùy ý nào (lấy từ đâu? Tôi tự hỏi) và là 5 nhiều lần miễn là bất kỳ ai khác - và anh ta quên thực sự gọi hàm đã thực hiện công việc. Lặp đi lặp lại nhắc nhở và đề nghị anh ta đi qua nó như thể anh ta là trình gỡ lỗi không dẫn đến việc anh ta nhận ra rằng hàm này không bao giờ được gọi.)
Tôi luôn nói "bạn có thích điều đó không?" "bạn có thể cải thiện điều đó?" "Đưa tôi qua đó" và tương tự. Điển hình là dấu chấm phẩy bị mất được phát hiện, hoặc từng phần một, trong cuộc trò chuyện đó. Nếu không, tôi thường đánh dấu nó lên dây thần kinh.
Những điều khác bạn có thể không nghĩ là vấn đề ở bảng trắng quan trọng với tôi:
- khi bạn hoàn thành, tôi vẫn có thể đọc nó chứ? Bạn đã bị nhòe, viết nguệch ngoạc, chuyển màu, rút mũi tên, gạch bỏ và nói chung là để lại một mớ hỗn độn không thể sử dụng? Hoặc bạn có biết rằng bảng trắng có thể xóa được, chỉ vào các dòng mã trong không khí thay vì khoanh tròn / mũi tên và để lại cho tôi thứ gì đó tôi có thể chụp ảnh và giữ trong tệp thiết kế?
- bạn đã hỏi tôi bao nhiêu? Bạn có thích bị bỏ lại một mình và không thảo luận về mã của mình không, hoặc bạn có thấy mã là một thứ hợp tác không? Làm thế nào bạn trả lời khi tôi hỏi bạn những điều trong khi bạn vẫn đang viết nó?
- bạn đã chế nhạo nhiệm vụ "dễ dàng" hay mờ nhạt ở nhiệm vụ "khó"? Bạn có thô lỗ về việc được yêu cầu cho thấy bạn có thể viết mã không? Bạn có dễ dàng bị đe dọa bởi một vấn đề kỹ thuật, hoặc kiêu ngạo về khả năng của bạn để đưa ra một thuật toán tốt?
- bạn đang làm việc đó trong đầu, hoặc nhớ một giải pháp bạn đọc ở đâu đó? Tôi thường có thể nói cho các vấn đề khó khăn.
- bạn đã lên kế hoạch trước về nơi bạn bắt đầu viết chưa? Những người hết bảng trắng thường bắt đầu quá thấp hoặc viết quá lớn - tôi có thể nói rằng họ không biết đây sẽ là 20 dòng mã và vì vậy chỉ còn lại 5 chỗ - tin hay không chi tiết nhỏ này được nhân đôi trong nhiệm vụ ước tính lớn hơn là tốt.
- bạn đã xem qua trước khi bạn nói bạn đã làm xong chưa? Tôi có thấy bạn chỉ hoặc gõ theo cách của bạn thông qua nó và tự kiểm tra nó trước khi tôi yêu cầu bạn không? Khi tôi nhắc bạn, hoặc hỏi bạn những câu hỏi cụ thể về nó, bạn có nhìn lại nó không, hay chỉ đi từ bộ nhớ? Bạn có sẵn sàng xem xét rằng bản thảo đầu tiên của bạn có thể không hoàn thành?
Tôi thực sự khuyên bạn nên thực hành mã hóa tại bảng trắng. Tôi luôn cảnh báo những người được phỏng vấn rằng họ sẽ được yêu cầu làm điều đó. Nếu bạn có quyền truy cập vào một bảng trắng thực tế thì hãy đặt cho mình một số vấn đề đơn giản và thực hành làm chúng ở đó. Nó sẽ giúp hiệu suất và sự tự tin của bạn.
Xin lỗi tôi biết tôi đang ở trong lãnh thổ TL; DR nhưng đây là điều - mã hóa trong bảng trắng không chỉ là mã hóa . Đó là một bài kiểm tra nhiều hơn sự nắm bắt cú pháp của bạn. Có rất nhiều hành vi của các lập trình viên giỏi được thể hiện trong phản ứng của bạn với nhiệm vụ này. Nếu bạn nghĩ rằng đó chỉ là về mã hóa thì bạn đang thiếu điểm.
Trong các cuộc trò chuyện khác về thử nghiệm bảng trắng, mọi người nói với tôi rằng tôi có thể từ chối một ứng cử viên tốt với nó. Thành thật mà nói, đó là một rủi ro tôi sẵn sàng chấp nhận. Mỗi vòng tuyển dụng đều có vài người tôi có thể thuê. Một số người có sơ yếu lý lịch tuyệt vời, những người đang làm tốt trong phần hỏi và trả lời của cuộc phỏng vấn, bị ngã ở bảng trắng và rõ ràng không thể (với bất kỳ số lượng nhắc nhở nào) viết mã đơn giản bằng ngôn ngữ mà họ tuyên bố biết. Tôi có thể đã thuê một số trong số này. Bất kỳ công cụ nào ngăn chặn đó là một công cụ tôi sẽ tiếp tục sử dụng. Tôi chưa bao giờ kết thúc việc không có ai thuê thuyền vì tất cả các ứng cử viên của tôi đã gửi nhầm vào bảng trắng và tôi không hy vọng mình sẽ làm được.