Finally completed a new wave of recruitment work. Can make a summary of this matter, this is my own thinking, welcome friends to communicate together.

About the recruitment

The core of an interview is getting to know each other. The employer knows the interviewer, and the interviewer knows the employer. And then judge each other for suitability. It’s a two-way selection process. Therefore, both recruitment and employment should be equal to each other. I interviewed a lot of applicants, mostly for jobs. A job hunt means I want the job. When you are in a “begging” state, you are not confident. As an interviewer, you will think, is this person good or not? Sometimes there is no need to please the interviewer deliberately. The best strategy for an interview is to show your true self and highlight your strengths. As a recruiter, the right thinking should also be to get to know the candidate. So the question should be how you can get to know the other person better, not how you can quiz him or her. For some not very smooth expression of the interviewer, should also be guided from the side, so that the interviewer can play the real level. Instead of sneering and scorning.

Direction of investigation

The so-called appropriate, for the unit of choose and employ persons, there are a lot of aspects of consideration. As a small and medium-sized Internet team, TAKING the recruitment of an iOS senior engineer by a small and medium-sized company as an example, I think I should investigate the following aspects:

  • Skill level (can you work?)
  • Communication skills (can you work happily with others?)
  • Industry background (which industry was it before and what was the working mode?)

The technical investigation of the interview

There are a lot of iOS interview questions floating around the Internet. A lot of applicants have probably seen these questions. These questions can really test the technical ability of an iOS engineer, and they contain a lot of OC theoretical knowledge points, which are already very detailed. I don’t usually go into this kind of detail, but there are some core questions that I do ask. My personal understanding of the medium and advanced technical capabilities of iOS includes:

  • Objective-c and iOS development FaQs.
    • Memory management. ARC, circular reference, etc.
    • Multithreading. GCD, NSOperation, RunLoop.
    • The Runtime.
    • AutoLayout, various components used.
  • Design/architecture issues.
    • A variety of common design patterns. Application scenarios such as singleton and notification.
    • MVC, MVVM, MVP architecture and understanding.
  • Engineering capabilities
    • Performance optimization.
    • Bug troubleshooting and problem solving ideas.

Span of investigation

The one above is a super lite version of the knowledge framework for iOS technical interviews. I ask most of the above questions. Normally, there will be a question in each subitem. Are the must-ask questions. The fluency of all the answers indicates that the partner has solid technical skills. In addition to the core questions above, questions will be asked in all directions, such as:

  • Computer Fundamentals
    • Data structures and algorithms
    • Computer network, TCP/HTTP/HTTPS, etc.
  • The new technology. Swift, responsive, iphonex adapter, etc.
  • Android and some cross-platform technology, H5 interaction, etc.
  • modular
  • Hot update

These questions are usually based on what the candidate has done. Know what to ask. Time is limited, of course. Basically, the breadth of the survey has been guaranteed.

Depth of investigation

Just the breadth of the interview, many people may brush the interview questions, read a variety of blog cramming, may be able to cheat the past. In the actual development process, in the middle and senior requirements, or to have a more in-depth understanding of some aspects of the problem. In the above simplified version of the knowledge framework, the general will be in the chat, pick some aspects of in-depth questions.

I usually do. Talk about singletons in design patterns. They ask you how to write singletons, and most people can write them. Like dispatch_once. Then go ahead and ask what good dispatch_once does. If the answer is executed only once, ask why you don’t use static variables plus judgments. If the answer is thread-safe, ask why @synchronized is not used to keep thread-safe. And then it goes on to say what if the user alloc init an object? Then go further and ask if you have encountered singleton memory free issues, singleton initialization dependency issues, etc. MVC, MVVM, MVP, a lot of people, after reading some articles on the Internet, can tell the difference, solve the problem, such as slimming ViewController. Further questions can be asked about MVVM’s bidirectional binding mechanism, how it works, how it is implemented in general, and when MVVM is not appropriate. Multi-threaded also have a lot of content can be asked, can be asked from the use of GCD GCD implementation, can ask the comparison of GCD and NSOperation, can ask the use of various locks, in the thread synchronization mechanism, producer consumer model and so on. Find one or two things you’re familiar with that the candidate might have done, and ask in depth. My personal assessment is that there is always one or two points that I have done in depth for the middle and advanced level.

Humanities study

Recruitment of technical personnel, in addition to a certain level of technology, but also need to be able to cooperate with team partners, communication can be normal. You may need to look at the following aspects:

  • Comprehension.
  • Presentation skills.

In this aspect, there is generally no need to ask special questions. In the process of technical interview, you can basically judge the communication level, whether you can understand the questions raised, whether you can express your ideas clearly.

Generally speaking, those who come to the interview for the senior level have three or five years of work experience. So it is generally clear what problems you might encounter in real development. But there are still some exceptions. For example, always in the small company development mix, it is necessary to talk about the various things of collaborative development. Also assess how well you fit in with your group mates.

These observations are subjective. But most of the people I interviewed did well. Many are nervous at first, but become normal as they chat.

Mistakes that interviewers tend to make

  • The inspection was not systematic and comprehensive. Sometimes you are taken off the beaten track when talking to candidates. For example, when we talk about a point, we express our opinions and get high. So we ended up talking about this one point. If the interviewee happens to have done some research on the subject, he or she may give an “A” but may not be able to guarantee that he or she has the required mastery of other areas. Therefore, to reduce the risk of recruitment, the above simplified version of the framework needs to be fully covered.
  • Ask only what you know. I said the interview is for getting to know each other. Therefore, a comprehensive + in-depth approach is needed to make a more accurate evaluation. Because to evaluate correctly, the question should be what the position should know. It has nothing to do with what you know. Even if the interviewer doesn’t have an answer, there’s still a chance that the candidate knows the question. Of course, the best situation is to strengthen their own learning.
  • The impact of non-focus content. When I interviewed, I asked about data structures in addition to iOS development. Such as sorting, hashing, dynamic data structures and so on. These are not great for normal iOS development (certainly useful for better design), but familiarity is a plus. A poor answer should not be a reason to reject the candidate. Generally, it is possible to make reference when comparing alternative personnel.

Some candidates who are personally disgusted

  • Pack to force. For applying for technical posts, the general installation force is not good. Because a technical point usually you will be yes, no is no, there is not much variation. Professional is stronger, go deeper to say, can know probably is what level. It’s easy to punch yourself in the face with a tech jacket. There was once an interviewer who always stressed that he was the technical leader of the team and led the development of the whole APP by himself, using the most popular responsive development framework. And then we talk about how it works, and we talk about the advantages of responsiveness. I thought he was responsive and good at it. I did not practice RAC or RxSwift.

  • A strong. In most cases, interviewers ask questions with a certain answer in mind. So don’t force yourself to answer something you don’t know very well. Although it’s not good to say you don’t know, it’s also not good to get it wrong. But forcing an answer through language is an attitude problem, and it’s basically passed. Ask a candidate about HTTPS and ask how secure HTTPS is. Why is it more secure than HTTP? The guy said MD5 encryption was used to secure the transmission. Then he goes on and on about how MD5 is unbreakable and how HTTPS is secure. And gave me a sure look…

  • Being asked. I asked a question, and the interviewer sarcastically responded, “You know what? It’s like, you didn’t even know you were testing me? The purpose of the interview is to discuss the technical level, not technical exchange. I know I can’t tell you either.

The Inside Story of SME Recruitment

  • Why don't we call it a day?= You're 90% passed. Batch recruitment for large companies, may have to go through a variety of processes, a wave of. But for small and medium-sized companies to recruit high end, if passed, basically there will be a next interview. I’ll at least go back and talk to my superiors about the next interview. Everyone is in the company, if it is not particularly busy, people will not come back for a second interview. There is a dead line for hiring people for work.
  • Why don't you give me a brief introduction = Just give me a minute to look over my resume. Most of the time, a candidate’s resume is just a preliminary screening among many others for an appointment. And then you’re in the middle of something and you say you have an interview. So please give me half a minute to go over the resume again. Don’t start with your high school days, talk about your recent projects and experiences, and then we’ll start.