This view belongs to the Generalist specialist , who I know that Both are the correct answer, but I come to him from a different direction. I am interviewing new candidates for software development, and currently we are largely evaluating specific language skills and knowledge and studying specific language experience as one of the criteria for hiring. We are also looking for a candidate to be well-rounded generalizing, but it is secondary for them to be an excellent specialist. This is all good and good, and we have hired a number of really awesome programmers and do no harm to hiring anyone else.
But I thought. If two candidates introduce me, the first of which will be a specialist in our language, but with very little other experience (poor generalist), and the other candidate will be a fantastic generalist with only knowledge in our language (but specialization in other languages ​​with similar characteristics), while everything else is equal, what would be better to hire?
We have no plans for switching languages, so other language skills are not directly applicable. Actually, I tend to be a specialist because they have less to study, but I wonder if a fantastic generalist (with other specialties) can be a good, if not the best choice.
My thinking is in the skills necessary to complete the task:
- Database Experience
- Language Experience
- General software development skills.
- General software debugging skills.
- Good design skills.
- Domain knowledge (or target industry)
- Understanding an Existing Code Base
Those at the top of the list are much better documented (thus easier and faster to learn) than those at the end of the list. Moreover, I would say that the generalist who stands out in # 3, No. 4 and No. 5 will be much more valuable than anyone, only with skills in # 1 and # 2 (even if these are very deep skills), since they are easily detected through reference documentation. Of course, it is unlikely that anyone would have good skills in # 1 and # 2 without some of # 3, 4, and 5.
C # 7 and # 6 are the most difficult to obtain, which makes existing employees more valuable than new employees, no matter how good their skills are in the first few areas.
At my previous job, they hired me partially for my specific language experience, but soon after they hired me, they got a new manager who decided that he liked the new brilliant Microsoft language, so we started to rewrite everything. My specific language skills were no longer relevant, but I still found myself advanced to lead a developer over other developers with more specific du jour language skills.
All things that are equal in generalization, when there is a certain language in use, it makes sense to hire a developer who has specialization, as one who does not.
Question:
It is enough to explain my position. I am curious what consensus is about. Is it more important to hire for language skills? Should language skills even be a criterion for hiring? Is it better for developers to focus on developing in one language after hiring them, or to move between different projects (in the same domain) that use different languages? If you have a project in a different language, but the same domain, and it is canceled, should developers be fired or retrained in another project that uses a completely different language in which they have no skills?
Thanks!