For the interview, to choose a favorite company, is every job seeker has to go through. However, the more some large Internet enterprises, the interview will need to pay attention to the more matters, relatively high degree of rigor, this is not, a programmer at the end of the interview ali, the interview to share the heart of the journey out ~

Today was supposed to be a sunny day, with birds singing and flowers. So I decided to soak up the spring sunshine while shopping. At 7pm, the head of ant Financial’s back end called for a round of technical interviews. I have black question marks on my face?? Are surprise interviews all the rage these days?

So my first interview journey, this heroic launch.

To introduce myself

First, the big guy asked me to introduce myself in two minutes. I thought I could talk a lot, introduce myself as if I were dating someone. In less than half a minute, I was done.

After five seconds of silence, the big man said, HMM.

I felt an awkward, polite smile spread across my face.

Recent project experience

At this time, the big guy asked me what projects I had been engaged in recently and what kind of work I had done during the postgraduate period.

That must be blown! From the origin of JAVA to the development of Spring to the use of Jenkin dVA + ANTD by the way, the result of half a minute, and I can’t go on

The big guy very patiently listened to me say a bunch of incoherent words, began to get to the point.

Spring

Big man: I see you have used Spring before. Why do we use Spring?

Me :(because everyone says yes) first of all, spring is a huge framework that encapsulates a lot of mature functionality so that we don’t have to reinvent the wheel. Second, it uses IOC for dependency management, so we don’t have to initialize instances ourselves.

Big guy :(I knew you would say IOC) then explain IOC to me

Me: IOC is about dependent control transformation, using JAVA’s reflection mechanism to hand over the initialization of instances to Spring. Spring can manage instances through configuration files.

Big man: Then we can just use the factory mode. Factory mode also manages instance initialization, so why use Spring?

I: ah… Because… It’s convenient? (As if to see the big guy’s frozen expression, in order not to be so embarrassed, I decided to change the subject). And Spring’s IOC is a singleton.

Big man: Is the default implementation singleton?

Me: That’s right.

Here is a look at why IOC is used instead of factory mode. In essence, IOC is achieved through reflection. When our requirements change, the factory model needs to change accordingly. But IOC’s reflection mechanism allows us not to recompile the code because its objects are dynamically generated.

The database

Big man: What databases have you used?

Me: mysql and SQlight. (Forgotten mongodb crying silently in the corner)

Big guy: What ORM framework do you use besides Hibernate, such as IBatis?

Me: I have used MyBatis

Big Man: Oh, can you talk about your feelings after using both frames?

Me: When I was using Mybaits, I also went to the community to learn about the reputation of the two frameworks, and found that everyone’s teams were determined and opposed. Complaints about Hibernate are usually due to the fact that it tends to cause serious performance problems in complex associations, namely N+1 problems. But it is the best framework with object-oriented support. Mybatis, on the other hand, is relatively easy to use, requiring only SQL statements. But it also means breaking some object-oriented rules.

Big guy :(seems to agree) do you know anything about the database? Can you talk about the transaction level of the database?

Me :(completely forgotten) emmm sorry I can’t remember exactly.

Big man: Do you still remember the locking of the database? Like optimistic lock, pessimistic lock?

Me :(please don’t ask T T)

Big guy :(perseverance) now I assume that there is a user table, you know, the normal table can only store about 10 million or 20 million data. But Alibaba has hundreds of millions of users? How would you store it?

I: can be vertical segmentation and horizontal segmentation.

Big man: Do you think this should be vertical or horizontal?

Me: Vertical (mouth ladle for history)

Big guy :(very patient) but my database still can’t put it down

Me :(as if suddenly waking up) should be a horizontal partition, split the table into multiple tables and then distributed storage

Big man: How do you think we should divide it?

Me :(can I ask again?) It can be based on geography, but depending on the distribution of users, there will still be some areas where access is dense and some areas are sparse. By user level?

Big man: No, the user level will change, not appropriate. You’re not thinking about it at this stage

Me :(thank you for the step!)

Linux

Big man: what operating system does your server use?

Me :(ah, send proposition) we use centos system on ali cloud

Big man: Are you familiar with Linux?

I: not very familiar, just the entry, can knock a little instruction.

Big guy: Ok, do you know library functions and kernel calls?

Me: Does a kernel call mean going into kernel state and executing instructions and then going back to user state?

Bosses:

Me: I know probably so much, only understand the content of a few concepts. (Cool cool to myself)

Big Man: Do you know how to check the progress?

Me: oh… I can’t remember, I usually look up the instructions (so the big guy gave up the other Linux problems).

JVM

Big Man: Do you know anything about JAVA virtual machines? Can you explain the underlying modules?

I :(if you inform me of the interview tomorrow, I will understand ><) sorry, I am not familiar with this area of knowledge, but I would like to learn.

thread

Big man: Do you know what thread safety is?

For example, if there are two threads accessing the same variable at the same time, the changes they make to the variable can be uncertain.

Big man: Do you know of any methods that JAVA has to implement thread safety?

Me :(I translated the blog a few days ago, but forgot about it faster than anything else) first synchronized modifiers, and then JAVA implements its own wrapped classes such as LatchDown, Atomic series (????????) Later it was CountDownLatch! What about the final keyword of Daming Lake? And the Lock by xiaoming Lake? What about collections that implement threads, such as ConcurrentHashMap?)

Sure enough, the big man opened the next question.

distributed

Big Man: Have you ever written about distributed businesses?

Me: I wrote a KVStore based on HDFS distributed storage, and the upper layer uses Hadoop APIS to implement it.

Big man: That is distributed storage, I want to know about distributed business?

Me :(corrects quickly) does dubbo count? (So he introduced dubbo.)

Big Man: OK. So what do you think is the problem with distributed?

Me: That’s the classic CAP problem. No database can satisfy all three

Big Man: Can you explain exactly what CAP stands for?

Me :(tense to blank) Consistency? Atomic? P… Persistency???

Big Guy:…

CAP: Consistency, Availability, and Partition Tolerance

Design patterns

Big Man: Have you ever learned about design patterns?

Me: I see

Big Man: What design patterns have you learned?

Me: blablabla

Big Man: Then explain the command pattern

Me: It’s kind of like the idea of functional programming. The instruction pattern is to encapsulate each operation as a unified interface and provide implementation classes for each operation. This removes the strong coupling between the calling class and the instruction by simply programming to the Command interface.

conclusion

Finally, of course, and the big guy talk a small talk, the last struggle. To sum up, in order to conduct a successful interview with Alibaba, you need to know and even master the following:

  • The JAVA language, especially threads
  • The JVM principle
  • Database (transaction, locking, ORM)
  • Linux
  • Spring (important!)
  • distributed
  • Design patterns

It’s a very wide range. But in fact, to become a good back-end development, is the need for these knowledge, can only say that they are too vegetables. Keep studying!

Content is organized on the web

Bonus of the day: Interview resources package for Famous companies to get you to the top


Screenshots of some resources:









Method of data Collection

Follow the public account [Pegasus Club]

Navigation recovery number [33]


You can view the download method


Weixin.qq.com/r/bThZQajE7… (Qr code automatic recognition)

Pegasus will

AI artificial intelligence/big data/technology management and other personnel learning exchange park


Previous welfare concerns about the pegasus public number, reply to the corresponding keywords package download learning materials; Reply “join the group”, join the Pegasus AI, big data, project manager learning group, and grow together with excellent people!

Microsoft big shots series of lessons

(Scan or subscribe)



M.qlchat.com/live/channe… (Qr code automatic recognition)



From beginning to research, the 10 most Readable books in the field of artificial intelligence

RSVP number “2” machine learning & Data Science must-read classic book with resource pack!

Into AI & ML: Learning machine Learning from Basic Statistics (PDF download)

Answer the number “4” to learn about ARTIFICIAL intelligence, 30 books should not be missed (with electronic PDF download)

Answer number “6” AI AI: 54 Industry Blockbuster Reports

TensorFlow Introduction, Installation tutorial, Image Recognition application (with installation package/guide)

AI Artificial Intelligence/Big Data /Database/Linear Algebra/Python/ Machine Learning /Hadoop


Reply number “12” small white | Python + + machine learning Matlab neural network theory + practice + + + depth video + courseware + source code, download attached!

Reply number “14” small white | machine learning and deep learning required books + machine learning field video/PPT + large data analysis books recommend!

Reply to the number “16” 100G Python from beginner to Master! Complete video tutorials + Python Classics for self-study!

Answer number “17” 【 dry article 】31 papers on deep learning required reading

526 Industry reports + White papers: AI, Artificial intelligence, robotics, smart mobility, smart home, Internet of Things, VR/AR, blockchain, etc. (download)

Reply number “19” 800G ARTIFICIAL intelligence learning materials :AI ebook +Python language introduction + tutorial + machine learning and other limited time free access!

17 mind maps for machine learning statistics

Ten years ago on This day on Machine Learning Projects.

Machine learning: How to go from beginner to Never Giving up? (With benefits)

Respond to digital “24” flash download | 132 g programming data: Python, JAVA, C, C + +, robot programming, PLC, entry to the proficient in ~

Reply number “25” limited resources | 177 g Python/machine learning/TensorFlow video/deep learning algorithm, introduction to cover/intermediate/project each stage!

Reply number “26” introduction to artificial intelligence book list recommended, learn AI please collect well (attached PDF download)

Reply | digital “27” Wu En of Stanford CS230 deep learning course a full range of information release (download)

Reply number “28” Programmers who understand this technology are being snapped up by BAT… (Information pack included)

Respond to digital “29” dry | 28 this big data/data analysis, data mining ebook collection of free download!

Reply digital “30” receive | 100 + artificial intelligence study, deep learning, machine learning, big data, algorithms such as data, decisive collection!

Answer the number “31” 2G Google Machine Learning 25 lectures crash course complete (Chinese version), limited time download

FMI Artificial Intelligence and Big Data Summit Guest Speech PPT


Top 10 AI Jianghu Fields

Machine Learning Practical Experience Guide

More than 100 Papers on deep Learning

Top ten Classic Algorithms of Data Mining

6.10 Ele. me & Pegasus Project Management Practice PPT