A: Interview questions note (interviewer Angle)

Many of our iOS interviewers will start the interview by looking for an iOS interview question on the Internet. (πŸ˜„ lazy πŸ˜„) and I think this is a very wrong approach. Many online interview questions are indeed good, but the iOS developers recruited by this method may not be very good. It may be the recited interview questions, or the interview questions leaked by your company, resulting in a very good performance of iOS applicants!

  • 1: interview questions can be obtained online, but I hope the interviewer seriously, hope to be able to combine your company’s actual development, landing to the interview questions (so as to avoid ridicule, interview made πŸš€, development twist πŸ”©)
  • 2: Interview questions can be changed. According to the applicant’s resume situation, to change the interview questions! Some resume is good, can adjust appropriately difficult some. Candidates who are right on your hiring path can lower their requirements (they will be going to different places, different salaries, and different directions).
  • 3: According to the situation of your company also consider: do not want a written test! The written test is good or bad, just a round of brush selection, can help you properly brush off part of the iOS developers do not meet your requirements! But your company recruitment situation is not ideal, I think can reflect: is the written test too difficult, the written test questions too much…

Two: Interview process (interviewer’s perspective)

What I dislike personally is that there are very few recruitment positions, but I call a lot of interviewees to interview! This is a more serious disrespect for a job! It’s a loss to contact too many candidates for interviews. You’re wasting candidates’ time and sending the cost of the interview soaring

I hope the interviewers get the resume, please quickly brush out your suitable resume, and then arrange the interview in batches! For your favorite iOS advanced job seeker! I wish I could do the interview process more often. A real iOS advanced development is very important for the company. I hope that leaders of different positions can write scores through several processes. Considering comprehensively, remember to be blind.

Three: iOS advanced interview content

Probably many interviewers are still more concerned about the interview content, I here from

  • IOS based
  • The Runtime related
  • Network & Multi-threading
  • Data structure & algorithm
  • Architecture design
  • Performance optimization

Such as these aspects, to each interviewer prepared some questions, I hope to be able to help you

IOS based

  • 1: Tell me your opinionnoatomic & nonatomicThe understanding of the
  • 2:weakWhat happens when a decorated object is released? How does it work? knowsideTable? Can you draw the structure inside?
  • 3:blockWith what?strongYou can?
  • 4:blockWhy can we capture external variables?__blockWhat did you do?
  • 5. Talk about your understanding of the chain of transmission and the chain of response.
  • 6. What is your understanding of KVC and KVO?
  • 7:RunLoopWhat is the function of? Do you know the inner workings of it?
  • 8: How did Apple achieve thisautoreleasepool?
  • 9: Talk about your rightFRP (functional response)I’m going to extend thatRxSwiftorRAC!
  • 10: Have played the usual developmentInstrument ?

Analysis: Here content is very interesting, for an iOS senior developer, I think there is a need to master! Especially 3-5 years of development, if not master these content I think is not qualified in some appropriate places can be extended! The first question is about weak. This is a classic interview. Anyone who is an iOS developer can answer weak. But the latter part requires his ability to learn! A senior 4-5 years of development experience should more or less know some MRC related knowledge! Questions 5 and 6: I think applicants should be given extra points if they answer questions related to practical development and documentation skills. Questions 7, 8, 9 and 10 can be expanded to more content!

Runtime

  • 1: What is ISA and what does ISA do?
  • 2: of an instance objectisaPointing to what? What does a class object point to? What does the metaclass ISA point to?
  • 3:objcWhat are the essential differences and connections between class methods and instance methods?
  • 4:load ε’Œ initializeGo to bai?
  • 5:_objc_msgForwardWhat does a function do? What happens when you call it directly?
  • 6: BrieflyObjective-CTo call a method in
  • 7: Can you add an instance variable to the compiled class? Can you add instance variables to classes created at run time? Why is that?
  • Talk about your understanding of aspect programming

The iOS interview will be conducted regardless of junior high school or high school. I think this module is more than just asking about the knowledge points, I want to hear about the job seekers in the pit to explore the journey!

Network & Multi-threading

  • 1: What are the drawbacks of HTTP?
  • 2: Talk about three handshakes and four waves! Why three handshakes and four waves?
  • 3:socketThe connection andHttpConnection difference
  • 4: HTTPS, the security layer in addition to SSL and, the latest? What additional parameters should the client first send during the parameter handshake
  • 5: What is HTTPS? Handshake process, SSL principle, asymmetric encryption know how much
  • 6: When did POP Internet comeAlamofireEncapsulation networkURLSessionWhy do you need it?Moya ?
  • 7: How to achieve itdispatch_once
  • 8: Can I write a read/write lock? Talk about specific analysis
  • 9: When do deadlocks occur? How to avoid it?
  • 10: What kinds of locks are available? How do they work? What’s the difference between them? It is best to combine it with the usage scenario

Analysis: This module may be a blind spot for the average developer. Because the general development really does not need to worry about so much! Interviewer you can choose to torture on OK, the interview process can not answer the flow is normal! Of course, if you can answer up should score points!

The data structure

  • 1. How many kinds of data structures are commonly used for storage? What are the characteristics of each?
  • 2. Set structure linear structure tree structure graph structure
  • 3 unidirectional linked list bidirectional linked list circular list
  • 4. The difference between array and linked list
  • 5. Heap, stack, and queue
  • 6. Input the root node of a binary tree and find the depth of the tree.
  • 7. Input the root node of a lesson binary tree, judge whether the tree is a balanced binary tree?

algorithm

  • 1. Time complexity
  • 2. Space complexity
  • 3. Common sorting algorithms
  • 4. String inversion
  • 5. List reversal (head difference method)
  • 6. Merge ordered arrays
  • 7. Find the first character that occurs only once (Hash lookup)
  • 8. Find the common superview of the two child views
  • 9. Median in an unordered array (quicktype idea)
  • 10. Given an array of integers and a target value, find the two numbers in the array that are the target value.

Analysis: this module is the weakness of most developers! This module is the best to test the thinking ability of applicants! But I don’t recommend that interviewers ask candidates to hand write data structures or some algorithmic code in a stressful interview environment. It’s challenging! Thinking to me feel almost!

Architecture design

  • 1. What problem are design patterns designed to solve?
  • 2: Which third party frameworks have seen the source code, how they are designed?
  • 3: Can you tell me some refactoring tips? When do you think refactoring is appropriate?
  • 4: How do you select common architectural design patterns in development?
  • 5: How do you decouple components?

Analysis: Architecture design is the layer for a senior iOS developer. That’s what he has to think and feel! If the candidate has been working on application layer interfaces for 4-5 years, he or she is already behind in career advancement! Interviewers may wish to design a separate side of this module, and the candidates and exchange discussion. After all, the design of these thoughts may bring something different to the interviewer! 😊

Performance optimization

  • 1:tableViewIs there any good performance optimization scheme?
  • 2: How do you deal with interface lag and detection?
  • 3: What is your understanding of off-screen rendering?
  • 4: How to reduce APP pack size
  • 5: How do I check memory leaks?
  • 6: What aspects of APP startup time should be optimized?

Analysis: Now APP performance optimization and become a senior developer in iOS must go to the relationship! This piece of my personal advice combined with practical development to communicate with job seekers. Rather than just stay in the knowledge point question and answer, because there is no actual development capability of performance optimization is just on paper!

Recommended Interview Collection

* BAT — summary of the latest iOS interview questions

conclusion

A good mid to advanced iOS development = iOS technology + learning ability + attitude

Among them, attitude and learning ability are also very important to me in the interview process! Even if your current skills are poor, but you have a modest and sincere attitude, excellent learning ability. And I will take you with me!