preface

Let me introduce myself:

My hometown is a rural area. My family sent me to a big city to study. The university is not 985,211, but in my hometown, it is not easy to produce a bachelor’s degree. Due to the lack of information in rural areas, I knew nothing about my college major, and my score was not among the best. Finally, I was transferred to a major THAT I did not like. I will not reveal my school here, but I can only say that I chose to deliver food for nearly 3 years in order to earn more money after graduation.

Why learn programming?

It was by chance that I came into contact with programming. Once I delivered food to my senior, who majored in computer and joined a first-line Internet company after graduation. After that, I occasionally talked with him about life and the future. After considering for a long time and comparing the development of all walks of life, I finally decided to learn programming and chose Java as my direction.

Below, I will share my self-study methods, self-study materials and my interview experience. If you need self-study materials, you can pay attention to the public number at the end of the article to get free materials to download.

 

Pinduoduo server development restore three sides (one and two sides +HR side)

Spell duo Duo one side (about 1h) :

  • Talk about the difference between final/finally
  • Try-catch-finally execution order in different cases?
  • Which overlays which, finally return or external return?
  • Wait/notify/notifyAll say?
  • Can notify be executed immediately after waking up a thread?
  • What’s the difference between sleep/wait?
  • What are the states of Java threads?
  • Distribution of the Java heap?
  • Why are there two survivors?
  • Mark-copy process?
  • When does the Full GC trigger?
  • What is the time ratio between Full and Minor GC?
  • The ratio of space size between the old age and the new age?
  • HTTP status code list some?
  • What exception is reported when CONNECT fails?
  • IO classification? Is NIO blocking or non-blocking?
  • Clustered index, union index, overwrite index explain?
  • Verbally design a table and index, then say which queries will use the federated index and which will use the overridden index.
  • Talk about the project and the difficulties of the project?
  • Hand ripping algorithm: ordered array/linked list to balanced binary tree

Pinduoduo two faces (about 50 minutes) :

  • To introduce myself
  • Talk about the project
  • TCP traffic control and congestion control: How is space allocated in the receive window? Do multiple TCP connections share the same memory or are they separate?
  • Differences between TCP and UDP
  • What protocol does each layer have?
  • What protocol does the PING command use (ICMP, I missed)?
  • OS memory management, process management said
  • Physical memory space, virtual memory space?
  • What does virtual memory do?
  • What happens when the contiguous space of memory is not allocated? What if there is not enough free space in global memory?
  • The complexity of quicksort and merge, the degradation of quicksort
  • Balancing the time complexity of various binary tree operations
  • What’s the difference between an AVL tree and a red-black tree?
  • The application of red black tree? Why not use AVL trees for Javatreema API?
  • Application of B tree and B+ tree? What’s the difference? Why MySQL uses B+ tree?
  • The difference between Redis and memcache? Why is Redis high performance? (Here I revealed my culinary prowess, and the interviewer patiently corrected my misconceptions about them.)
  • Asynchronous non-blocking IO okay? (A bit of the Proactor model of the event distributor, which the interviewer agreed with)
  • Hand and tearing algorithm, binary search deformation problem, the number of floating point arithmetic progression, tolerance is 1.0 at the beginning, at a certain position tolerance to 0.1, find the location
  • See what you wrote before delivery? Why are you not engaged in your major after graduation? (I answered to make more money)
  • Are you self-taught about Java? How did you keep it up? Did you encounter any difficulties?
  • What offers do you have on hand?

Pinduoduo three sides (HR side about 30 minutes) :

  • What do you know about Pinduoduo? Make a portrait of Pinduoduo?
  • Where does family come from? What are your thoughts on the job cities of the future?
  • Do you have a girlfriend?
  • What companies are you interviewing now? Do you have a preference for your current company?
  • Ever imagine working a day at Pinduoduo? What are your salary requirements?
  • What channels do I use to get information about the Internet?
  • If PINDUoduo hung you up, what do you think would be the reason? I’ve been talking to you for 20 minutes, and what non-technical general qualities do you think you might not be as good as the other candidates?
  • salary
  • Do you have any questions?

Spell many three aspects of the question answer:

 

How have I taught myself these three years?

(1) Watch zero-based learning videos

Watching videos is the fastest and most effective way to learn. Following the teacher’s ideas in the videos, you can first learn the basic Java grammar, and then learn the framework. From the basic to the in-depth, it is easy to get started. As for the videos, there are actually a lot of them on the Internet. My senior gave me the treasured version, which should not be searched. If you need it, of course, I can share it with you for free.

Java Zero Basics Video (55 stages)

(2) Read some books and notes of my predecessors

When I have learned some basic knowledge and have my own understanding ability, I will read some books or handwritten notes organized by my predecessors. These notes record their understanding of some technical points in detail, which is unique and can learn different ideas.

Books and notes

SpringBoot Core Technology Notes

(3) Do some small projects

Optical theory is useless, it is necessary to learn to follow together, to do practical operation, to apply what I have learned to practice, so when I finished learning the framework, I went to do a small mall project. About this mall project tutorial, you need I can also share out.

 

 

(4) Add some community, find a good teacher

If you really want to change your profession to learn Java, make more friends with the same interests, or even find a good teacher to teach you, this is my most sincere advice to you. When I joined some communities and participated in some technical discussions, I could greatly improve my learning enthusiasm. In addition, I found another teacher to take me under his guidance. It was easier to solve many problems encountered in the process of learning and practical operation, and the overall efficiency was improved quickly.

 

conclusion

How did I succeed in switching to programming? Two key words, determination and perseverance!

If you make up your mind and make a choice, stick to it.

Now I have successfully changed industries, now in this industry can only be regarded as a new, but as the years grow, I will gradually become an “old ape”, but I will still keep their heart of learning until old. In the same way, I hope you don’t give up when you are lost in youth, because everyone has a shining moment.

Finally, some of the learning videos, learning materials or projects mentioned in this article are free to share if you need them:

— Forward + comment article, follow the public account below to get free download.