Recruit oneProgramClerk, the only thing that makes sense to you is his ability to write good programs. Few people like to recruit people like this. They prefer to pick up their personal hobbies and weaknesses.
When I say this, many comments will criticize you: you are wrong, wrong, completely wrong. Good programmers must have the communication skills and the ability to work with others. You are not alone in the team! In fact, people will say: it is best to compromise the technical requirements so that we can find people better suited to corporate culture.
It is better for you to say this: if you cannot find someone who is technically good and can adapt to the corporate culture, I will wait until I find it.
There are very few companies that dare to be so luxurious. Maybe Google can be like this, that is, companies like Google have always been in a state of "desperate to recruit programmers. If you decide to wait, I can foresee that you will wait for a long period of time for every programmer to be recruited. At the same time, the business will crash due to lack of programmers, and it will be very urgent.
So what is better?
Let's consider the middle or lower-level programmers who are amiable and work hard. Their programs are not well written-their programs do not work as they think, even if they do, it is also a bad program, it is difficult to maintain. They struggle to explore basic functions and cannot solve complicated problems. However, they can keep up with the team. The project progress is updated every day, and they can see that they struggle in their seats every day. Everything is fine, and your manager will be very happy because the entire team seems to be moving forward smoothly.
When the release date has to be postponed and many product bugs cannot be used, people will lament that software is difficult to do, so they will invest more amiable and mediocre programmers to fix the problem. I think everyone knows the result.
For programmers, there are not many things to solve with kindness. A friendly and mediocre programmer can become a business analyst, a technical salesman, or other job that can take advantage of his kindness and a little technical knowledge. They will be very satisfied with this kind of work, but this is all about work in tea talk, not to find an effective way to make good software.
Another option is to find a programmer who can make good programs, but may not be good at getting along with others, or always be late or otherwise. He can develop software that works according to design, and he can abstract complicated problems into a simple problem. Software is easy to use and can be maintained. You can modify the software as required at any time.
The world is very real. There are too many ways to screw up things, but at least we have a chance. People can leave a good impression. A good team can be built. It's good that employees work for you for a long time. A large number of businesses did not follow the predefined design work, but it was still successful, good. But there will never be any great software that can be implemented under mediocre programmers ..
when hiring a programmer, the only thing that really matters is their ability to write good code. finding people who can do this are so rare that it's generally preferable to excuse any personality quirk or deficiency they have.
as soon as I say that, a huge number of people will comment that it's wrong, wrong, wrong. good programmers need to have communication skills and be able to work Others. There is no I in team! In fact, they wowould argue that it's better to compromise your skill requirements in order to find the right culture fit.
it wocould be nice if we cocould say: Don't hire until you find someone with both great technical skill and great culture fit. could t very few of us have that luxury, could t be Google, and even they are in a constant state of desperate-to-hire-programmers. if you decide to wait, please CT to wait for a very long for each hire, even while your businesses crashes and burns in need of a programmer.
So, which is it?
Let's consider the mediocreto poor programmer who is amiable and works hard. his code isn't good-it doesn't really do what it's supposed to do and even when it does, it's sloppy and hard to maintain. he struggles with basic functionality and is not able to tackle complex problems at all. but he does get along with the team and the project tracking tool is always up to date and he gives plenty of butt in seat time. you'll be alright for a while because your managers will be happy to see such a smooth-running team.
When releases are slipping and the product is too buggy to use, people will lament that software is just so hard and throw more mild-mannered mediore programmers at the problem. and we all know how this story ends.
For programmers, there is no amount of Nice that makes up for getting things done. A friendly mediocreprogrammer can become a business analyst or a technical salesperson or some other thing where he can leverage his friendliness and his bit of technical knowledge. working with them may be pleasant but it is a tea party, not a smart way to build good software.
The other option is a programmer who delivers great code and maybe doesn' t get along so well with others or comes in late or whatever. he builds an application that does what it is supposed to do and merge acts complex problems into simpler ones. the software works and is maintainable enough to change it when needed.
This is the real world and there are plenty of ways that things may still get all screwed up, but at least you have a chance. good presentation skills are nice. team building is nice. employees working long hours for you is nice. plenty of businesses don't do these things and still succeed, but no one succeeds at building great software with crappy programmers.
The proof is in the code. That is all.