Inter-professional study for 6 months, successfully landed on Ali|Didi, share the learning route for your reference

Undergraduate dual-non-chemistry, cross-examination for master of electronics, postgraduates are still dual-non-free. No internet internship, no competition, no papers. (Have related internship experience in automation and university training lecturers)
May 19, start learning Java to prepare for autumn recruitment. Because it’s not a professional, I’ve looked around for how to learn, and finally summed up a set of learning routes and knowledge system (the road map at the end) to share with everyone

Shuangfei is a cross-professional chemistry team, cast Ali/Didi back-end three sides, and finally won the offer

 

【Ali】

Two sides

  1. The company’s projects, design plug-ins,
  2. Talk about project architecture, design, data flow, ER diagram
  3. Used Redis, the solution to cache breakdown, what are the data structures of Redis, the master-slave structure of Redis, data fragmentation, consistent hash
  4. Based on JAVA, what data structure is used to store different objects, the hashCode and equals methods of the derived objects, and what structure is used to implement HashSet;
  5. HashMap conflict resolution
  6. Is HashMap a thread-safe container, and how can it be solved if the JDK is accessed concurrently?
  7. How does the thread-safe container ConcurrentHashMap solve the thread safety problem, segment lock
  8. The difference between pessimistic lock and optimistic lock, what is the impact of using pessimistic lock (thread interruption, slow), what are the benefits of optimistic lock
  9. Spring, what is spring's IOC, and how to implement it, suddenly I don’t know where to start. I talked about dependency injection and dependency lookup. I talked about using spring annotations. Then when the container starts, the classes where these annotations are loaded are loaded. Use reflection to perform initialization and it's OK
  10. Then I asked whether you can load a private member by using reflection? No, you need to set permissions
  11. How to solve the circular dependency, use a Map to store the dependency, if there is a circular dependency
  12. How do I usually learn by myself, open documents, read blogs
  13. If there is a main thread and many sub-threads, the main thread needs to wait for the sub-threads to run before continuing. What would you use, CountdownLatch?
  14. Talk about the process of GC, cleaning, sorting, exchange (survivor area), CMS execution
  15. Talk about what you want to do in the future, high concurrency scenarios and domain modeling
  16. Talking about domain modeling is the core idea of ​​DDD, which is realized by using the congestion model on the Service layer
  17. Do you usually write your own blog? If you don’t write notes, 996 has no time to blog

Three sides

I haven't sorted it out. Basically, the beginning is the same as the two sides, but the questions asked will be more in-depth and divergent, such as why the design is designed this way, whether there are any problems with this design, and so on. It is strongly related to the business, so you must be familiar with the business, but if the business is not difficult and the concurrency and performance requirements are not high, the depth of the answer to the specific questions may be lacking in the interviewer's expectations. The interviewers are very good, and they are also very good. They can get a lot of information from your description and ask you back. So be familiar with the entire department business. The divergence of the questions is very high. After working for a day, it is easy to get stuck in the interview at night. Hey, I'm dead. Ali is really difficult on three sides, so we must maintain a good spirit! ! ! ! !

【Didi】

one side

  1. Implementation of java SPI mechanism? What is the difference between dubbo's spi and why? Have you read the source code of dubbo? Can you talk about its context? Do you understand dubbo's generalization call?
  2. How to improve system stability? Business monitoring, what to monitor? qps, rt, failure rate.
  3. How do you use the current limiting and degrading fuse?
  4. How to solve the problem that the local transaction is successful, the message is sent to the message queue successfully, but the successful reply is not received due to network reasons? Transaction message
  5. How does concurrent hashmap solve the problem of concurrently inserting the first element of the bucket?
  6. Talk about the realization of threadlocal? How to pass the threadlocal variable of the parent thread to the child thread?
  7. Talk about the lock process. Talk about the realization of Aqs?
  8. Singleton implementation of double check. What problem does volatile solve? Is it possible to use the synchronized keyword only? Why not?
  9. Database, what about the realization of MVCC? Where is the implementation of multiple versions? Do you understand the B+ tree index? How to solve the problem of non-repeatable reading?
  10. Distributed locks, how to solve the problem of lock timeout not being released
  11. What is the realization of dynamic proxy, and how is it realized at the bytecode level?
  12. Gc-related, new-generation, and old-generation-related algorithm processes, why should they be used in this way?
  13. Do you understand the context of spring, the implementation of ioc? ? How is di injection achieved? ?
  14. How is cas realized? Which variable is the exchange comparison?
  15. Do you know unsafe?
  16. Are there any areas you are familiar with that you can also talk about?

Two sides

  1. Tell me about the system architecture? Data flow? What about database design (ER diagram)? If a product list wants to display activities, how to design it?
  2. The difference between process and thread? Do you understand multi-process programming? What should be paid attention to in multi-threaded programming? Shared variables, execution timing
  3. MySQL's master-slave synchronization mechanism? What is phantom reading?
  4. Redis's master-slave synchronization mechanism?
  5. Experience of using MySQL? Add limit, the execution plan, whether there is sorting, whether the covering index can be used to solve the sorting, do not add the primary key to the outside
  6. Sequence traversal of binary tree?
  7. Design a ranking of the top 100 points? If the points change in a different place, how to make the scoreboard update in real time? Send messages, monitor binlog
  8. How to ensure strong consistency between local transactions and messaging? Transaction message can be resolved
  9. Why would you consider leaving? I hope there is a better platform for development
  10. The interviewer on the second side is very good, and I asked about other things, such as whether the company uses these strict mechanisms, such as business news. The interviewer replied: Of course, the simpler the mechanism used in the industry, the better. New technologies can be used. Learning, but the introduction of actual production must consider its own complexity, Barabara has learned a lot

HR

There are no three sides this time, it may be a new department. I roughly talked about the following parts

1. I am very interested in your company

2. I have other offers

3. My expected salary Barabara

4. Arrival information, etc.

Cross-professional learning journey

Gossip less, direct dry goods:

  • Java basic learning: I screened a lot of online courses and videos, and finally found that watching video learning is the fastest and most effective way. Following the teacher’s ideas in the video, first learn the basics of Java syntax, then to the framework, from basic to in-depth. It's still 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.

Shuangfei is a cross-professional chemistry team, cast Ali/Didi back-end three sides, and finally won the offer

 

  • Interview system construction: In fact, many non-subject players don’t know what to learn when looking for a job, and how to learn. The poster has also made a lot of detours, and finally found one, and will show you all the knowledge you will ask in the interview. , Although the talk is relatively shallow, it allows you to build an interview knowledge system, and then go deep into each point to learn

Shuangfei is a cross-professional chemistry team, cast Ali/Didi back-end three sides, and finally won the offer

 

  • Personal projects: The poster himself has undertaken two projects, one is the store system and the CRUD project, to show his ability to move bricks, and the other is to tear up the Spring framework to show his learning ability, just like the Java interview.
    Java dual version (SSM to SpringBoot) full-stack development of campus shops, the project of this campus shop can be replaced with any CRUD project by itself, for example, the forum project of Niuke will be more powerful. The Java self-developed framework will win the Spring source code. If the wheel-building project is used, you must understand the knowledge points inside and familiarize yourself with the Spring framework source code. (However, according to personal interview experience, I found that I rarely ask about this project. Even if I ask, I don’t ask in depth. It may be because the interviewer is not very familiar with the Spring source code. You can replace it with the RPC framework to make wheels, which is more popular. ).

Shuangfei is a cross-professional chemistry team, cast Ali/Didi back-end three sides, and finally won the offer

 

  • The editor has compiled everything properly for everyone:

Shuangfei is a cross-professional chemistry team, cast Ali/Didi back-end three sides, and finally won the offer

Finally, based on these materials, I took notes during my study, and finally formed a knowledge system diagram. I sorted it out a bit, and it is as follows

Because the picture is too big, there is no way to upload it completely. If you need it, scan the QR code in the picture below to get it

 

 

------ forwards + comments + thumbs articles, private letters after my concern Keyword: [ preparing ] to

Guess you like

Origin blog.csdn.net/weixin_42864905/article/details/108642713