I have already talked about how to analyze myself, locate myself accurately, and select an appropriate job direction! Write a highly targeted resume based on your actual situation! Your resume is your personal advertisement! Good resumes can be favored by employers! A good resume will lead you to an interview! We also listed J2EE knowledge points for the interview! Both the written examination and the interview will get these very important knowledge points! The technical content of the interview is not as difficult as you think. It mainly focuses on the basics and details! Details determine everything! Therefore, we need to work hard to prepare the knowledge points of repeat! Of course, the knowledge points listed here are just some of the problem sets that often occur during interviews! Every enterprise may go beyond these knowledge points (Don't scold me )! Prepare yourself!
Technical assessments are generally classified into written examinations and technical interviews. Technical interviews are classified into professional knowledge interviews and project experience assessments. It should be said that the written test and professional knowledge interview are to assess your knowledge and proficiency in a certain aspect (J2EE or. NET! The project experience assessment is to see if you have project experience, whether it is suitable for the enterprise's employment needs, whether the enterprise needs to pay the training cost for you, and whether you can immediately invest in your work. enterprises are measuring your salary based on your project experience! This is why some students may have a good academic performance at school, but the salary offered by the enterprise is not high, while some students generally get a high salary! The assessment of professional knowledge is only for enterprises to understand your professional qualities and abilities in this aspect! In fact, sometimes the test score is poor or you feel that when you are doing a pen test, it doesn't matter if some questions are not made or wrong. During the technical interview, answers to questions related to professional knowledge are not ideal and play a decisive role! In short, you can answer 70% of the enterprise's requirements for the written examination and professional knowledge interview! Of course, if you do poorly in terms of professional knowledge, the examiner will not be very interested in you! But the key to determining your company's determination to hire you is your project experience (excluding the company's special emphasis on English and other capabilities ). I didn't seem to be talking about the subject after talking about it. This is because it gives you a clearer understanding of how important it is to answer questions about project experience. In this regard, the students who just came out of the school are very weak, and there are very few introductions to this aspect! Next, let's talk about the questions about the project experience during the interview and what aspects should we answer!
Question 1: Briefly introduce yourself!
Analysis: this is a question that will be encountered in any interview. It seems that this question is very simple, but we often do not know what information the examiner wants to obtain from your answer! Therefore, it is easy for us to leave questions, run questions, and not get into the right questions! You cannot immediately attract the Examiner. Remember to seize every opportunity in the interview to promote yourself. But we often don't know where to start. So we must first understand what information the examiner wants?
1. How long have you been engaged in related work?
2. Have you received a good education background?
3. Have you had some work experience?
4. Have you had rich project experience?
5. What makes you different: How did you develop projects, what's special, or what projects are you working on?
What successes have you achieved, or where you are proud of yourself?
6. What are your best technologies?
7. What kind of person are you?
How to answer: Let's analyze them one by one. First, we generally answer your questions about the professional development time of software projects. do not count the time you used to sell fish or eggs or roast chicken at night markets. you have at least one company. do not tell me that you have learned only J2EE or. net half a year, I want to come to our company for dinner. match your resume. generally at least 1 year and a half.
Educational background
Work Experience: that is, in what company I used to work in, which is consistent with your resume. I just want to talk about the work experience of software development, and I will not mention anything else.
Project Experience: a project that you have previously considered as a good project is particularly important here. First, summarize the project in one sentence, and then describe all the functions and sub-functions of the project.
What makes you different: it also refers to the effect you get in the project in what unique method, mainly to the project that can result in specific results or can be used as an example.
What's Best: It mainly tells the other party what kind of technology you are best at. What kind of technology is demand analysis? Encoding, or database or architecture
Your character: use one or two words to describe yourself and your character.
Response example:
Interviewer: give a brief introduction to yourself!
Ling huchong: Hello, Ling huchong. engaged in J2EE development for three years. from 20002 to 2005, he was engaged in J2EE project development in Grand song Peach Blossom Island software Valley king room software company. during this period, the general management platform of Song Xia was developed. the Grand song warrior integrated management platform can automatically collect information about grand song heroes and heroes, and track and manage their personal information and actions to maintain and query Grand Prix information. event maintenance, level management, rewards and punishments management, event release, and fund-raising management. You are mainly responsible for requirement analysis, architecture design, and framework code implementation in the project. Be good at communicating with customers during project development and fully understand customer needs. He has strong self-learning ability. He has read a large number of software project development cheats in the Song Dynasty, and has the ability to read and write Tibetan, Indian, and Jin Wen.
Question 2: Let's talk about your XXX project!
Analysis: The examiner will definitely want to learn more about your project by reading your resume or introduction, check whether the project experience is consistent with that of your resume. That is, whether you have real project experience. Generally, you have at least one key item on your resume, which is placed first in the experience column of your resume project. Clearly describe the business functions of the project. Here you can focus on a project. Make a statement from the following aspects:
1. Briefly describe the project in one sentence
2. List the project implementation functions in detail
3. Express the technology and architecture of project implementation, and express the unusual characteristics of the project, such as the adoption of a new technology and a good frame.
4. make others feel the scope of the project
5. State your responsibilities in the project
This proves that you have indeed developed this project and it is a real project. In addition, you have real project experience. Hu he needs of enterprises.
Note that the more detailed the functions implemented by the project, the better. Of course, the words should be concise and fluent. Second, you should try to use professional terms to look professional. Do not make low-level mistakes.
Remember, you need to describe the entire project, not just the module you have created. Some projects are only involved in one of the modules, but you need to describe the entire project, not just the modules you are involved in.
You must describe the technology and Architecture Used in your project and your responsibilities in the project.
Response example:
Interviewer: Ling huchong, could you introduce your overall management platform for song xiashi!
Ling huchong: Okay. The Grand song xiashi integrated management platform is developed for the Grand song Wulin alliance to automate the management of the martial arts alliance. The Grand song warrior integrated management platform can automatically collect information about grand song heroes and heroes, and track and manage their personal information and actions to maintain and query Grand Prix information. event maintenance, level management, rewards and punishments management, event release, and fund-raising management.
The system is based on the B/S three-tier architecture. It adopts the spring + hibernate + spring MVC Framework and uses the Oracle database.
This project only invests 15 people, and the development cycle is 6 months. In the project, I conducted a pre-requirement analysis, system architecture implementation, database modeling, and some coding work.
Question 3: How did you develop this project? (How did you develop the project ?)
Analysis: this problem is to assess whether you are familiar with the software development process, and to assess your project experience and professional qualities. From here, you can determine how many projects you have participated in, you can determine your understanding and familiarity with software engineering. This issue is critical. The knowledge points you need to prepare include: software project lifecycle, software project development model, object-oriented analysis and design, and software quality assurance.
Software project lifecycle:
Project Plan
Requirement Analysis
Design (Outline Design and detailed design)
Encoding
Test
Release
Maintenance
Project planning phase: Visit the customer, communicate with each other, and obtain the original requirements of the customer.
Conducts research on customer needs and markets, analyzes and prepares feasibility analysis reports.
By constantly communicating with customers, users in different stages of the customer can be contacted to obtain their needs. Hold review meetings, report Feasibility Analysis, Report users' original needs, and report on project Prospective Planning.
Demand analysis stage:
Continuously communicates with the customer based on the customer's original needs, fully familiarized with and deepened the customer's business, obtained full business needs, and improved user needs and functional requirements, understand the customer's constraints and obtain non-functional requirements. Finally, the "requirement specification" will be prepared; a demand review meeting will be held, the customer will determine the requirement and sign the contract; the project plan specification will be prepared; the test plan will be prepared; the project kickoff meeting will be held and the project will be officially started.
Summary design phase: use case analysis is performed based on the requirement analysis statement to obtain a full and effective use case. Compile the interface prototype, code specifications, interface style specifications, and database design specifications. Use UML tools to draw Use Case Diagrams and write effective use case specification documents. Division of project function modules. Review use cases and Use Case statute documents.
Detailed design stage: According to the complete case and needs analysis, obtain the relevant information required by the database, draw the database E-R diagram, write the data Design Manual, and perform database modeling. Perform a detailed analysis, use UML tools to draw class diagrams, determine the sub-functions of each function module, and extract the public part of the project into a public module. Determine the architecture of the project. Determine the classes and class members and methods to be used. Determine Some helper classes and methods. Use UML tools to draw sequence diagrams for each use case. Prepare detailed design specifications, review detailed design specifications, and build the basic framework. Lists and assigns tasks.
Coding stage: code is written in groups and unit test cases are written. unit test is required for each class. Each time a Function Point and module are completed, integration testing is required. Make sure that each function point and module is a visible and tangible product. Instead of waiting until the end to conduct unified debugging and matching. Code should be checked and optimized every day, that is, refactoring.
Test phase: perform system tests and user acceptance tests on the project according to the test plan.
Product Release: deliver complete product and design documents. Deploy the product to the customer's computer to ensure the normal operation of the product. Customer Acceptance.
Maintenance Phase: Provides technical support for customers and carries out maintenance and upgrade work for products.
Common Software Development Models
Waterfall Model: The most classic process model, applicable to projects with clear requirements and Small Scale
Fountain model: iterative, non-gap feature, suitable for Object-Oriented Software Development Process
Spiral Model:
MSF model: Microsoft Solution Process Model
What is eXtreme Programming (XP): extreme programming is an implementation of agile software development methods. It emphasizes test first, that is, writing test cases when writing code; loop iteration, each iteration is a usable product; refactoring, constantly optimizing the Code; pair Programming: two people write code for one pair. It emphasizes the knowledge dissemination between teams, so that everyone in the team can be familiar with various software development technologies. For example, users who are familiar with databases can create interfaces and databases for those who are familiar with Interfaces. The team's capabilities can be enhanced through irregular role conversion. Require customers to participate in software development and develop products that best suit customer needs.
Unit Tests are usually performed synchronously during encoding. They are generally tested in the unit of classes. tests are conducted only after a class completes encoding and compilation is correct, test whether this class can implement the specified function. The successful compilation of a class does not mean that the class has been completed. You need to test and set assertions to determine whether the class has achieved the expected results and implemented specific functions. Debugging and compilation can only prove that the code syntax is correct.
Unit tests are conducted by programmers themselves, or by interactions within the project group. The unit test is a white box test.
Integration testing generally refers to implementing a function point or a module, in order to test whether this module has implemented the required functions. Integration testing may require assembling multiple classes or assembling modules that have been tested before. This is the system integration and execution of product components. The integration test can be divided into different levels based on the module size. In the current software development, each function module must undergo an integration test, so that the module you complete is a product that can run. Generally, integration testing can be completed by the project team owner (or a specified team member. White box and black box tests are used for integration testing.
System testing generally means that all the code has been completed and is handed over to the test team for testing. The system testing personnel are independent of the development team. The system testing personnel deploy the completed products in the corresponding computer environment and perform tests according to the test plan to verify whether the system meets the specified requirements. In addition to testing the product to meet basic functional requirements, the system should also test the product's performance, user interface, security, pressure, reliability, installation and anti-installation.
Black box testing for System Testing
Acceptance testing generally refers to the delivery of the product to the customer, which is responsible for deploying the product in the designated computer environment. The overall test is conducted by the user according to the requirement document. The content of the acceptance test is the same as that of the system test, but the performer is different. In addition to testing the basic functions of the system, we also need to test the performance, security, and reliability. Black box testing is also used for acceptance testing.
Why test? Testing is a guarantee of software quality. Only software that passes strict testing is a qualified software. Testing does not mean that the software can be compiled and passed, testing allows software products to meet customers' needs to the greatest extent possible.
Response example:
Examiner: Ling huchong, can you talk about how you developed this project?
Ling huchong: First of all, we have a basic user requirement for this project. However, this is not enough. We all know that requirement analysis is very important. Therefore, based on the original user requirement documents, we analyze the problem again and continuously communicate with customers, fully understand and be familiar with the user's business, and improve the business needs and functional needs. It also analyzes the user's business needs and functional requirements to improve the non-functional requirements necessary for the implementation of software. The project requirement specification is obtained and approved by the review meeting.
Analyze the use cases according to the requirement specification, find out the full valid use cases through analysis and discussion, and draw the use case diagram with Rose. Perform a detailed analysis on each use case, complete the use case specification document for each use case, and compile the interface prototype. Divide project modules. Finally, the use case and Use Case specification documents are reviewed and verified. Compile "code writing specifications", interface style specifications, database design specifications, and outline design specifications.
Obtain the basic information prototype of the database based on the requirement specification and analysis of each use case specification document. It can also be said that it is a draft of the database table, which is analyzed based on the database table grass for database design and optimization. Write the database design specification. Use powerdesigner to model databases and generate SQL scripts. Determine the project framework and design public modules and auxiliary classes. Lists objects and clarifies object relationships based on the analysis of database models and Use Case protocols. Use rose to draw class diagrams. Use rose to draw a sequence chart for each use case. Prepare detailed design specifications. Lists tasks and groups them for code writing.
In the code writing stage, all entity classes are completed in a unified manner. For non-entity classes, the framework of the class is completed first, that is, only writing methods and comments. The implementation of the specific method is temporarily empty. Then enter the code. Every time the Code of a class is compiled, it must be restructured and tested in units. Each time a function and module are completed, the team lead will perform the integration test. This makes the completed module A real and visible function implementation.
After each group completes its own modules, it will integrate the modules and conduct a large-scale integration test. Then, the product is delivered to the product testing team for system testing.
Question 4: How do you ensure the quality of software development?
Analysis: The answer to this question has been given. Software Quality is the satisfaction of software implementation to requirements. The more the developed software meets the customer's needs, the higher the quality of the software. On the contrary, the lower the quality. Although the software you develop uses new technologies, sound design, and rich features, these features are not required by the customer, and the features required by the customer are not implemented or many are not implemented. Such software also fails. There are only two methods to ensure the software quality, that is, to maximize the satisfaction of the customer's needs. One is to obtain full and complete requirements, and the other is to pass tests and write test plans based on requirements. To ensure that the software meets the requirements.
Response example:
Examiner: How do you ensure the quality of software?
Ling huchong: to ensure the quality of the software, we must first obtain the complete requirements. In the demand analysis stage, we have done a lot of work to communicate with representative users in all aspects of the customer, fully understand and be familiar with the customer's business. In addition, communication and communication with users are maintained from the requirement to the design stage. Let the user's business experts participate in our needs, analysis and design work.
Next, we will compile a test plan after requirement analysis, and conduct tests at each stage of development to ensure that the Code meets the corresponding requirements. During code writing, each class is tested by a program, and each function point or module is tested by integration, each integration test is iterated on the product that has passed the previous test, that is, the product that has been successfully tested before will be added to this test. Each completed function and module is a product that can be run and viewed. You are also welcome to witness the integration test results. After the code is compiled, the final integration test is conducted, and then the project is tested by an independent test team.
Question 5: Why did you leave the company? (Why did you leave your company ?)
Analysis: this problem can be found in almost any interview, sometimes during a technical interview or during a personnel interview, sometimes you may ask questions during technical and personnel interviews. In fact, the answer is better than abstract. Remember not to say anything bad about your company. People may think that you will also say bad things about the company after leaving the company. They generally say that they want to develop a better space. It makes people feel that you have chosen their company after careful consideration.
Response example:
Examiner: Why did you leave your company?
Ling huchong: I used to be very nice to my company. I used to have a good time in my company. Because my contract expires, I want to gain a better space for development and seek an environment where I can continue to develop. The company completed the resignation formalities and handed over the work. (You can leave this sentence behind)
Question 6: Talk about your career planning
Analysis: enterprises all want to hire potential investors to see if you are a tough guy. They also want to see if you can work in the enterprise for a long time or just take it as a stepping stone. In general, to answer this question, you must think that you are a trainable and promising person. Remember what kind of person will interview you. If you are a project manager to interview you, you should not say that your future career planning is a project manager. You can say that your professional planning is to become an architect or a technical expert. Otherwise, he may think that you are a threat to you. Even if he knows that this is nothing, he may feel a little uncomfortable. If you have questions like this during a boss interview or when asked by personnel, you can say that the project manager is fine, but you have to feel a sense of stability.
Response example:
Examiner: What is your career planning? (The examiner is the Project Manager)
Ling huchong: I have strong thinking abilities and are good at logic analysis. I have accumulated some architectural experience in my previous work and want to become an architect and technical expert in the future.
Conclusion: these questions are very common and difficult to answer during the interview. Some seem simple but do not know where to start. Some seem complicated but not complex. Many people lack project experience and are unfamiliar with the software development process, while the teachers have little knowledge about this, if you do not have a certain amount of code or project accumulation, it is hard for the teacher to understand and understand. In addition, the content in this area is too much for practical experience and day-and-month accumulation, and it is hard for the teacher to talk about it. Now I have used the boring concept and the actual project to sum up and form such a Q & A technique. In addition, some of these technologies are analyzed and summarized based on the actual situation. We hope that readers can quickly learn and understand what they actually mean. This improves the interview success rate. Of course, this is just an answer skill. The key is to accumulate knowledge. There is a saying: "Without a long journey, without a thousand miles; without a small stream, not a river ". This article is also a sort of my own knowledge. I did not go to view and research books. I want to describe the project development process and some details in my own language. I am really a little confused. I really hope that you can point out and give me some advice on my mistakes and mistakes, and I will shed tears. I just got on the road, whether it's technology or life!