"Android Siege Lion’s Advanced Road"-There is no end to learning, and the road ahead is not the end!

I. Introduction

Learning is inherently an endless road. There will be "rivers" and "mountains" blocking the way along the way. You don't have to think about it, just go ahead! Don't give up. Persistence is the most important thing. Growth and harvest are waiting for you.

2. Past events review

First understand personal experience:

1. University and Major

University: Hunan University of Technology
Major: 工业设计
A magical major that knows astronomy and geography, learns ancient and modern Chinese and foreign, knows drawing, n software, and requires unlimited creativity .

To put it bluntly is to design some products that can be produced: as
small as toothbrushes and pencils, as large as cars and airplanes, or everything
because 设计的本身就是对世界的认知和再创造as long as you have the ability, you can design and create

Therefore, industrial design needs 广泛的知识面, which is giving me all sources 知识储备of sources,
but also the use of various software (this gives me a strong software experience):
two-dimensional software: PS, CAD, AI, AE three-dimensional design software : SolidWorks, 3dMax, ProE, etc.
I was very proficient in the past, but now I still maintain the PS (because I occasionally revise and draw pictures), so I call myself a half artist. This is also the reason why the pictures in my article are better, because I am myself painted

The influence of the university makes me 表现力very persistent. I hope that through better expressions, others will have a better understanding of complex things. It
can be said that I am not very good at learning, because it is not in line with mainstream design concepts ( 我并不怎么想设计已经有的东西)
plus me The level of painting is also half-hearted, and there are not many that can be handed out. The following two pictures are improvised.

2. The impact of university on me

I cultivated my sentiment and cultivated a heart that is widely tolerant of things, and 万物的思考
I try to broaden my vision of telescopes, microscopes, literature, mathematics, and philosophy, and then think about all the connections.
As a science student, I 文学can say very much. Passionate, university can be said to be a box of books.
My dedication is my dedication. I have 境界created a lot of works that I think are excellent, and I have won awards.

Although I like literature, I have never given up thinking about rationality. Mathematics can be said to be the closest thing
to me and the farthest thing from me. Because it is half a design, I 高数learned very shallowly, and the 高数basics of the deep level are basically self-study (if this It’s not love.)
The love of mathematics also promoted me 分析能力, so that I try to think about the world from both rational and emotional aspects.

I think a lot, I have to record and summarize. In order to express my thoughts better, poetry is the best choice.
Therefore, the 境界word is destined to accompany me throughout my life. I hope to constantly break through my own 想象力与瓶颈and use my language to 表达出这个世界
think about the relationship between things Contact以后的编程思想打下很好的基础


3. The beginning of Android engineer's career

I regard learning programming as a voyage, and I want to witness what kind of style the other side of the sea looks like. This voyage is not to take a boat, but to build a bridge to the other side of the sea. The accumulation of knowledge is the wood of this bridge. I want to lead to the other side of the sea, and at the same time I want to leave a bridge for future generations to walk. So recording has become my habit. Now it seems that recording and sorting is a very important thing for the coder. This is the case for files and the code, which标记与整理 is a 超重量级topic in my opinion .

1. First encounter with programming

There are two encounters with programming in the university: the
first time was a C language course-I didn't go deep after that. The
second time was the university wanted to learn C++ by myself-but I gave up within a few days ( I don't think it has much effect, and there are more important things at that time) I
have always believed that as a young man in the 21st century, I always feel sorry for myself if I don't do programming.


2. From MCU to Android

Outside of work, I have some time for myself, and then I develop my interests extensively, and for a while, I want to play MCU. Then I bought a lot of parts, burned the code into the MCU for the first time, and I still remember the mood when I finished the flashing lights. The code for getting started is very simple. The basic C language of college is still enough. I remember that during the Chinese New Year in 2017, I was playing MCU. Then registers, operational amplifiers, banks, many sensor modules... entered my world. After making an electronic clock with an electronic display and clock chip, I originally planned to play with the Linux development board, but it felt a bit expensive. Isn't Android just a good development board? Go play with Android. Then we met,

Then 一入宫门深似海,从此硬件是路人...

3. Several reasons why I choose Android

1). I use it often, but it 一无所知makes me unbearable. It's like having a gorgeous box but I have never opened it.
2). There are mobile phones, computers, and others can play. Of course I can, and I believe in myself of 分析力
3). a child called "地心游记"the phone comes with games, also could not find how to find the Android version, so ...
4). I want to own 数学知识some useless, after all, only junior high school level daily ...
5) I like literature, not a rhetoric, but 语言本身的表述力,
programmed as a language of communication with the computer, its expressive and pursue my realm is not in contradiction

Four, in-depth bottlenecks encountered by Android

1. First entry to Android and the first bottleneck

March 31, 2017 was marked by me as my revision date.
It was the day when I entered Android. There was only a little C++ syntax support (I learned a little C++ when I was a single-chip computer) and meagre single-chip hardware common sense
. When I entered Android, I must learn from the video screen at the beginning. The first HelloWorld
is still fresh. I still used Eclipse to install Java, download the software, install the plug-in and download the SDK. At that time, I didn’t even know what Java was.
Follow the video step by step. After most of the day, the first project finally started

Let me talk about my feelings: I have been self-study C++ for a month, that is
, I can calculate or output on the console and cmd. It can be displayed on the phone in Android. I am happy and excited. I can feel
that I can feel that what you see is what you get. It’s very fulfilling, so it’s "love at first sight" with Android

There is no learning method in the early stage. I followed the screen to draw a gourd, analogy and modification, and I learned that the language is called Java. I used to think that Java is a small game... I
also kept discovering the similarities and differences between C++ and Java. I feel that Java is easier. I don’t think it’s too difficult, and then I think about it and sum it up. On the surface, I probably understand how Android works, knowing where to change the interface and what changes will be made. I just went through the layout of Android and the basic View setOnClickListener and didn’t understand. What are you doing? I just know: write it like this, click on it will have an effect

"地心游记"It has always been my heart knot. After I got a little bit of foundation, I looked for a tutorial on a Sudoku game, and then found that the programming skills were not enough. The first bottleneck appeared: 编程基础以及复杂逻辑的控制薄弱ArrayList, Map, callback...none. I know, even so, halfway through learning, I followed the video abruptly and finished it.
It was a little shaken at the time, this was really unholdable, too complicated, and the logic control could not be grasped at all, and it was only Sudoku. I plan to learn Java in Android. I have a mentality of 1+1 after 10+10. I didn’t switch to Java, but picked a bigger pit, that is 植物大战僵尸, I followed the video. . It’s really silly to think about it now. With the Android version of cocos2d, the only gain may be 对象.方法名a deep understanding.

2. When I broke through the second bottleneck of Android, I wrote:

The former Android looked like a black box to me.
From the moment I decided to open it, everything was different.
It is countless fragments, and it looks ignorant,
just like the mood of a child seeing thousands of jigsaw puzzles.
Fear and excitement, and anticipation,
look forward to the style after the puzzle is completed.

I want to witness its demeanor, and
want to stand at a higher level to see what it is.
So I started to move towards that sea,
cross that sea of codes, and lead to a new era.
Now, I have finished a corner, and at this moment,
its grandeur has completely filled my vision.
It is no longer just a picture, it
is clearly a world before my eyes, called 境界.

3. How did I break through the bottleneck on the road of learning?

Bottlenecks are encountered in life, such as study, work, and thinking, but all of these are not terrible. The first hurdle to break through the bottleneck is to adjust the mentality, which is the most important. Don't give up and give up resistance when encountering a bottleneck. If so, this level will always be a "dead door", and you will never pass the level.

1. Adjust your mentality

Improving psychological endurance must require us to have a healthy mind. We must first understand the truth, that is, there are two results of success and failure in everything we do , and two choices of happiness and pain . The success of many people is based on countless failures. The true life is the joy, anger, sorrow, and joy.

A good mentality allows us to be calm and calm when facing difficulties and setbacks...so I often hint in my heart that I can do it when facing bottlenecks~

2. Learning must be systematic

Learning must be systematic , and blindly learning will not achieve any results. If you can't see hope in your original learning method, it is better to try a systematic learning method. . .

Share a wave of my systematic learning materials, it can be said to be the best materials for all-round learning Android~

Java knowledge points: JVM, String, internal classes, polymorphism, abstraction and interface, collection framework (Hashmap, Arraylist), singleton, thread, Synchronized, Look lock, dynamic proxy, reference

Android basic knowledge points: four major components, View, process, Bitmap, screen adaptation, message mechanism, thread asynchronous, WebView.

Android extension knowledge points: ART, Apk optimization, Hook, Proguard, architecture (MVC/MVP/MVVM), Jetpack, NDK development.

Android source code knowledge points: Leakcanary, Eventbus

Knowledge points of design patterns: six object-oriented principles, factory pattern, singleton pattern, builder pattern, observer pattern, adapter pattern, strategy pattern, agent pattern

Algorithm knowledge points: sorting, binary tree, linked list, stack and queue, dichotomy, hash table, heap, array/double pointer, string processing, dynamic programming

Network knowledge knowledge points: Http (cache, Https, Http2.0), TCP (three-way handshake, four waves, socket), class loader

Catalog (partial screenshot):

Part of the content (screenshot):

Four, summary

Nowadays, there are very few people in any position who need continuous learning like programmers. The technology of software development is changing day by day, and each technology is often broad and profound. If you don’t continue to study in depth, it will definitely be difficult to master, then Let alone mastery.

If you do n’t have a deep understanding of the skilled application of Android technology , and the level of performance is only capable and okay, then few companies are willing to pay a big price for "okay". Only by standing out can they be valued .

————The "Advanced Android System Information" shown in the article "—————— Click here to join to get it "

 

 

 


 


 

 

Guess you like

Origin blog.csdn.net/qq_39477770/article/details/108829660