Blog entry: 2019-4-29 Blog post: 2019-5-14 Blog post: 2019-11-15 Modified link.

The introduction

At present the slowdown of economic growth, everywhere in the development of the Internet into the second half. The experience of this year’s job-hopping season must be that we also feel a chill. The author has a friend who works in Ali. At the end of March this year, I began to ask him for help in internal promotion. Maybe it is Ali’s big front strategy, or maybe it is really the chill of the Internet. For a three-year iOSer in Shanghai, there has been no suitable post to push, even if there is also recruit P7 level, all rejected fate. I gave up hope and started looking for other channels to market myself, but eventually I found a job I wanted, and now I can wrap up.

An overview,

I was very passionate in the early stage of the interview. I would recall, record, summarize and learn after each interview. In fact, this process is also a very effective learning process. But it’s a little expensive. You might lose a chance. The best way is to be prepared. What am I saying? Okay, it’s like some emotion or something. Can understand the readers, please point a thumbs-up, ha ha! Did not experience the reader when did not see it, anyway is just feeling, ha ha!

Ii. Personal summary

1. Experience summary

Let me just tell you a little bit about this period of time. First of all, this experience started from the old driver weekly, because before and the weekly peak brother some contact, so see the weekly push, it will naturally contact the peak brother push. First up was ByteDance, which failed the resume screening. Zeng Ming, who helped push in, said the reason:

  1. No big factory background
  2. Not graduated from 985 university (I graduated from 211 university)
  3. Your resume has no shine

I can’t help it. It’s really dull. After that, Feng ge also helped guide my resume. I also tried to modify my resume in accordance with the STAR rules and sent Bytedance through other channels, but there was no chance. Probably has a record of failure, won’t pass the screening for six months or three months. Later, the nuggets’ internal push group has a former Baidu, Meituan’s current headline leader said that his internal push success rate is high, is not affected by the previous resume lock, still no news after delivery. But then bytedance HR in Beijing contacted me and asked if I was interested in going to Beijing, and I was immediately uninterested. After the phone call, I realized that I should gain some remote interview experience even if I don’t go. This reminds me of an article I read earlier that Shanghai has a higher threshold for Bytedance than Beijing.

Then there’s Ali’s push in. My friend is in the front of the word of mouth. In the case of no suitable post for more than a week, my friend gave me an analysis of the reason. Word of mouth is about 2000 people, front-end 40 ~ 50 people, iOS only 6 people. Alibaba’s big front end strategy and so-called no-fire strategy also led to many job transfers. So Ali is currently recruiting mostly P7 level experts, another helpless.

I started sending resumes to job boards when the two companies started to stumble. Then it was a cycle of interviews, memorizing, summarizing and studying until finally getting the job I wanted.

2. Knowledge summary

Knowledge summary is processed by MindNode. Some are detailed and some are just mentioned, but all can be answered from the knowledge points seen. Every time I look at my heart, I repeat it, and I basically memorize it. Of course, this is only part of the knowledge, there are a lot of summary, I will continue to add to it. If there are friends who want to join me, I am very welcome, you can also download their own add knowledge. Or create your own. I just feel like it’s a good way to complete the body of knowledge. Of course, you can’t expand on it in detail here, so it’s best to have a summary of your notes as well. For example, I use the high quality articles in the evernote bookmarking module as an extension to the related knowledge points.

IOS interview
Boutique MAC app sharing

For algorithm exercises, we all want to go to LeetCode to brush problems. Although LeetCode supports Swift answers, it is frustrating that some questions dealing with strings will time out when Swift is used, so the author mainly uses C and Swift for answers in practice. Sometimes, OC will be used to clarify the thoughts before answering in another language. After all, some problems need to be thought about as you write, and some need to be debugged. So this is where Playground comes in. It doesn’t do breakpoint debugging. So with that in mind, I was thinking how can I use the current tool to better practice the algorithm? I’m thinking about unit testing in Xcode, and we know that when implementing a method prefixed with test in a class inherited from XCTestCase, the method generates a diamond indicator that shows a run button when the mouse is placed over it, which allows us to run test cases, while also supporting breakpoint debugging. For example, the following figure shows whether it is palindrome number:

LeetCode

Of course, improve the knowledge system reading is also necessary, such as graphic HTTP, sword offer, Effective Objective-C 2.0, Advanced programming in Objective-C and other books are recommended to the poor are necessary, but the technology is also time-sensitive. So for example, some knowledge in advanced programming, it is necessary to practice the current implementation principle on its guiding ideology.

So please remember two points: the foundation must be solid, the principle must understand.

3. Interview questions

Next post some interview questions, the front also said that the early very serious record, learning. After a while these questions became familiar and were not recorded in detail. After all, a lot of questions will be asked from your resume:

  • Molina movement.

    • Project experience
    • Test questions
    • Recursively inverts the string
    - (void)testReserveStr {
        NSLog(- % @ "@"[self func:@"Antyum"]);
    }
    
    - (NSString *)func:(NSString *)str {
        return str.length ? [NSString stringWithFormat:@ % @ % @ ""[self func:[str substringFromIndex:1]],[str substringToIndex:1]] : @ "";
    }
    
    Copy the code
    • Quicksort process description and time complexity
    • Weak usage, and problems with not using weak
    • Notification, Delegate, and Block
    • .
  • The little red book

    • The phone
    • Tell me about something you’ve done
    • Knowledge of linked lists and arrays, application scenarios
    • Weak and assign
    • Can assign modify OC objects
    • How does weak set to nil work
    • Whether attributes used by blocks in GCD need to be __weak
    • How do I add and delete arrays in blocks
    • Call order of +load and +initilaze in classification, superclass, subclass and main functions

      +load load order: parent class, subclass, classification. If multiple classes are called one by one in the order in PBXSourcesBuildPhase. Main () +initialize loading order: the last class to be loaded overrides this method. And then the superclass, and then the subclass, until the class that was called the first time.

    • Why put the logic in +load into +initilize
    • .
  • pudong

    • Is there any other way to implement singletons
    • ABC three tasks, after the execution of UI refresh, how to handle? Is there any other way besides the group you said
    • Multiple labels in a single row, compressible in the middle, how to add constraints
    • Key points of implementation of round – cast graph
    • When will the timer be destroyed, some notification, where will the KVO be destroyed
    • What third-party frameworks have you looked at, and what are the differences between AF2 and 3
    • Off-screen render bottom Angle
    • How to make the Button in the Cell respond when clicked
    • .
  • Love recycling

    • KVO underlying implementation
    • GCD is related, NSOperation is related
    • OSI seven layer protocol, TCP/IP protocol cluster four layer model, each layer of protocol, Http dependent
    • HEAD request function
    • Project related
    • Let’s talk about the responder chain, what are the two ways of dealing with click range and response
    • How can weak be set to nil automatically
    • Attribute keyword
    • How do I handle circular references
    • Understanding the Runtime
    • Link list loop judgment
    • Binary search tree
    • Principle of Associated Objects
    • Method exchange principle
    • What does one of your blog posts focus on
    • Value types and reference types, and their application in SWIFT
    • The type supported by JSON
    type describe
    Number type A double precision floating point format in JavaScript
    String (String) Double quotes wrap Unicode characters and backslash escape characters
    Boolean (Boolean) True or false
    Array An ordered sequence of values
    Value (Value) It can be strings, numbers, true or false, null, and so on
    Object Unordered key: set of value pairs
    Whitespace Can be used between any pair of symbols
    null empty
    • How do I connect multiple requests at once
    • .
  • jingdong

    • How can weak be set to nil automatically
    • Attribute keyword
    • Mutable object copy
    • Project related
    • Design patterns used in OC
    • Three kinds of Block
    • Notification, proxy, block application scenarios
    • The understanding of the MVVM
    • How does KVO work? What are the features of the inner classes being created
    • The most impressive problems encountered in the project
    • How to work on a wechat chat interface
    • How is wechat voice to text realized
    • How is the core animation support mentioned in the project implemented
    • The singleton pattern
    • The application buried point
    • Controller life cycle
    • .
  • ctrip

    • The phone
    • KVO and autoreleasepool
    • Depth copy
    • Attribute keyword
    • .
  • Hui is the financial

    • The reflex mechanism of OC
    • Object-oriented characteristics
    • The difference between block and delegate
    • NSString copy and strong keyword
    • NSOperation and GCD
    • runloop
    • Weak and assign
    • .
  • ctrip

    • The ground floor of the KVO
    • The understanding of the KVC
    • Allocation of memory in oc
    • Weak set nil implementation
    • Depth copy
    • The understanding of the runtime
    • Understanding message forwarding
    • Application of message forwarding
    • Knowledge of chain of events
    • Off-screen rendering issues
    • Understanding design patterns
    • Same line lable left and right constraint layout problem
    • Design the application of architecture
    • Depth first and breadth first
    • (Resume) XMPP knowledge
    • Knowledge of predicates
    • The application of UICollectionView
    • .

Iv. Interview routines

As for interview routines, I don’t have a lot of methods. At present, there is mainly a method, turn passive into active. How do I put this? First of all, let’s take a look at the following self-introduction:

  • My name is XX, graduated from XX University in 2016, majoring in accounting. I began to learn iOS by myself when I was in college, and I have been working for three years now. I have been engaged in iOS development. In March 2016, I joined a 2C startup company and mainly studied UI processing. In 2017, I joined the current 2B enterprise service company and mainly studied architecture, design mode and memory management. At present, I am mainly exploring some design and implementation principles of OC. In the process of learning, I find that many articles on the Internet have wrong understandings of some knowledge. When I’m done with the interviews, I’m going to post a few articles to address these issues.

Almost every interview question that comes out of this introduction is: What are some of the wrong questions? This is the time to take the initiative and show that you have researched the knowledge thoroughly. When you are asked a question that you don’t know, don’t give a vague answer. But I know… What do you think is the most impressive problem you have encountered in your work? What other highlights can you tell us about? Do you have any questions you’d like to ask me? These questions will be asked almost every time, and it’s important to think ahead and prepare.

More on this aspect of the summary recommended we can see the following two articles: Baidu/Ali/netease iOS surface (already hired) junior iOSer spring recruitment summary (Tencent ant headlines JD netease)

conclusion

This is the end of the article, in a word, opportunities for those who are prepared. So the best way is usually spend a certain amount of time to improve themselves, wait until you need to do interview preparation, then consolidate review. This is not to tell you, this is I write down to remind myself! After all, sharpening your gun at the last minute is mentally and physically exhausting. Personal article is indeed a little slow, in order to figure the DESCRIPTION of TCP handshake, turned over a lot of articles and books, some [FIN] some [FIN,ACK] a variety of all have, and finally is the conclusion of packet capture research. In short, also want to express the pursuit of details, but the level is limited, there is insufficient to ask you to give directions. The article about the interview to this time period, we may not be interested in reading, anyway is their own experience, but also a summary of this period of time. I hope you enjoy it.