Comb through this interview – early August 2020

The interview cycle is one week, and the preparation time is one week.

In this interview, we sent 25 companies and met with 11 of them. We actually met with 9 of them and received 4 offers.

It turns out: iOS is in demand, and it smells good.

Description: graduated in 2016, non-key university, non-computer major, bachelor’s degree

After this interview, I have more understanding of my position. Due to my previous work experience, audio and video will become my main direction in the future. Next time, I hope to become a senior iOS audio and video engineer, and I will spend more time on this.

It is true that the algorithm can examine a person’s degree of intelligence, fortunately, the algorithm to do some more, summarize the rules, but also can train people more intelligent, like the Olympic number.

I suggest you write the algorithm in C; Leetcode usually uses C.

I got a column, interested can maintain together: xiaozhuanlan.com/leetcode-sw…

Subjective interview experience

  • The most right impression is poor, the interviewer is not nice;
  • 360 best, very careful, like their leader very much;
  • All the other companies are good
  • Almost every one has algorithm problems, but the overall difficulty is not difficult (most of them are dynamic programming + tree traversal)

360 audio and video positions

Subjective evaluation: I thought THAT HR would recommend the position of audio and video center, so I was not fully prepared

A:

  • Previous live broadcast and camera business investigation
  • AVFoundation, GPUImage
  • Two algorithm questions (follow-up optimization)

2:

  • AVPlayer implementation principle, data cache
  • OpenGL ES process
  • Hard and soft knitting
  • Overall process of live broadcasting
  • Filter implementation principle

Then he went back and told me to wait. He said in a week.

Douyin business position

Subjective evaluation: For fun, the headhunter gave me many interview questions and asked me to memorize them, but I didn’t meet any of them. I hope you meet a good interviewer

  • Addition of large Numbers
  • Tree traversal (recursive, queue)
  • Event response mechanism (transfer chain, response chain, gesture)

The algorithm was written, but it took 50 minutes, and then an hour passed, and I… Insufficient capacity, leetcode continues.

Naive interaction

Subjective evaluation: Although this is a start-up company, there are three aspects. In the last aspect, I felt that the interviewer was extremely skilled and should be a god, but I still got the offer from his family.

  • Xcode Certificate verification process
  • Json to Model implementation
  • Dynamic library static repository
  • Using the pure AVFoundation framework, how do I add a watermark to my video
  • GPUImag framework introduction
  • How to optimize the network
  • Camke usage
  • Video from collection to display, and finally written into the file process
  • AVPlayer caching technology
  • How to play video at 2x speed and export video at 2x speed
  • Charles principle
  • Samplebuffer is different from PixelBuffer
  • CMTime structure

This person’s question is no less professional than 360.

The most right

One side

  • How to solve the crash
  • AVplayer playthrough download
  • How to design a network library

Second interview

  • FBO, H264, GPUImage3,
  • Large picture loading, PCM calculation time,
  • How to implement segmentation filter,
  • Audio and video coding

The art treasure

Subjective evaluation: I feel it is the most efficient and concise

  • kvo
  • block
  • notification
  • runloop
  • There’s an algorithm problem on the second side

Two interviews for 50 minutes, and then an offer.

Other companies

Subjective assessment: Large and small companies will have algorithms, some using Niuke, some using Leetcode, pure hand, no hint.

  • The application scenario of NSCache is different from that of NSDictionary
  • Git workflow
  • Common locks, which perform worst, and why
  • App reverse analysis
  • Use the Leak tool
  • Charles principle
  • HTTP is different from HTTPS
  • Componentized thinking
  • Continuous integration solution
  • Copy and assign are different
  • Memory alignment
  • Sel, _cmd, ISA
  • Tagged pointer
  • Rock paper scissors
  • Longest unrepeatable string
  • Lots of sort numbers
  • leetcode 32
  • leetcode 1237
  • leetcode 828
  • leetcode 283
  • leetcode j67
  • leetcode 116
  • Function call mechanism
  • forward
  • The h5, js

conclusion

IOS bottom:

  • Kvo,
  • The runtime,
  • KVC,
  • Notification,
  • Runloop,
  • Keywords (copy, assign, strong),
  • Block,
  • GCD

There’s not a lot of stuff, so understanding the underlying is a big help in memorizing the rules. Recommended source code and “iOS and OS X multithreading and memory management” together, as well as some of the great god of the article

Audio and video direction:

  • Start with AVFoundation, then GPUImage, then OpenGL ES, MetalKit
  • Ffmpeg, opencv
  • c\c++
  • The RTMP, webrtc

Other:

  • componentization
  • Design patterns and principles
  • network
  • Continuous integration
  • Team collaboration process

There was no problem with Swift in the interview, which was a little unexpected. In this interview, about half of the interviewees used Swift, there was a pure Swift developer, and the rest were mixed or some business lines were Swift.

I suggest you find a job before you quit, unless you’re too busy to work.

About the Swift,

I have also prepared for Swift. It is expected that problems related to Swift will break out next year

  • Generic constraint
  • Association types
  • Type erasure
  • Where the use of
  • How does Codable implement key mapping
  • AnyIterator
  • sequence
  • indexable
  • collection
  • Map, Filter, reduce, sorted
  • How to Implement Chain Programming (SnapKit)
  • Function distribution mechanism (class, struct, extension, protocol)
  • What if KVO fails
  • Memory management PWT and VWT
  • Memory, what is the difference between optional and non-optional memory of variable of uniform type