Làm thế nào tôi có thể kiểm tra các kỹ năng PHP trong một cuộc phỏng vấn? [đóng cửa]


58

Công ty của tôi cần thuê một nhà phát triển PHP, nhưng không ai có kiến ​​thức về PHP trong công ty của tôi và chúng tôi thấy khó kiểm tra các kỹ năng PHP. Nếu đó là một nhà phát triển C / Java, tôi sẽ yêu cầu anh ta viết một triển khai nhanh Trò chơi cuộc sống, nhưng PHP là một ngôn ngữ hoàn toàn khác.

Tôi thấy thử nghiệm này với sự quan tâm:

http://vladalexa.com/scripts/php/test/test_php_skill.html

Bất cứ ai khác có nhiều đề xuất hơn?


3
Thử nghiệm thú vị, không bao gồm SQL tiêm mặc dù tôi chắc chắn sẽ bao gồm. Tôi đoán rằng bài kiểm tra đó là một cách tốt để kiểm tra khả năng của họ để xác định mức độ quen thuộc của họ với cách PHP xử lý các biến và không nhiều thứ khác.
Ben Brocka

6
Dù bạn làm gì, đừng đặt câu hỏi về cách đánh vần tên hàm tiêu chuẩn. Việc đặt tên hàm PHP không nhất quán.
Chris C


16
Tôi sẽ bớt lo lắng về các chương trình PHP của họ và hơn thế nữa nếu họ có thể lập trình, làm việc với nhóm, hiểu về bảo mật web, v.v.
Peter Loron

12
Nếu không ai trong công ty của bạn biết rõ về PHP, thì cách tốt nhất cho bạn là sử dụng một số dịch vụ kiểm tra kỹ năng. http://tests4geek.com/test/php-mysql - Tôi thích cái này. Và sau đó, nếu kết quả sẽ tốt, bạn có thể yêu cầu anh ta viết một số mã PHP. Ví dụ, có sinh viên và đối tượng trong cơ sở dữ liệu. Yêu cầu anh ta viết biểu mẫu HTML, trong đó giám đốc chỉnh sửa các dấu trong bảng (Học sinh ở cột bên trái, Đối tượng ở hàng trên cùng, Dấu ở vị trí giao nhau).
Joseph

Câu trả lời:


71

  • Yêu cầu thí sinh viết mã
  • Yêu cầu thí sinh đọc mã

Nếu bạn yêu cầu ứng viên viết mã, hãy đảm bảo rằng:

  • Mã không tầm thường nhưng nhỏ
  • Bạn cho phép truy cập vào hướng dẫn và internet

Nếu bạn yêu cầu ứng viên đọc mã, hãy đảm bảo rằng:

  • Mã này có một số lỗi nhỏ
  • Mã này có một số lỗi không nhỏ
  • Mã này hoạt động tốt, nhưng nó có thể dễ dàng tối ưu hóa

Bạn có thể sử dụng ba hoặc nhiều đoạn mã khác nhau, bắt đầu từ mã đơn giản hơn và chỉ chuyển sang mã tiếp theo nếu bạn thấy ứng viên đó dễ dàng đối phó. Ném vào một số đệ quy, để gia vị mọi thứ.

Tài nguyên

Yêu cầu một danh sách chi tiết các tài nguyên PHP mà ứng viên sử dụng. Sách, blog, diễn đàn, tạp chí, v.v ... Đó là cách các nhà tuyển dụng hiện tại của tôi phát hiện ra về StackOverflow .

Nếu ứng viên đề cập đến StackOverflow hoặc Lập trình viên, bạn KHÔNG nên hỏi hoặc cố gắng tìm ra tên người dùng của họ. Nếu họ muốn quảng cáo danh tiếng của mình, họ đã bao gồm một liên kết Nghề nghiệp 2.0 trong sơ yếu lý lịch của họ.

Khung

Mọi nhà phát triển PHP nên biết về các khung PHP phổ biến nhất:

và thông thạo ít nhất một trong số họ. Bạn có thể có sẵn một vài mẫu mã cho từng người và yêu cầu ứng viên đọc và giải thích chúng, sau khi họ cho bạn biết họ quen thuộc với mẫu nào hơn.

Gỡ lỗi và hồ sơ

Tôi luôn cảm thấy rằng các nhà phát triển PHP đang thiếu các kỹ năng sửa lỗi và lược tả (có lẽ chỉ các nhà phát triển PHP mà tôi đã làm việc cùng). Nếu trong quá trình thảo luận bạn phát hiện ra rằng ứng viên chủ động sử dụng xdebug , đừng bận tâm đến phần còn lại của cuộc phỏng vấn và chỉ cần thuê họ. ;)

Vệ sinh đầu vào

Điều này quan trọng. Bạn có thể bắt đầu với một cuộc thảo luận về lý do tại sao nó quan trọng và sau đó yêu cầu các phương pháp phổ biến nhất để đạt được nó. Cuộc thảo luận này sẽ giúp bạn về những gì cần hỏi.

Một số gợi ý:

PHP snafus

Bạn có thể tìm thấy rất nhiều snafus PHP trong cuộc thảo luận tuyệt vời này . Nếu bạn đang phỏng vấn cho một vị trí cấp cao, bạn nên xác định hỏi về một số trong số đó. Vài ví dụ:

Xử lý các giá trị số của PHP trong chuỗi:

"01a4" != "001a4" // true
"01e4" == "001e4" // also true

Mã PHP hợp lệ :

System.out.print("hello");

Trong PHP, một chuỗi tốt như một con trỏ hàm:

$x = "foo";
function foo(){ echo "wtf"; }
$x(); # "wtf"   

Kiểm tra đơn vị

Tôi cần nói nhiều hơn?

Phần kết luận

Một nhà phát triển PHP giỏi nên kết hợp nhiều kỹ năng & tài năng:

  • Hiểu rõ về HTTP
  • Hiểu rõ về cấu hình Apache (Ngay cả khi bạn sử dụng máy chủ web khác tại công ty của mình)
  • Ít nhất là một sự hiểu biết cơ bản về JavaScript
  • Một sự hiểu biết tuyệt vời về HTML / CSS

Danh sách đi và về. Hãy chắc chắn rằng bạn điều chỉnh cuộc phỏng vấn theo nhu cầu cụ thể của việc mở công việc, bạn không muốn chỉ thuê một nhà phát triển giỏi mà là một nhà phát triển giỏi, đó là điều tuyệt vời mà bạn cần anh ấy / cô ấy làm ngay lập tức.


22
Câu trả lời tổng thể tốt, nhưng tôi không đồng ý về phần 'khung' và phần 'hiệu suất cơ bản'. Cho dù bạn có biết một khuôn khổ nhất định hay không không nói nhiều về phẩm chất của bạn với tư cách là một lập trình viên. Về phần hiệu suất: nếu bạn tối ưu hóa ở cấp độ này, có lẽ bạn không nên sử dụng PHP ở nơi đầu tiên. Tôi đưa ra lựa chọn giữa các lựa chọn thay thế bạn liệt kê hàng chục lần mỗi ngày, nhưng luôn dựa trên khả năng đọc và chức năng, không phải hiệu suất. Câu trả lời chính xác cho những câu hỏi về hiệu suất này là "hầu hết thời gian không thành vấn đề".
tdammers

1
@YannisRizos: Mặc dù rất có thể giúp bạn dễ dàng hòa nhập vào một nhóm mà bạn cho rằng trong công ty của OP, họ sử dụng một trong những khung phổ biến này, nhưng nếu họ không biết thì một trong hai khung đó sẽ không chứng minh được điều gì. Có lẽ bạn muốn nói phần này như một cách để kiểm tra khả năng làm việc của anh ấy với một khung hơn là với các khung đó? (Điểm trong trường hợp: trong công ty tôi làm việc cho chúng tôi sử dụng khung phát triển nội bộ)
Purefan

2
@Petah Điều đó không có ý nghĩa gì cả, đặc biệt là ở giai đoạn phỏng vấn và tôi sẽ tránh làm việc tại một công ty yêu cầu mọi người tiết lộ thông tin như thế trong suốt cuộc phỏng vấn. Toàn bộ lý do "che giấu điều gì đó" là sai lầm, imho, tôi không quan tâm đến chủ nhân của mình khi biết tôi dành thời gian rảnh rỗi như thế nào, và đó chỉ là về nó. Nếu tôi quan tâm đến việc công khai tài khoản Lập trình viên của mình, thì đó là một câu chuyện khác ...
yannis

1
@Petah Vâng, tôi thành thật hy vọng các nhà tuyển dụng trong tương lai không cố gắng tìm hiểu tính cách của tôi thông qua các hoạt động Lập trình viên của tôi (những người muốn dành 25% -35% thời gian của họ với một mod nazi độc ác;)
yannis

1
Không đồng ý với điều khung. Thực hành tốt, hiện đại là sử dụng các thành phần áp dụng từ các khung bằng cách sử dụng trình soạn thảo mà bạn yêu cầu thay vì sử dụng toàn bộ khung. Trên thực tế, điều tương tự cũng có thể được nói trong thế giới JS bây giờ ..
John Hunt

44

Bài kiểm tra mà bạn liên kết đến rất thú vị và câu trả lời của Yannis Rizos rất hay, nhưng tôi nghĩ điều quan trọng là:

Nếu bạn cần một nhà phát triển giỏi, đừng tìm nhà phát triển PHP. Hãy tìm một nhà phát triển giỏi, người biết PHP. Điều đó có nghĩa là, ít nhất một nửa cuộc phỏng vấn bạn nên đặt câu hỏi không liên quan nhiều đến cú pháp PHP hoặc các hàm PHP.

Hỏi anh ta MVC là gì, AJAX là gì, HTTP hoạt động như thế nào, REST hoạt động như thế nào, SQL tham gia hoạt động như thế nào, một số cấu trúc dữ liệu, một số điều cơ bản về hiệu suất (cách bạn đo lường, cách cải thiện), kiểm tra cơ bản, cơ bản về bảo mật (XSS, XSRF, tiêm, cách bạn bảo vệ), kiến ​​thức thủ công lập trình cơ bản như được áp dụng cho các miền PHP điển hình - web, mạng, chuyển đổi dữ liệu, v.v.

Nếu anh ta giỏi về điều đó, hãy tiến hành yêu cầu anh ta viết một số mã đơn giản, chọn một số nhiệm vụ dễ dàng không mất nhiều thời gian - như tìm các từ có hầu hết các nguyên âm trong một hàng trong văn bản hoặc đảo ngược từng từ trong văn bản hoặc nhân hai từ ma trận. Bạn cũng có thể yêu cầu anh ấy thực hiện Trò chơi cuộc sống bằng PHP, nếu bạn thích :)

Nếu anh ta vượt qua điều đó, thì bạn có thể tiến hành các câu hỏi PHP khó hơn, nhưng đừng đặt nặng vấn đề này. Anh ấy có thể đọc hầu hết trong sách hướng dẫn, và những gì anh ấy không thể đọc, anh ấy sẽ học khá nhanh nếu anh ấy giỏi. PHP được xây dựng để đơn giản, vì vậy nếu anh ta là một lập trình viên giỏi và có một số kiến ​​thức làm việc về PHP, anh ta có thể sẽ có thể bắt kịp. Nếu anh ta biết cách lập trình nói chung, thì học cách lập trình trong PHP dễ hơn ngược lại - biết tiểu tiết cú pháp PHP không quan trọng nếu bạn không hiểu các bài kiểm tra đơn vị là gì hoặc làm thế nào để thoát khỏi các vấn đề XSS.


13

Mặc dù câu trả lời của Yannis Rizos là một câu hỏi hay - tôi biết tôi sẽ không vượt qua bài kiểm tra đó và tôi có thể sử dụng câu trả lời đó như một tài nguyên để xác định nơi tập trung để cải thiện các chương trình PHP của mình, tôi nghĩ rằng sẽ rất đáng để bạn tìm một chương trình người bạn biết PHP để tham gia vào quá trình phỏng vấn. Tất cả các câu hỏi trong câu trả lời trước đều tốt, nhưng không có kiến ​​thức về tên miền, sẽ rất khó để đánh giá chất lượng của câu trả lời.

Điều đó nói rằng, tùy thuộc vào những gì bạn cần như những người khác đã nói cơ sở lập trình chung và sự phù hợp với nhóm có lẽ quan trọng hơn kiến ​​thức cụ thể về ngôn ngữ.


5
+1 cho I think it would be worth your while to find a programming buddy who knows PHP to sit in on the interview process., đề xuất tuyệt vời.
yannis
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.