It took 10,000 hours to go from outsourcing to a big factory, the ghost knows what I have experienced! But looking back, it seems that the hard way is worth it!

Foreword:

There is no absolute genius, only continuous dedication. For each of us ordinary people, we can only rely on hard work + luck to change our destiny, but if you are not lucky enough, you can only increase the proportion of hard work.

In July 2020, I was fortunate to be a Java back-end developer by ByteDance. As the title said, I resigned from outsourcing. After 10,000 hours, I entered ByteDance and won the offer. I believe my peers know how difficult it is to enter a large factory from outsourcing. I cannot do without my own down-to-earth. Fortunately, every step I take leaves a thick footprint.

I resigned from outsourcing. After 10,000 hours, I walked into ByteDance and got an offer.

 

The following content involves: interview questions (including answers) + study notes + e-books + study videos, packaged for free sharing, like favorite articles and follow me, and then add the assistant vx: bjmsb2020 to get the download method for free.

A: Bytedance IES mutual entertainment interview experience restoration (Tik Tok backstage)

<1> ByteDance Douyin 4 interview questions

Because I personally have the habit of replaying, when the interview byte beats, I basically summarize the interview questions at the end of each round. Of course, the summed up may be slightly different from the actual situation, but the difference is not big. Basically the limit in my memory.

Java part:

  • The underlying principle of synchronized, lock, AtomicInteger
  • HashMap, ConcurrentHashMap underlying structure principle
  • Talk about service registration and discovery (this part mainly talks about springcloud eureka and some zookeeper, zookeeper election mechanism)
  • The implementation of Spring AOP, can siglib proxy final modified classes?
  • JVM garbage collection process, and talk about a garbage collector in detail
  • Strong reference, soft reference, weak reference, phantom reference application scenarios

computer network:

  • Congestion control and flow control
  • Fast retransmission and timeout retransmission
  • Why does the client wait for 2MSL after four waves
  • DNS resolution process
  • http2.0,http3.0
  • https connection process
  • CA certificate verification process
  • Do you understand the RPC framework?
  • How to design reliable transmission based on udp?
  • How does tcp ensure data security? How does the disk ensure that data is not lost?

operating system:

  • Blocking io and non-blocking io
  • What is the difference between a process and a thread, and what is the communication method?
  • Virtual memory and physical memory
  • The principle of linux interrupt by ctrl + c
  • Where is the efficiency of the coroutine?

MySQL:

  • Innodb, B+ tree, clustered index and non-clustered index difference
  • 10 million pieces of data, how high is the b+ tree?
  • Why use b+ tree instead of b tree, red-black tree?
  • What should I pay attention to when designing a joint index?
  • The underlying principle of the leftmost principle of the joint index
  • MVCC of mysql and whether to solve phantom reading?
  • Handwritten sql, to achieve a paged query in descending order of time
  • redo log,bin log,undo log

Kafka:

  • kafka-like rebalence
  • ISR
  • What happens if a new consumer is added?
  • How to ensure data consistency?

Redis :

  • The difference between RDB and AOF
  • Why does RDB fork child processes instead of threads?
  • Redis basic data types
  • The underlying data structure of zset, when does the jump table increase in height?
  • Distributed redis, cache and database read and write are inconsistent, the answer is delayed and double deleted
  • The interviewer asked to talk about redis casually, so he also talked about cache penetration, breakdown, avalanche and processing methods

Scene questions and intelligence questions:

  • The smart typing prompt and the principle of error correction let you design, how do you do it?
  • If there is a record collection of all websites visited, how to quickly determine whether the current website has been visited? (Consider Bloom filter)
  • How to implement the progress bar when downloading from a website?
  • 64 horses, eight tracks, how many times can you find the fastest four horses at least?
  • The operating system gives you a piece of free memory, how do you design to use and recycle it?

Hand tear code:

  • The maximum area of ​​the rectangle in the bar chart leetcode 84
  • Find the k-th smallest number, do it with a method other than the heap
  • Paint m houses with n colors, and adjacent houses have different colors. Cost[i][j] represents the cost of painting house i with j color, and find the minimum total cost of coloring. (LeetCode original title)

Other: (HR and Leader both asked some development questions)

  • What do you think is the biggest setback you have encountered? How to solve it?
  • career planning
  • Understanding of byte beating
  • Do you think Byte is a young company? Is youth a core competitiveness?
  • Do you have anyone you admire
  • Regardless of the company's geographic factors, which city do you most want to work in?
  • What are your usual hobbies?
  • Do you like blogging? What book to read?

I resigned from outsourcing. After 10,000 hours, I walked into ByteDance and got an offer.

Give me my question bank (1: BAT first-line interview questions)

I resigned from outsourcing. After 10,000 hours, I walked into ByteDance and got an offer.

Give away my question bank (2: special interview questions)

<2> ByteDance Interview Summary (some experience and tips)

  1. Byte bounce is really important to the algorithm. It is really necessary to read the questions in advance. Otherwise, it is basically useless. If you are lucky, you may be asked the original question. Of course, you are an algorithm god, so you don’t need to waste time here Up.
  2. Basically, there are algorithm questions in each round, about 1 to 3, with varying degrees of difficulty. Generally, they are based on the current interview situation and will consider the performance of the interviewer, but it will not be too difficult for you.
  3. When you get an algorithm question, don't answer it immediately. You can talk to the interviewer about your ideas first.

I resigned from outsourcing. After 10,000 hours, I walked into ByteDance and got an offer.

 

B: Why do I want to go to Bytedance? (The advantage of byte beating)

①Welfare

I am not hr, nor am I advertising Bytedance. I really want to mention that the welfare benefits of Bytedance are definitely one of the best in the first-line factories. In addition, I came from an outsourcing background, and this kind of treatment caused me a sense of difference. It made me feel that being able to work in byte beating is my greatest fortune.

As for the benefits, here are a few casually mentioned:

  1. Flexible punch card
  2. Housing subsidy (the amount is very high, it is very humane)
  3. Free three meals, afternoon tea (to get fat)
  4. Free gym
  5. Top with 16-inch MacBook
  6. Various holiday packages

②Huge knowledge base

ByteDance is a huge knowledge base for me. The reason for this is that from the process and details of the interview to the work arrangements after I joined the company, I was touched differently. From these aspects, we can all feel that the company attaches great importance to the career planning of employees, and your supervisor and mentor will take the initiative to approach you to communicate this aspect. This is completely different from my previous outsourcing. And in this communication process, what I got is not just a little bit.

What I admire the most is that Byte has a unified entrance to navigate to a large number of guides and knowledge deposits, and even technical and business documents organized by other product lines.

③I saw the approval

When I came to BYTE, I saw recognition and gained a sense of belonging. Although ByteDance is young, it has a common goal in doing things. People here talk about "Byte Fan". It is not bound by rules, it is a kind of spiritual food, and in essence it is a kind of value identification. It just so happens that people who have the same value identity come together.

④Although hard work, but not tired

Bytedance is a very young company. For first-line Internet companies, 996 is the norm, and Bytedance is also inseparable from the word "overtime". But the biggest difference that byte gives me is that it is busy and full of life. I have been working in Byte for a while, and I can be regarded as keeping up with the rhythm here. Although it is hard, I don’t feel tired at all, because in a fulfilling work environment, I have gained something and grew up brutally in the company. At the same time, I personally have grown rapidly.

In addition, don’t think that “beating workers” in big factories will only work hard. The biggest characteristic of Byte People is that they are young. They can also play. Everyone has their own hobbies, such as cycling, werewolf killing, fitness, photography, yoga. Wait, this is obviously different from my previous impression of Dachang people, and I am slowly being affected little by little.

⑤Reflection: Pay attention to work efficiency

I used to think that my work efficiency and time management were pretty good, at least I could spend some time to do something that everyone wanted to do but didn’t do, but now I realize that this may be just an illusion, you always do easy things, of course you don’t feel it Under the pressure of time, even when the project schedule is relatively tight, working overtime and doing 996 seems to be the same. We are usually willing to extend the time, rather than considering how to improve efficiency and complete more work in the same time. Of course, there are many self-evident objective reasons.

After coming to Byte, I saw what "efficiency" is from the work details of my colleagues around me.

I resigned from outsourcing. After 10,000 hours, I walked into ByteDance and got an offer.

 

C: What did outsourcing teach me? (What has accumulated?)

Many people think that you can't learn anything in outsourcing, but I don't think so. No matter what environment you are in, the person who causes what kind of results is yourself. Therefore, in these years of outsourcing work, I am not a single mechanized code typing. In this process, I will actively review, summarize, and learn, and the slowly accumulated working method has shaped my current "Qualitative change".

What have I accumulated in outsourcing?

  1. Code efficiency;
  2. Understanding of various projects and businesses;
  3. Proficiency in using additions, deletions, corrections and checks.

In outsourcing, what did I review? What are the conclusions? (Wrote some blogs, made some summary notes, and attached PDF)

  • Java architecture growth notes

I resigned from outsourcing. After 10,000 hours, I walked into ByteDance and got an offer.

 

  • Redis core technical notes (study summary)

I resigned from outsourcing. After 10,000 hours, I walked into ByteDance and got an offer.

 

  • Spring family bucket study notes (SpringBoot+SpringMVC+SpringCloud+ source code, etc.)

I resigned from outsourcing. After 10,000 hours, I walked into ByteDance and got an offer.

 

  • other

I resigned from outsourcing. After 10,000 hours, I walked into ByteDance and got an offer.

 

D: How to plan for the next 3 years?

1. Determine the direction of development

The programmer career is roughly divided into five stages:

  • The first stage: 2-3 years, junior programmer
  • The second stage: 3-5 years, intermediate programmer
  • The third stage: 4-7 years, senior programmer
  • The fourth stage: 5-8 years, Internet architect, big data engineer
  • The fifth stage: 8 years +, technical director, technical director, chief architect

At present, I am in the second stage. I have certain work experience, can do some projects independently, and have my own coding habits. I can even play an important role in the team. In the next 1-2 years, I am definitely going to transition to the third stage, or even the fourth stage.

2. Sort out the learning route

If you want to grow quickly, a reasonable and correct learning route is the most important thing. So sorting out the learning route is the most important thing in my current study. (Personal study road map is as follows)

Goal: Be able to be on your own and have the ability to coach others in the professional field

Learning content: Concurrent programming and JVM actual combat + cache middleware + message middleware + search middleware + high concurrency + high availability + expansion + network communication and protocol + distributed and microservices + distributed authority control + microservice fuse downgrade With current limitation + microservice link tracking + in-depth interpretation of the underlying & source code + actual combat in distributed scenarios of first-line large factories

I resigned from outsourcing. After 10,000 hours, I walked into ByteDance and got an offer.

 

3. Learning method

My personal learning method is very simple, using fragmented time for systematic learning. Regarding the learning method, I personally like the way of reading books and documents combined with videos, and I personally have some sorting out of these.

  • Read book documents:

I resigned from outsourcing. After 10,000 hours, I walked into ByteDance and got an offer.

 

  • Watch the video to learn:

I resigned from outsourcing. After 10,000 hours, I walked into ByteDance and got an offer.

 

Ending: Future Vision and Blessings

I know that for some people who do not have the advantage of academic qualifications, outsourcing is no choice, but the way forward depends on how far you go. Everyone has their own choices. If you like stability, then step by step is suitable for you, but if you have ideas and are not willing to be mediocre, then don't let outsourcing bury you.

Finally, I hope I will develop smoothly in the future and win p7 as soon as possible! Similarly, I also wish you to realize your ideals in life, and hope that we are all getting better and better, and encourage each other!

Friendship Sharing: The code word of the article is not easy, I hope to support a wave of likes + forwards + comments.

You need the interview questions, notes, e-books, and learning videos mentioned in the article. You can like the favorite article and follow me, and then add the assistant vx: bjmsb2020 to get the download method for free.

Guess you like

Origin blog.csdn.net/weixin_48182198/article/details/112992537