What professional skills do you need to become a qualified Java programmer or engineer? What do interviewers need to prepare before the interview? The content displayed in this article can be used as content in your resume or as something to talk to the interviewer during the interview. You can write this content into your resume. Of course, what is more important is that you talk to the interviewer during the interview. The interviewer demonstrates these professional skills. I believe this article will be helpful to freshmen who are looking for Java programmer (Java engineer) positions as well as juniors who want to become intermediate and senior Java developers.
Proficient in using Java language for object-oriented programming, good programming habits, and familiar with commonly used Java APIs, including Collection framework, multi-threading (concurrent programming), I/O (NIO), Socket, JDBC, XML, reflection, etc.
Familiar with Java Web development based on JSP and Servlet, have in-depth understanding of the working principles and life cycles of Servlet and JSP, proficient in using JSTL and EL to write scriptless dynamic pages, have experience in using Experience in Java Web project development with Web components such as listeners and filters, as well as the MVC architecture pattern.
Have in-depth understanding of Spring's IoC container and AOP principles, proficiently use the Spring framework to manage various web components and their dependencies, and proficiently use Spring for transactions, logging, and security etc., have experience in using Spring MVC as the presentation layer technology and using the persistence support provided by Spring for Web project development, and are familiar with Spring's integration of other frameworks.
Proficient in using ORM frameworks such as Hibernate and MyBatis, familiar with the core APIs of Hibernate and MyBatis, and familiar with Hibernate's association mapping, inheritance mapping, component mapping, caching mechanism, transaction management and performance tuning Excellent understanding.
Proficient in using HTML, CSS and JavaScript for Web front-end development, familiar with jQuery and Bootstrap, having in-depth understanding of the application of Ajax technology in Web projects, and using the front-end MVC framework (AngularJS ) and JavaScript template engine (HandleBars) for project development experience.
Familiar with commonly used relational database products (MySQL, Oracle), proficient in using SQL and PL/SQL for database programming.
Familiar with object-oriented design principles, have in-depth understanding of GoF design patterns and enterprise application architecture patterns and relevant experience in actual development, and proficiently use UML for object-oriented analysis and design , with experience in TDD (Test Driven Development) and DDD (Domain Driven Design).
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.
Proficient in using product prototyping tool Axure, proficient in using design modeling tools PowerDesigner and Enterprise Architect, proficient in using Java development environment Eclipse and IntelliJ, proficient in using front-end development environment WebStorm, Proficient in using software version control tools SVN and Git, and proficient in using project construction and management tools Maven and Gradle.
Note: Not every one of the things listed above needs to be familiar to you. You can do it according to the specific recruitment requirements of the company. Targeted preparation. I personally think that the first 6 items should be the minimum requirements and are the professional skills that a Java developer must possess.
This system is a system developed by X entrusted by Y for Z. The system includes A and 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 pattern, and implements functions such as transactions, logs and security through K, and implements caching services through L; The persistence layer uses M to encapsulate CRUD operations, and the bottom layer uses N to implement data access. The entire project adopted 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 the jQuery library and its plug-ins or the Bootstrap framework. Of course, if you want to build a single-page application (SPA), the best solution is a front-end MVC framework (such as AngularJS) and a JavaScript template engine (such as HandleBars); G is obviously MVC (Model-View-Control), and the most likely implementation framework is Spring MVC, in addition to Struts 2, JSF and the MyFaces implementation provided by Apache for JSF, you can use JSP as the V in MVC, you can also use template engines (such as Freemarker and Velocity) to generate views, or you can use various documents or reports (such as Excel and PDF, etc.), and Servlets and custom controllers are C in MVC. Of course, Spring MVC provides DispatcherServlet as a front-end controller; J is usually a transaction script, and K should be AOP ( Aspect-oriented programming) technology, L is currently widely used with memcached and Redis; M has many options, the most likely ones are Hibernate and MyBatis. Both technologies can also be used at the same time, but additions, deletions and changes are usually handled by Hibernate , and complex queries are completed by MyBatis. In addition, TopLink and jOOQ are also excellent persistence layer solutions; the underlying data access has traditionally used relational databases, which can be MySQL, Oracle, SQLServer, DB2, etc., with the advent of big data With the advent of the era, NoSQL (such as MongoDB, MemBase, BigTable, etc.) and other big data access solutions (such as GFS, HDFS, etc.) can also be used; the development model P of the project can be waterfall model, rapid prototype model, incremental model, Spiral model, fountain model, RAD model, etc.
Feasibility Analysis>>> Feasibility Analysis Report/Project Development Plan
Requirements Analysis>>> Requirements Specification
OOAD (use case diagram, sequence diagram, activity diagram)
Interface prototype: Helps understand requirements and derive transaction scripts when designing the business layer
##Project Management
System architecture
HTTP server: Apache, NginX (HTTP, reverse proxy, mail proxy server)
Servlet container: Tomcat, Resin
EJB container: WildFly (JBoss Application Server), GlassFish, Weblogic, Websphere
Note: For those who have no actual project experience, you can search and recruit Java programmers on websites such as 51job, Zhaopin Recruitment, and Lagou.com Company, 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 if your design and code are appropriate. This is equivalent to accumulating a certain amount of experience. Project experience.
Example: What is the probability that a triangle inscribed in a circle is an acute triangle? This is an interview question from Sogou. You can know the answer by randomly drawing three points on the circle and connecting them to form a triangle.
Example:The elements of an ordered array are moved through a loop, and the order of the elements becomes "3 4 5 6 1 2". How to find the smallest element in an array, assuming that the elements in the array are different. This question looks so similar to the binary search, so we can learn from the binary search algorithm. The smallest element obviously appears at the turning point of "mid > right".
Description: Simplify the problem size and data type, and then discover a general solution.
Simple construction method
Example: Find all possible permutations and combinations of "abcde". First consider the case of only "a", then consider the case of "ab", and so on. You may end up with a recursive formula. This approach often evolves into a recursive approach.
Data structure brainstorming method
Example: Randomly generate some numbers and find their median. For this kind of question, you can go through the data structures you know in your mind and see which one is the most appropriate data structure. The above question can create two heaps, a large root heap and a small root heap. Smaller elements are placed in the large root heap, and larger elements are placed in the small root heap. If the two heaps are unbalanced, they can be taken out from one of the heaps. Just put the element into another heap. The final median should be one of the roots of the two heaps.
Be confident and put forward specific treatment requirements
Offer a slightly higher price than expected
Don’t just focus on the salary (many companies are more willing to make concessions on conditions other than salary)
Use the most appropriate method (you can try to negotiate the treatment on the phone or by email)
Learning ability (people in the IT industry need to constantly understand new technologies, tools and methods)
Team awareness (compared to individual heroism, the IT industry More advocates teamwork)
Stress resistance (the work intensity of many IT companies is relatively high)
Attention, students learning Java! ! !
The above is the detailed content of What professional skills do Java programmers need?. For more information, please follow other related articles on the PHP Chinese website!