It depends on the level you are applying for. An approximate list of topics that I touch upon when interviewing developers (I’ll clarify what PHP developers mean):
Patterns :
- Gang of Four (GoF) format. At least the main ones.
- more about generating patterns. Why do we need all sorts of factories and factory methods?
- Continuing the theme of generating patterns: singleton. When to use? When not worth it? Features of implementation in a specific language. What are the problems with it?
- Structural and behavioral patterns. Decorator, Deputy, Visitor, Linker, etc.
- Outside the format of the gang of four: Object-relational mapping patterns - Table Gateway, Row Gateway, Active Record, Data Mapper, Unit Of Work. What is the difference between Row Gateway and Active Record? Active Record and Data Mapper? When is it more appropriate to use?
- MVC, HMVC, etc.
Object Oriented Design:
- SOLID principles
- L and D in SOLID
- Dependency Injection
- Dependecy Injection Container and Service Locator. What is it? What is the difference between them? Why not just create objects everywhere with the
new operator?
You can write for a long time, but ... The most practical advice I can give you and which will give quick results: take a few popular frameworks, for example Yii2 and Symfony, and take a couple of months of your life to follow the step-by-step lessons more than enough, try writing a few small projects on each of these frameworks. Starting with simple blogs, moving to some more difficult tasks. Along the way, google incomprehensible terms that you will come across in the lessons, before going to bed, read a couple of clever comments on these topics in order to delve into the question. For the sake of interest, try in one of the training projects as a database to use NOT MySql, but say PostgreSQL or at least SQLite. At least for a tick. If you diligently follow this advice, in a month, you yourself will be surprised at how much new and, most importantly, necessary for employment you will learn. You will have experience with several ORMs, you will know what REST is, you will be able to install packages through the composer, you will have at least a small, but understanding how different databases differ between themselves. And in a month you will be able to claim a junior position or at least a fresher. Do not forget to see how to work with Git, upload your training projects to GitHub (do not forget to include a link to your githab repository in your resume) and go ahead for interviews. The main thing then try to deepen your knowledge and fill theoretical gaps - a developer who is fluent in several tools (knows a couple of libraries and frameworks) is not interesting in the long term, you need a person who is constantly ready to learn and develop.
i = 0; i += i++ + ++i;i = 0; i += i++ + ++i;. What are bad global variables. What is O (N) and what generally happens from this area. Etc. Actually, this means that, for all of the above, we should not forget that we still need to be able to program ... - PinkTux