Use mall maintenance projects to talk about how fresh graduates introduce projects in interviews and how to prepare for interviews

    The interview series I wrote before have always been aimed at technology and interview skills. Therefore, in this article, I will combine specific mall maintenance projects to give an introduction to project experience.

    1 The main points of preparation before the interview

    1 Run this project, especially, understand how to use JPA to access the database, and use Eureka and other components to manage the project.

    2 Back some configuration parameters, such as how the JPA access database is configured, and you should use this to prove that you have done it in the interview.

    3 Understand the model of project agile development, because you want to introduce this project as a commercial project, not a learning project.

    4 Look at the following project management methods: use Maven + Git to manage code, use Maven + jenkins to package and deploy, and use junit for unit testing to further prove that this is a commercial project.       

    The purpose of preparing these skills is to find a way to introduce this project as a commercial project, because most graduates have only done learning projects and have not worked in the company. You only need to prove that you have it, even if it is three and a half months. This is the advantage. In the learning project, you will not be exposed to agile development and project management software. When you are ready for points 3 and 4 above, you can prove that you have done business projects.

    2 When entering the interview, the first step is to introduce yourself

    Hello, my name is xx. Although I have not worked in the company at the moment, I have helped teachers to do internship projects in the third and fourth years, which adds up to half a year (emphasis that you have done commercial projects, which is very advantageous) . During the internship, I have done a maintenance project for a community supermarket (not to mention the mall project, because it is a learning project, but if it is a small maintenance project, it is more credible). This project is managed by agile development. I used the Spring Boot framework, used JPA to connect to the database, used the VUE+jquery framework in the front end, used Maven+Git to manage the code, packaged with jenkins, and used junit for unit testing. In it, I not only wrote the code, but also participated in the online The troubleshooting work has also solved the problems caused by not writing the hashcode method. (Don't go into details of the business here, because the interviewer doesn't care, just say what technology you have used in this project, and at the same time emphasize your ability to analyze and solve actual problems)

    Description: In the self-introduction environment, you must first show your project experience and skills, and at the same time prove that the project is a commercial project, so other things, such as business requirements, do not need to be launched. At the same time, you must prepare before the interview, not only for self-introduction, but also for the skills you mentioned. In fact, these are not difficult, even if you are a fresh graduate, you can tell it on the Internet.

    3 Then it must be an introduction to the project, and the interviewer will let you introduce recent projects

    3.1 Analysis

    In the self-introduction stage, you have outlined the skills and project experience you have mastered. Here you must combine the project experience to achieve the following goals.

    1 Further confirm that your project is a commercial project, not a learning project.

    2 Combine the project to explain the key technologies, such as JPA and Eureka usage, otherwise these skills can only be regarded as learning projects.

    3 Show that you have the ability to analyze and solve problems.

    4 At the same time, explain that you have not only participated in coding in the project, but also participated in testing and business analysis.

    5 Show your sense of responsibility, willing to work overtime, and willing to learn.

    At the same time, remember that you should not make the following mistakes at this stage, because these mistakes are very common.

    1 Again, it is necessary to explain that this is a commercial project by talking about the project development model and the used project management software. It is a project that can make money in the company, not to mention it as a learning project. Many candidate projects will default to learning projects. Introduce, although this is better than nothing, it cannot prove that the relevant technology has been used in actual projects. On the contrary, once you say that you have half a year of experience in commercial projects, then you have a generational advantage.  

    2 Talk about technology in conjunction with the project, but don't talk about business needs, such as how to do the order management module, because the interviewer doesn't care about this.

    3 Too much emphasis on the scale of the project and the new technologies used, ignoring the basic skills. For fresh graduates, it is enough to prove that they have experience in additions, deletions, and corrections. To prove that you have experience in distributed equivalent value, you must first talk about basic skills. I have seen a lot of candidates who talked about the scale and complexity of the project. In the end, I said that it was a learning project rather than a commercial project. I also saw many people preparing distributed skills such as redis and kafka, but adding, deleting and modifying jpa Checking, as well as technologies such as java collections, are completely messed up, which is totally different.

    3.2 Specific introduction to the project

    This project is a supermarket maintenance project. I helped the laboratory teacher in my junior year to do it. It was a maintenance project taken by an outside company. I did it for 3 months and got 10,000 yuan. (Confirmed as a commercial project, not a learning project)

   This project adopts the current popular microservice architecture scheme. We chose a microservice architecture based on the Rest style with SpringCloud as the core. In this project, I used the Spring Cloud family bucket as the backend, specifically using Eureka for service management, Ribbon for load balancing, Zuul for gateway, JPA to connect to MySQL database, RabbitMQ (message queue) to send SMS, The backend also uses Java collections, exception handling and other technologies, and the front end uses Vue+Nuxt technology.

    This project adopts an agile development model. We have daily stand-up meetings to discuss the progress. We have a development cycle every two weeks. We discuss what to do and schedule tasks on this basis. The end of the cycle will be released. During the development process, I Not only writing code, but also participating in the demand discussion of commodity modules, and also doing unit and integration tests. (Explain the work you have done, and use project management methods to further confirm that it is a commercial project)

    In the process of working on this project, when solving technical problems, I read the underlying source code of HashMap and ArrayList that quickly failed. I also tuned database performance through indexing, and I also solved online problems by looking at logs. (Throw out highlights, wait for the interviewer to ask)

    Sometimes the progress of this project is relatively tight. I will take the initiative to work overtime to develop and troubleshoot online problems. When encountering some technologies that I have not contacted, such as Zuul, I will actively check the information and ask others to ensure the progress. Complete tasks with quality. (Explain your sense of responsibility, willing to work overtime, willing to study)

    3.3 Before talking about this project, you should prepare the technical points

    1 The Eureka, Ribbon, Zuul and other technologies you mentioned should be understood through the running program in advance. At the same time, prepare the following details, zuul filter, ribbon configuration file, eureka registration method, jpa one-to-one-to-many, etc. If possible, search for some spring cloud interview questions on the Internet, or see the basic spring boot and spring cloud in the system book.

    2 Look at the underlying source code of HashMap, especially the combination of hashcode and equal methods, and look at the fast-failed source code. This is reflected in the fact that the collection cannot be modified while iterating. Few fresh graduates can talk about technology through code. You can make it clear that it is an advantage, and these are not difficult.

    3 Look at the index, especially the b+ tree data structure behind the index, understand the usage of the index, and the shortcomings of the index.

    4 Since the project is deployed on linux, you can look at the commands to open files in linux and use keywords to check information in the files, which will be used when analyzing and solving problems later.

    5 Look at the core of Java, especially the interview questions about collections, exception handling, and multithreading.

    4 The interviewer asks questions

    The interviewer will generally ask questions based on the highlights you throw out during the project introduction. At this time, you should combine the project requirements.

    Question 1: How do you use microservices in your project?

    We divide a business requirement into several functions in the form of microservices, such as commodity microservices, file upload microservices, etc., and each microservice module calls each other in a restful way. In the project, these microservice modules are registered to Eureka, and zuul is used as a gateway to manage them.

    Question 2: Tell me about the process of adding, deleting, modifying and checking in Spring Cloud?

    This may not be the case, but the interviewer will definitely assess the candidate's basic ability to add, delete, modify, and check. For this, you can prepare as follows.

    1 In the controller, use the @RestController annotation mark, and use @RequestMapping to map the request.

    2 Use the @Service annotation to identify the business layer, and use @Autowired to introduce the Repo class in the business layer.

    3 In the Repo class, use the basic methods provided by JPA. For some complex requests, use @Query plus native SQL to query.

    4 Use @Entity and @Table annotations to identify POJO classes.

    5 If possible, let's talk about using @Transactional to do transactions. At the same time, you can prepare the two valuable points of transaction isolation level and transaction propagation mechanism.

    6 The front end uses ThyMeleaf template, and the back end uses ModelAndView to transmit data to the front end.

    The above technical points are put through a business process. For example, for the business function of placing an order, we will first use @RequestMapping to map the request in the controller layer, and then submit the request to the business layer and the Repo layer, and finally through the Repo The layer is added to the database. For this request, we will use the @transactional annotation in the business layer to use transaction management. When the order is successfully inserted, the success message will be sent to the front-end ThyMeleaf template through ModelAndView and displayed to the front desk.

    Question 3: You mentioned that you have read the source code? You elaborate.

    You can combine the source code, mainly talk about hashcode, etc.

    Question 4: How do you use indexes in your project?

    In the business flow table of this project, the data scale is relatively large, with a scale of 100,000. In the project, query is often based on the business serial number, so we built an index on this field. After the index is built, we will be very careful so that the index is not used. For example, if you perform an lvalue query on the field, or use the isnull judgment, the index will not be used. At the same time, I have seen that the data structure of the index is a b* tree. If allowed by the interviewer later, you can talk while drawing.

    Question 5: You mentioned that you have used junit for unit testing. How did you do it?

    Before writing unit tests, I will understand business requirements, especially the problems caused by edge input, and then write various cases. Specifically, I will use @Test annotations to identify data. At the same time, I will use mockit and other methods to mock data. Especially when encountering for, if and other conditions, I will ensure that all branches and edge conditions and abnormal conditions are measured.

    (This is the key point) During the test, I found many problems. Even if these problems were not caused by me, I will analyze them as soon as possible, and if they need to be coordinated, I will communicate with relevant personnel as soon as possible.

    Question 6: How did you solve online problems?

    In the SMS microservice module, we are docking with the Alibaba Cloud platform and using RabbitMQ (message queue) to achieve asynchronous SMS sending, but sometimes we find that the SMS cannot be sent. By looking at the linux log (open with vi, search with ps command), According to the exception prompt, it was discovered that the message sent to the same mobile phone number was restricted for one minute before the verification could be sent again, and then the code was modified to solve the problem.

    Here, the interviewer doesn't care what problems you find, how you find the problems by looking at the log, and if you find the problems, you have to take the initiative to solve them instead of shirking.

    5 Next, the interviewer is free to ask questions

   This is too much. Although there are too many, there are too many preparatory questions and answers on the Internet. I will give a link here. Let's see for yourself.

    https://blog.csdn.net/weixin_43365369/article/details/104356512

    But please note that you must prepare around the Java core, database and framework, and when preparing, give priority to the preparation of the project introduction and the technology mentioned in the project.

    6 Summary

    Summarize the main points of preparing for the interview for the next year.

    1 Excavate more experience in commercial projects. 2 Run the project you want to introduce and understand the technical points. 

    3 Prepare the interview rhetoric given in this article. 4 Then, I will brush various interview questions and algorithm questions.

    Then summarize the main points of the project in the interview.

    1 Through the various methods given in this article, the project is introduced as a commercial project. 2 When introducing projects, pay attention to technology, not business.   

    3 Throw out highlights, and wait for the interviewer to ask questions. 4 When answering technical questions, focus on business requirements to verify that it has been used in the project.

    You must know that there are very few fresh graduates with commercial project experience, and fresh graduates with commercial project experience often don’t know how to describe the project as a commercial project, so if you follow the method given in this article, you will interview in the interview The official proves that you have a business project, this advantage may be decisive. That’s not to say, if you prepare the technical questions and highlight the speech in the way given in this article, you can also show the interviewer your solid foundation on the basis of verifying the commercial project.

    In this way, even if you have a mediocre foundation, you can successfully apply for the job after a period of preparation according to the methods given in this article. Finally, I wish you all a bright future.

   Please pay attention to my official account: make progress together and make money together. In this official account, there will be more exciting articles.

 

 

Guess you like

Origin blog.csdn.net/sxeric/article/details/113856717