
Quite often (constantly) I have to interview people who want to arrange a job in my department for the position of “junior PHP developer” and “PHP developer”. And, with enviable consistency, I and the team-lead of the department ask the same questions ...
Each interview begins with the same question:
- Why PHP?And, oddly enough, some manage to “fall asleep” already on it:
- I tried N language - so complicated, and so I decided to learn PHPor better yet:
- I decided to work in the PHP department for now, and then go to the .Net departmentBut most often we hear one of the following answers:
- Made a page - needed a speaker - the choice fell on PHP
- Someone, for some reason advised
- Taught at university - only PHP and was able to master
')
Next, approaching programming, we are trying to understand whether the interviewee has at least some kind of thread about the OOP, about abstraction,
inheritance ,
encapsulation and
polymorphism . Yeah, someone skipped lectures at the university;)
And now it begins:
- What version of PHP was used? What are the differences between the fourth and fifth versions?- Which third-party libraries used?- Experience with various CMF / CMS?- Data types in PHP? (there are only 8 of them, do not believe - read the
manual )
- Name memory functions for working with arrays, strings- What is serialization?And then a few practical questions ...
- What is Apache? And mod_rewrite?- The abbreviation SVN and CVS about what-thread say?- Bugtracking system? BugZilla? Jira?Do not forget about the database:
- What is a relational database?- Normalization, denormalization- And a bit of practice (a lot-to-many connection in MySQL, a catalog of goods of arbitrary nesting)
HTML + CSS + W3C (I consider knowledge of HTML at a basic level to be mandatory):
- Draw a simple form to send a file- CSS you know? What is the difference between writing #my and .my?- Unscramble this kind of entry in CSS ... (and then something unimaginable, but quite readable, I don't often ask, if only the subject declares that he knows CSS)
- What are W3C standards?Linux:
- With * nix familiar?- Apache and PHP setup?Network technologies and not only:
- You know what the levels of the OSI model ? Give at least their number. (this is a question for "five")
- What is the protocol for transferring data on the Internet?- Tell me what is found when you type the address in the browser line and press Enter?Foreign languages:
We don’t really suffer here, but if the resume indicates the level of knowledge of English as “good” - then
COTOHA is in a hurry to help
us — write truthfully — the level of university or elementary school is better ...;)
It happens, we are puzzling with some sort of test for quick wits (change the meaning of the variables A and B in some places without using the third variable)
Here we are thinking of writing a test that would unequivocally speak about the level of knowledge of a person (brainbench is not suitable for beginners), if anyone has something to offer - write in the comments ...
Crosspost:
PHP: Interview (and there are already many informative comments)
Upd : The second, or even the first question will probably be soon: “Do you read Habr on Fridays?” ...
Upd : I will answer a number of questions from the comments here:
- Does a PHP developer need to know this ...? - If a person did not answer a series of questions at the interview, this does not mean that he failed him, perhaps some questions are too far from being worked out, but their knowledge will never be superfluous
- Do you really need this all? - Yes, because we use version control systems and bug tracking systems, we encounter ready-made CMS systems, code using the Zend Framework and CMF / CMS which we develop ourselves
- What kind of RFP can you qualify for after the interview? - The RFP is negotiated at the end of the probationary period, if you are interested in more detailed information, see www.developers.org.ua
- There is a manual, why remember for memory! - I don’t need a person in the department who will climb into the manual every five minutes in order to learn how to build a “for” cycle or sort an array, or even worse - it will distract others for this purpose
- Give the test task better! - The situation today is such that the junior developer will not do the test task, but rather just go to an interview with another company
- In which company is such an "interview", I will not go to work in it! - 3 mouse clicks separates you from the answer, if not found - we are not waiting for you ...