Resume writing specifications, java job interview guidance

What professional skills do you want to become a qualified Java programmer or engineer, and what do interviewers need to prepare before interviewing? The content displayed in this article can be used as a content in your resume or as a chat with the interviewer during the interview. You can write these contents into your resume. The interviewer demonstrates these professional skills. I believe this article will be helpful to freshman who is looking for a Java programmer (Java engineer) position and junior who wants to become a middle and senior Java developer.

professional skill    

1. Skilled use of Java language for object-oriented programming, good programming habits, familiar with commonly used Java API, including collection framework, multi-threading (concurrent programming), I / O (NIO), Socket, JDBC, XML, reflection Wait.    

2. Familiar with Java Web development based on JSP and Servlet, in-depth understanding of the working principle and life cycle of Servlet and JSP, skilled use of JSTL and EL to write scriptless dynamic pages, use of Web components such as listeners, filters and MVC Experience in Java Web project development based on architecture mode.    

3. In-depth understanding of Spring's IoC container and AOP principles, skilled use of the Spring framework to manage various Web components and their dependencies, skilled use of Spring for transaction, log, security and other management, some use Spring MVC as a representation Layer technology and experience of using Spring's persistence support for Web project development, familiar with Spring's integration of other frameworks.    

4. Skilled use of ORM frameworks such as Hibernate and MyBatis, familiar with the core APIs of Hibernate and MyBatis, and have a deep understanding of Hibernate's association mapping, inheritance mapping, component mapping, caching mechanism, transaction management and performance tuning.    

5. Skilled in using HTML, CSS and JavaScript for web front-end development, familiar with jQuery and Bootstrap, have a deep understanding of the application of Ajax technology in web projects, and use front-end MVC framework (AngularJS) and JavaScript template engine (HandleBars) for projects Development experience.    

6. Familiar with commonly used relational database products (MySQL, Oracle), proficient in SQL and PL / SQL for database programming.    

7. Familiar with object-oriented design principles, in-depth understanding of GoF design patterns and enterprise application architecture patterns and relevant experience in actual development, skilled use of UML for object-oriented analysis and design, including TDD (test driven development) and DDD (Domain Driven Design) experience.    

8. Familiar with the use of web servers and application servers such as Apache, NginX, Tomcat, WildFly, Weblogic, etc., and familiar with the configuration of multiple server integration, clustering and load balancing.    

9. Skilled use of product prototype tools Axure, skillful use of design modeling tools PowerDesigner and Enterprise Architect, skillful use of Java development environment Eclipse and IntelliJ, skillful use of front-end development environment WebStorm, skillful use of software version control tools SVN and Git , Skilled use of project construction and management tools Maven and Gradle.

Note: Not all of the items listed above should be familiar to you. According to the specific requirements of enterprise recruitment, you can make corresponding targeted preparations. I personally feel that the first 6 items should be the minimum requirements, as a professional skill that a Java developer must possess

Project Introduction   

This system is a system for Z developed by X commissioned by Y. The system includes A, B, C, D and other modules. The system uses Java enterprise-level open source framework E and front-end technology F. The presentation layer uses the G architecture, uses H as the view I as the controller and implements REST-style requests; the business logic layer uses the J mode, and implements transaction, log, and security functions through K, and the cache service through L; The persistence layer uses M to encapsulate CRUD operations, and the bottom layer uses N to implement data access. The entire project uses the P development model.

Note: In the above description, E usually refers to Spring (a one-stop choice for Java enterprise development); F is most likely to be the jQuery library and its plug-in or Bootstrap framework, of course, if you want to build a single page application (SPA) is best The solution is the front-end MVC framework (such as AngularJS) and JavaScript template engine (such as HandleBars); G is obviously MVC (model-view-control), the most likely implementation framework is Spring MVC, in addition to Struts 2, JSF and Apache provide the MyFaces implementation for JSF. You can use JSP as the V in MVC, or you can use a template engine (such as Freemarker and Velocity) to generate views, or various documents or reports (such as Excel and PDF). The Servlet and custom controller are C in MVC. Of course, Spring MVC provides DispatcherServlet as a front-end controller; J is usually a transaction script, K should be AOP (Aspect-oriented programming) technology, L is currently widely used are memcached and Redis; M has many options, the most likely are Hibernate and MyBatis, which can also be used at the same time, but usually add, delete and change to Hibernate Processing, and complex queries are completed by MyBatis. In addition, TopLink and jOOQ are also excellent persistence layer solutions; the underlying data access is traditionally using a relational database, which can be MySQL, Oracle, SQLServer, DB2, etc. The coming of the data era, you can also use NoSQL (such as MongoDB, MemBase, BigTable, etc.) and other big data access solutions (such as GFS, HDFS, etc.); the development model P of the project can be a waterfall model, rapid prototype model, incremental model , Spiral model, fountain model, RAD model, etc.

Project development process

1. Feasibility analysis >>> Feasibility analysis report / project development plan

2. Demand analysis >>> Demand specifications

        1.OOAD (use case diagram, timing diagram, activity diagram)

        2. Interface prototype: help understand the requirements and derive transaction scripts when designing the business layer

3. Design >>> Summary Design Manual / Detailed Design Manual

        1. Extract business entities (domain objects): class diagrams, ER diagrams (conceptual design stage)

        2. Hierarchical architecture: determine the technical implementation of each layer (specific to the framework used, database server, application server, etc.). Business layer design: transaction script mode (transaction: a user sends a request is a transaction; script: a method or a function; transaction script: encapsulate a request as a method or a function; transaction script mode: a transaction starts with Open, terminate at the close of the script). There are three types of objects involved in the business layer: transaction scripts (encapsulating business processes), data access objects (DAO, encapsulating persistence operations), data transmission objects (DTO, encapsulating blood loss / anemic domain objects), three The relationship between the two is a transaction script class combination (aggregation) of data access objects, both of which rely on data transfer objects

        3. Forward engineering (UML class diagram to generate Java code) and reverse engineering (Java code to generate UML class diagram)

        4. The physical design of the database (the ER diagram is converted into the relationship diagram between the tables, the database and the table are built, and the test data is inserted using the tool)

4. Coding 5. Test >>> Test Report / Defect Report

        1. Unit test: Check and verify the smallest testable unit in the software. In Java, the method in the class is tested, which can be implemented using JUnit tools.

        2. Integration testing: Integration testing is also called assembly testing or joint testing. On the basis of unit testing, all modules are assembled into subsystems for testing according to design requirements.

        3. System test: combine the confirmed software, hardware, peripherals, network and other elements to carry out various assembly tests and confirmation tests of the information system. The system test is a test for the entire product system to verify the system Whether the definition of the requirement specification is met, find out the inconsistency or contradiction with the requirement specification, and then propose a more perfect plan.

        4. Acceptance testing: After the software product has completed unit testing, integration testing and system testing, the software testing activities conducted before the product is released. It is the final stage of technical testing, also known as delivery testing. The purpose of acceptance testing is to ensure that the software is ready and can be used by end users to perform the software's intended functions and tasks.

        5. Delivery and Maintenance >>> User Manual / Operation Manual

Project management

Version control: CVS / SVN / Git

Automatic build: Ant / Maven / Ivy / Gradle

Continuous integration: Hudson / Jenkins

system structure

Load balancing server: F5, A10

application server:

        HTTP server: Apache, NginX (HTTP, reverse proxy, mail proxy server)

        Servlet container: Tomcat, Resin

        EJB container: WildFly (JBoss Application Server), GlassFish, Weblogic, Websphere Database server: MySQL, Oracle

Third-party tool (plug-in) application   

Chart tools: chart plugins based on jQuery (such as jQchart, Flot, Charted, etc.), Chart.js, Highcharts, etc.   

Reporting tools: Pentaho Reporting, iReport, DynamicReports, etc.   

Document processing: POI, iText, etc.   

Workflow engine: jBPM, OpenWFE, Snaker, SWAMP, etc.  

 Job scheduling: Quartz, JobServer, Oddjob, etc.   

Cache services: EhCache, memcached, SwarmCache, etc.   

Message queue: Open-MQ, ZeroMQ, etc.   

Security framework: Shiro, PicketBox, etc.   

Search engines: IndexTank, Lucene, ElasticSearch, etc.   

Ajax framework: jQuery, ExtJS, DWR, etc.   

UI issues: EasyUI, MiniUI, etc.   

Rich text box: UEditor, CKEditor, etc.

Interview questions

For which company was the project developed?

What is the investment of the project?

How many people are involved in project development?

What is the ratio of testers, developers, and project managers in the entire team?

How long has the project been developed?

What is the total code size of the project?

How much is your code?

What kind of development model or development process does the project use?

What is the structure of the project?

What is the technical selection of the project?

What responsibilities did you undertake in the project?

Do you often meet or work overtime?

What are the lessons or lessons learned after the project is completed?

What is the most difficult part of the project?

How to resolve the various conflicts encountered during team development?

Ming: For those who have no actual project experience, you can search for companies recruiting Java programmers on websites such as Future Care, Zhilian Recruitment, and Lagou.com, find their official website to learn about the projects they do, check the detailed introduction of the project, and then Try to complete some of the functions, it is best to ask an expert to see whether their design and code are appropriate, which is equivalent to accumulating some project experience.

You can ask the interviewer questions during the interview   

I noticed that you used X technology, how do you solve the Y problem?   

Why do your products use X technology instead of Y technology? As far as I know, although X technology has the benefits of A, B, C, etc., there are also D and E problems, and Y technology can solve the D and E problems.   

I am not too familiar with the X technology you said, but I feel it is a good solution. Can you tell me more about how it works?   

How did your team plan the project? How many regular meetings will there be in a week? What is the amount of code per week?   

The only solution I can think of for the X problem is currently Y. How would you solve this problem?

Employment negotiations   

It is reasonable to put forward specific treatment requirements   

Offer a slightly higher price tag than expected   

Don't just stare at salary (many companies prefer to make concessions on conditions other than salary)   

Use the most appropriate method (you can try to negotiate treatment on the phone or E-mail)

Self-evaluation   

Learning ability (People in the IT industry need to constantly learn about new technologies, tools and methods)   

Team awareness (compared to individual heroism, the IT industry advocates teamwork more)   

Pressure resistance (the work intensity of many IT companies is relatively large)

 

Guess you like

Origin www.cnblogs.com/xiao-wanzi/p/12752006.html