Summary of Shanghai Huawei OD--JAVA interview

On June 21, 2021, I received the invitation for Huawei od machine test. It was very difficult for Huawei od machine test for the first time. I first contacted this machine test in 2019. Three questions and one question won't work. If I want to pass, it's impossible not to brush the questions on LeetCode in the early stage. Fortunately, there was a full docking of Huawei personnel in this interview. It may be that there is a real shortage of people on OD. They urgently want to recruit people, Then he gave me a copy of the answers to the regular machine test questions. More than 100 questions. I spent about 5 days typing them all. The machine test link is down. There is a 7-day validity period. If you are not fully prepared, don't try to do it. It's not worth the loss without a 6-month ban. For students who want to go to OD, please be sure to master the machine test questions of the following link, which are all high-frequency test questions:

Huawei OD machine test high frequency test questions

The following focuses on the interview questions and points for attention in the 7 rounds of interview:

First turbine test run: June 27, 2021

It shows that the first and second questions of the machine test generally correspond to the medium questions on LeetCode. The third question is the difficult mode, with a total score of 400 points and a pass of 180 points, that is, two medium questions, which are basically passed

Question 1:

Find mode and median
1.Mode refers to the number of times in a group of data. The mode can be multiple
2.Median refers to the number in the middle of a group of data from small to large. If the number of this group of data is odd, the middle is the median. If the number of this group of data is even, divide the sum of the two numbers in the middle by 2, and the result is the median
3.Find the mode of the elements in the integer array and form a new array to find the median of the new array

Enter description:
Enter a one-dimensional integer array. The array size range is 0<N<1000,The value range of each element in the array is 0<E<1000
 Output description:
The median of the new array of output modes

Example 1:
input
10 11 21 19 21 17 21 16 21 18 15
 output
21
 Example 2:
input
2 1 5 4 3 3 9 2 7 4 6 2 15 4 2 4
 output
3
 Example 3:
input
5 1 5 3 5 2 5 5 7 6 7 3 7 11 7 55 7 9 98 9 17 9 15 9 9 1 39
 output
7

Answer (100% pass of test case), [Note: final score = pass rate of test case * total score of this question]

import java.util.*;
public class Main {
    public static void main(String[] args) {
        // input
        Scanner scanner = new Scanner(System.in);
        String input = scanner.nextLine();
        String[] s = input.split(" ");
        int[] nums = new int[s.length];
        for (int i = 0; i < nums.length; i++) {
            nums[i] = Integer.parseInt(s[i]);
        }
        scanner.close();
        // Gets the mode array and median
        Integer[] manyNums = getManyArr(nums);
        int medium = 0;
        int len = manyNums.length;
        if (len % 2 == 0) {
            medium = (manyNums[len / 2 - 1] + manyNums[len / 2]) / 2;
        } else {
            medium = manyNums[len / 2];
        }
        System.out.println(medium);
    }

    private static Integer[] getManyArr(int[] arr) {
        if (arr == null) {
            return new Integer[0];
        }
        // Convert array elements and occurrences to key value
        Map<Integer, Integer> countMap = new HashMap<>();
        for (int i = 0; i < arr.length; i++) {
            int current = arr[i];
            if (countMap.containsKey(current)) {
                Integer count = countMap.get(current);
                countMap.put(current, ++count);
            } else {
                countMap.put(current, 1);
            }
        }
        // Gets the maximum number of occurrences
        int countMax = 0;
        for (int value : countMap.values()) {
            if (value > countMax) {
                countMax = value;
            }
        }
        // Get the mode and sort
        List<Integer> list = new ArrayList<>();
        for (int key : countMap.keySet()) {
            if (countMap.get(key) == countMax) {
                list.add(key);
            }
        }
        list.sort(new Comparator<Integer>() {
            @Override
            public int compare(Integer o1, Integer o2) {
                return o1 - o2;
            }
        });
        Integer[] newArr = new Integer[list.size()];
        return list.toArray(newArr);
    }
}

Question 2: LeetCode question 152

152. Product maximum subarray
 Give you an array of integers nums ,Please find the continuous subarray with the largest product in the array (the subarray contains at least one number) and return the product corresponding to the subarray.

 

Example 1:

input: [2,3,-2,4]
output: 6
 explain: Subarray [2,3] There is a maximum product of 6.
Example 2:

input: [-2,0,-1]
output: 0
 explain: The result cannot be 2, because [-2,-1] Not a subarray.

Use case pass 100% answer:

public class Solution {
    public int maxProduct(int[] nums) {
        int length = nums.length;
        int[] maxF = new int[length];
        int[] minF = new int[length];
        System.arraycopy(nums, 0, maxF, 0, length);
        System.arraycopy(nums, 0, minF, 0, length);
        for (int i = 1; i < length; ++i) {
            maxF[i] = Math.max(maxF[i - 1] * nums[i], Math.max(nums[i], minF[i - 1] * nums[i]));
            minF[i] = Math.min(minF[i - 1] * nums[i], Math.min(nums[i], maxF[i - 1] * nums[i]));
        }
        int ans = maxF[0];
        for (int i = 1; i < length; ++i) {
            ans = Math.max(ans, maxF[i]);
        }
        return ans;
    }
}

Question 3 LeetCode question 65:

Significant numbers (in order) can be divided into the following parts:

A decimal or integer
((optional) one 'e' or 'E' ,Followed by an integer
 Decimals (in order) can be divided into the following parts:

((optional) one symbolic character('+' or '-')
One of the following formats:
At least one digit followed by a dot '.'
At least one digit followed by a dot '.' ,Followed by at least one digit
 One point '.' ,Followed by at least one digit
 Integers (in order) can be divided into the following parts:

((optional) one symbolic character('+' or '-')
At least one digit
 Some significant figures are listed as follows:

["2", "0089", "-0.1", "+3.14", "4.", "-.9", "2e10", "-90E3", "3e+7", "+6e-1", "53.5e93", "-123.456e789"]
Some invalid numbers are listed below:

["abc", "1a", "1e", "e3", "99e2.5", "--6", "-+3", "95a54e53"]
Give you a string s ,If s Is a valid number, please return true . 

 

Example 1:

Input: s = "0"
Output: true
 Example 2:

Input: s = "e"
Output: false
 Example 3:

Input: s = "."
Output: false
 Example 4:

Input: s = ".1"
Output: true

Answer (the reference standard answer to this question is too difficult):

public class Solution {
    public boolean isNumber(String s) {
        Map<State, Map<CharType, State>> transfer = new HashMap<State, Map<CharType, State>>();
        Map<CharType, State> initialMap = new HashMap<CharType, State>() {{
            put(CharType.CHAR_NUMBER, State.STATE_INTEGER);
            put(CharType.CHAR_POINT, State.STATE_POINT_WITHOUT_INT);
            put(CharType.CHAR_SIGN, State.STATE_INT_SIGN);
        }};
        transfer.put(State.STATE_INITIAL, initialMap);
        Map<CharType, State> intSignMap = new HashMap<CharType, State>() {{
            put(CharType.CHAR_NUMBER, State.STATE_INTEGER);
            put(CharType.CHAR_POINT, State.STATE_POINT_WITHOUT_INT);
        }};
        transfer.put(State.STATE_INT_SIGN, intSignMap);
        Map<CharType, State> integerMap = new HashMap<CharType, State>() {{
            put(CharType.CHAR_NUMBER, State.STATE_INTEGER);
            put(CharType.CHAR_EXP, State.STATE_EXP);
            put(CharType.CHAR_POINT, State.STATE_POINT);
        }};
        transfer.put(State.STATE_INTEGER, integerMap);
        Map<CharType, State> pointMap = new HashMap<CharType, State>() {{
            put(CharType.CHAR_NUMBER, State.STATE_FRACTION);
            put(CharType.CHAR_EXP, State.STATE_EXP);
        }};
        transfer.put(State.STATE_POINT, pointMap);
        Map<CharType, State> pointWithoutIntMap = new HashMap<CharType, State>() {{
            put(CharType.CHAR_NUMBER, State.STATE_FRACTION);
        }};
        transfer.put(State.STATE_POINT_WITHOUT_INT, pointWithoutIntMap);
        Map<CharType, State> fractionMap = new HashMap<CharType, State>() {{
            put(CharType.CHAR_NUMBER, State.STATE_FRACTION);
            put(CharType.CHAR_EXP, State.STATE_EXP);
        }};
        transfer.put(State.STATE_FRACTION, fractionMap);
        Map<CharType, State> expMap = new HashMap<CharType, State>() {{
            put(CharType.CHAR_NUMBER, State.STATE_EXP_NUMBER);
            put(CharType.CHAR_SIGN, State.STATE_EXP_SIGN);
        }};
        transfer.put(State.STATE_EXP, expMap);
        Map<CharType, State> expSignMap = new HashMap<CharType, State>() {{
            put(CharType.CHAR_NUMBER, State.STATE_EXP_NUMBER);
        }};
        transfer.put(State.STATE_EXP_SIGN, expSignMap);
        Map<CharType, State> expNumberMap = new HashMap<CharType, State>() {{
            put(CharType.CHAR_NUMBER, State.STATE_EXP_NUMBER);
        }};
        transfer.put(State.STATE_EXP_NUMBER, expNumberMap);

        int length = s.length();
        State state = State.STATE_INITIAL;

        for (int i = 0; i < length; i++) {
            CharType type = toCharType(s.charAt(i));
            if (!transfer.get(state).containsKey(type)) {
                return false;
            } else {
                state = transfer.get(state).get(type);
            }
        }
        return state == State.STATE_INTEGER || state == State.STATE_POINT || state == State.STATE_FRACTION || state == State.STATE_EXP_NUMBER || state == State.STATE_END;
    }

    public CharType toCharType(char ch) {
        if (ch >= '0' && ch <= '9') {
            return CharType.CHAR_NUMBER;
        } else if (ch == 'e' || ch == 'E') {
            return CharType.CHAR_EXP;
        } else if (ch == '.') {
            return CharType.CHAR_POINT;
        } else if (ch == '+' || ch == '-') {
            return CharType.CHAR_SIGN;
        } else {
            return CharType.CHAR_ILLEGAL;
        }
    }

    enum State {
        STATE_INITIAL,
        STATE_INT_SIGN,
        STATE_INTEGER,
        STATE_POINT,
        STATE_POINT_WITHOUT_INT,
        STATE_FRACTION,
        STATE_EXP,
        STATE_EXP_SIGN,
        STATE_EXP_NUMBER,
        STATE_END
    }

    enum CharType {
        CHAR_NUMBER,
        CHAR_EXP,
        CHAR_POINT,
        CHAR_SIGN,
        CHAR_ILLEGAL
    }
}

In the first round of three-way machine test, I should finally get 280. During the test, the first pass is 100%, the second pass is 100%, and the third pass is 40%, so the total score is 280 points. In this way, the first round of machine test will pass.

The second round of personality test will take place on July 2, 2021

Personality test is also a machine test, but don't underestimate the personality test. A colleague of mine has tried to hang it on the personality test. Why do you say so? Personality test is to test whether you are consistent with Huawei's values. Before the test, please have a good understanding of Huawei's enterprise values. Huawei is a digital enterprise, and you will be engaged in digital work, Huawei flatters the striver culture, wolf culture and dedication culture. You will work hard, grow up under heavy pressure, clarify your position in the company, focus on technology when you do technology, and don't be fickle. Wait, there are 102 multiple-choice questions in total, 2 in each group, 51 groups in total. Each group selects one that best suits you and one that doesn't, It's very difficult to finish in 30 minutes. If you make a slight mistake, you won't be able to make it. Anyway, you should be as careful as possible and close your values to the values of Huawei. In this way, you will be eliminated. My palms sweated after I chose, because it was too difficult to make a choice, but I passed in the end.

The first round of the third round of technical interview is on July 7, 2021

After passing the personality test, the real technical interview will be held. The video interview for interview matters will be held. Keep the environment quiet during the interview. Don't make too much noise, which will affect the body feeling of the interview. Dress formally and wear a leading inch shirt. Enter the room 15 minutes before the interview to test voice, camera and computer video interview, So make sure your computer is equipped with a camera, because the interviewer wants to share your computer screen and let you tear an algorithm problem. The interviewer in my first round doesn't talk much. Just come up and write an algorithm problem first. The topics are as follows:

Note: this question is LeetCode Question 3
 Given a string, please find the length of the longest substring that does not contain duplicate characters
 * input: s = "abcabcbb"
 * output: 3
 * explain: Because the longest substring without duplicate characters is "abc",So its length is 3.
 * input: s = "bbbbb"
 * output: 1
 * explain: Because the longest substring without duplicate characters is "b",So its length is 1.
 * input: s = "pwwkew"
 * output: 3
 * explain: Because the longest substring without duplicate characters is"wke",So its length is 3.
 * Please note that your answer must be the length of the substring,"pwke"Is a subsequence, not a substring.
 * input: s = ""
 * output: 0

My answer at that time:

package leetcode;

/**
 * @author:Xu Wenfei
 * @description Longest substring without duplicate characters
 * @create 2021-07-07 13:56
 * @Copyright (C), 2006-2021, Zhongtian holding group
 */

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashSet;
import java.util.Set;

/**
 * Given a string, please find the length of the longest substring that does not contain duplicate characters
 * Enter: s = "abcabcbb"
 * Output: 3
 * Explanation: because the longest substring without repeated characters is "abc", its length is 3.
 * Input: s = "bbbbb"
 * Output: 1
 * Explanation: because the longest substring without repeated characters is "b", its length is 1.
 * Input: s = "pwwkew"
 * Output: 3
 * Explanation: because the longest substring without repeated characters is "wke", its length is 3.
 * Please note that your answer must be the length of the substring, "pwke" is a substring, not a substring.
 * Input: s = ""
 * Output: 0
 */
public class Test_3 {
    public static void main(String[] args) throws IOException {
        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
        String str = bufferedReader.readLine();
        System.out.println(solve(str));
        //System.out.println(solve(new Scanner(System.in).nextLine()));
    }

    static int solve(String str) {
        int ans = 0, n = str.length(), rk = -1;
        Set<Character> occ = new HashSet<>();
        for (int i = 0; i < n; i++) {
            if (i != 0) {
                occ.remove(str.charAt(i - 1));
            }
            while (rk + 1 < n && !occ.contains(str.charAt(rk + 1))) {
                occ.add(str.charAt(rk + 1));
                ++rk;
            }
            ans = Math.max(ans, rk - i + 1);
        }
        return ans;
    }
}

If the manual tearing algorithm has a time limit, it is generally completed in 15 minutes. If it times out, it will be hung up directly

After writing, I began to formally enter the question session. First, I introduced myself

Self introduction is nothing more than your education and work experience. When you say it, you should pay attention to your project description. It is generally recommended to describe the project background, the main problems solved by the project, the main introduction architecture of the project, what technology stack is used in the front and back ends of the project, operation and maintenance distribution, and the scale of personnel of the project Your role in the project (generally speaking, core developer, please add the word core). Finally, describe how you solve the key and difficult technical problems you encounter in the project. I will generally say how to solve the front and rear end cross domain, how to solve the global session of the distributed system, how to control the third-party login, single sign on, and distributed transactions How to ensure transaction consistency, how to ensure cache penetration, breakdown and avalanche, how to design mysql database and table, etc. It's best to have this experience, otherwise it's difficult. It's recommended to go to shangsilicon Valley and dark horse to find the corresponding video.

After I introduce you for about 10 minutes, please add that my personal study and work are like this. Do you have anything else to know? This will make a smooth transition to the document sending link of the interviewer

The first round of technical issues are as follows:

1. Talk about java collections and the differences between them (many, in detail)

2. Tell the difference between get and post requests

3. Be familiar with the design principles and benefits of MVC mode

4. Tell me whether the servlet is thread safe

5. Describe the main components of spring MVC and the request process (6 components, 11 processes, keep in mind)

6. Talk about the optimization principle of mysql, the scenario where the index has failed, and why it has failed

7. Talk about the principle of IOC and AOP of spirng

8. Tell us about the data structure of redis and your usage scenarios in the project

9. Talk about the principle of Sringboot automatic annotation, and its startup principle has been

10. Tell me about the isolation level of the database. What are the concepts of dirty database, unreal reading and non repeatable reading

11. Describe the underlying implementation of hashMap and hashTable and the underlying capacity expansion mechanism

12. Tell me about the difficulties you encountered in the project and how you solved them

Then the interviewer asks you if you have any questions you want to ask him. Please prepare some carefully

The questions you can prepare are as follows:

1.If I enter the company smoothly, what is the arrangement for me?
2.What are the main projects and technology stacks of the company?
3.Is there any knowledge sharing platform in the company?
4.Good face, just ask, what do you think of my performance in this interview? Do we still have a chance to see each other again?

The first interview lasted 70 minutes

The fourth round # technical interview the second round # time: July 12, 2021

This round of technical interview is a middle-aged interviewer. He is very serious. This round is not to tear the code first, or to introduce himself first. His words are as above, so I won't repeat them here. Go directly to the question session

1. Describe the parent delegation principle and class loading mechanism. What are the benefits of parent delegation

2. You said you had done architecture design. What are your inputs and outputs, Let's talk about the principles of UML design (lying slot, where I can do this, I've been confused. I've never done input and output, UML. If I don't know, I'll say I don't know. If I don't know, I'll say I don't know. If I input, I'll say the requirements document, and if I output, I'll say the prd document. UML design simply says I haven't done it, I'll say that my frame composition is a simple png picture)

3. Tell me how your project conducts unit testing, and what are the inputs and outputs? (I was confused again. Maybe this is the difference between small factories and large factories. There are no specifications. I said foolishly that we use postman to test the whole module. There are few unit tests, so we can't use business scenarios.)

4. Describe the underlying implementation of hashMap and the capacity expansion mechanism

5. How to control the quality of the code in your project, as well as the input and output, I said that we used the sonar code quality detection tool for analysis, and then gave tips for the optimized code. Then he asked, what is the interface of the detection tool and what indicators you see? My God, it depends on whether you have actual project experience, Then he said, what are your exception codes and what are the exceptions in your project? Say five, and say the scenarios. I said five array out of bounds exceptions, null pointer exceptions, arithmetic exceptions, class conversion exceptions, class can't find exceptions, etc

6. You just mentioned the sonar detection code, so why not pull a pipeline separately for detection when editing CICD? My reason is that a jenkinsfile integrates multiple steps, mainly to save the amount of common work. Later, he made some suggestions for my K8S cluster and CICD pipeline deployment, and you can accept them with an open mind

7. Well, let's write an algorithm problem. The problem is as follows. It will be completed in 15 minutes

 * * Example 1:
 * * input: "(()"
 * * output: 2
 * * explain: The longest valid bracket substring is "()"
 * * Example 2:
 * * input: ")()())"
 * * output: 4
 * * explain: The longest valid bracket substring is "()()"
 * * Example 3:
 * * input: "(())(()"
 * * output: 6
 * * explain: The longest valid bracket substring is "(())()"

Standard answer:

package test;

/**
 * @author:Xu Wenfei
 * @description
 * @create 2021-07-12 20:01
 * @Copyright (C), 2006-2021, Zhongtian holding group
 */

import java.util.Scanner;
import java.util.Stack;

/**
 * * Example 1:
 * * Input: '()
 * * Output: 2
 * * Explanation: the longest valid bracket substring is "()"
 * * Example 2:
 * * Input: ())
 * * Output: 4
 * * Explanation: the longest valid bracket substring is "() ()"
 * * Example 3:
 * * Input: (())
 * * Output: 6
 * * Explanation: the longest valid bracket substring is "(()) ()"
 * *
 * * class Solution {
 * *     public int longestValidParentheses(String s) {
 * *     }
 * * }
 */
public class OdTest_02 {
    public static void main(String[] args) {
        System.out.println(solve(new Scanner(System.in).nextLine()));
    }

    static int solve(String str) {
        int max = 0;
        if (str == null) {
            return 0;
        }
        Stack<Character> stack = new Stack<>();
        for (int i = 0; i < str.length(); i++) {
            if (str.charAt(i) == '(') {
                stack.push('(');
                continue;
            } else {
                if (stack.isEmpty()) {
                    continue;
                } else {
                    stack.pop();
                    max += 2;
                }
            }
        }
        return max;
    }
}

After writing, let me ask him a few questions. I still asked the questions of the first round of technical interview

In conclusion, this round of interview is obviously a lot of work. The interview lasts for 60 minutes. The focus of this round of interview is to deeply explore the items on your resume and deeply pursue your project questions and algorithm questions. When I wrote it myself, test case 3 was not satisfied. The interviewer prompted a lot and finally wrote the above answers. The main reason is that my algorithm is too delicious and too difficult, But then he said to his face, let you go this round. At this time, I was finally relieved.

The fifth round of interview for HR officer of Huawei HRBP will be held on July 13, 2021

The first and second rounds of technical interviews are also the docking personnel of Huawei. In order to alleviate the atmosphere, an HR interview is held in the form of video interview. In this round of interview, the first is self introduction. Because of the personnel interview, we will focus on the reasons why you left your job. Let's tell the truth. For the first time, the epidemic company closed down, The second time I wanted to go to Huawei, but I didn't have enough education and experience. I had to recruit Huawei OD, and then I licked Huawei wildly. I thought, you know, it's a banner of China's high-tech companies. I learned from the news that Huawei is so powerful that it still has strong performance against the sanctions of the superpower United States with the strength of a company, Wait, anyway, I said in a good direction. When I finished, the interviewer was very happy, and then said that people like me are especially suitable to work in Huawei OD. Finally, he briefly talked about the difference between od and self-employed. On the whole, it is nothing more than that self-employed has stocks, od has no stocks, and the work license is the same as that of Huawei. Working together, the technical atmosphere is good, the growth is fast, the pressure is high, and the salary is not low, Then I asked how much salary I expected. On the whole, the whole process was spent in a relaxed environment. The interview lasted 30 minutes

The sixth round of interview with department technical director will be held on July 14, 2021

The time of this round of interview is very short, because it is necessary to coordinate the interview time of the interviewer. The form is also a video interview. This round of department director interview is the same as the second round of technical interview. The atmosphere is tense. It is also a hand tearing algorithm question. Question 64 of LeetCode is as follows,

package leetcode;

/**
 * @author:Xu Wenfei
 * @description Dynamic programming - sum of minimum paths
 * @create 2021-07-07 10:09
 * @Copyright (C), 2006-2021, Zhongtian holding group
 */

/**
 * Given an m x n grid containing non negative integers, please find a path from the upper left corner to the lower right corner so that the sum of numbers on the path is the smallest.
 * Note: you can only move down or right one step at a time.
 */
public class Test_64 {
    public static void main(String[] args) {
        int[][] arr = new int[][]{
                {1, 0, 0, 0},
                {1, 2, 2, 0},
                {1, 3, 7, 0},
                {0, 3, 0, 0}
        };
        System.out.println(solve(arr));
    }

    static int solve(int[][] arr) {
        if (arr == null || arr.length == 0 || arr[0].length == 0) {
            return 0;
        }
        int rows = arr.length, columns = arr[0].length;
        int[][] dp = new int[rows][columns];
        dp[0][0] = arr[0][0];
        for (int i = 1; i < rows; i++) {
            dp[i][0] = dp[i - 1][0] + arr[i][0];
        }
        for (int j = 1; j < columns; j++) {
            dp[0][j] = dp[0][j - 1] + arr[0][j];
        }
        for (int i = 1; i < rows; i++) {
            for (int j = 1; j < columns; j++) {
                dp[i][j] = Math.min(dp[i - 1][j], dp[i][j - 1]) + arr[i][j];
            }
        }
        return dp[rows - 1][columns - 1];
    }
}

Ask questions after you finish:

1. Introduce the project and do not repeat it

2. Talk about common spring cloud components

3. Let's talk about the automatic configuration principle of soringboot

4. What is the difference, principle and how to open the level-1 and level-2 cache of mybats? Draw the level-1 and level-2 schematic diagram of mybats in your project

5. What are stored in the JVM memory model

6. Let's talk about the whole process of GC

7. Differences among monitor GC, Major GC and Full GC, and common parameters

8. Life cycle of spring bean

9. What is the difference between HashMap and hashTable?

10. Online service CPU is very high. What should I do? What measures can be taken to find the problem

11. Which thread pools are there in JDK? By the way, I talked about the thread pool all over

12. Usage scenarios for asynchronous orchestration of thread pool and parameters of thread pool

13. How does concurrent HashMap achieve thread safety?

Conclusion: the interview with the department head lasted 75 minutes, and the focus was on talking about the project. As for the follow-up common questions, there was no difference between the second round of interview and the second round of interview

The seventh round of comprehensive interview will be held on July 24, 2021

This round of interview lasted about 35 minutes and asked a total of 8 questions

1. What are your input and output and UML design principles for project architecture design?

2. How do you consider the technology selection and what factors are there? My answer, technology cost and activity of technology open source community, tell me about your practical application in these scenarios

3. What do you think is your greatest advantage

4. What do you know about Huawei

5. Your future work direction

6. Why did you choose to come to Shanghai in Hangzhou

7. Do you think you have been treated unfairly? Tell me what you really think

8. Do you have any family or friends working in Huawei?

summary

It took about five weeks to complete the interview. Yesterday, I was informed to submit the review materials. If the review is passed, the offer will come down. If the offer can come down, I'm supplementing od's benefits.

The interview is comprehensive. There is no standard answer to the questions asked by the interviewer. In the process of the interview, I focus on your presentation ability and self-confidence. Generally, a person with positive optimism, openness and self-confidence, decent clothes, solid foundation and healthy mentality can easily succeed in the interview. Self confidence is very important. I let me tear the code by hand in the first round of the interview, I almost gave up. Sometimes if I persist in the interview, I may succeed. In short, the IT industry is not a pension industry. The technical iteration is too fast. The only thing that can adapt to the development of the times is to study hard and improve continuously. Finally, let's talk about jobs. The current trend is that with the overall unchanged jobs, more than 10 million fresh graduates still join in every year to compete for good jobs. If your education and major are not dominant, please look at the form and deeply understand your position in this competitive trend, If you don't have a suitable offer from a large company, Huawei OD is one of your better choices. Work is nothing more than to earn money to support your family, so sometimes don't lose your face. A job that can earn money is a good job. First let yourself survive, and then discuss the topic that you want to live better. Well, my interview experience will be written here.

Keywords: Java

Added by Thunderfunk on Tue, 11 Jan 2022 00:35:50 +0200