A: Scott Biddle, Lập trình viên phần mềm có kinh nghiệm (1998-nay)
=======
Là một lập trình viên có trên 20 năm kinh nghiệm thì, để tôi nói thế này nhé:
Tôi là người chuyên giải quyết các vấn đề. Bạn thuê tôi vì khả năng phân tích mọi thứ một cách có logic và tìm ra được giải pháp phần mềm nào đó cho vấn đề ấy. Trong sự nghiệp của mình, tôi đã phải viết ra những giải pháp ấy bằng 15 ngôn ngữ lập trình khác nhau và bao giờ cũng trong nhiều môi trường.
Nếu bạn gặp tôi và bảo rằng “Anh sẽ viết một hàm đảo ngược xâu kiểu gì đây?” để chứng tỏ rằng tôi là một lập trình viên, khả năng cao là tôi sẽ không tôn trọng bạn và sẽ xổ ra một vài đoạn giả mã (pseudocode) và có cả lỗi cú pháp trong đó. Một phần lớn là do bạn sẽ chẳng thể nhớ được từng chi tiết của từng ngôn ngữ nếu không có được một trí nhớ hình ảnh (photographic memory), và cuối cùng khi thực sự bắt tay làm việc trong môi trường thực tế, tôi sẽ xem những đoạn code liên quan để hiểu được những quy chuẩn và cả các khuôn mẫu (pattern) được đặt ra trước lúc làm việc.
Nếu đó là một hệ thống hoàn toàn mới, chuyện sẽ khác. Song tôi sẽ vẫn xem những đoạn code liên quan lúc vừa bắt đầu. Đó là lý do người ta nói rằng, “lập trình viên khá sẽ viết mã, còn lập trình viên giỏi sẽ dùng lại”.
Cuối cùng, nếu bạn muốn có một lập trình viên giỏi, bạn sẽ cần một người có khả năng ghép nối những thứ có sẵn và tái sử dụng chúng theo một cách thức hoàn toàn mới mẻ và hấp dẫn chứ không phải ai đó nhớ được mọi thứ mà mình đã học được trong cuốn “Giới thiệu về Khoa học Máy tính” giống cách mấy cô cậu sinh viên năm nhất hay làm nhiều năm trước đây.
Nếu bạn định thuê một lập trình viên 10 năm kinh nghiệm và lại đang thử thách họ như một người mới vào nghề thì bạn đã thực hiện cuộc phỏng vấn của mình sai cách rồi đó.