From no one in the interview to holding a Baidu offer, restore the growth experience of a wild programmer

The growth experience of wild programmers

I am an ordinary student in Shandong, majoring in mechanical and electrical engineering, and I changed my career to andorid development for 15 years. As a wild programmer, the growth process is relatively bumpy. I started to rely on training institutions or personal self-study. It was very difficult to join the Internet development at the initial stage. At the initial entry stage, a large number of students from training institutions could be eliminated. I was lucky to realize the change. , I am very grateful for helping my classmates and the first time manager to take in trust. Relying on my continuous learning and accumulation for more than 2 years, I have grown from a novice to a qualified tool person, and also completed a job-hopping job doubling my personal salary.

In the second company, the technical vision and depth of the expansion were gradually expanded, and it was able to calmly deal with development and various problems. Since the company does not have a salary increase system, there is a plan for job-hopping. Unexpectedly, this preparation will take two years. Relying on summary and accumulation, job-hopping will be a matter of course. There is not much luck bonus. .

Therefore, I am the stupidest person to grow up for the academicians. Although my initial growth has been slower, I have my stamina, and I have grown far more on my own, instilling a little bit of inspirational chicken soup, learning from others’ strengths, and humbly asking others’ experience and learning habits. Growth is also very good. Fast. This year I also successfully got Baidu's offer, and the above is sorted out!

Baidu Andrews Engineers Agency Recruitment Experience (one side, two sides, three sides have already got an offer)

one side:

§ algorithm :

Give you n numbers and find the largest m number

Related knowledge points: [stack](javascript: void(0))[sort](javascript: void(0))[divide and conquer](javascript: void(0))

Related knowledge points: [stack](javascript: void(0))[sort](javascript: void(0))[divide and conquer](javascript: void(0))

Related knowledge points: [stack](javascript: void(0))[sort](javascript: void(0))[divide and conquer](javascript: void(0))

Related knowledge points: [stack](javascript: void(0))[sort](javascript: void(0))[divide and conquer](javascript: void(0))

§ Talk about equals and hashcode

§ The method of thread creation? Talk about the principle of thread pool? How to synchronize threads?

§ What about HashMap?

§How to implement the sub-posts of Baidu Tieba (comment posts in the main post, respectively, from the two aspects of the database and the mobile terminal)

§ If there are many posts on the main interface of a forum, and the pictures of these posts are displayed on the main interface (9 for each post), how to avoid OOM. (I talked about two ideas, one idea is to display thumbnails, click to display large images, and the other is a horizontal ListView, slide to view more, slide out of the range to recover the Bitmap).

§ What about the image compression process and caching? What is the difference between LinkedHashMap and HashMap? What is the underlying principle?

Two sides:

§ algorithm :

Give you a string to determine if it is a standard ip address

Related knowledge points: [String](javascript: void(0))

Related knowledge points: [String](javascript: void(0))

Related knowledge points: [String](javascript: void(0))

Related knowledge points: [String](javascript: void(0))

Related knowledge points: [String](javascript: void(0))

Related knowledge points: [String](javascript: void(0))

. (After I finished writing one, I asked me to write out all the test cases, and found that a few were missing. The interviewer said, let me rewrite them based on these test cases to examine the code expansion and optimization capabilities.)

§ Introduce myself, talk about the project , and ask me more data sources and database design. ( There are more talks on the project )

§ Give an example of database joint query, write a simple SQL statement. (Join)

§ Tell me about the three-way handshake of TCP? Why is it a three-way handshake? Why is it waved four times?

§ Do you know the principle of TCP sliding window? (I said the principle is not clear, but I know what problem he solves.)

§ Is hashMap thread safe? How to achieve thread safety?

§ Tell me about the persistent storage of Android?

§ Let’s talk about Android’s startup mode and scenarios

§ Do you know the ANR of Android? How to avoid it?

§ Talk about memory overflow and memory leak (the Handler is mentioned in the middle)

Three sides:
§ Why did you choose to change jobs?

§ How are the people in your group?

§ How do you solve the difficulties in the project?

§ What troubles have you encountered in your work?

§ How do you usually study?

§ What books do you read besides studying?

Interview preparation

Below is an interview question bank that I have spent nearly a year compiling. These interview questions, including the ones I encountered when I went to the interview myself, and those encountered by other people when I went to the interview, I have compiled them in a unified way, and hope it will be useful to everyone. The author is not easy, please forgive me for any mistakes.

1. Android basic + advanced

1. Activity startup mode
2. Activity startup process
3. Process communication
4. Android Binder application layer summary and analysis
5. Process keep-alive method
6. Understanding the handler looper and messageQueue ideas from the source code
7. How the handler implements delayed message sending postdelay()
8. Why doesn't the main thread in Android get stuck due to the infinite loop in Looper.loop()?
9. RxJava principle and how to package and use
10.okhttp source code analysis
11.retrofit source code analysis
...

Due to limited space, only part of the interview questions can be shared. More interview questions and answers can be downloaded here for free! Read and download~ Share it with everyone for free, it's a grateful feedback.

12. LeakCanary core principle source code analysis
13. LruCache use and principle
14. ARouter principle
15. Annotation framework implementation principle
16. Android how to write a project based on compile-time annotations
17. RxJava2+Retrofit2+OkHttp3 foundation, package and project Use
18.Rxjava2.0+Retrofit+Okhttp (packaged use)+MVP framework to build
19. Android plug-in and hot fix knowledge combing
20. Common memory leak problems and solutions in
Android development 21. How to detect and locate Android memory Leakage
22. Memory algorithm occupied by pictures
23. Why pictures need to use soft references, and the view interface in MVP mode uses weak references
24. MVVM practice based on DataBinding and LiveData
25. App stability optimization
26. App startup speed optimization
27. App Memory optimization
28. App drawing optimization
29. App slimming
30. Network optimization
31. App battery optimization
32. Android security optimization
33. Why is WebView slow to load?
34. How to optimize custom View

Two, Java basic + advanced

1.HashMap
2.ArrayList
3.LinkedList
4.Hashset source code analysis
5. Memory model
6. Garbage collection algorithm (JVM)
7. The difference between garbage collection mechanism and calling System.gc()?
8. Class loading process
9. Reflection
10. Multithreading and thread pool
11. Creating multithreading, the working principle of thread pool
12. Design pattern (six basic principles, commonly used design patterns in projects, handwritten singleton, etc.)
13.
Resume from a breakpoint 14. Java four major references
15. Java generics
16. The difference between interfaces and abstract classes
17. Discuss the application of abstract classes and interfaces from the design of java container classes

Due to limited space, only part of the interview questions can be shared. For more interview questions and answers, click here to download for free! Read and download~ Share it with everyone for free, it's a grateful feedback.

Three, data structure and algorithm interview questions

1. What are the commonly used data structures?
2. Array (1). How to find missing numbers in an integer array from 1 to 100 (2). How to find duplicate numbers in a given integer array? (Xiaomi) (3). How to find the maximum and minimum values ​​in an unsorted integer array? (byte beating) (4). How to delete multiple copies from a given array in Java? (5). Add large numbers (today) Headline)

3. Linked list (1). What about the first query and the second to last query? (This is different. The first one is directly given to the head node, and the second to last one needs to be queried from the first to last, and two steps are taken) (Tencent) (2). ArrayList underlying principle (didi) (3 ). How to find the median value of a single linked list in one traversal? (Ping An) (4). How to prove whether a given linked list contains cycles? How to find the head node of the cycle? (Youku) (5). Two crosses Singly linked list, find the intersection point (Huawei) (6). How to get the length of the singly linked list? (360) (7). How to reverse the singly linked list without using recursion? (Xiaomi/Meituan) (8). How to judge that the linked list has a ring? (Didi)

4. Queue & Stack (1). How to use the stack to realize the function of the queue (Guangzhou Lizhi FM) (2). Two stacks to realize one queue (Mushroom Street) (3). Two queues to realize one stack (Tencent) (4) ). Compare queues and stacks, and their bottom implementation (Tencent)

5. Binary tree (1). How to perform a pre-order traversal in a given binary tree? (Baidu) (2). How to implement a post-order traversal algorithm? (Baidu) (3). How to perform a binary search in a given array ? (Suning) (4). It is known that the pre-order traversal is {1,2,4,7,3,5,6,8}, and the middle-order traversal is {4,7,2,1,5,3,8 ,6}, what is its binary tree like? (5). Input two binary trees A and B, and judge whether B is a substructure of A. (Iqiyi) (6). Please implement two functions, which are used to serialize and deserialize a binary tree (YY) respectively. (7). What is the difference between a balanced binary tree and a red-black tree? (Byte beating) (8). What is a balanced binary tree and what are its characteristics (Meituan) (9). B tree, B+ tree

6. HashMap (1). What is the underlying principle of HashMap? Is it thread safe? (Baidu) (2) How is put implemented in HashMap? (Didi) (3). Talk about when the hashMap needs to be expanded, and how is the expansion resize() achieved? (4). What is hash collision? How to solve it? (Didi) (5). The difference between HashMap and HashTable (Xiaomi) (6). When does HashMap need to be expanded, and how is the expansion resize() implemented? (Didi) (7). Principle of hashmap concurrenthashmap (Meituan) (8). The difference between arraylist and hashmap, why is the number fetching fast? (Byte beating)

7. Figure (1). Rotate the output matrix (2). Given a matrix int matrixA [m] [n], each row and each column are in increasing order, and an algorithm is implemented to find an element in the matrix. Sogou

8. What are the sorting algorithms?
9. Search algorithm
10. String

Fourth, the computer network part

1. HTTP protocol
2. TCP/IP protocol 3. TCP
's three-way handshake and four waved hands understanding and interview questions
4. Enter the URL in the web page to render the entire interface, and what protocol is used in the middle?
5. What is the difference between TCP and UDP?
6. Several HTTP request methods are introduced in
detail 7. HTTP request and response message format, and common status codes
8. How many HTTP requests can be sent on a TCP connection

Due to limited space, only part of the interview questions can be shared. For more interview questions and answers, click here to download for free! Read and download~ Share it with everyone for free, it's a grateful feedback.

Growth experience

Don't talk nonsense, just talk about the key points:
(1) There must be a technical summary. Summary of technical points, summary of pits encountered, and topical summary of major technical points (notes + code examples), organized into notes, and often flipped through (you need to use notes to summarize first when writing a blog)
(2) Have the habit of taking notes. Record technology, anomalies, new technology, review summary, daily report summary, study plan, good ideas, etc. All technical points that can be summarized are made into notes. When reviewing later, you can increase your own thinking perspective and prepare for your core positions in the future. I have maintained this habit for more than 2 years, and now I can complete the job-hopping. This habit has given me the greatest support and made it a matter of course.
(3) Look at the source code to learn. More curiosity, as enjoyment, after a long time, you will naturally become better.
(4) If you have expectations for the company, you must be responsible for doing things, and if the leaders make things difficult or harsh, you must learn to respond realistically. It may be a test to support your superiors.

Guess you like

Origin blog.csdn.net/weixin_43901866/article/details/115287213