Basic situation

  • I started my internship in late July and came back to school to prepare for the autumn recruitment. At the beginning, I made an overseas investment to about 40 or 50 companies. Most of the companies that received the interview at the early stage received letters of intent or offers, including Ali, Baidu, And Monkey Guidance. The company I failed was Tencent. After failing the second interview, I transferred to Tencent Beijing and gave up the interview. After deciding where to go, I basically did not continue the interview. I also invited more than ten companies to interview, including Meituan, Shell, Kuaishou and so on. The personal autumn recruitment was basically finished in late August. Now I hope to summarize my interview experience in autumn recruitment to help more partners.

General essential basic knowledge

  • Setting aside the an iOS development skills, the essence of our most basic is a software development engineer, so part of the essential, this surface by the not specific sums up the content of each company specific test on each side, but according to the different knowledge will interview questions are divided into different projects section to specific analysis.

Computer network

  • For large front-end classes, computer networks mainly consider the transport layer and application layer part of the knowledge.

  • What happens when a browser enters a URL to display a web page?

  • TCP three-way handshake: How to shake hands? Why three handshakes? How about twice? Why not? Three handshakes, second and third respectively for what?

  • How TCP maintains reliable transmission (congestion control, understanding of concepts such as slow start)

  • Why does TCP wave four times and why does TIME_WAIT set at least twice the MSL time?

  • TCP three handshake detailed data transfer, four wave detailed data content, packet composition, TIME_WAIT state, 2MSL, RTT, retransmission, sliding window, congestion principle and so on

  • TCP, UDP connection-oriented and connectionless specific understanding, their difference, how to transform the UDP and TCP functions similar

  • TCP/IP four layer protocol, OSI seven layer protocol, each layer has what corresponding protocol, principle is what

  • HTTP packet structure, what hypertext is in HTTP, the composition of HTTP requests

  • What does the HTTP header contain, multipart

  • HTTP status code, 200,304,301, HTTP request packet, response packet

  • What’s the difference between get and POST requests? When is it used? What are the formats of the data that you send through POST? (We need to figure out the format of the data that you send through HTTP.)

  • Describes a complete HTTP request

  • What’s a cookie, what’s a session, what’s a connection, what’s the nature of a cookie

  • Http1.0, 1.1, 2.0 differences

  • How many handshakes and waves does HTTPS have? How HTTPS works. How many waves and handshakes does HTTP have? Which network layer is TLS and what is the basic principle?

  • HTTPS and man-in-the-middle attacks

  • HTTPS, the security layer in addition to SSL, the latest? What additional parameters does the client send first in a parameter handshake

  • What is HTTPS? Handshake process, SSL principles, asymmetric encryption

  • What are certificates for

algorithm

  • The questions above the offer are all high-frequency questions of the algorithm in the interview process, especially binary tree and string, stack queue, linked list, jump step problems must be understood and skilled.
  • The complexity of eight sorting algorithms, concepts, best and worst case, handwriting are all must be mastered, the focus is fast sorting and heap sorting, for fast sorting optimization, the basic principles of fast sorting, system API fast sorting implementation principle is the basic knowledge must be mastered.
  • Binary lookup is also more common during the interview process because of its simplicity, including variations of binary lookup.
  • The recursive and non-recursive traversal of the front, middle and back of the binary tree, as well as the sequential traversal and the serpentine traversal are emphasized.
  • How to find the optimization that repeats the most
  • A large number of data, but all between 1 and 100, how to find the most repeated one
  • Interview algorithm questions are generally not difficult to master skills is very important. Binomial tree algorithms are basically based on traversal of binomial trees, and linked list algorithms are based on extra help Pointers.

The data structure

  • In the interview process this class is mainly and algorithm to test together, data structure will generally ask the difference between stack and heap, stack and queue difference and so on, in the front of the interview, such as red black tree is rarely asked.

Compilation principle

  • The main need to understand the basic concept of the compilation process of the program is OK.

The operating system

  • Operating system cliche is process, thread concept and difference, several states, as well as their scheduling, communication, keep security and so on knowledge points, the basic interview will be tested to a point, this part needs to firmly grasp, really can not understand the back down.
  • What’s the difference between recursion and normal looping
  • Computer storage system refers to? Which storage systems improve the efficiency of program execution?
  • When do segment errors and stack overflows occur, and why
  • Other aspects include page replacement and other basic knowledge, know the concept is OK, in the front-end interview process this part is not particularly focused on the point of consideration.

The database

  • The database part is also relatively simple, mainly ACID and other basic concepts, several paradigms, simple SQL statements.

Design patterns

  • The differences and connections between factory method, abstract factory and simple factory
  • decorator
  • The observer
  • Proxy mode and so on

Probability theory

  • Three problems
  • Red and black ball and other common problems baidu can

Linux

  • It mainly includes basic shell programming and basic script commands, especially grep, ps, top, free and so on

Version control

  • Version control includes Git and SVN
  • Git: Merge and Rebase
  • Differences, similarities and differences between Git and SVN
  • What is the normal version control process in development

General Language Basics

  • Object-oriented polymorphism. Several ways of polymorphism
  • Singleton patterns in various languages
  • Memory Management mode
  • Static and const
  • C language memory segmentation

IOS Professional Knowledge

  • In the process of iOS interview, although many knowledge points are very complicated, the platitudes are still those relatively old knowledge. As long as you have a good understanding of them, it is generally no problem to pass the interview.

Memory management

  • ARC and MRC
  • Attribute keywords, their specific low-level implementation and the difference between copy, shallow copy and deep copy, weak low-level implementation. What’s the difference between “unsafe_unretained” and “weak”? What’s the difference between “unsafe_unretained” and “weak”? This is part of the interview must ask, be sure to understand.
  • Autorelease pool — Runloop — autoreleasing pool

Block

  • Essence, basic concept
  • The place to pay attention to when using
  • The implementation of blocks, how to intercept automatic variables, how to modify the value of automatic variables, several forms of block
  • The essence of the __block
  • Forwarding pointer
  • How blocks avoid circular references. Do all blocks have circular references, and how can blocks avoid being freed prematurely

multithreading

  • IOS multithreading in several ways, differences, use scenarios, basic concepts, synchronous asynchronous, serial parallel distinction.
  • GCD, write a deadlock, parallel and serial queue, the difference between synchronous and asynchronous, GCD how to control the maximum number of concurrent
  • How to let the child thread timing execution of a method, the specific implementation method
  • How do you control the maximum number of concurrent threads to be 10, and then load ten images and show them? How do you do that
  • How the runloop of the child thread executes, and how the AutoReleasepool in it executes.
  • NSMutableArray is thread safe.
  • How does GCD prevent variables in blocks from being released prematurely

Runtime

  • Dynamic forwarding of messages
  • Adding attributes to a Category, associated objects can take several forms
  • method swizzling
  • Let’s talk about the structure of a class, what are the properties of a class at runtime, what are the properties of a property
  • Talk about the process that ISA refers to NSObject
  • The nature of a Category, when does the load method load, what happens if a Category overrides a method of its parent class, the underlying source code, if two categories and a base class both have methods of the same name, which one do you execute first
  • What does the property automatically generate if there’s already an instance variable of underscore _name
  • The load and initialize

Runloop

  • Runloop implementation principle

  • The source type

  • A way to keep threads alive

  • Runloop and multithreading, and timer

Third party library source

  • AFNetWorking, SDWebImage, and YYModel are all very common
  • If I’m asking for an image at one address and another request is made at the same time, will I send another request?
  • How to implement a YYModel, the specific use of the method, extended to the Runtime source

The life cycle

  • App life cycle
  • The controller life cycle
  • The view’s life cycle

UI

  • UICollectionView waterfalls flow
  • UITableView related optimization, underlying principles, etc
  • The page layout
  • LayoutSubViews and drawInRect, etc
  • Implement a UIScrollView yourself
  • The transport chain and response chain of events
  • How do I locate specific classes and methods
  • UIView is different from CALayer

Data is stored

  • What is data persistence, what is used, what types of archives, preferences can be stored

architecture

  • MVC, MVVM, etc., their differences and connections, advantages and disadvantages
  • The idea of an app from 0 to 1
  • Start optimizations, caton optimizations and interface optimizations for projects from before to after the execution of the main function.

OC language features

  • OC and C, OC and Java, C++.
  • Protocols in iOS
  • OC dynamic
  • How does C dynamically swap implementations of two methods

other

  • The underlying principle of KVO, its own implementation
  • The underlying principle of KVC, their own implementation
  • The basic principle of NSNotificationCenter is synchronous or asynchronous. How to implement one? If a notification is received in a child thread, can it be received
  • The difference between several page values
  • How do I locate specific classes and methods
  • Can a value of type int wrapped in @(10) as an NSNumber be passed to a method argument that accepts type ID
  • On iPad, how to realize the process of dragging WPS files to QQ with split screen function (interprocess communication method)
  • How to implement dispatch_once
  • The use of the Instrument
  • Have you used hot fixes? How is the usual version iterative? How are online bugs fixed
  • Some content of the internship.

BiBeiShu single

  • Diagram TCP/IP, diagram HTTP
  • The sword refers to offer
  • Effective Objective-C
  • Advanced programming for iOS and OSX
  • This is a list of books that must be read more than once. The rest are not so important.

conclusion

  • For autumn admission, as students are the main basis of consideration, the most important includes computer network and data structure algorithm. For iOS development students, the above has included most of the points I met in the interview and I think very important knowledge points, I hope my interview can bring you some help!

Another: welcome to the nuggets technology text contest 👉 autumn for job searching, with a gifts | the nuggets skill in writing essay – the nuggets