I won the byte Java backend offer in March, and I will share my interview review experience

foreword

I have a master’s degree in computer science from NUS and a bachelor’s degree in EE from Wuhan University of Technology. I received back-end internship offers from Tencent and Byte in the spring recruitment. I am still doing an internship in Byte. Today I will share with you my interview preparation experience. study.

Before I start sharing, I would like to throw out a technical interview formula that I think is for your reference only, and you are welcome to discuss it together:

面试 = 40% 八股 + 30% 算法题 + 20% 项目经验 + 10% Idea

In the following interview preparation experience sharing, I will focus on project experience and Idea.

Stereotype & Algorithm Questions

I think there are countless materials on the market for stereotyped and algorithmic questions, so I will briefly talk about them here.

If you have prepared enough for this part or have your own methodology or learning route, you can directly fast forward to  Project Experience & Idea .

2.1 Stereotype preparation

For stereotyped preparation, I am interview-driven review. Stereotyped essay review and interview intersect each other, which is a process of mutual promotion.

  • It took me about 1 to 2 weeks for the first round of review, and I went through the basic knowledge of MySQL, Redis, JUC, JVM, operating system, computer network, microservices, etc. in a rough and simple way, about 1 to 2 days per section, I can simply deal with the basic interview questions, and after a round of review, it just corresponds to a round of interviews with ByteDance.

  • I spent about 20 days on the second round of review, focusing on in-depth study and review of the knowledge points of each section before, and with the face-to-face (Baidu or Google search: XX company back-end/front-end face-to-face), repeatedly check Fill in the gaps, find answers from books or the Internet when encountering unfamiliar topics or knowledge points, and record them for later review. I probably read less than 50 face-to-face scriptures, and sorted out nearly 150 unfamiliar interview questions. The second round of review intersects with Meituan, Byte, Tencent, and Ali interviews. Many stereotyped interview questions prepared during this period were also asked during the interview.

You can refer to my review route and experience, and use the interview as the driving force to review stereotyped essays efficiently. This stage does not test IQ, but only patience and perseverance . Because during the round of review, everyone may be very fresh. You have come into contact with or reviewed a lot of interesting knowledge points, and you feel that you have improved a lot. This stage may be more interesting. But after the second round of review, especially the interspersed interview, you may encounter two problems: one is that you feel panicked, thinking that you know nothing, and panic after watching a face-to-face experience; I dare not not look at it. No matter which problem it is, you need to calm down, guard against arrogance and impetuosity, quickly adjust your mentality, and don't get confused . Here I believe that as long as you can spend 20 days to 1 month and fill it up every day, you will be able to overcome it.

2.2 Algorithm question preparation

For the preparation of algorithm questions, there is no shortcut unless the talent is blessed, and it is over . At that time, I did more than 500 questions in LC, and I also did some scattered questions on other platforms, and I spent 8 months in total. In fact, 200-300 questions are enough for fine brushing. You can focus on Leetcode and focus on the sword offer . It is best to do it 2 to 3 times . Next, I will provide two strategies according to the length of review time.

  • Long and abundant time: Persist in reading the LC daily questions every day to broaden your thinking. Spend a certain amount of time reading  LC HOT100  and selected 200 question sheets, and you can also do some question sheets summarized by well-known algorithm bloggers (recommended LC question sheets by Ms. Miyamizu Sanye). In short, it is to read more and read more, plus the questions of the offer, and more than 300 questions can be written in more than half a year, which is enough to deal with general algorithm questions.

  • The time is short and tight: Focus on  the offer , for example, concentrate on a week or even less. If you have no idea after reading the questions for 10 minutes, just look at the solution, repeat the questions, and practice repeatedly until you have memorized them. If you still have spare energy, you can take the time to brush up  the LC HOT100  question list. Even if the time is so short, the amount of brushing questions at this time can reach about 100 questions.

3. Project experience

Next, I will focus on project experience and "Idea".

For the project experience, I will introduce the project to you first, and then share my experience from project preparation.

I have prepared three projects: smart parking lot project, imitation B station project, and RPC project. These are my own daily study projects, not internship projects. By the way, I only had a short internship before this.

  • The smart parking lot project , in a simple summary, is a project of adding, deleting, modifying and checking, and the technical content is not very high. The front end is displayed through a small program and a background management system. The front-end technology stack is Uniapp + Vue, and the back-end technology stack is Springboot, SpringCloud, Mybatis, etc. Only some simple micro-service technologies (Feign, Gateway, Nacos) are used, and the background management system uses RBAC to implement authority management. But when packaging the project, I added several highlights: Redis data cache, distributed Session, distributed ID, distributed lock technology, joint debugging with network camera to open the gate.

  • Like the station B project , the gold content of this project is higher. Its back-end basic framework is implemented by me with reference to Ruoyi Cloud Plus. The scaffolding comes with many functions such as data desensitization, idempotent, micro-service current limiting, observable monitoring, distributed session single sign-on, security measures, etc. Just the functional points that come with the scaffolding are enough to talk a lot in the interview. In addition, I focused on Redis-related system design for this project, such as dynamic feed stream push-pull, counting system related to likes and comments, and data caching, using a lot of Redis data structures. In addition, functional points such as in-site messages, single chat and group chat, and video barrage are also designed.

  • RPC project , this project is done by referring to the RPC in the Nuggets booklet. There are already many such projects, but during the interview process, you will often be asked how the project was designed. I will generally elaborate on the design ideas of the proxy layer, routing layer, registration center layer, asynchronous design, etc. Some interviewers may also ask about stress testing. If you want to write the RPC project in your resume, you must be clear about the design of the core functions, and try to practice expressing it several times.

Now, let me summarize the points that need to be paid attention to in project preparation:

  • The project to be prepared must be a project that you are very familiar with, at least the functional points written in the resume can withstand the interviewer's cross-examination. Generally, the interviewer will not ask particularly complicated questions, as long as you are fully prepared, you can answer them. It is best not to write unfamiliar function points, so as not to fight unprepared battles.

  • It is best to prepare more than two projects, one can be a web front-end and back-end project, and the other can be framework development and middleware development. In this way, on the one hand, it can reflect that your business ability is okay, and you are familiar with common development scenarios. When a mentor or leader assigns work, you know how to start and have your own implementation ideas; on the other hand, it can reflect that you have a certain ability to study and learn by yourself With problem-solving skills, able to gnaw hard bones.

  • In addition, I think that everyone can discover the needs from daily development, and design the website by themselves to solve the pain points from the actual situation. In this way, it will be an extra point in the interview. Because in practice or work, we start from actual needs and solve business scenarios one by one. The interviewer will recognize your project more. This point is also related to the "Idea" I will talk about later.

4. “Idea”

For "Idea", I think the proportion is the least and the interviewer may not ask you at all, but I think it is the most useful to me, and it actually guides me throughout the interview process and even the process of learning programming .

My "Idea" here refers to  what you want  &  some of your flashy ideas .

"Idea" first floor

The first level of "Idea": I think we need to clearly understand why we are learning programming and wanting to enter a large factory. This actually directly or indirectly guides our daily study or work. I can first share with you my "Idea" before the internship (after the internship, I have new cognition and changes, and I will share this part in detail later if everyone is interested).

The purpose of my learning programming is to find it interesting. Making websites, developing small programs, learning front-end and back-end, deploying servers, etc. are all challenging, and I have a sense of accomplishment after making it, so it is out of control.

On the one hand, I want to enter a big factory because the big factory really pays a lot of money. On the other hand, I want to enter a company to learn some real-world technologies and be able to actually make some products or projects. To put it bluntly, I want to Do something real.

In addition, I also have a relatively clear plan for my career. What I want is to focus on the back-end at work, deepen technology, and move towards the direction of an architect; improve my technical breadth in daily learning, be interest-oriented, dabble in In every field, try all kinds of new things.

The "Idea" I mentioned above really played a role in fueling my interview process. Because when the interviewer chatted with me about daily study and career planning, my whole mind was clear, and I could clearly tell him my thoughts.

This can leave a good impression on the interviewer. After all, the programmer interview is not just a technical inspection, but a comprehensive evaluation. In addition, I can also give you a recent case in the group. A colleague of mine interviewed other back-end interns, but when asked if that student had applied for other positions, he hesitated.

He said he was not sure and would try the algorithm post later. The interviewer thought that this student did not have a very clear plan, and even if he was recruited, he might not fully devote himself to the back-end work. (There may be other factors that caused the interview to fail)

"Idea" second floor

The second layer of "Idea": whether you have some whimsical ideas, whether you are trying to do your own open source project. I have a deep understanding of this during the interview process at Tencent. Let me first share this interview experience with you.

The three rounds of interviews hardly asked any stereotyped essays, the third round of interviews was about torturing projects, and the other two rounds were about business scenario design questions and chatting about daily learning and open source. Especially the first round of interviews left the deepest impression on me. The interviewer estimated that many people have heard of it. He is an open source master of PHP.

During the interview, he has been throwing me scene design questions that are close to the actual business. The questions are open and there are no fixed answers. I think he is testing my breadth of thinking and technology. I have also given my own thoughts on these issues. In addition, we also talked about open source projects, and he shared with me his original intention and process of doing open source.

And I have always wanted to do my own open source project, so I told him my thoughts. This interview also allowed me to learn a lot of things that I couldn't learn in stereotyped essays. In the second round of interviews, the interviewer finally asked me what I was studying recently, and I naturally talked about some topics about GPT and I wanted to do a resume project for AIGC. The interview had already been prepared, but the interviewer might be more interested in this topic and chatted with me for less than 10 minutes.

From my two interviews, I feel that it is important to have my own ideas, whether I am exploring and thinking about new things every day, and actually making some interesting projects or products. This is what I have been interested in since I learned programming. The interest has pushed me to explore new things constantly and produce my own "Idea" frequently.

Although some seem to have little connection with the backend, it actually helped me get the offer to a certain extent in the end. Moreover, "Idea" can also motivate oneself to learn programming with self-motivation and happiness even after the spring recruitment and autumn recruitment are over. This is also the most important point in my opinion.

To sum up, "Idea" is: a clear understanding of self, and continuous exploration.

Of course, if you have interview needs recently and want to read the latest interview stereotyped essays, you can take a look at this "Java Advanced Learning + Interview Collection" that I specially compiled to share with you. The content covers: computer basics, Java, JVM , spring, algorithm, micro-service, distributed, Dachang face-to-face experience, technical brain map, etc... A total of 1700+ pages are of very high quality! ! !

Regardless of whether you want to go to an interview recently, it is recommended that everyone keep a copy! ! After finishing the study, whether it is promotion in the factory or job hopping and salary increase, it is no problem!

The content is as follows:

  • Analysis of real interview questions in Dachang (38 pages)

  • JVM (page 183)

  • Multithreading (page 221)

  • Mysql (216 pages)

  • Spring (338 pages)

  • Spring Boot (page 41)

  • Classic interview questions (35 pages)

  • Spring Cloud (50 pages)

  • Dubbo (55 pages)

  • Mybtis+Redis (page 27)

  • Linux+Network (66 pages)

  • MQ+Kafka+Zookeeper (page 40)

  • Netty (21 pages)

  • Big data + hadoop (31 pages)

  • Algorithms (38 pages)

  • Design pattern + project + high concurrency (41 pages)

Note: The space is limited, and the information has been organized into documents, which can be obtained at the end of the article!

1. Algorithm (necessary for major manufacturers) 2023 edition

(Including: red-black tree, B+ tree, greedy algorithm, hash divide and conquer, seven search algorithms, dynamic programming, consensus algorithm, data structure, etc...)

2. Design Patterns (If you want to do a good job, you must first sharpen your tools) 2023 edition

(Including: singleton pattern, factory pattern, abstract factory pattern, builder pattern, prototype pattern, adapter pattern, decorator pattern, proxy pattern, etc. 23 design patterns...)

3. Netty + MQ + kafka (underlying principles + interview questions) 2023 version

(Including: Netty common scenarios, high-performance design, architecture design, classic interview questions, etc...)

4. zookeeper +  Dubbo (technical dry goods + interview questions) 2023 version

(Including: zookeeper cluster, application scenarios, distributed locks, Dubbo core functions, cluster configuration, load balancing, common interview questions, etc...)

5. Mybtis + Redis  (underlying principles + interview questions) 2023 version

(Including: mybtis cache, application principle, paging, Redis transaction, master-slave architecture, cache, penetration, penetration, downgrade interview questions, etc...)

6. Http protocol + Linux  (underlying principles + interview questions) 2023 edition

(Including: TCP/IP protocol detailed notes, network layer architecture, three-four handshake, Linux overview, disk, directory, file, security, classic interview questions, etc...)

7. Mysql (underlying principles + interview questions) 2023 edition

(Including: database foundation, data type, engine, index, transaction, lock, view, sql statement, optimization, mysql lock, interview questions, etc...)

8. Spring + Spring MVC + Spring Boot (underlying principles + technical dry goods)

(Including: spring principle, cycle, ioc principle, MVC transaction, AOP principle, Boot configuration, security, monitor, interview questions, etc...)

9. Classic Interview Questions + SpringCloud (Common Interview Questions in Dachang) 2023 Edition

(Including: 21 questions required for interview, Spring Cloud fuse, cap principle, advantages and disadvantages of design goals, version relationship, etc...)

10. Java foundation + JVM (technical dry goods + underlying principles) 2023 edition

(Including: Java basics, exceptions, NIO, HashMap, Tomcat, JVM stack, memory model, tuning, GC, old generation, new generation, garbage collection, interview questions, etc...)

11. Multi-threading  (underlying principles + technical dry goods) 2023 edition

(Including: basic concepts of multithreading, thread safety, thread output, volatile, ThreadLocal, usage scenarios, concurrency, blocking queues, interview questions, etc...)

12. Practical project (Github explosion) 2023 edition

This project is a standard and launched "online car-hailing" application. It meets the technical requirements of the Ministry of Communications of my country for the supervision of online car-hailing. Passed the Ministry of Communications' online and offline capacity certification for online car-hailing. The prototype of the project was put into operation in Hangzhou.

The core functions of the project include: account system, order system, payment system, map engine, dispatch engine, message system and other core solutions for online car-hailing.

The project fully adopts micro-service architecture design, applies a mature interface security design scheme, uses distributed locks to ensure data synchronization in a distributed environment, and uses distributed transactions to solve data consistency in a distributed environment.

Prerequisite skills: Git, Maven, Spring Boot, Spring Cloud, Redis, MySql, RabbitMQ, ActiveMQ, etc.

Project architecture diagram:

Note: The space is limited, and the information has been organized into documents. Click the small card below to get it!

Guess you like

Origin blog.csdn.net/Javatutouhouduan/article/details/131110119