Three rounds of cool interviews with Ali, the last four sides finally won the byte beating offer (Android development)

The content of the text is too long, please read it patiently. It may be helpful to you who are confused. The focus of the article is the second half.

Preface

At the age of twenty, youthful and unrestrained, this state is naturally a good thing, but in a sense, it is not too optimistic. In fact, many young people around the age of 20 are prone to fall into misunderstandings and regard doing nothing as a natural state. Living too casually will easily leave us without clear life goals and true life ideals, so that we can’t find jobs after graduation. Go home to gnaw on the old, and then comfort yourself in anguish, "Whose youth is not lost"?

If you want to be at the age of 20, you must start planning your next life as soon as possible, so that you can increase your chance of "shit luck".


How can a twenty-year-old life not be confused?

Many people have gnawed on a few books of youth literature, and they like to say "whose youth is not confused", but just ask yourself, are you really confused, or have you never thought about the future or planned your life?

Because of any difficulty, there are breakthroughs. You don’t have the ability, you can change yourself through learning; you don’t have any beauty, you can beautify yourself with makeup; you don’t have financial resources, you can save money, you can save money, eat less takeaway, cook more by yourself, save Can learn a skill while spending money. For you at the age of twenty, your job may be unstable and your salary may not be ideal, but your life is yours. Whether it is good or bad depends on your own state.


Android programmers, how to do not get confused? (How did I do it?)

1. Divide time into phases to grow in stages

Life is very long. We are good at dividing our lives into several important stages, such as childhood, adolescence, youth, middle-aged to old age. At each stage, we have to play different roles and have different things to do. So why Shouldn't these stages continue to be split for planning?

During college, it’s best to plan for ourselves. Freshman is the stage when we begin to recognize new things, sophomore is the stage where we have to determine the direction of life goals, junior is the stage where we sprint towards our goals, and senior is to welcome Come down to a decision stage. Therefore, do something at any stage and allow yourself to grow up in stages.

So how did I plan for myself during college?

  • Freshman : Like many students, freshman is fresh in everything, basically without much planning, but there are indeed many activities involved, such as student unions, clubs, etc., and I have met many seniors and sisters.
  • During the sophomore year : Sophomore, I began to realize the importance of learning and started planning. I followed the school teachers to study carefully and learned the importance of laying a good foundation.
  • Junior period : In the junior year, basically even if you are a person who has stepped out of society with one foot, you are ready to find an internship. This stage is very important, not only to understand the knowledge in the industry, but also to quickly improve The technical level required by my position.
  • During the senior year : Not to mention this time period. I started to plan my future development. Because I have no plans for postgraduate entrance examinations, I have to draw a clear career blueprint. Now that I have chosen the Android direction, how to become Senior Android developers, and even architects, are what I will consider and proceed.

2. Determine the direction and sort out the growth roadmap

Needless to say, I believe everyone has a consensus: no matter what the industry, the most powerful people are definitely the people at the end of the pyramid. Therefore, if you want to be a great programmer, you must make yourself stand taller. Becoming a technical expert is not a matter of overnight. It requires time and technology accumulation.

Regarding this point, when I established the Android direction at that time, I had already begun to sort out my growth path, including how to systematically learn the technology, which was listed in great detail.


Stepped on "dog shit luck", 4 sides actually won the bytebeat offer

In the next semester of my junior year, I found an Internet company for an internship. When I was in my senior year, I was already planning my post-graduation plans. We are also preparing for school recruitment. Of course, the goal should be higher, so Ali and Tencent will naturally try . The final result went to ByteDance. This interview process was more risky. Because my goal was Ali, I prepared a little bit more for frameworks. Basically, the algorithm didn’t look too much, but I didn’t expect it to be really gone. Shit luck".

Byte beating side:

  • A brief introduction to the spike system for resume writing

  • What happened during the whole process of the browser returning to the web page (as detailed as possible), what protocol (UDP) used by DNS

  • The difference between tcp and udp, udp usage scenarios, why tcp is reliable (error checking, byte order, loss retransmission)

  • The three-way handshake of tcp, what does the seq and ack refer to (byte number)

  • The difference between get post, post is always not idempotent by default

  • Say some http status codes (1 is a temporary message at the beginning, such as 100continue)

  • The way of communication between threads, is volatile atomic? Talk about his visibility, orderliness, order rearrangement

  • How to use the Syschronized keyword, what are locked, and the principle of Syschronized lock

  • The principle of HashMap expansion, whether put is the first insertion or the end insertion

  • Hand tear palindrome output two-dimensional array

Two sides of byte beating:

  • Let me talk about the principle of mysql index. What types of indexes have you used?

  • spring ioc and aop

  • Let’s talk about memory leaks and garbage collection. Why are some objects unable to be collected? How to solve the memory leak?

  • How to judge whether an object can be recycled, GC root

  • How did the thread deadlock appear

  • The difference between wait() and sleep()

  • What kinds of thread pools are there and what are the differences

  • The processing flow of task entering the thread pool

  • Hand tear thread-safe lazy singleton mode, after writing DCL, ask: What is the role of volatile? What's the problem if this synchronized is added directly before the method name?

  • The first k numbers in the unordered array are outputted by hand. The heap sorting needs to be handwritten by yourself**

Three sides of byte beating:

  • What projects did java do? Does the spike system follow the online course?

  • Talk about the choice of postgraduate entrance examination

  • Find the number with the smallest absolute value in an increasing sequence with positive and negative

  • Evaluate yourself, what kind of work do you think you are suitable for? Which jobs are not suitable for?

  • What app do you usually use? Talk about the difference between Douyin and Station B

  • What are the points that users most likely care about with apps? How to solve the slow video loading?

  • What can you do with these apps from a design perspective or a client and code design perspective?

  • Personal career planning

  • 64 horses, 8 tracks, find the fastest 5 horses, what to do to minimize the number of races

  • The memory structure of jvm, what are they used for

  • What is OOM and how can it cause OOM

  • Talk about a few common Exception

HR surface:

  • Talk about my internship experience

  • Asked about technical planning

  • What other companies have you invested in?

  • How much do you know about byte beating? What products have used bytes? How to evaluate?

  • Talk about your biggest gain in the project


Lucky is only for those who are prepared, "dog shit luck" is not real shit

Although I laughed at myself for taking shit luck , I will always understand one truth: luck will always be reserved for those who are prepared. When an opportunity comes, you must be able to seize it .

Therefore, before interviewing these first-line Internet companies, I started to do preparations long ago, including learning new technologies, improving my technical level, and even brushing interview questions and reading interview posts. These have played a great role in my interview. With regard to the preparation of the interview, I mainly did the following aspects:

The following content involves a lot of materials (Android learning PDF + architecture video + interview document + source code notes), if you need it: click here to get it yourself .

(1) Learn systematically through video

The content of the university learning is wide, but general, not systematic enough and deep enough, so I can only "make up lessons" in my spare time. My way is to collect and organize a set of Android learning videos by myself, and learn from scratch. After watching all the videos, I basically have a very clear idea and framework structure.

(2) Read some technical notes of predecessors

These notes are discussed with seniors and technical experts on the forum. I have read a lot of them. They are indeed helpful for the understanding of many technical points and I have learned a lot of ideas.

(3) Prepare for a battle, go straight to the big factory

The purpose of brushing the questions is to understand what the current big factories will ask in interviews, and to improve their memory of technology, making them more confident in the interview. In fact, we should be more flexible when reviewing questions and learn to draw inferences from one another, which can still play a certain role in a real interview.


to sum up

Emerson said: A person who is moving towards his goal, the whole world gives way to him. So, as a twenty-year-old you, it’s easy to think more and plan more, the future will be clearer, step by step towards your goal, and achieve success as soon as possible. After all, age is also an advantage in the world of programmers.

If you don't have a backer, let yourself be your most stable backer!

The information in the above article can be shared with everyone for free to learn, whether you have zero foundation or have worked for many years, it is not too late to start now.
- Click here to get on their own .

Guess you like

Origin blog.csdn.net/ajsliu1233/article/details/110409049