πŸ“œ ⬆️ ⬇️

Interview. Today

Interview
My job responsibilities include interviewing applicants for PHP developers. And then we will talk about the interview ...


Two years ago, a similar post caused a heated discussion both on my blog and on HabrΓ© , I will not say what has changed, I think you will see it.

Our HRs are already quite experienced and therefore take up some of the questions:
')
- Why did you leave your previous job?
- Why choose our company?
- How did you start learning programming?
- Why choose PHP?

Answers to these questions form the first impression of a person. It is often true ...
Then the conversation turns into a technical course. We can start with the basics of OOP - inheritance , encapsulation and polymorphism , and maybe skip this step.

- What PHP libraries, frameworks are you familiar with?

The applicant should be aware of the existence of such frameworks as Zend Framework, CakePHP, CodeIgniter or Symfony, and it is desirable to have experience working with one of them (the list can be expanded - this is not so important).

For more than 4 years of work as a PHP developer, I met three of these frameworks, and actively use the Zend Framework.
Knowledge of various frameworks gives you insights and ideas on how to write code. Each developer must go this way. Learn and participate in the development of Open Source projects - it will give you a lot of experience compared to what you can get yourself in analytical thinking. Answering this question will be appropriate to talk about their abilities to design and architectural thinking.


- What APIs did you have to work with?

Interested in Google API, AMF PHP, various payment gateway, Facebook API, Twitter API, etc.

This question is very important, because it is a question for your experience of integrating third-party applications. We, developers, spend a lot of time integrating third-party and internal libraries with the working application code. This also applies to the topic of the ability to read and understand someone else's code. Here you can talk extensively about your experience of integrating various libraries, classes or whole products into the working code of a project.


- Is there any experience with different CMS? Experience not as a webmaster, but as a programmer ...

I think the company uses some CMS in their projects. Tell me in detail about the CMS with which you are familiar, or even about your self-written one with which you had to work.


- Worked with PHP 4? Name the differences with the 5th version.
- What's new in PHP 5.3?
- Data types in PHP?

This question on finishing moves, he often confuses, if a person answers that there are eight of them, and then starts listing them, it means he was preparing for an interview :)

All answers are in the PHP manual, just RTFM.


- What is serialization?
- What is the most difficult thing to develop in PHP?

This question can dot the β€œi”, but do not ask it at the very beginning - it scares ...

The second question is very good, and maybe even decisive. I would tell here about the design, architecture and application of OOP in my last project or in my most interesting project. Also, I would add about the high optimization of the application and work with large data arrays. And, if you worked with some kind of β€œexotic”, but mega-useful libraries, such as Sphinx Search, Lucene, or with something unique in your company, then this is also worth telling.


- What design patterns do you know? Tell me what the salt of each?
- What is MVC ? What role does each of the constituent elements play?

Design patterns or design patterns are nothing more than common methods for solving typical problems. Those who carefully read the book "Gangs of Four" or "Architecture of corporate software applications" Fowler will answer this question even with some pleasure.


- What web-servers did you work with? Apache? Nginx? Iis?
- Can you describe in as much detail as possible what happens between how the user entered google.com in the address bar and how the browser showed the page?
- Version control systems? Svn? CVS? Git? What is branch / trunk / tags?
- Bugtracking system?

Some web development tasks are solved by setting up web servers. Therefore, when creating websites, be kind enough to familiarize yourself with the capabilities of the web server and the HTTP protocol.
In modern web development without a version control system, it is not only a tool for tracking changes, it is also a good way to check the quality of the code, by analyzing the patch of novice programmers.


I torment a little on a DB:
- What database did you work with? What are transactions, stored procedures, triggers?
- Kohl worked with MySQL can you name the differences between versions 4.1, 5.0, 5.1?
- What are the differences between MyISAM and InnoDB?

All this is in the MySQL manual, and at least theoretically, the developer should have knowledge of the additional features of MySQL. Types of storage engine is not so much, and you need to know about the characteristics of the main two.
If you have more than 3 years of experience in web development in php, python, perl, then most likely you started with mysql 3.23 and as MySQL evolves, you will see the differences and possibilities of new versions. Therefore, this question should not knock you down.


web- HTML, CSS, Javascript:
β€” CSS ?
β€” ?
β€” CSS ?
β€” ? HTML .

#my p.sel:first-line, .main li li a:hover + span
{
color:#f00; /* ? */
}


, CSS . , , .


β€” Javascript'?
β€” Javascript'a?
β€” Javascript ? ? , ?

jQuery/UI, Prototype/Aculo, MooTools/MochaUI, Dojo Toolkit, ExtJs.

β€” Javascript?
β€” AJAX ?
β€” JSON? JSONP ?

Javascript CSS, , . Javascript , Javascript.


β€” ? β€” - .

, β€” ( )…

, ? , Junior , , .

, ( ):


,

Source: https://habr.com/ru/post/67963/


All Articles