How to prepare an “engineering teacher” resume? How to demonstrate coding skills in an interview? Face to Face Big factory interview case analysis?
In learning Java or want to learn Java partners can join us, our learning exchange QQ group: 715653481 group has related learning materials, free!
How to prepare a resume of “engineering teacher”?
Customize the resume
My own experience is that the specific requirements of each job are different, so rather than having a one-size-fits-all resume for every job, it’s best to tailor your resume to the specific job at the specific company. This is not to make up stories, but to highlight experiences and skills that are a good match for the job. Applying for the role of a development or test engineer is completely different from applying for the role of a Team Leader or technical manager. For example, if I am applying for a management position, I will highlight that I have built a technical team of 10 people from 0, how many senior Java development engineers, how many database engineers, etc., in my resume, it will be more convincing. Similarly, the needs of different technical jobs are also different. The first goal of anyone writing a resume is to survive the screening process. Because often a job will receive a large number of resumes, if the resume is not clearly written to make HR feel very suitable, it is likely to be rejected at the beginning, there is no chance to interview.
Highlight the bright spot
I’ve seen a lot of resumes that say you know Java, JavaScript, Python, maybe a dozen lines at a time. There’s nothing wrong with this, but it’s best to highlight your core skills, such as, “I have 8 years of Java development experience and am good at Java concurrency or Java security.” However, it should be noted that when we highlight the highlights, we should not be too grandiose, because sometimes when we find a resume has too many words such as “proficient” and “deep mastery”, the first feeling is doubt, rather than think this person is very good, so we should properly grasp the degree, facts are the basis. In addition, in terms of project experience, I suggest sorting them in chronological order from near to far. It is better to reflect the matching degree of target positions, highlight the difficulty and value of your own projects, and your role in the project. This will further help the interviewer judge the candidate’s ability and position on the team.
Speak with facts and figures
For engineers, quantitative is more important than qualitative, so make sure the interviewer and HR understand that your experiences or highlights are measurable facts. For example, it’s helpful to emphasize “I’m a great fast learner,” but it’s more likely to say “I learned Clojure and built a matchmaking system in two weeks.” Many people will be vague, such as “I significantly improved system performance,” but as the interviewer, I may not know what “significantly” means. So it’s best to write something specific like “I increased throughput from 2000 QPS to 8000 QPS on a quad core 8G configuration, the average request was 100K bytes, etc.”, which is very convincing.
Publicity is a plus
Be a contributor to an open source project, have a good blog, offer a lot of adopted PR on Github, technical papers published, share at QCon or ArchSummit, or books written, etc. Publicly visible results like these are far more effective than self-evaluation.
Resume form
In the form, it is best to refer to some good resume, learn from their template. It should be noted that Chinese and foreigners have different habits. If you want to apply for a European or American company, you’d better check the English resume template on Google rather than translate the Chinese resume directly into English.
Resume length
The best limit to 1-2 pages, neither too thin, nor too long, paragraphs should be clear.
How to demonstrate code ability in the interview
Some interviewees, usually very serious work, but do not have enough time to prepare before the interview, will be at a disadvantage, because many of the algorithms and data structures examined in the interview may not be used in ordinary work, if a little unfamiliar in the interview, will leave a bad impression on the interviewer. So when you’re preparing for a technical interview, it’s important to warm up on the code side and at least get yourself in a good state of understanding of the basics.
In addition, during the interview coding, the interviewer will step by step to investigate whether the interviewer has reached the expected depth of understanding of the algorithm, whether he can communicate well, whether he can understand the main purpose of the interviewer, and whether he can gradually clarify the unclear things through discussion. When it comes to coding, at least demonstrate good coding habits and show the interviewer that you are a person who can think comprehensively and write high-quality code. Including naming and structure, it is best to refer to the industry’s best practices, because these small areas, it is also the embodiment of code quality.
In addition, many times candidates will need to write code on a whiteboard. For example, Java developers mostly use Ides like Eclipse or IDEA for development. As a result, some interviewees are not even sure about the details of main function, which is terrible. So, you have to remember things like the main API structure and so on.
Finally, about the brush question, I think different people have different opinions. I haven’t done it myself, but I have to admit that it can work, so I have no objection to candidates going to sites like LeeCode to learn about it. Of course, it’s the interviewer’s ability to distinguish the best candidates from the best.
Face to Face
First of all, read the job requirements carefully. Because recruitment requirements often reflect the interviewer’s expectations of us and the main scope of the future work. For example, a typical Java backend engineer position might specify that the candidate has knowledge of high concurrency, JVM fundamentals, and familiarity with open source frameworks such as Spring or Netty, so you can prepare for that because you can’t be sure that you’ll remember the basics of a project you worked on a year or two ago.
About the core knowledge of Java interview, the core basic features of the Java language to be very familiar with, master the main knowledge. For example, concurrent containers and base containers, the most common ConcurrentHashMap or HashMap, various concurrent base elements, Synchronized underlying mechanisms, or ReentrantLock, thread pools, etc., are all hot topics in Java interviews. The JVM has a huge range of modules, including Runtime, GC, compiler and so on, including some features called Serviceability. Practically every aspect of it can be questioned by the interviewer, although our entire JVM development team in China has less than a hand. But do not prevent the Java interview will go to test JVM, we still want to have a deep understanding of these points above.
In addition, Java development is increasingly being applied to various open source frameworks, including new forms of software architecture such as microservices, so it is important to be aware of the mainstream open source frameworks. For example, when doing ordinary business development, frameworks like Spring or Mybatis may be a standard for business development, so you need to have an in-depth understanding of some Spring mechanisms, such as Bean life cycle, AOP and other basic concepts. If you’re applying for a big data position, you’ll need to have a deep understanding of open source frameworks like Hadoop and Spark.
It is also very important to pay attention to hot spots, and we technical people should always look up at the world. For example, there was a time when the interview would be asked about hash collisions and so on, because some of the big factories at that time had this kind of attack. For example, in the last two years, a lot of people were asked about scenes like panic buying and seconds killing in the interview. If you don’t pay attention to these topics at all, and don’t think about them until you’re asked about them in the interview, time is limited and you’re nervous. In recent years, microservices seem to have become a required topic, such as whether to use Dubbo or Spring Cloud, you need to have a basic understanding, so as not to be unprepared when asked. In addition to hot topics, specific fields have specific professional knowledge, such as deep learning, recommendation algorithms, etc. Only full preparation can ensure perfect performance in the interview.
4 big factory interview case analysis
Below, I will introduce my own experience as an interviewer, I will investigate what aspects in the interview, which focus. Interviewing styles vary from company to company and team to team. I have heard some friends say that after interviewing in some companies, they feel the experience is very painful. My team will not treat candidates so harshly. Because the purpose of the interview is not to show how good the interviewer is, per se, but to identify qualified candidates. Sometimes I ask questions in interviews, but the goal is not to embarrass the interviewee, but to see what depth he or she has and how he or she reacts when challenged.
The second is to test whether the candidate is “fit”, and the definition of “fit” is very different for different positions.
For example, the JDK team is a very basic and low-level software, and what they care about most is performance, quality, reliability, etc., so it is very important to grasp the underlying and basic technologies. The candidate may be a great business development engineer, but the experience and skills may not be a good fit.
In order to be fair, we will not ask candidates all kinds of questions randomly. Of course, we will improvise, but in general, there is a fixed pattern and rhythm, because only by using the same standard to evaluate different candidates, can we ensure that there is not too much subjective factor in candidates’ judgment.
In addition, the interest and attitude of the interviewer is also very important. If the interviewer is not interested in programming language, he may be very miserable in our work. For our team, our criteria are quite special. We don’t even require Java proficiency, as long as you can say you’re good at a programming language. For example, we have a very senior engineer who does not know Java before joining the Java team and has never used Java at all. However, our team is patient enough to let him give full play to his ability and build his own strengths. Not every team does that, and I don’t think there’s a right or wrong way to do it. It depends on the needs.
We also care a lot about a candidate’s background and are suspicious if he or she changes jobs too often. Because too much job hopping can mean that your patience and attitude are a bit out of order (or it could be something passive), hiring can be expensive. So, here’s a tip: if you have a choice, try not to jump ship too often. Similarly, we also look at how candidates have performed in previous positions, and a basic judgment is that if you have excelled in your previous position, there is a high likelihood that you will continue to do so in the next position.
The specific process
Next, I will introduce some specific processes. Generally speaking, I will not ask serious questions directly at the beginning. I will ask the interviewees to introduce themselves or start with a light topic, such as the flood in Xi Erqi two days ago, so that the interviewees can relax first.
Then, one of the questions I usually ask is, “Tell me about the most challenging project you’ve ever worked on.” For example, the project that was difficult, played a big role in the project, and demonstrated the most ability. From the answer, I can see many aspects. On the one hand, whether the interviewer has a thorough understanding of the project, because if a project has been done for several years, but not a thorough understanding of it, it will reflect certain problems; Another aspect is how well the candidate can articulate what he or she is doing. Because at work, we communicate with each other a lot of scenarios, especially like the JDK, there are quite a few interactive reviews or discussions in the open source community. The ability to articulate a problem determines whether a task can be accomplished. In the introduction process, I will also ask some details of the project selectively, to see the interviewer’s attitude towards details, and to prevent the interviewer from telling stories. I will focus on the interviewer’s attitude to do things, the way of thinking and ability to solve problems, and what methods to take when meeting difficulties, all of which are very valuable for reference.
After that, for the Java engineer position, I will take an examination of some basic knowledge of algorithms and data structures, because a good foundation is half the battle. I usually start with very basic topics, even data structures like linked lists. A look at a simple data structure will tell you how hands-on the candidate is in writing the program. If you ask a difficult topic at the beginning, most of the time, even a very experienced engineer may not write it out, so it will be very awkward, and even lead to the end of the discussion. Then, you will be asked more in-depth questions, such as combining simple data structures to achieve a new function, or further optimizing a conventional algorithm to calculate algorithm complexity, and so on. At this time, through the ideas given by the interviewer, I will see whether he can experience some common ideas and methods, such as space for time these flexible ideas and methods. During the interview, I will also observe whether the communication between the interviewer and me is smooth, accurate and complete, which can also reflect whether we can cooperate well. Therefore, it is recommended that candidates try to communicate positively even when they encounter difficult topics.
Finally, I will not focus on particularly complex algorithms or specific knowledge points in the interview, nor will I choose to brush the questions on the website, in order to avoid hiring interview experts, real business ability may not be related to the ability to brush the questions. Knowledge and ability may be two different things, it is easy to test a person, the key is to accurately judge his ability. As a matter of fact, most of the problems we solve in our work can be solved with a good foundation and a good attitude. After all, we are not solving too difficult scientific problems, nor are we making atomic bombs. These are the aspects I value in the interview.
In learning Java or want to learn Java partners can join us, our learning exchange QQ group: 715653481 group has related learning materials, free!