In November 2019, I sent out my tripartite agreement, basically declaring the end of autumn recruitment, and making a simple summary

Basic situation

I am a senior student majoring in Network Engineering in Beijing Forestry University. I had two internship experiences in the summer vacation of freshman and sophomore year. It can be said that I got an ordinary card and received the following offers in the autumn recruitment just concluded:

place The company
Beijing Meituan (advertising background), JINGdong (infrastructure), Shell Zhaofang (infrastructure), iHandy
Shanghai Little Red Book (Infrastructure)
Guangzhou Huya Live (audio and video transmission), netease Games (platform research and development)
shenzhen Tencent wechat (Background development)

It is basically the core business of each company, most of which are SP and SSP. It is worth mentioning that I achieved the complete success of the interview in September, which is basically beyond my expectation. In the process of autumn recruitment, I took a lot of detours and summed up some experience. Here I make a record, hoping to help you.

Autumn recruitment process and salary

Basically, Internet companies here in July began to advance batch, August intensive resume written test, September intensive interview, October out of the formal salary negotiation results. Advance batch often can omit the written test link, so be sure to prepare in advance to seize the opportunity of advance batch.

In terms of salary, the school recruitment of each factory is virtually the same, which can be divided into three grades:

  • Chinese cabbage 25 to 28 w
  • sp 30-36w
  • ssp 40-60w

There is almost no difference between postgraduates and undergraduates in Dachang, only 1 to 3 w

resume

Resume, is the core of recruitment, the role of resume mainly has two points:

  1. Limit the range of questions the interviewer can ask
  2. Show that you have something that takes a long time to build and is difficult to show in an interview

Enclosed here is my resume for your reference:

resume

First say the first, a lot of people have a mistake on the resume, that is, resume is used to show their tools as far as possible, so what project to write, what technology used to dare to write, actually wrong!!!! Repeat it after me three times, and remember: The resume is a tool that limits the range of questions an interviewer can ask! The resume is a tool that limits the range of questions an interviewer can ask! The resume is a tool that limits the range of questions an interviewer can ask!

This problem is to find an internship before I fall for sophomores understood, when I have some partial full stack, but like any technology go, then resume you want to put himself used to write down all the projects, technology did cause as a result, the interview tube play space is too big, so many things, most of you just use the things you want to use, Many in-depth usage is not understood easily questioned. So, any technology or project that appears on your resume, make sure you know it.

The second reason is that I think the resume is more and more important for the current autumn recruitment. As we all know, the question bank of interview questions is limited. With the increasing popularity of websites like Niuke among students, it is difficult to distinguish the odd person who reciting questions from the real strong person in the interview of examination nature. The interviewer will notice this too, and it’s especially important to have something on your resume. For me, GIthub started to synchronize my achievements in my freshman year. My Zhihu column was opened in my sophomore year.

The quality of the content may be mediocre, and I sometimes refer to my Git repository as a trash can, but at least it’s not something you can raid for a few months, and it’s a good indicator of what you’re focusing on every year, and it doesn’t seem like you’ve raided your capabilities.

Things to show on your resume, and:

  1. School, and school experience including grades and honors
  2. competition
  3. internship
  4. project
  5. Blogs and making

There can be different preparation routes for different situations, such as schools in Beijing, Guangzhou and Shenzhen can be prepared for internship, school cattle can be prepared for competition, with big men can prepare projects…

Also pay attention to typesetting and other issues, strive to limit to a page, the essence of the above, let the interviewer ask the eyes of a bright.

Github.com/billryan/re…

Here is the template I used for your reference

My resume is a demonstration of the above:

  1. In the part of experience, I emphasized my internship experience. Although it was not in a big factory, I started early and could see the growth, so it was a bonus point and was placed in the first place. Secondly, I have rich project experience, which can be divided into personal toys and simple commercial projects. The personal toys mainly want to show my interest in technology, while the commercial projects want to show my way of doing things, and the technology stack can correspond with my personal skills. The rest is my zhihu column, although the quality of the article may not be very high, but I started early, so it is a bonus, also put on the resume.

  2. The basic knowledge and highlights are mainly reflected in my personal skills:

    • In terms of programming languages, I emphasized that I was good at Python, a language with vm, and c++, a language without vm, and cited my project experience as proof that mixed c++ /Python development was one of my highlights

    • On the networking side, I emphasized my understanding of the HTTP TCP SSL protocol and testified with network libraries and Web projects

    • Operating systems are mainly concurrent programming. Here, I use coroutines as a highlight to testify in zhihu’s article

    • Database and cache, which highlights my understanding of redis source code

The interview

Interview is a routine job. A good interview state should make you feel that every interview is going through a fixed process. There are generally three rounds of technical interview in China, which can be summarized as follows:

  1. The first round is the basic knowledge section, which usually asks you to write questions and answer some important basic information in school textbooks

  2. The second round of interviews, which will focus on your project and the depth of your basic knowledge, requires some kind of routine to deal with this

  3. The third round of interview is often to see your attitude and cognitive level. You’ll be quizzed on some system design scenarios.

In terms of interview skills, I generally fall into the following categories:

  1. The feeling of interview, including process, technique and status

  2. The shredding algorithm is listed separately because it’s more important

  3. Basic knowledge is mainly computer science students’ core competence (computer networks, operating systems, databases….)

  4. Project experience proficient in Internet technology stack, understanding of business workflow, git and other team writing methods…

  5. Bright spot!!!!!!!!!!

Here to talk about two things, face feeling and highlights, other content limited space, will be opened separately.

Face sense, this is very metaphysical, mainly including your self-introduction, what do you want the interviewer to ask, how to get the way can only rely on many sides. I failed in this respect. I didn’t meet you before, so I voted botoutiao in advance. I voted Boali in mid-August. I had to go home for two weeks. It was not until the end of August that I had a shell house search, when the interviewer squeezed all my things dry, inspiring me, I found that I could do a lot of things, confidence immediately came, and I never failed the interview after that. So many companies in advance, find a sense of enlightenment, stability.

For example, you can delve into programming without locking. When the interviewer talks to you about network programming, you can emphasize that you know how to program without locking, write a queue without locking on the spot, and discuss the pros and cons

So here’s what I’ve prepared for you,

One is my self-introduction:

My name is XX, and I majored in Network Engineering in Beijing Forestry University. I had two internships. The other time was in the summer vacation of my sophomore year, when I was in charge of the development of the front and back end of the community OPS platform in Zhihu. My skill tree is about this. First of all, I have mastered the whole Web development process, represented by Python, Vue and Golang. It is worth mentioning that I have some experience in Python C/C++ mixed development compared to my competitors. My quant trading framework makes heavy use of this technique. Secondly, I also know some coroutines, have some practice and have written many articles on Zhihu about this. On the other hand, I am good at C++ network programming, which the school attaches great importance to and I am also interested in. The main output is to realize a C++ Unix network library.

The purpose of self-introduction is mainly to guide the interviewer to see your resume, because before the interview the general interviewer has not seen your resume, some look too hasty will jump out of the limits of your resume ask all over the sky, so the basic cool. So through your introduction, guide the interviewer to focus on your key points and ask questions about you.

Another highlight is that the interviewer only has so many questions and knows the correct answers. How do you get rid of the candidate? Rely on is the bright spot, I prepared better two bright spots:

  1. So I can talk about the principle of SSL in particular details, from the protocol layer where SSL is located, to the use and reasons of each encryption method, and what attack means to defend against. Most interviewers will be satisfied with the basic answer, plus the fact that I’ve done it.

  2. Principle of coroutines coroutines concurrent Reactor model is a hot problem, background and development of basic easily lead to this aspect, I resume the network library, and corresponding articles on zhihu easily and this topic, from coroutines can solve the problem of what, how and concurrency model match To the common language library coroutines implementation scheme, A set of answers down, the basic SP booked.

In fact, I also prepared several highlights for my project, so in the later stage, my interview basically consisted of introducing myself, writing algorithm questions, answering basic knowledge, guiding my highlights in the process of answering, and then talking about the highlights of the project. The interview was over, and the offer was very boring.

About basic knowledge learning

The study of basic knowledge, have a general idea, read the book namely thin, do, read thick, a lot of people come up to recommend classic tomes, actually violate human nature. Even if you know it’s good, it’s hard to read without positive feedback. So MY personal suggestion is, first roughly understand the content of this knowledge, and then start to do, in the process of doing, there is thinking, and then look back at the classic tome, there will be a sense of enlightenment, with the idea of opening up the other content to see, slowly the tome is not so difficult to chew.

There are different learning methods for different basic knowledge. Here are a few examples:

  • network

Network here the core to pay attention to protocol and process, protocol part is this protocol provides what function, such as HTTP protocol, HTTP protocol provides what function, how to pass parameters, save login status how to do…. The process is the practice of some common functions, such as web page request, packet routing, etc., using multiple protocols to layer in different steps.

Network programming is concerned with socket parameters and various concurrency models

[1]: developer.mozilla.org/zh-CN/docs/… “HTTP MDN document” [2] : www.bilibili.com/video/av341… “Computer Network Course for Hu University Teachers” [3]: item.jd.com/11163782.ht… “Linux multi-threaded server programming using muduo C++ network library “[4]: juejin.cn/book/684473… “Digging for Gold – An in-depth understanding of TCP: From Principle to Action”

  • A programming language

It depends on your technology stack. It is recommended that you choose one with virtual machine language and one without. Focus on the following aspects:

  1. The syntax of a programming language
  2. Programming language mechanisms, such as implementation of virtual machine mechanisms in virtual machine languages (garbage collection, memory allocation, function coroutine stack), non-virtual machine languages (reflection, resource management, compile-time runtime work, etc.)
  3. Programming language Theory * If you were to implement a DSL, what syntax would you use, how would you understand the exception handling, types and other mechanisms of the programming language

The resources here: [1] : www.liaoxuefeng.com/wiki/101695… “Liao Xuefeng Python tutorial” [2] : zh.cppreference.com/w/cpp “Cpp renfence [3] :” www.ituring.com.cn/book/1564 “smooth Python” [4]. Book.douban.com/subject/311… “Python Source Code Anatomy”

  • The operating system

    I’m not very good at it, so just look at the textbook and try to understand it

    • Memory management pays attention to the idea of layering
    • Process scheduling LRU, LFU and other algorithm ideas in practice * CFS is a plus
    • Concurrent programming understands the concept of resources, the resources and advantages of process thread coroutines
    • IO operations (interrupts, various socket parameters, etc.)
    • Interprocess communication (note the pros and cons)
    • Compile link load (steps, call convention, etc.) and other content can be paid attention to here is and the previous learning contains virtual machine language design ideas corresponding

Here’s the resources: [1] : book.douban.com/subject/139… “Modern operating systems [2] :” book.douban.com/subject/365… “Self-cultivation of the Programmer.”

  • The database

Mysql mainly understands the design and use of locking, indexing, logging, and caching mechanisms

Redis read the source code, the code quality is high readable, understand common data structures and REACTOR concurrent model

Resources: [1] : book.douban.com/subject/247… “MySQL technology insider” [2] : time.geekbang.org/column/intr… [3]: juejin.cn/book/684473… “Digging-redis Deep Adventure: Core Principles and Application practice” [4]: juejin.cn/book/684473… “Nuggets – How MySQL Works: Understanding MySQL from the Root”

  • Web development

Learn a Web front-end and web back-end framework to understand the practice and use of the HTTP protocol

Resources: [1] : m.ituring.com.cn/book/2463 “Flask Web development: based on the Python Web application development of actual combat” [2] : vuejs.org/ “vue official document” [3]. Juejin. Cn/book / 684473… “Nuggets – VUE Component Introduction”

Question about the brush

I think the factory is not much want to test brush questions, the main method is relatively low cost, as long as your resume bright enough, brush questions will not be too difficult for you, but the preparation or preparation, at least not into a short board. Here it is suggested that Leetcode brush 100 questions and refer to the offer. The knowledge points can be referred to the examination outline of noIP in high school.

[1]: renrendoc.com/p-14880081…. “The noip review data Li Siyang “[2] : www.nowcoder.com/courses/cov… “Niuke.com direct bat algorithm class must see!!!!!!”

The tail

Autumn recruitment process, can be very difficult, non-stop to wait for no feedback, such as the resume written test, written test, such as the interview, the interview and so on the next side, are finished to rank, ranking, such as the letter of intent, such as the letter of intent and other formal offer…. There is no feedback in the basic process. However, good things come and go. In the autumn recruitment process, you received recognition from various companies and got to know a lot of excellent and motivated enthusiastic friends. These positive feedback made you see your bright future and gained more pleasure than anything else.