Use the experience of technical interviewers to share the interview skills of graduates and junior programmers (Java back-end direction)

Use the experience of technical interviewers to share the interview skills of graduates and junior programmers (Java back-end direction)

I originally wanted to share the experience of how graduates and junior programmers entered large companies, but then I thought that everyone has their own ambitions. Some programmers might want to enter growth or entrepreneurial companies or other types of companies, so they simply share some improvements Skills and skills to pass the interview, I will talk about the skills, the company you choose, both sides are convenient.



Graduates and junior programmers (usually with less than 3 years of work experience) are mostly in the unsuccessful stage of their careers. When looking for a job, they often encounter the bottleneck of lack of actual project experience. As a technical interviewer, I also often in the interview process Feel the shortcomings of these candidates' lack of practical experience. However, I have worked as a part-time java training teacher before, and also summarized some of the skills of this group of people to improve their practical skills and interview skills. Recently, people have been asking me about this, so I simply wrote this as a blog post. 


1. It is best for college students to accumulate some experience in commercial projects, so that they can form a generational advantage

    

What kind of people does the company generally hire? We sum up the various answers into one sentence: people who need technical matching and have relevant project experience, simplify it, and have done relevant experience (generally referring to commercial project experience, which can make money more straightforwardly), then Most of the technologies used match the company s requirements. That is to say, if you have relevant experience, you will have a generational difference compared to those candidates who have theoretical experience alone. Therefore, when I interview candidates, I often see Two or even three college students counterattack scenes.

 

How to accumulate experience in commercial projects? Start the internship as soon as possible. If you can, you can find a software company to work in the summer of your sophomore year. If you have a teacher who has a project outside, it is best to do it together. If the school arranges an internship, you have to go. If you really can t find an internship company, you can also go to some websites to take part-time jobs for some commercial projects.

    

Please note here that generally the weight of a graduation project is not as heavy as that of a commercial project. If you only have experience in a graduation project, you can only compete with this group of people who also don't have a commercial project.

    

What benefits can the advantage of generation difference bring to you?

    

1. When recruiting at school, most people have no experience in commercial projects, but if you do, your resume is very likely to pass the initial review, and in the actual interview, even if your basic algorithm knowledge and other questions are not answered well, as long as Convince the interviewer that you have done a commercial project, and the probability of passing the interview is much higher than that of people without a commercial project.

    

2. When submitting resumes through websites and other forms, many companies actually need to have commercial project experience. If you don t, you don t even have the opportunity to interview, but if you have commercial project experience such as internships, at least you pass The possibility of the primary election is greatly improved.    


2. After entering the society, in the initial stage, choose a goal, so that the project experience will be accumulated

    

When I interview graduates and even junior programmers, I feel that there are very few people who have actual project experience, (this proves that experienced people are quite beneficial), and the probability of passing the interview is about 3 years. The programmers are much smaller. Let me analyze the common problems of this group of people.

     

Question 1 : There is little experience in commercial projects, so the resume cannot even pass the screening, so there is no opportunity for interview at all.

     

Question 2 : Even if some project teams are anxious for people, so that some junior programmers get interview opportunities, but in the interview process, these people often cannot prove that they have really used relevant skills in the project. These have only theoretical experience The probability of a person passing the interview is very small.

    

Question 3 : Most junior programmers can often pass preparations, know algorithms, logic problems, and some simple rhetoric, but cannot prove that they have mastered some necessary skills in the job, and thus cannot prove that they are competent for the job.

    

The result of the above question is: 80% of the programmers who passed the interview in my hand have more than 3 years of experience. In fact, the interview requirements are not difficult, and they can work, but most junior programmers can't prove this. .

    

In response to the above problems, the advice given is: learn and accumulate


     


1. Set a clear goal for yourself, and change as little as possible within 3 years after work, otherwise you will have to accumulate from scratch.

    

2. For example, the target direction is Java back-end development, so in your work, don't let it go, learn more from the seniors in the group, and master more knowledge points.

    

3. You must focus on the topic of "performance optimization", such as memory performance optimization, database optimization, and master more optimization skill points that can be used in projects.

    

4. Even if you are not preparing for an interview recently, you still have to read the interview questions while you are working. It is best to go out for the interview regularly. After all, everyone will make detours in the learning process. To put it in popular terms, it is trial and error. Through continuous interviews, you can continuously modify your learning direction.


3. Some dry goods, in terms of Java Core, Java Web and database, what are the recent standards of general companies?

     

These are also the minimum standards for finding a job. The standards for Java Core are as follows:


aspect

Criteria for qualified programmers

set

1 For linear table objects (such as Array, LinketList, ArrayList, Stack, Set, etc.) and key-value pair objects (such as HashMap, etc.), basic traversal and addition, deletion and modification operations will be performed

2 Will use common objects such as Iterator, generics, comparators, etc.

Exception handling

1 can use try...catch...finally frame

2 Understand the types of various exceptions, such as runtime exceptions, database or IO exceptions.

IO

Can complete basic IO operations, such as reading and writing files, reading and writing memory, reading and writing compressed packages, etc.

JDBC

Basic connection, add, delete, modify, check pre-processing batch operation

Multithreading

1 Multi-threads will be created, and through keywords such as notify, wait, sleep, etc., multi-threads can coordinate the completion of tasks in the project.

2 Common keywords such as synchronized will be used, and conflicts will not occur in the case of multi-threaded reading and writing.

3 It is best to use a thread pool.

Object-oriented and design patterns

Know basic concepts and syntax such as inheritance, abstract classes and interfaces

Garbage collection and memory performance management

Know the basic concepts, know the basic System.gc and other syntax, know how to configure memory through java -xms and other basic operations.

 

The requirements of Java Web are as follows:


aspect

Criteria for qualified programmers

JSP+Servlet

+JavaBean

(Simple MVC framework)

1 Can use JSP+Servlet+JavaBean this set of framework programming, know the basic MVC process.

2 It is best to understand some simple front-end technologies such as JS, DIV, and CSS.

3 Know how to publish Web programs to the server.

Struts aspect

You don t need to understand it because it s used less

Spring aspect

1 Know the concepts of IOC and AOP, and know how to use these technologies.

2 Know the development process of Spring MVC, and be able to develop Spring-based Web projects under the leadership of the project manager.

3 It is best to understand some of the components of Spring MVC.

Hibernate

(Or ORM)

1 Only one ORM technology can be mastered.

2 can use Hibernate to do some basic operations such as adding, deleting, modifying, and checking.

2 Familiar with the usage of some basic components, such as SesionFactory, Criteria and Session.

3 Know the basic usage of one-to-one, one-to-many, and many-to-many.

4 Knowing the concept of caching, it is best to understand skills such as performance optimization.

Spring and Hibernate integration

At this point, there is not much difference between qualified and advanced programmers. The requirements are to be able to integrate and configure the connection pool.

    

In terms of databases, the minimum requirements are reflected in the following three requirements.

    

First: For a type of database (such as MYSQL, Oracle, SQL Server, etc.), basic addition, deletion, modification, and query operations will be performed, some basic functions will be used, and tools such as stored procedure trigger indexes will be written.

    

Second: Know some basic concepts that are helpful to project development, such as paradigm, index, partition, etc.

    

Third: Be able to write some relatively complex SQL statements, such as with joins, with subqueries, nested queries, etc.

    

I know that in fact, most junior programmers know the above knowledge points, but they cannot effectively prove it in the project. Moreover, as I said before, the above are only the minimum requirements. The points given next will be greatly improved. Your interview success rate.    


4. Prove through your resume that you have used relevant knowledge points in the project, and try to find opportunities to speak out during the interview

    

Here are some points to note when preparing your resume.


1. Fine-tune the resume for each job. In the resume sent to the target company, write more keywords that appear in the company's job description.

    

2. Write less irrelevant work experience. Any experience depends on the job requirements of the target company. For example, the job of the target company is java back-end development. You write some experience in project maintenance on Linux or related experience in database DBA. Take a side, but if you write experience such as testing or implementation, it is irrelevant.

    

3. Write less about the business introduction of the project, because the target company does not care.

    

4. This is the key. It must be combined with the actual business and write down that you have experience in relevant skills.

    

For example, if the target company requires database optimization experience, then you can write that in the xx project, there is a requirement for the execution time of sql, so in the order management module, I used xx technology to achieve the sql optimization effect.

    

There should be more similar texts, and the length of the project involved should be as long as possible. In this way, when the person who screened the resume and the interviewer saw your resume, they couldn t help but believe that you first have practical project experience, and second, you have used relevant technology in practical experience.

    

During the interview, the technical interviewer will definitely ask about the relevant skills in the job requirements, and you have to prepare in advance. If you can tell in an orderly way how you use the relevant technology in the project during the interview, then this kind of persuasive power is much stronger than simply saying "you know", and even some interviewers hear this from you. After the narration, less or no related questions will be asked.


    

 

5. Prepare more evidence that "you are better than others"

    

These evidences can appear in the resume, of course you should say it in the interview.

    

In an interview, I often have to select 3 out of 10 people who meet the requirements. (According to me, all 10 people will be forgotten, but no, the budget is not enough). In this way, if a candidate shows better skills than others, then this person must be given priority in equal conditions.

    

The following are the highlights that can be prepared for Java Core.


Technical aspects

Highlights that can be said

Java collection objects

1 Can choose suitable collection objects according to the needs of the project, for example, know the difference between ArrayList and LinkedList, and can choose them reasonably.

2 WeakHashMap can be used in suitable occasions.

3 You can appropriately talk about some collection of JDK low-level implementation codes.

Exception handling

Can write code to release resources in the finally clause

JDBC aspect

1 Can prevent SQL injection through the preprocessing method of PreparedStatement.

2 The operation performance can be improved through batch processing.

3 can tell the meaning of transaction isolation level through examples

Multi-threaded aspects

1 Will use thread pool

2 It can correctly handle data consistency during multi-thread concurrency by means of locks or semaphores.

    

In the table below, we have listed some highlights that can be prepared in terms of databases.


Technical aspects

Highlights that can be said

Build a table

When building a table, you need to consider whether to use the three-paradigm or anti-paradigm based on the data situation of the project.

SQL tuning

1 You can see which SQL needs to be tuned by viewing logs, etc.

2 You can view the cost of SQL through the execution plan, and tune accordingly.

3 You can optimize SQL performance by building indexes and partitions.

Affairs

1 It can be said how transactions are managed in JDBC or Spring.

2 It can be said that the practice and advantages of declarative transactions in Spring.

3 Can give examples to illustrate the usage of transaction isolation level and transaction propagation mechanism.

Distributed database

1 The database can be split horizontally or vertically to reduce the cost of single-table access.

2 The excessive access requests to the database can be assumed through clusters and other methods.

NoSQL and Hadoop

These two are a bright spot in themselves, if you have used them, you can explain them in combination with the project.

    

The highlights that can be prepared for Java Web are listed below.


Technical aspects

Highlights that can be said

Spring MVC architecture

1 It can be said how Spring's IOC and AOP optimize the project structure.

2 It can be said that Spring components such as interceptors help the project.

ORM, such as Hibernte or Mybatis

When using this ORM technology, how to optimize the performance of accessing and operating the database.

Integration of Spring and Mybatis, etc.

You can talk about the details of the integration framework and give an example to illustrate that the integrated framework can well adapt to changes in requirements.

    

In addition, you can also show your highlights in Linux skills and project management software experience. Please note here that you must find the right opportunity to say "by the way", if you don't have a chance, let's not say it, let alone talk to yourself directly with preparation. Otherwise, you may get bad evaluations such as "unclear presentation skills" or "confusing narrative organization".

    

Six. Summary

    

The points involved in this article are a bit broad, here is a summary of the points mentioned in this article.

    

1. Students in school should accumulate some experience in commercial projects as early as possible.

    

2. After work, find the right direction of development, and then adjust your learning route through continuous interviews.

    

3. The project description in the resume should be as consistent with the needs of the target company as possible, and this should also be proved as much as possible in the interview.

    

4. Accumulate more advantages over others.


I have a WeChat public account, and I often share some Java technology-related dry goods; if you like my sharing, you can use WeChat to search for "Java head" or "javatuanzhang" to follow.