This article was created in May 2017
motivation
Recently, I changed a company. From the end of March to the end of April, I met nearly 20 companies. I am a person who likes to sum up experience. After every interview, ON the way back, I will carefully review which questions I could have answered better today, or which questions I have not met before, or which knowledge points I asked again today, etc. By mid-April, I was thinking of writing an interview, mainly to help others in my situation and to document the month-long interview process.
Personal introduction
First of all, I would like to introduce my own conditions during the interview. I will divide my situation into advantages and disadvantages, which may be more helpful for you to compare your own situation.
Disadvantage:
- After graduation in July 2015, I began to work in Shanghai. The interview was from March to April, 2017. I had more than one year of experience, barely two years of experience. Analysis: more than a year of experience I think is more embarrassing, in a position of no place, many companies prefer to recruit three years of experience, or directly recruit fresh graduates training.
- Graduated from a non 985/211, barely on a college. Analysis: This has a relatively small impact, because after working experience, the company’s requirements on the school are not so high, as long as the undergraduate is basically no problem, but there are still some diao MAO companies only 985/211.
- Before a company is the traditional telecom industry, join the project team, the project has been launched for some time, our mission is to have a demand for development, there are bugs in optimizing, other time to chat to each work, work more than a year, just like in the pension with programming for 5 minutes, a word is bullshit for 2 hours, a serious shortage of project experience, haven’t seen it is difficult to development needs. Analysis: This one hurts the most. Companies want experienced people to see what you’ve done, and you tell the interviewer that my requirements are rubbish.
Advantage:
- I have won many awards in university, such as school-level outstanding student, city-level outstanding graduate and provincial ACM second prize. Analysis: Honors from the university of a work experience, the company will not necessarily value, but may be a subtle influence on the interviewer, especially the ACM awards, I met some interviewers are made of ACM, have common topics to chat is always more easy, but also should pay attention to not too much space to write this column, only as an ornament with, I put it at the bottom of my resume, briefly listing my top awards.
- Good communication skills. Analysis: This ability won’t be critical, but it can be a plus.
- Strong learning ability and logical thinking ability. Experience means what level you are at now, while learning ability means what level you can reach in the future.
The learning process
If you look at my strengths and weaknesses, you’ll see that my strengths are nothing compared to my weaknesses. I myself have a clear understanding of this, so after the Chinese New Year, I began to seize the spare time to study. The learning process is as follows:
1. Look at the interview questions
Normal people will certainly read the interview questions in the first step, AND I am no exception. In the process of reading, I found some articles written well, which are of great help to me and worth recommending, as follows:
- A lot of basic things, suggested to see first.
- Summary of interview questions for Java backend development by major companies
- Interview experience and summary — BAT, netease, Mushroom Street
- Here are some things you should prepare for a Java interview
2. Learn more
In the process of reading the interview questions, you will come across some knowledge that you have not been exposed to or have not studied in depth before, such as the most frequently asked internal implementation of HashMap, which prompts you to start looking at the JDK source code or learn something new. Look at the source code is a very important step, it is difficult to start, but will let you benefit a lot, look at the source code process if you can not understand the place, you can baidu look at the understanding of others. In the process of learning source code, I have seen several people’s articles about source code written very well, as follows:
- The Changjie in May
- Zhangshixi’s Core Java series
3. Familiarize yourself with the project
Figure out the feature you’ve developed the most in your career, and get a thorough understanding of the process and what’s involved. (Here’s a quick way to find out if you think someone else did a great feature on the project, you can bring it up during the interview.) The project is a must-ask part of the interview, usually based on a function point, so you must have a deep understanding of the function, there is no ambiguity. If you have the time, can also understand the knowledge points involved in the best.
4. Write a test
There are many companies have written tests, if you have not prepared, it is easy to make mistakes in all kinds of small places, it is suggested to go to some pen test sites to do more questions, I use niuke network.
5. Record your learning
Writing down the time and content of your study every day can make you more motivated to learn. Learning is a boring process, so you must keep yourself motivated all the time.
Send in your resume and schedule an interview
1. Which websites do you invest in?
Pull hook net, BOSS direct hire, hunting hire net.
2. Should I make an overseas investment?
There are two types of application.
- No social recruitment interview experience: it is suggested to take the way of sea investment, as long as the job requirements match with their own can be invested, accumulated interview experience. This link can add two resume sites: Zhilian and 51job.com.
- You think your social interview experience is enough: Apply for positions that match and the company is satisfied with. Company evaluation can go to the accurate network, Baidu, Zhihu and other queries.
3. How many interviews is a good number for a day?
Ideally, two interviews will take place around 10 a.m. and 2 p.m. It is recommended to put the ideal company in the afternoon, because the afternoon time is more sufficient, can let the company more fully understand you. When I started, it was always bad in the morning and good in the afternoon.
4. Don’t always get anything from your resume?
I was surprised that the CV screening have so hard for you, this is probably my resume highlight really few, moreover the HR many people are not inline, so they look at you is the most direct express company and you graduate school, if you are not out of the cow force of the company/school, may encounter the situation and I, is to cast more.
5. Should I resign naked?
I started by working and then taking time off or taking time off to interview. Later, there were more and more interview opportunities, I asked for leave too often, I was embarrassed, and I had enough confidence, at this time I chose to resign naked. Another reason to quit naked is that during the interview process, you will find that some companies are very demanding, and if your resignation process is too long, you may miss the company.
6. Precautions
- Plan your route and time the day before the interview so you don’t want to be late.
- Pack a backpack, resume, power bank, tissue, umbrella.
The interview process
1. Common questions in written test?
There are basic links to interview questions given above the common questions on the written test. Let me just mention a few points:
- It is common to look at group by, inner join, and outer join when writing SQL.
- Handwritten code: handwritten code in general singleton, sorting, threads, consumer producers. I suggest that the sorting algorithm in addition to bubble sort, it is best to write a kind of other sort code by hand. Think about it: if the average interviewer writes bubble sort, and you write quicksort/heap sort, you’ll make a good impression.
2. Interview process?
- Let you introduce yourself
- Ask about Java basics
- Ask the project
- Situational problems, such as: one of your functions in the production environment, server pressure suddenly increased, how to troubleshoot.
- What do you want to ask the interviewer
3. What are common interview questions?
1) Set related questions (required) :
- The underlying implementation of HashMap, LinkedHashMap, ConcurrentHashMap, ArrayList, LinkedList.
- Difference between HashMap and Hashtable.
- ArrayList, LinkedList, Vector.
- The difference between HashMap and ConcurrentHashMap.
- The difference between HashMap and LinkedHashMap.
- Is HashMap thread safe?
- How ConcurrentHashMap is thread safe.
2) Multi-threaded concurrency related questions (must ask) :
- Three ways to create a thread.
- What is thread safety?
- The difference between Runnable and Callable interfaces.
- The difference between wait and sleep methods.
- Synchronized, Lock, ReentrantLock, ReadWriteLock.
- This section describes the CAS(Lockless technology).
- The role and mechanism of the volatile keyword.
- What ThreadLocal is.
- Four ways to create a thread pool.
- The inner workings of ThreadPoolExecutor.
- How to ensure thread safety in distributed environment.
3) JVM-related issues:
- Introduce garbage collection mechanisms (when, to what, and what).
- Garbage collection algorithms, their characteristics.
- The process of class loading.
- Parental delegation model.
- What class loaders are available.
- Can you write a class called java.lang.string?
4) Design pattern-related questions (required) :
- Ask what design patterns you are familiar with
- Then ask you specific implementation and extension questions about a design pattern.
5) Database related questions, for Mysql (required) :
- Give questions to write SQL by hand.
- Have experience in SQL optimization.
- Mysql index data structure.
- SQL how to optimize.
- The execution order of SQL keywords.
- What kind of indexes are there?
- When to (or not) build an index.
- Explain which columns are included.
6) Framework-related issues:
- The difference between Hibernate and Mybatis
- Differences between Spring MVC and Struts2.
- What design patterns Spring uses.
- What AOP is primarily used to do in Spring.
- The way Spring injects beans.
- What is IOC and what is dependency injection?
- Is Spring singleton or multi-instance? How to modify?
- Spring transaction isolation level and propagation.
- Mybatis/Hibernate caching mechanism
- # and $in Mybatis mapper file.
- ResultType and resultMap in the Mapper file of Mybatis.
7) Other problems:
- Introduces downstacks and queues.
- IO and NIO.
- The difference between interfaces and abstract classes.
- Int and Integer auto unpacking/boxing related issues.
- Constant pool-related issues.
- == and equals.
- The difference between overloading and overwriting.
- StringBuilder and StringBuffer.
- Are static variables, instance variables, local variables thread safe? Why?
- Which to execute when try, catch, and finally all have return statements?
- B trees, binary trees.
- What are the four letters of Ajax?
- What is the full name of XML?
- Implementation of distributed lock.
- Distributed Session storage solution.
- Common Linux commands.
Some experience
- Invest in some ordinary companies first, and then invest in ideal companies.
- Don’t bring up unfamiliar technology.
- Don’t go to a company that offers 20% off for a six-month internship unless you have no other options.
- Small companies like to pressure you on your salary.
- Don’t go to job fairs. They’re a waste of time.
- Treat the interview as a technical exchange and don’t worry too much about getting hired.
- The company generally decides whether to hire after the interview, and lets you go back and wait for the news. This situation is generally not possible, no matter how good you think the face is.
- Try to avoid phone interviews.
- During interview days, keep learning every day, whether it’s learning something new or reviewing something old.
- Once you have an offer, ask yourself if you are 100% satisfied with the company. If not, move on.
- You can judge the company by the interviewer.
- A lot of resumes are screened out, but they are still the main source of interviews.
- The ideal company can be more than a few times, I have several times is the first time to cast screening, more than a few times on the experience.
- Ask for information that you have researched deeply, seize opportunities to present yourself well, and don’t let them go.