Android game development complete! Record a written summary of Tencent Android job interview, advanced learning materials!

1. Background introduction

From a practical point of view, combing a CMake basic tutorial that can help you quickly literacy is also a study summary of my current project. Since the choice is based on the practicality of the project, the following explanation may not be complete, but more in line with some of the characteristics currently used in the project.

1. What you want to share

At the beginning, I also expressed my views on the "face classics", so I will not list specific topics, and the topics of each interview are the same. The other columns have already listed enough, and there is not much meaning to enumerate again. , Here I want to focus on sharing the following five points: preparation before the interview, learning methods, interview style, feelings after the interview, and career planning.

2. What you should prepare before the interview

Before the interview, you must systematically review the knowledge points of each module. Don't go out for an interview in a hurry. Especially for large companies, the interview opportunity is not easy. Don't lose the opportunity because you are not ready for the review, especially For students who are suddenly dismissed and have not fully prepared beforehand, they should pay more attention to this point. I know what it is like to be dismissed, but after being dismissed, we should also treat this matter rationally. Don't be panicked and helpless. Hurriedly submit your resume to the interview

For Android application development, there are not many things that need to be reviewed. It is nothing more than the familiar categories: Java basics, JVM, Java concurrency, Android source code, Android third-party frameworks, Android performance optimization, data structures and algorithms, and then With some network knowledge and so on, I won't repeat it here.

In addition, I am adding two points. When reviewing specific questions or knowledge points, we can also focus on Baidu to find interview questions for specific companies, because many interviewers will habitually ask the same question or similar questions, which is more targeted Sex. What's more, the content described on your resume must be familiar, including specific knowledge points, including your project experience, which are equally important.

When you feel that your review is almost done, don’t deliver and make an appointment with a big company or a company you are longing for. First, go to a few small companies or companies you will definitely not go to for interviews, so that even if you fail the interview, it’s not a waste of opportunity. By the way, I can also help myself to better check and fill vacancies, and if I pass, I can also increase my confidence in the interview later. Although such behavior "deceived" some company hr students, but in the face of their own job search interests, I can only apologize.

3. Learning method:

When we were students, we often heard a word "learning method", which is invisible and intangible, but it is often reflected in our test results. When we graduate and when we are actually working, the word seems to be farther and farther away from us. What remains the same is that we are still making plans continuously. We have to read a few books this year and what knowledge we should learn this month. Even quantified by the sky, but rarely think about why to learn these, more importantly, how to learn.

Interview review is the same as our usual study. Under the premise of a correct learning attitude, how to learn will become especially important. Although it is a commonplace in student days, many people have forgotten it after work, and they are eager for quick success and quick profit. , I thought that after reading "Android Development Art Exploration" a few times, I could successfully become a senior engineer. There are still a few people who really understand it, and it doesn't necessarily matter to read it a few times. I'm only short of learning, but I still want to express and share my view on learning. I hope to inspire a little bit for partners who don’t know how to learn

The
" system " of the system is well understood, that is, when we review the knowledge points, we must be comprehensive. Only when we are comprehensive can we build a firm foundation. This foundation is very important. With the foundation, we can better think and summarize. .
For example, we often use and study some Android third-party frameworks, such as OKHttp. We have to fully understand it from three aspects:

1. Use okhttp to realize basic network access functions, including basic data request, form submission, file upload, file breakpoint download, https setting and so on.
2. In-depth study of okhttp source code, familiar with the calling process in okhttp, interceptor principle, caching principle and design patterns involved, and can customize interceptor to achieve special functions, such as log printing and so on.
3. Before studying the principle of okhttp caching, you must first be familiar with the related fields of http caching and when setting up https, you must also comprehensively review the related principles of https.
Through the review of the above ideas, slowly your knowledge system will be built, and the foundation will become stronger.

Thinking
I think thinking and the following summary are more difficult, because it has a lot to do with everyone’s foundation and vision. Engineers with poor foundations and small vision must think deeply with people with a solid foundation and broad knowledge. It’s different from the direction. For an intermediate engineer like me, the directions I can think of when facing okhttp are: what is its relationship with retrofit; the comparison of okhttp with other network frameworks; because it involves network-related, there may be more Extend to the direction of network optimization and so on. But no matter what direction you are thinking about, only thinking is progress, not just staying in the okhttp framework itself.

Summary The summary
here is based on the thinking in the previous step. It is not just a list of all the knowledge points that you have learned. Because each knowledge point seems to be independent in the learning process, in fact, most of the knowledge points are related. We have to learn to think and summarize the related knowledge points, and then do our best to dig deep. More knowledge points, make them in series, I will use actual interview questions later to explain this more clearly.

4. Interview style:

In this part, I want to share how interviewers ask questions. So for the time being, I will name it and summarize it as a question of interview style.
I think everyone should also know that I can roughly divide it into five types here:

All questions are in accordance with the knowledge points listed on the resume. In my interview experience, the interviewers on one side and the second side of 360 asked this way, so we must be familiar with the content written on our resume, including new technologies such as koltin and flutter. As long as there is written on the resume, You must be able
to select and ask questions from your resume, not all of them. Of course, interviewers will also ask questions that are not written on the resume according to their own habits. This situation is the most common.
When you introduce the project experience, choose the questions of interest or related knowledge points to ask questions.
Only focus on your project itself, including project introduction, project difficulties, etc. This is the case on the NetEase side this time. I only asked about the key and difficult points of the project listed on my resume, as well as the solutions.
Do not ask any specific knowledge points and project experience, let you answer some open questions, such as how did you learn, how do you think about cross-platform technology, and so on. This type of interview generally appears on the last side of the technical side.
Finally, I want to emphasize that project experience is very important, especially for social enrollment, so we must gradually accumulate the key and difficult points of the project and how to solve it when we usually do projects. Of course, it is possible that the module we are responsible for in actual work does not have great difficulties. It is also possible. This requires us to fully understand our project and see if other colleagues are responsible for the module. It is worth learning and summarizing. This is not only conducive to our technical improvement, but also conducive to increasing our project experience.

Finally, take a look at the "Android Framework Architecture (Advanced UI+FrameWork Source Code)" mind map of all the knowledge points needed for learning. All the content of the following knowledge points are included in the study notes just now! Part of it has been shown in the article! If you are worried about how to learn or want to improve the efficiency of learning this knowledge, then this study note is definitely your secret weapon!

This study note is definitely your secret weapon!

[External link image is being transferred...(img-Jj7AhPl7-1614154801507)]

Guess you like

Origin blog.csdn.net/chayel123/article/details/114026487