Ali Dharma Academy/Byte Backend Research and Development of Cold Noodles

I just finished interviewing the back end of Byte, and it is basically cold. It just so happened that I had an interview with Ali Dharma Academy last week. That was the resume that was picked up, and the questions were relatively casual. This time, Byte is a more formal and serious one. Let's review from this interview to see the problems exposed in the whole process and what should continue to learn next.

Let me talk about my basics first:

  • The undergraduate major is communication engineering, and I have done some hardware competitions and projects. The programming language I use is C, and my mastery is basically the most basic C grammatical structure.
  • My postgraduate major is network security, but what I do is mostly academic work. The things that usually require programming are some experimental verification things, and most of them use Python.
  • Computer network is a professional course for the postgraduate entrance examination, so I learned it fairly well. Then I went through the data structure last year. I read about half of the computer composition principle. I just finished learning the operating system at the end of March this year, and the database has not yet started.
  • LeetCode is brushed with Python. So far, 81 questions have been written, and I am basically familiar with 80% of the commonly used algorithms, but I can't say that I have fully mastered them.

1. Interview at Ali Dharma Academy

Interviewer: Let me give you half an hour to do a programming question. You can use any language. If it doesn’t work, you can write pseudocode. The topic is to flip part of the linked list, take a section from the middle and flip it (LeetCode original question!!! However, I didn't get it before the interview...)

Me: I wrote it, but it didn’t come true. Then talk about the idea of ​​​​this question.

Interviewer: Do you usually learn something extra yourself? Or just follow the course to learn?

Me: I usually learn some things that I am interested in, because I want to develop in the direction of C++ development in the future, so I plan to learn C++ recently.

Interviewer: Very good. Do you know anything about rust? Our department basically uses rust for business, and also uses a little C.

Me: I have heard of this language, but have not learned anything about it.

Interviewer: Oh, what do you know about our department? Do you have any questions?

Me: What exactly does your department do? Can you introduce it to me?

Interviewer: Our department has just been divided from Alibaba Cloud. There are two main businesses, system security and precision computing. I do precision computing, and I don’t know much about system security. Let me briefly introduce it to you. Let’s take a look at our business blah blah blah... (I can’t remember the specific content, because I really don’t understand this part)

Interviewer: Do you usually have any hobbies?

Me: Let’s run and keep fit, exercise more~

summary

Ali Dharma Academy felt very casual this time, and felt that he was not ready, and I was not ready either, and just picked up my resume. Because I originally voted for Alibaba Cloud, but I have been preparing for it for about a month, and then my resume was overdue because I didn’t have an interview for too long. I was in a daze with the content of the interview, so it was inevitable that I would be cool in the end.

2. Byte Music Backend Development Interview

Interviewer: Hello, please introduce yourself first

Me: Hello, I am a second-year graduate student majoring in network security at XXX school. I usually do some academic-related work. I published an EI conference paper last semester. Then my undergraduate major is communication engineering, and I have participated in some hardware-related competitions, such as the electronic design competition, and the challenge cup competition, probably like this~

Interviewer: Okay, I see that you are familiar with Python and C language in your resume, so let’s ask something related to C language first. Can you explain the lvalue and rvalue in C language?

Me: The C language was often used in competitions when I was an undergraduate. I haven’t touched it for a long time now, and I kind of forgot it... (I didn’t learn it well, I just know some basic grammar)

Interviewer: OKOK, okay, then ask some questions about Python. Do you know the two functions of dictionary and set, which function is more efficient, and what is their time complexity?

Me: Both dictionaries and sets in Python should be implemented with hash tables. The efficiency of the two should be similar, and the efficiency of sets is slightly higher. Generally speaking, the time complexity of hash tables is O( 1).

Interviewer: Okay, let’s ask you some network knowledge based on what you have learned about network security. Can you tell me about the detailed process of DNS resolution, such as this domain name: www.tiktok.com

Me: blah blah blah (that’s the basic knowledge of the network, just recite it to him directly, from local cache, to local DNS server resolution, all the way to the root server, and then explain iterative query and recursive query.)

Interviewer: What protocol is used at the bottom layer of DNS? TCP or UDP?

Me: using UDP

Interviewer: Then ask some questions about the operating system and explain the difference between processes and threads (very common question)

Me: First explain the concept of process and thread, and then talk about the difference and connection between the two (conceptual knowledge, just memorize)

Interviewer: So if two processes print content at the same time, are their addresses the same?

Me: I am a bit confused about this question, because I didn’t quite figure out at that time whether the address of the printed content is a logical address or a physical address when the process prints the content, so it is not very clear.

Interviewer: Then can you explain the concept of virtual memory?

Me: (continue to memorize stereotypes)

Interviewer: Do you know anything about databases? Have you ever used MySQL?

Me: No, because I changed my major, so I have never studied databases, and I have never used them... (embarrassed)

Interviewer: Okay, let’s do a programming question, and then come up with a question. The question is to give n songs and form a two-dimensional array. The elements in the array are only 0 and 1, nums[i][j] = 0 means that the i-th song is not similar to the j-th song, nums[i][j] = 1 means that the two songs are similar, and if a and b are directly similar, b and c are directly similar, then a and c are indirectly similar . Find the number of similar song groups.

Me: Completely confused, I didn’t even understand the question, let alone write the code, so just GG~

write at the end

Judging from the experience of these two interviews, I found that there are still many shortcomings in myself, mainly in several aspects:

  • LeetCode is not enough to brush the questions, and many data structures and algorithms have not been fully mastered. As soon as it involves dynamic programming and DFS , it is easy to GG. I haven't mastered these two types yet, but now big companies love to test this kind of questions. This type of question was tested in the written tests of Ali and Huawei that I took recently.
  • There is a lack of knowledge in the database. Basically, the basic computer knowledge is about data structures and algorithms, computer networks, operating systems, and databases.
  • During the Dachang written test, the writing code is basically in the ACM mode, unlike LeetCode which will give input and output, you can just write the function directly. So the input and output have to be well practiced. Niuke has a practice field dedicated to input and output, and you can practice more.
  • The project is also lacking, and the understanding of the language is not deep enough. For example, when I asked about the implementation of some functions of Python, I was very confused.

During the Huawei machine test, I was lucky enough to make a 200-point question, but only passed 70% of the instance tests, and I should be able to score 140 points. It is said that 100 points can be passed. I hope Huawei will give me a chance, so that at least I can have a Take a break from the internship, and buy me three or four months to supplement these pieces of knowledge, so that the autumn recruit can still struggle~

If you still want to participate in the interview in the future, you should continue to update!

I hope that everyone who is about to interview can get the offer they want! ! rush! !

Guess you like

Origin blog.csdn.net/loveCC_orange/article/details/123992766