Social recruiters will most likely be asked to talk about a project that impressed them during an interview. I have always thought that this question is not skilled, but until recently I frequently interviewed some candidates, I found that everyone’s answer is quite different. Some of them are really bad experiences, and some of them are really good cases, but they don’t get the point.
For this question, the interviewer is trying to get a feel for how well you solve problems, and to make a preliminary assessment of your knowledge and abilities. So I think that’s a good question, and that’s a plus.
How to articulate your project experience logically and structurally?
Step one, pick the right case
1. It’s a real case.
This case must be made by oneself, if not, then the follow-up when asked for details once revealed, it is finished.
2. Make the case as small as possible.
Smaller, more detailed descriptions, and more focused on a specific point, preventing the interviewer from diverging to unfamiliar points. For example: optimizing the first screen load time makes the performance optimization smaller, more specific, and safer.
- As far as possible, the case has quantitative indicators
For example, performance improves by 20%, development quality improves by 20%.
- Choose complicated cases
The interviews focus on data structures, underlying knowledge, algorithms, and engineering skills. Therefore, a complex case, can include many knowledge points, will have a very brilliant effect. For example, when you refactor a module, you integrate knowledge of engineering capabilities/design patterns/data structures.
Step two, structured expression
After selecting a case, how do you articulate it to the interviewer?
The rules we follow are SCQA rules. In short, context, problem, solution, and result.
First, we should make clear the background of the case
It could be demand, it could be optimization, it could be technical debt to pay off. Be sure to make the description as simple as possible so that the interviewer can understand it and assess the difficulties in the background in the shortest possible time. Try it out with a colleague and see if you can get some results.
The second is to describe the difficulties in completing the case.
A complex case may have multiple difficulties, and highlight three or four.
Third, what have you done to solve these difficulties?
This is a very critical part of the focus is to highlight their own ideas and ability to solve the problem. Can be aimed at each of the difficulties just said, one by one to elaborate their own solution process, what kind of scheme, why to use such a scheme.
Among them, why to use such a scheme, is the most essential part. In general, the solution trade-off is a performance/scalability/algorithm trade-off. Think about it a little bit.
Fourth, what is the end result.
If there is quantitative data, explain the quantitative data. If it is just a demand and there is no quantitative data, it goes without saying.
Take a chestnut
When MASTER Up changed his job before, he prepared a case, which I think is very effective, from one round to four rounds. (Front end case)
Background:
A requirement to show the operation of a logical expression in series and parallel using a wireframing diagram.
Such as logical expression (a | | b) & c, transformation effect is as follows:
Difficult points:
There are two difficulties with this approach
The first is conversion of logical expressions
Second, wireframe drawing.
For the wireframing, I chose to use Ali’s open source framework G6
Using the framework, I need to convert the expression into two arrays, one for which boxes are present and where they are located, and one for the connection between the boxes.
The wireframing is clearly a tree, and in order to reduce the complexity of the tree, by negotiating with the product, the renderings are converted to
So the hard part of the whole scheme is how to convert a string of logical expressions into a binary tree.
Solution:
In fact, the operation of a logical expression is naturally a binary tree, because we need to take two conditions at a time and perform an operation.
If a and b is | | operation, then a, b is child nodes, res is the parent node. If a and b are ampersand, then A is a child of b and b is a child of RES. And when you string it together, it’s a binary tree built from the bottom up.
So, once we have the order of operations for expressions, it’s easy to build this tree.
Logical expressions have operational priorities. Therefore, we use the algorithm of converting middle – order expressions to post-order expressions to solve the priority problem. (in order and subsequent operation expression algorithm baidu can, the key is to use the stack.)
That way, the overall plan is clear
- Converts an in-order expression to a post-order expression. The result of the transformation is a stack.
- Convert the stack into a binary tree
- The two arrays required to convert the binary tree to G6
After a whole do down, found that the output of the illustration is not very beautiful, there are multiple consecutive | | relations, the position of the child nodes without administrative levels, and may overlap, so when calculating the position of each node, and combined with the breadth of binary tree traversal. The calculated legend is more beautiful.
Results:
The requirement is well completed and the solution to this requirement is shared internally once.
This case is actually a bit more complex in the front end, focusing on data structures and algorithms. In fact, it is not a very important function, but I think this case can well show my thinking and ability to solve problems. Meanwhile, this case is not very common in the front end, so I choose this case. After hearing the case, the interviewer asked for a few details, such as the algorithm for breadth traversal. After that, the questions about data structures and algorithms are basically removed. So the whole interview was easy.
Denver annual essay | 2020 technical way with me The campaign is under way…