Summary of a four-year Android programmer's first half of 2023

 I have been doing Android development for four years in a flash, time flies~

The working hours are fast, and every day feels fulfilling, but most of them are repetitive.

Last year's goals achieved: 

Last year's goal was to study and study, and raise salary. The atmosphere of the colleagues in the previous company was very good, so I really learned a lot, and they were willing to teach me something. The salary increase is a passive salary increase, hahaha, job-hopping and salary increase, ashamed and ashamed~

how to say? Age and skills are increasing, but overall I am still not satisfied with myself. Although I live a fulfilling life every day, I still have some regrets, such as not entering a large factory, having no management experience, and not having enough technical depth.

That's all, let's sum up the first half of the year~

Summary of the first half of the year:

The previous company laid off a lot of people due to project financing problems, and has been suppressing the year-end bonus and not raising salary increases. The boss likes to see people working overtime, but many of the people below are working overtime. The whole process development is very chaotic, and the boss doesn't really want to develop a good product for a long time, but to catch up with the progress and raise financing. As a result, the things made are too new and the audience is not large, and the user experience is very bad, such as instant voice, video streaming and unity map model.

Of course, I think the previous company is very strange. The HR department doesn’t pay much attention to the company’s communication atmosphere, but our private relationship is very good. Whether it’s R&D or cross-departmental work, or private dinners and activities, the atmosphere is really good. Well, the daily work is very tiring, but I am very happy.

But the company did have problems during that time, and I wanted to leave at first, so I just went along with the flow and left.

So when I came back from Chinese New Year this year, I joined this new company. My friend who left before me was also in this company, and with the attitude of giving it a try, I came to have a look. I never thought that I actually passed the interview.

Let’s talk about the salary first, there is a new Mac and 100 JD cards when you join the job. As far as the new Mac is concerned, I think it’s really good~ The salary is more than before, but what attracts me more is that he has a quarterly bonus here, and the income is based on contribution, which will definitely mobilize the enthusiasm of employees! It will be released in the quarter, compared to the previous company's release at the end of this year and September next year, the page is too conscientious.

1. Work summary

Here is rapid development, small project development, and everyone will be responsible for the project individually.

At the beginning of the interview, I was still a little worried. I was afraid that I would not be clear about the reason for being responsible for the project alone when I was doing overseas projects. After arriving, it took a while to get started.

Generally, there are only 5 or 6 interfaces in an app, and it is enough to realize the main functions.

Up to now, there should be more than a dozen apps, and the project is getting smoother and more efficient, and the efficiency is constantly improving.

Although the interface and part of the logic are different, the apps of the same type are similar with minor differences. If you have made five or six types of apps, it will be much faster when you encounter the types you have done. However, I am still not satisfied with my own efficiency. Although it is much faster now, the first project and the music project actually encountered some problems in the early stage, and it took a lot of time. I hope that the next progress can produce higher output.

The types of work include VPN (6), music (1), translation (1), lock screen (2), caller show (1), wallpaper (1), the output is not high, but the flower The time is mainly spent on the first vpn and music.

Learn more about the Google app market, AdMob docking, advertising docking process, advertising violations, etc. The company's GP account is also available for development, and you can check the online situation at any time, ANR, Crash, DAU, retention, advertising Impressions, revenue, etc.

2. Technical summary

After I came here, I was really worried about whether such a short, flat and fast project would give me room for technological advancement.

But still the same sentence, whether to learn or not depends on whether you have the heart. If you input more and then output, you will definitely gain something.

architecturally,

For the entire structure of the app, the use of development frameworks, the access of various three-party frameworks, comparisons, and optimizations have all been qualitatively improved. Although the overall design structure is simple, it will greatly improve your ability to control the entire project. What is good, what is not good, and what should be paid attention to in the next project will virtually improve your ability.

technically,

1. In terms of width, I think it is the place where the greatest improvement has been made. Because it is short, flat and fast, and the codes of each package cannot be the same, so I will keep trying new ways to achieve the same requirements.

For example, for a list Adapter, I can use the built-in RecycleView Adapter or BaseQuickAdapter, where is the difference? Where is the advantage? Where is the good place? How many ways can the dividing line of the list be realized? Is the side bar customized or using DrawerLayout? Do you use Sp, Sqlite, Greendao, litepal or something for data storage? What are the ways to communicate between components? Which is better to implement the countdown, the various implementation rules of the coroutine, the matching of the UI on different mobile phones, and various implementation methods of animation. In terms of the Android business layer, I think I have been greatly improved in terms of width.

2. From the perspective of depth, this is exactly what I am worried about now. Short, flat and fast means that it is difficult to settle the technology, and there will be no time for you to study a technology. When encountering bugs, it is mainly to solve them quickly, not what The best way to solve it.

depth? depth? What counts as depth? Many times I have been a little confused, and I don't know how to learn how to start.

I can almost use jetpack. I have learned compose, flutter, and dart languages, but what is depth? How can I learn depth when writing business every day? How to use in-depth thinking and methods to realize it?

Maybe I thought about being a full-stack, maybe I thought about being a leader, my friend comforted me and said that neither of these two requires technical depth. But even the technology of the business layer has no depth at all, so how can we talk about delving into other things, talk about and manage the team. You can’t do well in your own business, but you still have a full stack? No technology, delusional to be a leader?

Hey, let's set something for myself in the second half of the year that I can think of and need to master.

1. Business layer:

       (1),  In-depth discussion of ANR and Crash, thinking and summary of the problem . How to better locate the problem, find the problem, and solve the problem. Although during the test, it is easy to find solutions to crashes, and ANR can also generate log files to search, but I feel that I am still very simple, so I need to look at the source code more.

       (2), performance optimization . I won’t talk about interface optimization, I draw the interface every day, write the interface, and optimize like that. Performance optimization and stable performance are very important. Have you really mastered memory leaks, the causes and solutions of memory overflow? Multi-threading and coroutines will be used, but do you understand the principle?

        (3), input and output . Learned and used, summed it up? ? ? I have been in touch with audio and video , but I know very little. It is nothing more than adjusting Api and drawing interfaces at the business layer, let alone OpenGL and OpenCV. But many weird bugs and compatible adaptations are often very annoying. If you have time to write more, read more, understand more, and convert them into your own output! IM is also a big part of the Android business layer. I have done it. Simple projects, using the websocked framework to access, monitor, etc., but I don’t dare to do difficult projects. I only dare to draw IM. Custom interface, pure business logic. The bottom-level sending and receiving, timeout reconnection can only really be used. JNI, NDK, cross-city communication , etc., really only stop at understanding concepts and basic usage.

        (4) Overall design, construction, optimization and confusion of the project . It is still not clear enough, think more and summarize more.

        (5) Think more and summarize more . Remember to write the owed blog, the blog that should be written, a summary, and the knowledge of the Android business layer that should be sorted out.

2. Full stack:

        The original goal was to build a full-stack, but because of work, writing business every day, and my own laziness, I stopped learning after learning. I bought the server before, and it didn’t come out when it expired. It’s a fall. ~~

        (1) For Springboot learning, there is still a complete teaching in Silicon Valley, so you have to do it, and you can't stand still. I almost forgot about the back end~~~

        (2) For web front-end learning, js is almost forgotten, and css and html are almost forgotten. Have time to learn the VUE framework.

         (3) Learn about cross-platform things. Although you have learned flutter, it’s hard to say, haha.

Planning for the second half of the year

1. At work: the output must be sufficient, and the quality of the app must be kept up. Develop more types of apps. As a technology, think about how to make an app more profitable! Constantly learn some frameworks and technologies of new companies.

2. Technology: Just like the above summary, there must be input and output. In terms of technical breadth, continue to maintain, summarize more, and learn more in terms of technical depth. In addition, the expansion of technology and the occupation of this area must be moved.

3. In life: ensure enough sleep, if you can’t go to bed early on time, then find a way to ensure the daily rest time, energy is really important; exercise more, everything is ready, don’t exercise yet? Yoga mats, skipping ropes, sports watches, jerseys, emmm, move more, the body is the capital of the revolution, the weight can be maintained, but the abdominal muscles must be seen~

4. Family members: If you have time, go home and have a look. You have already bought a car, right? Do more! My current girlfriend is also very good to me, and she is also a person who lives a life. I hope that I can treat her better, be more patient, more tolerant and understanding, and not just know how to reason about everything. People are here to live with me, not to be reasonable.

In addition, I must be worthy of the words my cousin sent me:

I hope you will always have the action and appeal of "it is better to stand up and act instead of sitting down and talking about the way". You are an idealistic boy, and a boy who takes advantage of his youth with poetry and wine.

Read more books, you have bought so many books, you have to read them. Don't lose paintings, calligraphy, travel, and movies.

I am a little interested in Taoism recently, and I have time to learn more about it.

A certain paragraph in an article by a big guy, I feel like I woke up a bit.

Taste! You savor!

Also, there is blogging, because I know that writing this thing is useful, but I have been affected by work a lot, and I don’t have much time to write, so let’s play less. The goal of 200 blogs set half a year ago, until now It's not finished yet, I'm ashamed~

Some time ago, I read an article, and I was very touched, otherwise I would not write this summary, which made four categories for programmers. Although it is someone else’s personal opinion, I think it is still very reasonable:

The first category is definitely out of reach. Haha, I feel that I belong to the third category. I just want to become a technical expert. It’s up for grabs. I don’t really want to participate in the team or the company. The company is good. Then I'm fine, the company is not good, why is the management fat four? If you think about it, your horizons are still too low. Since you want to be a leader yourself and become a technical expert, why can’t you really integrate into the company? Do you work for capitalists?

Emmm, why can't you become a capable man of the capitalists? In this business, who doesn't work for the capitalists, right?

Learn more technology, think more about the team, the current company is developing well, isn't it the second type of people who worked hard together with the company? Speaking of which, every time the back-end friend mentioned Brother Hao to me, his eyes sparkled. A person who is not in the Internet industry plays a very important role in the company. Being a manager is not a joke.

Attached is a picture of Yading, Daocheng, where I went with my friends the year before last, read thousands of books, travel thousands of miles, rush!

 

 

 

Guess you like

Origin blog.csdn.net/LoveFHM/article/details/131687561