From a takeaway to a programmer, I have been self-study for 3 years and finally changed to a career. I have "winning" Pinduoduo on three sides and sharing my experience with you!

First introduce from me:

My hometown is a rural area, and my family finally sent me to study in a big city. The university is not 985 or 211, but it is not easy to get an undergraduate in our hometown. Because of the relative obscurity of rural information, I don’t know anything about college majors. I added that my scores are not the best, and I was finally transferred to a major that I don’t like. I won’t reveal what school I am here. I can only say that after graduation To make more money, I chose to deliver food, and this delivery took almost 3 years.

Why learn programming?

It was a very accidental opportunity to come into contact with programming. Once, the other party was his own senior who was a senior in computer science. After graduation, he joined a first-line Internet company. After that, I occasionally talked to him about life and the future, an opportunity. , Why don't he advise me to learn programming by myself and become a programmer? After thinking about it for a long time, I also comprehensively compared the development of various industries, and finally decided to learn programming and chose the Java direction.

 

 

Pinduoduo server development three-sided restoration (one and two sides + HR side)

Pinduoduo one side (about 1h):

  • Talk about the difference between final and finally
  • What is the execution order of try-catch-finally in different situations?
  • Who covers the return in the finally and the external return?
  • wait / notify / notifyAll tell me something?
  • Can notify execute immediately after waking up the thread?
  • The difference between sleep and wait?
  • What are the statuses of Java threads?
  • Distribution of Java heap?
  • Why separate two survivors?
  • What is the process of Mark-Copy?
  • Under what circumstances will Full GC be triggered?
  • What is the time-consuming ratio of Full GC and Minor GC?
  • What is the ratio of space size between the old generation and the new generation?
  • What are the HTTP status codes?
  • What exception will be reported if connect fails?
  • IO classification? Is NIO blocking or non-blocking?
  • What about clustered index, joint index, and covering index?
  • Orally design a table and index, and then talk about which query will use the joint index, which will use the covering index?
  • Talk about the project, and the difficulty of the project?
  • Hand tearing algorithm link: ordered array/linked list to balanced binary tree

Pinduoduo two sides (about 50 minutes):

  • Self introduction
  • Talk about the project
  • Let's talk about TCP flow control and congestion control. Question: How is the space of the receiving window allocated? Do multiple TCP connections share the same memory or are they independent?
  • The difference between TCP and UDP
  • The five-layer model of the network, what protocol does each layer have?
  • What protocol does the PING command use (it’s ICMP, I didn’t answer it)
  • Talk about OS memory management and process management
  • Physical memory space, virtual memory space?
  • The role of virtual memory?
  • How to deal with when the contiguous space of memory is not enough to allocate? What should I do when the free space of global memory is not enough to allocate?
  • The complexity of fast sorting and merging, the degradation of fast sorting
  • Balance the time complexity of various operations on a binary tree
  • The difference between AVL tree and red-black tree?
  • Application of red-black tree? Why does JavaTreeMapAPI not use AVL trees?
  • Application of B tree and B+ tree? What's the difference? Why does MySQL use B+ trees?
  • The difference between Redis and memcache? Why is Redis high-performance? (Here I exposed my rookie level, and the interviewer patiently corrected my misconceptions about them)
  • Asynchronous non-blocking IO understand? (The Proactor model of the event dispatcher was pulled, and the interviewer approved it)
  • Hand tearing algorithm: Binary search for deformation problems, arithmetic sequence of floating-point numbers, the tolerance is 1.0 at the beginning, and the tolerance becomes 0.1 at a certain position, find the position
  • Delivering food before seeing what you wrote? Why didn't you engage in work in your major after graduation? (I wanted to make more money)
  • Did you teach yourself Java? How did you persevere? Did you encounter any difficulties during the period?
  • What offers are on hand?

Pinduoduo three sides (about 30 minutes for HR side):

  • What do you know about Pinduoduo? Make a portrait for Pinduoduo?
  • Where is the home from? What are your thoughts on the future employment city?
  • Do you have a girlfriend?
  • Which companies are currently present? Do you have any preferences for the companies you are currently investing in?
  • Have you ever imagined a day at Pinduoduo? What are the salary requirements?
  • From what channels to learn about Internet-related information?
  • If Pinduoduo killed you, what do you think would be the reason? I talked with you for twenty minutes. What non-technical comprehensive qualities do you think may be inferior to other candidates?
  • Salary
  • Do you have any questions?

Answers to Pinduoduo's three-sided interview questions:

 

In the past three years, how did I teach myself?

(1) Watch the zero-based learning video

Watching the video is the fastest and most effective way to learn. Following the teacher’s ideas in the video, first learn the basics of Java grammar and then the framework. From basic to in-depth, it is easy to get started. As for the videos, there are actually a lot of them on the Internet. I have a collector's edition given to me by my senior. It should not be searchable. If you need it, of course I can share it with you for free.

 

Java zero basic video (fifty-five stages)

(2) Read some books and notes of seniors

When I have learned a certain foundation and have my own understanding ability, I will read some books or handwritten notes compiled by the seniors. These notes record their understanding of some technical points in detail. These understandings are more unique and can be learned. To a different idea.

 

Books and notes

 

SpringBoot core technical notes

(3) Do some small projects

Optical theory is useless. You have to learn to follow along with it, and you have to do hands-on practice to apply what I have learned to practice. So after I finished learning the framework, I went to make a small mall by myself. project. I can share the tutorial about this mall project if you need it.

 

 

(4) Add some communities and find a good master

If you really want to change careers to learn Java, then make more like-minded friends, or even find a good master to lead you. This is the most true advice I give you. Joining some communities and participating in some technical discussions can greatly enhance my own learning enthusiasm. In addition, I can find a master to lead myself. Many problems encountered in the process of learning and practical operation are better solved, and the overall efficiency is also It improves faster. If you are interested in Python, you can add our learning exchange group: 649,825,285, and receive a set of learning materials and video courses for free~

 

to sum up

What can I rely on for my success as a programmer? Two keywords, determination and perseverance!

If you make up your mind and make a choice, you must persist to the end.

Now I have successfully changed careers, and now I am only a newcomer in this industry, but as the years grow, I will gradually become an "old ape", but I will still keep my heart of learning until old. In the same way, I also hope that you will not give up when you are lost in your youth, because everyone has a moment when the will of a flower is bright.

Guess you like

Origin blog.csdn.net/weixin_45820912/article/details/108681134