ฉันจะทดสอบทักษะ PHP ในการสัมภาษณ์ได้อย่างไร [ปิด]


58

บริษัท ของฉันต้องจ้างนักพัฒนา PHP แต่ไม่มีใครมีความรู้ PHP ใน บริษัท ของฉันและเราพบว่ายากที่จะทดสอบทักษะ PHP หากเป็นผู้พัฒนา C / Java ฉันจะขอให้เขาเขียนการนำ Game of Life ไปใช้อย่างรวดเร็ว แต่ PHP เป็นภาษาที่แตกต่างอย่างสิ้นเชิง

ฉันเห็นการทดสอบนี้ด้วยความสนใจ:

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

ใครมีข้อเสนอแนะเพิ่มเติม


3
การทดสอบที่น่าสนใจไม่ครอบคลุมการฉีด SQL แม้ว่าฉันจะครอบคลุมแน่นอน ฉันเดาว่าการทดสอบเป็นวิธีที่ดีในการทดสอบความสามารถในการกำหนดความคุ้นเคยกับวิธีที่ PHP ใช้กับตัวแปรและไม่มาก
Ben Brocka

6
ไม่ว่าคุณจะทำอะไรอย่าถามคำถามเกี่ยวกับการสะกดชื่อฟังก์ชันมาตรฐาน การตั้งชื่อฟังก์ชั่น PHP นั้นไม่สอดคล้องกัน
Chris C

1
สำเนาซ้ำที่เป็นไปได้ของprogrammers.stackexchange.com/questions/46274/…
Adam Lear

16
ฉันจะต้องกังวลน้อยเกี่ยวกับการสับ PHP ของพวกเขาและอื่น ๆ หากพวกเขาสามารถเขียนโปรแกรมทำงานร่วมกับทีมงานที่เข้าใจความปลอดภัยของเว็บอื่น ๆ
ปีเตอร์ Loron

12
หาก บริษัท ของคุณไม่มีใครรู้จัก PHP ดีวิธีที่ดีที่สุดสำหรับคุณคือใช้บริการทดสอบทักษะ http://tests4geeks.com/test/php-mysql - ฉันชอบอันนี้ และถ้าผลลัพธ์ออกมาดีคุณสามารถขอให้เขาเขียนโค้ด PHP ได้ ตัวอย่างเช่นมีนักเรียนและวิชาในฐานข้อมูล ขอให้เขาเขียนรูปแบบ HTML โดยที่ผู้กำกับแก้ไขเครื่องหมายในตาราง (นักเรียนอยู่ในคอลัมน์ด้านซ้ายหัวเรื่องอยู่ในแถวบนสุดเครื่องหมายอยู่ที่สี่แยก)
โจเซฟ

คำตอบ:


71

รหัส

  • ขอให้ผู้สมัครเขียนรหัส
  • ขอให้ผู้สมัครอ่านรหัส

หากคุณขอให้ผู้สมัครเขียนโค้ดตรวจสอบให้แน่ใจว่า:

  • รหัสไม่สำคัญ แต่เล็ก
  • คุณอนุญาตให้เข้าถึงคู่มือและอินเทอร์เน็ต

หากคุณขอให้ผู้สมัครอ่านโค้ดตรวจสอบให้แน่ใจว่า:

  • รหัสมีข้อผิดพลาดเล็กน้อย
  • รหัสมีข้อผิดพลาดเล็กน้อย
  • รหัสทำงานได้ดี แต่สามารถปรับให้เหมาะสมได้ง่าย

คุณสามารถใช้โค้ดอย่างน้อยสามส่วนเริ่มจากโค้ดที่ง่ายกว่าและเลื่อนไปยังโค้ดถัดไปหากคุณเห็นว่า copes ผู้สมัครได้อย่างง่ายดาย โยนในการสอบถามซ้ำเพื่อเครื่องเทศขึ้น

ทรัพยากร

ขอรายการทรัพยากร PHP โดยละเอียดที่ผู้สมัครใช้ หนังสือบล็อกเว็บบอร์ดนิตยสาร ฯลฯ นั่นเป็นวิธีที่นายจ้างปัจจุบันของฉันพบข้อมูลเกี่ยวกับStackOverflow

หากผู้สมัครกล่าวถึงStackOverflowหรือโปรแกรมเมอร์คุณไม่ควรถามหรือพยายามหาชื่อผู้ใช้ของพวกเขา หากพวกเขาต้องการโฆษณาชื่อเสียงของพวกเขาพวกเขาจะได้รวมลิงค์2.0 อาชีพในประวัติส่วนตัวของพวกเขา

กรอบ

นักพัฒนา PHP ทุกคนควรรู้กรอบ PHP ที่เป็นที่นิยมมากที่สุด:

และคล่องแคล่วในอย่างน้อยหนึ่งในนั้น คุณสามารถมีตัวอย่างโค้ดสองสามตัวอย่างให้แต่ละคนและขอให้ผู้สมัครอ่านและอธิบายหลังจากพวกเขาบอกคุณว่าพวกเขาคุ้นเคยกับอะไร

การดีบัก & การทำโปรไฟล์

ฉันมักจะรู้สึกว่านักพัฒนา PHP ขาดทักษะการดีบักและทำโปรไฟล์ (บางทีอาจเป็นเพียงนักพัฒนา PHP ที่ฉันเคยทำงานด้วย) หากในระหว่างการสนทนาคุณพบว่าผู้สมัครใช้งานxdebugอย่ากังวลกับการสัมภาษณ์ที่เหลือและเพียงแค่จ้างพวกเขา ;)

ฆ่าเชื้ออินพุต

นี้เป็นสิ่งสำคัญ. คุณสามารถเริ่มต้นด้วยการอภิปรายว่าเหตุใดจึงสำคัญและขอวิธีการทั่วไปเพื่อให้บรรลุ การสนทนานี้จะช่วยคุณในสิ่งที่จะถาม

คำแนะนำบางอย่าง:

PHP snafus

คุณสามารถพบ snafus PHP จำนวนมากในการสนทนาที่ยอดเยี่ยมนี้ หากคุณกำลังสัมภาษณ์ตำแหน่งระดับสูงคุณควรถามคำถามเหล่านี้อย่างเด็ดขาด ตัวอย่างบางส่วน:

PHP จัดการค่าตัวเลขในสตริง:

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

รหัส PHP ที่ถูกต้อง :

System.out.print("hello");

ใน PHP สตริงจะดีเท่ากับตัวชี้ฟังก์ชัน:

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

การทดสอบหน่วย

ฉันต้องการพูดอีกหรือไม่

ข้อสรุป

นักพัฒนา PHP ที่ดีควรรวมทักษะและความสามารถที่หลากหลาย:

  • ความเข้าใจ HTTP เป็นอย่างดี
  • มีความเข้าใจที่ดีเกี่ยวกับการกำหนดค่า Apache (แม้ว่าคุณจะใช้เว็บเซิร์ฟเวอร์อื่นใน บริษัท ของคุณ)
  • อย่างน้อยความเข้าใจพื้นฐานของ JavaScript
  • ความเข้าใจที่ดีของ HTML / CSS

รายการไปบนและบน. ให้แน่ใจว่าคุณปรับแต่งการสัมภาษณ์ตามความต้องการเฉพาะของการเปิดงานคุณไม่ต้องการจ้างนักพัฒนาที่ดี แต่เป็นนักพัฒนาที่ดีที่ยอดเยี่ยมในสิ่งที่คุณต้องการให้เขา / เธอทำทันที


22
คำตอบที่ดีโดยรวม แต่ฉันไม่เห็นด้วยในส่วน 'กรอบงาน' และส่วน 'ประสิทธิภาพพื้นฐาน' ไม่ว่าคุณจะรู้กรอบงานบางอย่างหรือไม่พูดถึงคุณสมบัติของคุณในฐานะโปรแกรมเมอร์ เกี่ยวกับส่วนประสิทธิภาพ: หากคุณปรับระดับนี้ให้เหมาะสมคุณอาจไม่ควรใช้ PHP ตั้งแต่แรก ฉันเลือกระหว่างตัวเลือกที่คุณระบุไว้หลายสิบครั้งในแต่ละวัน แต่มักจะขึ้นอยู่กับความสามารถในการอ่านและการทำงานไม่ใช่ประสิทธิภาพ คำตอบที่ถูกต้องสำหรับคำถามด้านประสิทธิภาพเหล่านี้คือ "ไม่สำคัญว่าเวลาส่วนใหญ่แล้ว"
tdammers

1
@YanisRizos: ในขณะที่มันเป็นไปได้ที่จะทำให้ง่ายขึ้นในการรวมกันเป็นทีมคุณกำลังสมมติว่าใน บริษัท ของ OP พวกเขาใช้หนึ่งในเฟรมเวิร์กที่ได้รับความนิยมเหล่านี้ แต่ถ้าพวกเขาไม่ทราบว่า คุณอาจหมายถึงส่วนนี้เป็นวิธีทดสอบความสามารถของเขาในการทำงานกับกรอบงานแทนที่จะเป็นกรอบงานเหล่านั้นหรือไม่? (จุดในกรณี: ใน บริษัท ฉันทำงานให้เราใช้กรอบการพัฒนาในบ้าน)
Purefan

2
@ Petah ไม่สมเหตุสมผลเลยโดยเฉพาะในขั้นตอนการสัมภาษณ์และฉันจะหลีกเลี่ยงการทำงานใน บริษัท ที่ขอให้ผู้คนเปิดเผยข้อมูลแบบนั้นในระหว่างการสัมภาษณ์ เหตุผล "การซ่อนอะไรบางอย่าง" ทั้งหมดนั้นเป็นเรื่องที่ผิดปกติฉันไม่สนใจนายจ้างที่รู้ว่าฉันใช้เวลาว่างอย่างไรและนั่นเป็นเรื่องเกี่ยวกับมัน หากฉันสนใจที่จะเผยแพร่บัญชีผู้เขียนโปรแกรมของฉันด้วยตัวเองนั่นเป็นเรื่องที่แตกต่าง ...
yannis

1
@ Petah ฉันหวังว่านายจ้างในอนาคตจะไม่พยายามที่จะทำความรู้จักกับบุคลิกของฉันผ่านกิจกรรมโปรแกรมเมอร์ของฉัน (ผู้ที่ต้องการใช้เวลา 25% -35% ของเวลาของพวกเขาด้วย mod nazi ชั่วร้าย)
yannis

1
ไม่เห็นด้วยกับสิ่งที่กรอบ แนวปฏิบัติที่ดีและทันสมัยคือการใช้ส่วนประกอบที่ใช้งานได้จากเฟรมเวิร์กโดยใช้ผู้แต่งที่คุณต้องการแทนที่จะใช้เฟรมเวิร์กทั้งหมด ที่จริงแล้วสามารถพูดได้ในโลกของ JS ตอนนี้ด้วย
จอห์นฮันท์

44

การทดสอบที่คุณเชื่อมโยงนั้นน่าสนใจและคำตอบของ Yannis Rizos นั้นยอดเยี่ยม แต่ฉันคิดว่าสิ่งที่สำคัญก็คือ:

หากคุณต้องการนักพัฒนาที่ดีอย่ามองหานักพัฒนา PHP มองหานักพัฒนาที่ดีที่รู้จัก PHP นั่นหมายความว่าอย่างน้อยครึ่งหนึ่งของการสัมภาษณ์คุณควรถามคำถามที่ไม่มีส่วนเกี่ยวข้องกับฟังก์ชั่น PHP หรือไวยากรณ์ PHP

ถามเขาว่า MVC คืออะไร AJAX, ทำงานอย่างไร HTTP, วิธีทำงานของ REST, SQL เข้าร่วมทำงานได้อย่างไร, โครงสร้างข้อมูลบางอย่าง, พื้นฐานประสิทธิภาพการทำงาน (วิธีที่คุณวัด, วิธีปรับปรุง), พื้นฐานการทดสอบ, พื้นฐานความปลอดภัย (XSS, XSRF) การฉีด, วิธีที่คุณปกป้อง), ความรู้พื้นฐานเกี่ยวกับการเขียนโปรแกรมพื้นฐานที่ประยุกต์ใช้กับโดเมน PHP ทั่วไป - เว็บ, เครือข่าย, การแปลงข้อมูลเป็นต้น

หากเขาทำได้ดีขอให้เขาเขียนโค้ดง่าย ๆ เลือกงานง่าย ๆ ที่ไม่ควรใช้เวลานานเช่นการหาคำที่มีสระส่วนใหญ่เรียงเป็นแถวในข้อความหรือกลับคำแต่ละคำในข้อความหรือคูณสอง การฝึกอบรม คุณสามารถขอให้เขานำ Game of Life ใน PHP ไปใช้ถ้าคุณชอบ :)

หากเขาผ่านสิ่งนั้นไปคุณสามารถดำเนินการกับคำถาม PHP ที่ยุ่งยากกว่านี้ได้ แต่อย่าให้น้ำหนักมากเกินไป เขาสามารถอ่านได้มากที่สุดในคู่มือและสิ่งที่เขาอ่านไม่ออกเขาจะเรียนรู้ได้อย่างรวดเร็วถ้าเขาเก่ง PHP ถูกสร้างขึ้นมาให้เรียบง่ายดังนั้นถ้าเขาเป็นโปรแกรมเมอร์ที่ดีและมีความรู้เกี่ยวกับ PHP เขาก็อาจจะสามารถติดตามได้ ถ้าเขารู้วิธีเขียนโปรแกรมโดยทั่วไปแล้วการเรียนรู้วิธีการโปรแกรมใน PHP นั้นง่ายกว่าการรู้ย้อนกลับของการรู้ไวยากรณ์ PHP ไม่สำคัญถ้าคุณไม่เข้าใจว่าการทดสอบหน่วยใดที่ใช้สำหรับหรือวิธีการกำจัดปัญหา XSS


13

ในขณะที่คำตอบของ Yannis Rizos เป็นคำตอบที่ดี - ฉันรู้ว่าฉันจะไม่ผ่านการทดสอบนั้นและฉันอาจใช้คำตอบนั้นเป็นแหล่งข้อมูลเพื่อพิจารณาว่าจะให้ความสำคัญกับการปรับปรุงการสับ PHP ของฉันอย่างไรฉันคิดว่ามันจะคุ้มค่า เพื่อนที่รู้ PHP ต้องนั่งลงในกระบวนการสัมภาษณ์ คำถามทั้งหมดในคำตอบก่อนหน้านั้นดี แต่หากไม่มีความรู้เกี่ยวกับโดเมนมันจะยากที่จะประเมินคุณภาพของคำตอบ

ที่กล่าวว่าขึ้นอยู่กับสิ่งที่คุณต้องการในขณะที่คนอื่นได้กล่าวว่าสิ่งอำนวยความสะดวกการเขียนโปรแกรมทั่วไปและความเหมาะสมของทีมอาจมีความสำคัญมากกว่าความรู้เฉพาะภาษา


5
+1 สำหรับI think it would be worth your while to find a programming buddy who knows PHP to sit in on the interview process.ข้อเสนอแนะที่ดี
yannis
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.