Type of work: client software development
Interview location: Beijing
Recruitment company: Baidu
I have been paying close attention to Baidu before, and I have been looking forward to working in Baidu. Just recently, Baidu came to our school for publicity, and went to the presentation with the mentality of giving it a try. I didn't expect to finally get Baidu's offer, which really made me feel very lucky!
Presentation:
Baidu's presentation came early, and it was the first presentation I attended, so I have a deep memory. The advertisement outside the big valve is dazzling. A very handsome man, I wonder if it is Li Yanhong, drew two horns on his head, which means he is a cow. I hope everyone will join Baidu and grow up under the attention of the cattle people. I obviously underestimated the influence of Baidu among students. I arrived at the demonstration site half an hour early and found it crowded. I have no choice but to stand in the corridor. Later, the security guard advised the students to sit on the floor, so no matter whether the ground was dirty or not, no matter GG or MM, everyone sat down, showing that it was still very hard to find a job. Indeed, in the days after this, everyone has been rushing for the enterprise in their minds, both mentally and physically.
Half an hour before the performance, Li Yanhong has been arranged to attend a music concert. The boss of Baidu is very handsome, and it is said that he is the most handsome boss of a well-known domestic enterprise. Sure enough, he was gifted. Listening to his entrepreneurial experience, watching him dance, telling the origin of Baidu's name and reciting poems are really a pleasure. Baidu's propaganda film is also very imposing, and I was deeply impressed by the beauty of baidu edifice. After the presentation was officially started, the content was similar to that of other companies, including Baidu introduction, corporate culture, internal working environment, employee development and so on. One of them, MM, a newly recruited Chinese worker, attended the presentation. She was very lively. In short, Baidu's presentation lasted for a long time and the number of people was very large. Baidu gives me a very good feeling, very out of reach.
Written test:
When Baidu voted online, I registered with Netease's email, but I couldn't get the activation information. Later, I changed my QQ mailbox and registered successfully. As we all know, using QQ mailbox in job hunting may make enterprises feel that this person is too naive and has a bad impression, so they are worried and want to re-register an account, but an ID card can only register one account, so they can only give up and worry that their resume will be brushed off. Later, I found that this worry was unnecessary, because Baidu was basically Haibi's policy, and the written notice and written test process were handed over to the recruiters of Zhilian. The whole process was crowded and chaotic. Baidu, like QQ, also supports overlord pen, which is equally commendable. The status of Baidu's recruitment system may not be completely consistent with the actual status. For example, my resume has been in the state of being processed, while some people's status is "written test", "interview passed" or "interview failed" The written test will be held on 10/0, almost one month before the presentation. This is Baidu's strategy. First, it will be presented nationwide, then it will be written and interviewed nationwide, and finally it will be summarized nationwide to inform the results. The written test is conducted in the evening. Like Alipay, they all sit next to each other, but the test papers are the same. Baidu is not worried about you copying other people's papers, because you can't copy them. It takes two hours and six big questions. The title of the test paper especially shows that solving problems is an art of weighing. If possible, give full play to it. Read through the whole topic and choose the best one before you do the test paper. Baidu's six topics are roughly as follows:
1. Characteristics and non-recursive implementation of depth-first and breadth-first traversal algorithms
I simply write out the convenient depth-first and breadth-first algorithms for this problem, and then briefly explain the characteristics of its non-recursive implementation, that is, it needs a stack or queue, and the auxiliary space is large.
2. If a program corrects the wrong problem, there may be errors or security risks.
This question is usually done by students who are familiar with C/C, that is, some pointers are passed and some arrays are out of bounds, so it is not difficult.
3. The memory of a computer is 1KB, and the processor is 1MHZ. What is the longest running time of all programs that can run on this computer and terminate decisively? It is required to write the reasoning process and make any assumptions.
I assume that the computer is a user single-task operating system with real address mode, and the running programs are constantly changing the memory state without repetition. The termination state of the program is the exact state of the memory, which is defined as the termination state. So the reasoning process is as follows:
1KB memory * * * Status: 2 (1024 * 8)
The number of times that the 1MHZ processor can change the memory state per second is 10 6 times.
Therefore, if an application starts from a certain state, traverses all intermediate states, and finally ends after the big termination state, the elapsed time is the longest running time of the program. Used for:
(2 (1024 * 8)-1)106 seconds
4. On the issue of compilation dependency, the general idea is that there are many components in a project, and the compilation of some components needs to be based on the compilation of other components. How to find a reasonable order so that all components can compile smoothly.
This problem is actually an extended sorting problem. See Data Structure edited by Yan Weimin published in Tsinghua University for details. I drew some diagrams and data structures with an exact example, and then expressed the algorithm in words.
5. Programming problems. It is required to find the longest digit string in a string, such as "fafdahruqa12343fa43faf56454354fas", and it is required to find "56454354".
This problem is very simple, you can directly write the code that can run.
6. Regarding the system design of URL, a URL is divided into two parts: site and path. In addition, it is necessary to maintain some fixed-length attributes and variable-length attributes, such as the time when the URL was discovered and the description text of the URL. It is required to design a system that can store and maintain 65.438+000 billion URLs and their attributes, support adding, updating and deleting URLs, and determine whether a site is in the system. If so, it needs to give information. A site may have multiple paths. If a site is given, all paths under the given site are supported.
In this problem, I used the method of hashHashHash, took the site as the keyword Hash, designed a data structure to represent a site, fixed-length attributes and non-fixed-length attributes, and designed a path linked list to store all paths. Then, briefly explain the functional algorithm of each requirement.
Baidu's written test has many topics and a large quantity, and it is not required to complete all of them. Generally speaking, it is ok to write an idea. If the idea is correct, the key is to think about how to express it. After the written test, I feel much better and think I should be able to enter the first round of interview.
Technical aspects:
The day after the written test, I received an interview notice from Baidu. Because I am not good at algorithms, but Windows programming is OK, so my application direction is client software development. The interview place is arranged at Luojiashan International Hotel. Baidu's interviews are all one-on-one. Baidu's technical interview is said to be difficult. Ask some difficult questions and write code on the spot. At that time, when I got the interview notice, I was both happy and worried. I guess I was run on. I was scheduled for an interview at 4: 30, and at 6 pm, it was the second written test of Thunder. I wanted to give up at that time, and it felt a bit like cannon fodder. After weighing for a long time, I decided to give it a try. Arrived at Luojiashan Hotel one hour in advance. Most of the rooms on the second floor are open, and the interviewer is one-on-one. Some rooms are talking, probably about projects, or the interviewer asks and the interviewer answers. In some rooms, the interviewer is doing something else. The interviewer is prone on the table and should be writing a program. There are also several interviewers waiting outside their room, struggling to listen to the conversation inside. I took advantage of the time I arrived first, and quickly chatted with several previous interviewers to get a general understanding of the content and form of the interview. After a while, all the interviewers who came first went to their rooms for interviews, leaving me alone in the corridor. I can't think of anything in my mind, just don't want to think. Anyway, I think I'm just here to play. It's finally my turn at 4: 30.
I was interviewed by an excellent technical interviewer who introduced me as the head of Baidu's client business department. At first, I introduced myself, and then I began to ask some questions about the project, including some things of Windows kernel, such as multithreading, process communication, WM_COPYDATA principle, memory mapping file and so on. I answered them one by one, and it seems that he is quite satisfied. Finally, I can't escape writing programs. He asked me to write a procedural question, which is relatively simple. I wrote it right away, and I finished it in three minutes. My notes are complete and I feel very regular. The interviewer looked at it and found nothing wrong. He asked a question about programming habits with great interest. He asked me why I like to write if(0x00==*pStr) instead of if(0==*pStr) to judge whether a character pointer ends. I said that 0 looks too thin, similar to the number 0,'' is too troublesome to write, and 0x00 feels good to write. That's about the technical interview. It is far less difficult than Tencent, and the interviewer is not too difficult for me. Probably because I am a mechanical major, not a computer major.
It is estimated that after more than an hour, after talking about technology, the interviewer said that you are the last one today. We might as well talk for a while. Do you have any questions? I asked about the development of Baidu's client products and some things that fresh graduates lacked when they entered Baidu. Then I briefly introduced myself. Later, he asked a question. He said that Baidu's salary is relatively high compared with other companies. Do you have any salary requirements according to your specific situation? I asked him what Baidu's salary system was like. He said that there are several levels of salary. Once you have just been assigned to one level, you will have the opportunity to re-evaluate it every year. I thought about it and said, then the goal I set for myself is the highest two levels. I hope I can get this salary on my own, and I believe I can do it. On the other hand, as far as my own situation is concerned, my family and I are short of money now, but as a rural child, I am easily satisfied. Maybe some people are not satisfied with driving a car and living in a villa, but for me and my family, we will be as happy as a grain of rice for a long time. I successfully avoided the interviewer's question in my answer, and the interviewer heard my answer and even said yes. It took me about 1 hour and 40 minutes to finish. The whole process was perfect, all the technical questions were answered perfectly, and all the chats were very enjoyable. The interviewer was very kind when he left. He gave me a Baidu hi dress and a bunch of dolls, saying they were for my girlfriend. When shaking hands, he said he hoped to see me in baidu edifice. At this point, my Baidu side passed smoothly. Because I spent 40 minutes in many aspects and missed two strokes of Thunder, Thunder's job search ends here.
Two sides of the product:
The technical process is perfect, and I think I can definitely get into the second side. When I came back to discuss with the students in the homework group, I knew that many students, such as those who were maintained by Yun, met both sides at once, and I couldn't help but feel a little worried. What's going on here? The next day, another student who was in luck received the third interview notice, and they went to meet one after another, while I was still waiting. On the third night, I really couldn't stand it, so I called Luojiashan Hotel and transferred to the interview room. The interviewer recognized me as soon as he heard my voice. He told me that the department is different, and the students on the client side may only be in Wuhan on one side or two sides, but so far, the first side has not been finished, and told me to be patient and wait for the notice. At this time, I realized that Baidu still called many people to interview, because each interview of Baidu is an hour, so it is reasonable to delay for a long time. On the third day, I finally got a call from HRMM asking me to attend the second interview. On the first side, I asked the interviewer about the second side. He told me that I was studying system knowledge, such as what to consider in Baidu hi design. So I also learned about Baidu's client products from the Internet these days, mainly guessing how he realized it from the technical aspect. In fact, on the second side, I realized that it was only a little useful. The second aspect is not technology, but the understanding of products.
I was arranged for an interview at ten o'clock in the morning. The interview place was Room A. I arrived at Luojiashan Hotel at nine ten and met a girl and a boy from Wuhan University. I didn't know until I asked, they happened to be in Room A on one side, and the interview room on the other side happened to be my room. So we talked to each other, and I realized that both sides were almost product problems, and there were no technical problems. The door of room a is closed. At ten o'clock, I rang the doorbell, but no one answered. I guess there may be an interview in the room, so I will continue to wait. At ten o'clock, the boy from Wuhan University reminded me to knock directly, because it was my own interview time that was delayed. Fortunately, he reminded me, so I knocked directly. After opening the door, the interviewer asked me, are you late? I said no, I arrived at 9: 10 and waited outside the door. There was no response when I rang the doorbell at 10. I thought you were interviewing someone else, so I waited for another ten minutes. After sitting down, the interview officially began.
At first, someone asked me what network products I had used. At that time, I only said a few, QQ, Fetion and online games. Later, under his guidance, I said that Thunder, BT and Foxmail were not very good. Later, he asked me if I knew Baidu's client products, and I said Baidu Hi. He then asked me what I thought of Baidu hi. Frankly speaking, I only used it once in the first year of research and never used it again. I said that Baidu's products are only for search, and everyone else doesn't know. I'm still talking about Baidu with a classmate today. My classmate said that Baidu originally had only one webpage, so it can be seen that, as far as I know, you expect to use Baidu hi as a platform to integrate your products, just as the QQ client integrates most QQ services, but I personally think this effect is very bad, because Baidu hi is positioned as instant messaging, and QQ has an insurmountable hegemony in the domestic instant messaging field. I'll think about it when Baidu hi comes out. What are the benefits of using Baidu Hi? No, it's not. In fact, from another angle, Baidu should not take the instant messaging client as the starting point, but should take its own characteristics and search as the starting point. As far as I know, Baidu's search is only presented in the form of IE. Although users can set their own search preferences, they are based on cookies, but I personally don't like using cookies. I think that violates my privacy, so I can't set my search preferences at all. I think this is a pity.
Can Baidu develop a search client, provide registration for each user, save users' search settings, and integrate other products on this basis, such as Baidu Hi, Search Bar, Baidu Hard Disk, etc. So that the products launched with the new concept of search client will be much more popular than those launched with the concept of instant messaging. He then asked me which network products I was dissatisfied with and needed improvement. I said that the thunderbolt interface of the web page is too slow to respond, and sometimes there are bugs that the web page can't be opened. Tencent QQ not only didn't develop its own login device, but canceled the entrance parameters of QQ, which made the popular QQ login device unable to work. I also explained to him that I have a need to log in multiple QQ on one machine, and I have developed two versions of QQ login devices myself. These recorders can still work normally before the 2008 version, but after the 2009 version of QQ canceled the input parameters, my recorder can't work either, which is very inconvenient. He then asked, what do you think Tencent will prohibit users from logging in to multiple QQ on one computer? I said maybe the server is not loaded enough? He said it was impossible. I said it might be to prevent QQ account from being illegally used. For example, some users may log in to multiple QQ on one machine to send advertising information. He then asked, what do you think can be done to stop this behavior of users?
In fact, I have no experience in this field, so I can only talk about it casually, and solve this problem from the angles of frequency of sending messages, content repetition, tips and reports. Later, he asked me to elaborate and design a solution to this problem. I just said a lot.
During the second interview, I obviously felt that this interviewer was much better than the first interviewer, because I tried to introduce him to my familiar technical field many times, but he seemed to ignore me and still asked himself questions, all about products. Sometimes, according to my answer, I will further grasp one or two points from the inside and then ask questions. The meeting lasted about forty minutes. The interviewer said it was almost over and asked me if I had any questions. I asked him why he asked us to make a technical product. He said that it was because he had some difficulties in communicating technology and products when he was working in the company, so he designed this interview session, mainly to see the technical interviewer's understanding ability of products, which is one of the more important inspections.
The second interview time is exactly fifty minutes, plus ten minutes I wasted, one hour. Thank you very much for your classmate Wu Da. If he hadn't reminded me, the interview time might have been shorter. So remind future students that if it's time for your interview and you're not sure whether the interviewer is interviewing others, you can try knocking at the door, otherwise it's your own loss to delay the time.
Telephone terminal:
17 Baidu finished in the morning and went to Huawei in the afternoon. During the period, I experienced a lot of writing and face signing, and successively got Huawei offer, Alipay offer, ASMPT offer, Tencent offer, CLP 29 offer and Chengdu Aircraft Design Institute offer. While doing other things, I have been thinking about Baidu's information. I received an inexplicable letter on the 23rd, saying that I would make a comprehensive evaluation of my interview and give a message within one month. If some students analyze it as a euphemistic rejection letter, it means that I should stop staring at Baidu and find something else at the right time. In fact, I learned later that some students in the department received the offer on the 23rd, while some students in my client received the rejection letter on the 23rd. I received an email asking me to wait, so there should still be a chance, so I waited and waited until the 29th, and some students got news one after another, such as receiving an offer or being called to Beijing for an interview. 3 1, when I just refused to sign Tencent's contract, the news of Baidu finally arrived late. I received a phone call at 6 o'clock in the evening, saying that my client had sent my resume to the quality management department. I think I am more suitable for developing the testing tool software of the quality management department. I asked if I was interested, and I said yes. Anyway, my project is related to software testing automation, and then we arranged a telephone interview at 9: 30 the next morning.
At 9: 30 the next morning, the very punctual phone rang. According to the scheduled plan, I first asked questions about the project in great detail, then asked my knowledge structure, specifically asked my research assistant, because I was responsible for the teaching management of software engineering and quality system. He asked me some basic knowledge of software engineering and CMM level 5, the content of the course and my basic understanding of software quality management. Because this course is taught by the tutor, I feel deeply. I think doing software quality management is a realm and an idea, so I told him some of my understanding and feelings truthfully, and I felt good about myself. Finally, I asked why I sent my resume to the quality management department, and also asked about the work of the quality management department. HR answers one by one. I asked about the next process. HR said there would be a seminar on human resources and a final conclusion. If I am admitted, I will receive your letter in a few days. If I am not admitted, I will receive a rejection letter within two weeks, because few people are admitted.
;