When PHP Framework Sucks (5 Part Series)
If you're PHP developer of any experience and you were at least at one job interview, then you've been asked to describe your knowledge in a specific framework. This question becomes so common that we considered it standard for job interviews for PHP positions. Why companies and recruiters insist so much on knowing how you're skilled in the specific framework? Why might you not pass the interview round if your experience in the specific framework is not sufficient?
Everybody should consider framework as a tool, but never as a skill. Separating programming skills from knowledge of a specific framework is particularly important during the recruitment process. Many good candidates were rejected since they do not have experience into a specific framework. That could mean two things:
- Companies bind themselves to framework too much
- A person who is doing the recruitment process has no or little knowledge of other frameworks.
I already covered the first topic and dedicate whole blog post. For the second one, there is no simple solution except educating people to understand the framework purpose better.
Tools are the framework, libraries, IDE, computer, version control systems, virtualization software, etc. Tools are something we use to build a product. We can build our product with the various combination of tools. In most of the cases, tooling does not determinate is something is possible or not. Companies sometimes bind themselves way too much to the framework, to the level that they need skilled people who can only think inside the framework playground.
Skills are clean code, documentation, solving problems, testing strategies, architectural skills, etc. Skills are something developer may have or don't. Well skilled developer, or the one eager to learn, absolutely can handle any tool (framework in this case) and build a good product.
I already got this question a couple of time, here and at my presentations, so I will answer it here shortly.
If a company have [Symfony|Zend|Laraver] application, then they need [Symfony|Zend|Laraver] developer, right?
If your business is for example "music streaming service", and your application is "Laravel" application then that's so wrong. Your application must be "music streaming application", not "Laravel" application at any cost!
The reasons why is:
- If you unbind from your framework, then you can upgrade without fear, to the next version.
- You'll be able to reuse your code in/with other environments, libraries, and frameworks.
- You don't have to adapt your app every time framework deprecates some of their libraries.
Here are the other resources from this series directly connected to this one