I wanted to share the experience of graduating and junior programmers on how to get into a big company, but then I realized that everyone has their own interests, and some programmers might want to get into a growth or start-up company or some other type of company, so I decided to share some tips on how to improve your skills and pass the interview.


Graduates and junior programmers (typically with less than 3 years of work experience) are in the late stages of their careers and often face the bottleneck of lack of practical project experience when looking for a job. As a technical interviewer, I have often experienced these candidates’ lack of practical experience in the interview process. But as a part-time Java trainer, I’ve been asking for tips on how to improve their practical and interviewing skills, so I just wrote a blog post about it.


First, college students had better accumulate some experience in business projects, so as to form a gap advantage

    

What kind of people do companies hire? Let’s boil the answers down to one sentence: Need matching technology and relevant project experience, to simplify, made relevant experience (generally refers to the commercial project experience, bluntly said some more projects can earn money), so use of technology and company requirements match mostly, that is to say, if you have relevant experience, then compared with those candidates with experience of the theory of light, is the generation of differential advantage, So when I interview candidates, I often see the scene of two or even three college students going against each other.

 

How to gain experience in commercial projects? Start the internship as soon as possible, if possible, sophomore summer vacation can find a software company to work, if you have a teacher outside a project, it is best to do together, if the school arranged internship, that is more to go. If you can’t find an internship company, you can also go to some websites to pick up part-time work for commercial projects.

    

Please note that the general graduation project is not as important as the weight of the commercial project, so if you only have the graduation project experience, you will have to compete with the same group of people who do not have a commercial project.

    

What kind of advantage can you get?

    

1. When in school, most people no business experience, but do you have, your resume through the preliminary examination of the possibility is very large, and in the actual interview, even if you algorithm basics such as good problem didn’t answer, but as long as convince the interviewer that you have done business projects, through the possibility of the interview also is much better than the no commercial project of the crowd.

    

2. Many companies actually require business project experience when sending resumes through websites or other forms of application. If you don’t, you won’t even get an interview, but if you have business project experience, such as an internship, your chances of getting through the primary process will be greatly improved.


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

    

When I interview graduates or even entry-level programmers, I get the impression that there are very few people with actual project experience (which is even more evidence of the advantage of experience), and they are much less likely to make it through the interview than programmers with around 3 years of experience. Let me analyze the common problems of this group of people.

     

Problem 1: You have so little business project experience that your resume won’t even pass the screening process and you won’t get an interview.

     

Question 2: Even if some project teams are eager to hire people, so that some junior programmers get interviews, but in the interview process, they can not prove that they have actually used the relevant skills in the project, these only theoretical experience is very unlikely to pass the interview.

    

Problem # 3: Most entry-level programmers can prepare and know algorithms, logic problems, and simple phrases, but fail to demonstrate that they have the skills necessary to do the job.

    

As a result of the above problems, 80% of the programmers I interviewed had more than 3 years of experience. In fact, the interview requirements are not difficult, as long as they can work, but most of the junior programmers just can’t prove it.

    

In view of the above problems, the suggestions are: study and accumulation.


1. Set a clear goal for yourself to change as little as possible in the first three years of your career, or you’ll have to start from scratch.

    

2. For example, the target direction is Java back-end development, so in the work, don’t muddle along, learn more from the seniors in the group, master more knowledge points.

    

3. Be sure to focus on the theme of “performance optimization”, such as memory performance optimization, database optimization, and master more optimization skills that can be used in the project.

    

4. Even if you don’t plan to interview for a while, you still need to review questions while you work. After all, everyone will take detours in the learning process, to use a popular phrase is trial and error, through continuous interviews, can constantly modify their learning direction.


What are the most recent corporate standards for Java Core, Java Web, and databases

     

These are also the minimum criteria for getting a job. Java Core has the following criteria:


In terms of

Criteria for qualified programmers

A collection of

1 For linear table objects (such as Array, LinketList, ArrayList, Stack, Set, etc.) and key-value pair objects (such as HashMap, etc.), basic traversal, add, delete, and change operations are performed

2 will use iterators, generics, comparators, and other common objects

Exception handling

1 will use the try… The catch… Finally the framework

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

IO

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

JDBC

Basic link, add, delete, change and check preprocessing batch operation

multithreading

1 will create multiple threads, and can use notify, wait,sleep and other keywords, so that multiple threads coordinated to complete the task in the project.

2 can use synchronized and other common keywords, in the case of multi-threaded reading and writing will not conflict problems.

3. Use thread pools.

Object orientation and design patterns

Be able to understand basic concepts and syntax such as inheritance, abstract classes and interfaces

Garbage collection and memory performance management

Know the basic concepts, know the basic syntax of system.gc, etc., know the basic operation of configuring memory through Java — XMS etc.

 

The requirements for the Java Web are as follows:


In terms of

Criteria for qualified programmers

JSP+Servlet

+JavaBean

(Simple MVC framework)

1. I can program with the framework of JSP+Servlet+JavaBean, and know the basic MVC process.

Better understand some simple JS,DIV,CSS and other front-end technology.

Know how to publish Web applications to the server.

Struts aspects

You don’t need to know because you don’t use it much

In the Spring

Knowledge of IOC and AOP concepts and how to use these technologies.

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

It is a good idea to understand some of the components of Spring MVC.

Hibernate

(or ORM)

1 can master only one ORM technology.

Hibernate can be used to do some basic operations such as add, delete, change and check.

Be familiar with basic components such as SesionFactory, Criteria, and Session.

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

4. Know the concept of caching, preferably performance tuning skills.

Spring and Hibernate integration

There is not much difference between a qualified programmer and an advanced programmer, but the ability to integrate and configure connection pooling.

    

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

    

First: for a kind of database (such as MYSQL,Oracle,SQL Server, etc.), I can do basic add, delete, change and check operations, use some basic functions, and write tools such as stored procedure trigger index.

    

Second: know some basic concepts that can be useful for project development, such as patterns, indexes, partitions, etc.

    

Third: can write some relatively complex SQL statements, such as join, band query, nested query and so on.

    

I know that most junior programmers know this, but can’t prove it effectively in a project. And, as I said before, this is just the bare minimum, so the following tips will greatly improve your interview chances.


Use your resume to prove that you have used relevant knowledge in projects, and try to find opportunities to talk about it in the interview

    

Here are some tips to consider when preparing your resume.


1. Fine-tune your resume for each job, including keywords that appear in the company’s job description.

    

2. Don’t include irrelevant work experience. Any experience should be more relevant to the job requirements of the target company. For example, the position of the target company is Java back-end development.

    

3. Write less about the business because the company doesn’t care.

    

4. This is the key, must be combined with the actual business, write that you have relevant skills experience.

    

For example, the target company requires database optimization experience, then you can write, in xx project, there are requirements for SQL execution time, so in the order management module, I used XX technology to achieve SQL optimization effect.

    

There should be as many similar words as possible, and the duration of the project should be as long as possible. So when the screener and the interviewer see your resume, can not help but believe that you first have practical project experience, second in practical experience with relevant technology.

    

During the interview, the technical interviewer will definitely ask you about the skills listed in the job description, so you need to be prepared. If you can articulate how you used the technology on your project during the interview, you will be much more persuasive than if you simply said, “You know,” and some interviewers will ask fewer or no questions after hearing your story.

 

Prepare more evidence that you are better than others

    

This evidence can be included in your resume, but you should give it in the interview.

    

In interviews, I often have to pick three out of ten people who fit the bill. I said we’d take all 10, but no, the budget isn’t enough. Thus, if a candidate demonstrates superior skills, that person must be a priority on equal terms.

    

Here are some highlights to prepare for in Java Core.


Technical aspects

Highlights that can be said

Java collection objects

1. Be able to select appropriate collection objects according to the needs of the project, for example, know the difference between ArrayList and LinkedList, and be able to select them reasonably.

2. WeakHashMap can be selected in appropriate occasions.

The Java Development Kit (JDK) implementation code for collections can be appropriately described.

Exception handling

You can write code to release resources in finally clauses

JDBC aspects

SQL injection can be prevented through PreparedStatement preprocessing methods.

2 Can improve operation performance through batch processing.

Can illustrate the implications of transaction isolation levels through examples

Multithreading

1 uses thread pools

It can correctly handle data consistency in multithreaded 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 table

When building a table, you need to consider whether to use three paradigms or anti-paradigms according to the data of the project.

SQL tuning

1 You can view logs to see which SQL files need to be tuned.

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

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

The transaction

Talk about how transactions are managed in JDBC or Spring.

Talk about the benefits and practices of declarative transactions in Spring.

3 Illustrates the use of transaction isolation levels and transaction propagation mechanisms.

Distributed database

The database can be split horizontally or vertically to reduce the cost of accessing a single table.

2 Can assume the excessive access requests to the database through clusters.

No (and Hadoop

These two are highlights in their own right, and if you’ve used them, you can illustrate them with projects.

    

The following is a list of highlights that can be prepared on the Java Web side.


Technical aspects

Highlights that can be said

Spring MVC architecture

Talk about how Spring’s IOC and AOP optimize the project structure.

Talk about how Spring components such as interceptors can help your project.

ORM, such as Hibernte or Mybatis

How to optimize the performance of accessing and manipulating databases when using this ORM technology.

Integration of Spring and Mybatis etc

You can talk about the details of the integrated framework and give examples of how well the integrated framework ADAPTS to changing requirements.

    

You will also be able to demonstrate your Linux skills and experience with project management software. Please note here, always find the right opportunity to “by the way”, if there is no opportunity to rather not say, not to be prepared to directly say. Otherwise, you may get negative comments such as “unclear presentation” or “disorganized narrative.”


6. Summary

    

This article covers a wide range of points, so here’s a summary of the points mentioned in this article.

    

1. College students gain experience in business projects as early as possible.

    

2. Find out the direction of development after work, and then adjust their learning route through continuous interviews.

    

3. The project description in your resume should try to match the company’s needs, and you should try to demonstrate this in the interview.

    

4. Accumulate advantages over others.