Who would have thought that Android outsourced work for three years, can join a large Internet company

Who would have thought that after three years of work, I would be able to join a large Internet company.

How did I join the big factory?

The year I just graduated, I entered a company as an outsourcing company. At that time , I was anxious almost every day. Everyone didn't have much technical ability. Why am I in an outsourcing status?

Later, he resigned and went to a startup company with less than 20 people as an Android technician. **At the time, I was satisfied with the status quo. After all, the pressure was not great and the salary was good.

Once I had a meeting with a former colleague and talked about technology with a few classmates in BAT. I found that in the past few years in a startup company, I have been completely on my own and have been pure output . The business development of the startup company is very slow, whether it is management or Technology is very limited.

**Then I deliberately input some things according to some of my weaknesses to achieve the effect of improving skills. **Fortunately, my age is not very high, my learning ability is relatively strong, and I joined the current company through the recommendation of a former colleague, and grew all the way, the salary can basically crush my peers, during this period I have always maintained With an attitude of sincere learning towards technology.

Looking back on my 3 years of doing technology, the summary is:

Breaking personal limitations, maintaining deliberate learning, parallel input and output, can enter the big factory.

About how to learn?

Technology is developing very fast nowadays, how can programmers keep up? Many people will ask me how I "counter-attacked all the way", and later found out that fresh graduates have a common problem: they are so busy at work and have no time to study.

Indeed, the work in the Internet industry is fast-paced, high-intensity, and late at get off work, but if you go on like this, you are indeed still anxious after being busy and tired. Targeting the technical projects you want to improve in a targeted manner and systematically learning is the key.

This is not catching up with the Golden Nine and Silver Ten. I recently communicated with my friend Technologist , so I have this article.

I have been working for more than three years. When doing technology, you should not just bury your head and move bricks, but also regularly review and think about the future. Don't let yourself become the kind of developer with a year of experience and ten years. You must always remind yourself of this.

After working for more than three years, many capable friends have left their jobs. They went to Baidu to engage in cloud computing, to Alibaba to engage in AI, to DJI, to Meituan... Did they touch you? That’s for sure, it’s false if it’s not there, but I’m living in my comfort zone step by step every day. The performance salary is pretty good, but what about the technical ability? It’s not high at first, but I have encountered a bottleneck for improvement, embarrassing~ On the other hand, the old colleagues around me have a lot of management, with version management projects, and aligned end to end every day... Since I want to take the technical route, I should think about work. How to learn effectively later.

Limitations accumulated in work

Speaking of my own work, I have been developing Android for more than three years, and I have gained the most in the first year. After the programming skills required for my work are supplemented, I can respond well to the development of business needs. "After work, you only need to work 10% harder than everyone else, and the return is better than 50%." It's true that you will experience it firsthand.

After work, you can only rely on yourself to learn a little bit of knowledge . Observing the colleagues around me, not many people are very enthusiastic about technology. Except for some experts, many old employees have no difference with the technical ability of new employees after two or three years. I thought about the reasons, probably as follows :

  • The technical knowledge used in the work is limited, and many people do not have a deep understanding of the principles behind it;
  • The business code does not exercise the algorithm enough, and the algorithm ability will be weakened after a long time;
  • There are not so many features that will give you opportunities for architecture design, and the architecture is determined by experts;
  • Don't take the initiative to broaden the knowledge, learn new things, and the technology stack will not be updated for a long time;
  • The basic knowledge is not thorough and in-depth, after all, the classics need to be studied and understood repeatedly;

I feel that the most useful experience I have gained during the past three years is the ability to locate problems, identify pits in advance, and fill pits quickly. Of course, I have also seen some excellent architecture designs, but they are limited to insight and use.

Effective learning outside work

Let me talk about my own study outside of work, basically the following three items:

  • Read books and articles on the Internet: work-related, hobbies, technical hot spots;
  • Hands-on practice and summary blog: similar to after-school questions and course design, practice summary;
  • Brush LeetCode algorithm questions: improve algorithm ability and feel of writing code;

I personally think that my own learning is still effective. I can experience learning and growth. I also do a good job. As long as I work harder than my colleagues, I can get a lot of rewards. This is true after work. However, I know my level and my efforts are far from enough. Look at the experience of a big cow "How to become a technical expert":

How to become a technical expert? The answer is actually very simple, study hard.

Since I was a student, when was the effect of hard work the worst? In the third year of high school, because everyone worked so hard, after work, you only need to work 10% more than everyone, and the return is better than 50%. Technically, the same is true in other fields.

The article "The Best B's Coding Routines" mentioned the technical training methods: expect to set aside time, focus on exercise, set aside technical gradients, and always pay attention to achieving goals and reaching bottlenecks.

The most important quality of programmers is "continuously study hard." They must constantly challenge things beyond their own abilities. Sports enthusiasts have been running for years, but still can’t run Liu Xiang. Amateur chess looks like thousands of games, but it’s still possible. Was defeated by a fledgling chess student.

Constantly study hard and keep training is to find shortcomings and make targeted improvements.

There are many training methods mentioned in the article on routines. In fact, I very much agree with the last two methods:

1. Write a blog; 2. Participate in open source projects.

Regarding blogging, cattle people don’t write about the key points, and they don’t have to be tall. I also need to explain. I personally feel that at the beginning of blogging, we need to develop a regular habit. What to write about? No matter how small, shrimp is meat. This If you don’t write it every month, you have to make up next month. Of course, the difference in the middle is that now I write it for myself, and the cattle spread knowledge.

Refer to Daniel's article and look at myself: I have not participated in open source projects, and I need to improve on this point.

I agree with Daniel's opinion on blogging. Writing a blog is to record and summarize your study notes so that you can review and check it yourself. There is no need to think about how tall you are, you just record something for an ordinary programmer.

I read a question in Zhihu before about the PK between a Microsoft employee and a Facebook employee. I found it very interesting. I appreciate the answer inside, the excerpt:

A fellow, Jiang Hanchen, he said in an answer that his experience of winning the Tsinghua Special Award was "doing a lot of topics after class, and then looking at some topics for the postgraduate entrance examination in advance, and then surpassing the classmates, you can help them", experience it, Special award, Tsinghua University, shouldn’t you read the Princeton Mathematics Lectures after class to achieve rapid progress? What's the matter with the postgraduate entrance examination questions? Is it too low? Is the Tsinghua peer pressure so weak? In fact, this is not low at all. "Disenchantment" is called "pingshi". ZB never tells how he learns. He says he is a genius. Maybe he used memory bread, so we come to worship him.

What does the author want to express? Daniel also relies on scientific methods and solid efforts.

It's really not necessary to tout deification or something. Don't worship blindly, don't be scornful, learn steadfastly, blogging is simple and not low, and it's okay if LeetCode can't be done, just calm down and learn.

Genius is a very small minority, and most of the talents are accumulated step by step, relying on simple and scientific methods, plus more diligence.

Regarding the difficulty of LeetCode, many FLAG employees in North America also showed up to say that it will be difficult at the beginning, but more practice will be enough. The great gods I know when studying, and my colleagues after work rely on their usual practical efforts.

About LeetCode

I took out the problem solving separately because it is really important and useful.

As a developer, the most essential and core job is to implement functional features with code, be able to use appropriate algorithms, and quickly write as bug-free code as possible!

In the past three years, I haven't brushed much LeetCode, and 100 channels are still far away. I'm really ashamed. However, the company's internal OJ has brushed more than 100 channels, because it is a requirement for regularization, which is a bit watery compared to LeetCode.

Although I didn't brush a lot of OJ, I can still clearly feel that brushing the questions has improved the feel of writing code a lot. It may also be because I was too awkward at the time and embarrassed again~~.

Regularly brushing the questions is a targeted training, which is not available for general projects.

About the schedule of study

Technical learning is not like memorizing vocabulary, which can be scattered and requires a whole lot of time to concentrate on learning, especially when gnawing hard bones. Many difficulties are overcome by long-term focused thinking.

For technical learning, we must focus on a long time. If you can't concentrate for a long time, then the effect of learning will be greatly reduced. Know the previous question: How to achieve long-term (more than 4 hours) mental concentration? , There is an answer I very much agree with.

PS: I agree to come from my own experience and personal experience, not because of the high votes of this answer. Excerpt:

I have heard about the Pomodoro Technique for a long time. But I have never used it myself. I am very curious if countless people agree with him if I have used it.

I have a lot of questions about this problem. What should I do if the interruption happens when I am most concentrated? I keep interrupting like this. Every time I interrupt, I have to save what I see now, and then when I start next time, I will go into the state and connect to the thinking. Can this overhead be ignored?

Isn’t it troublesome to keep setting time to remind yourself?

PS: I have used this and found it is not suitable for technical learning and programming practice, each time is too short! Keep your attention focused on what you are doing, your processing speed approaches your receiving speed, and your thinking keeps up with the development of what you do. Then keep it, it's OK.

It’s hard for you to concentrate on textbooks for two hours. First of all, you are not necessarily interested or don’t want to read the content of the textbooks, and you will not be able to concentrate. Secondly, even if you concentrate and start to read, your processing speed will not keep up. Your acceptance speed is high because the knowledge density of textbooks is so high that one page of a book contains a lot of information, which your brain can't handle.

PS: To learn new things that are a bit difficult, I generally slow down appropriately, take notes and calculate, and read them repeatedly! Too fast is not effective, and it is easy to reduce concentration and slack.

Give an example of reading. When reading a long piece of English, do you have the experience that you often look at it and don’t know where you saw it? At this time, your brain is not actively working, but passively working. The fact is, if you read this text and think about what it is expressing, what is the connection with the previous paragraph, and what is the connection with the topic of the article, after finishing this paragraph, what do you expect it to say in the next paragraph, and whether it is in the next paragraph? It meets your expectations. If it does, you can speed up the processing. If it does not meet your expectations, you can correct your expectations.

If you read in this way, then you will find that it is not easy to lose your mind. Keep exercise and get enough sleep.

Keeping exercise is for high quality of sleep, good health, and good mental state when awake.

In a good state of mind, your body can perform normal functions, the brain can process the information it receives normally, and the eyes can read normally.

Be honest with yourself

Recognize your own shortcomings and face honestly without avoiding it. Whether you are doing well, whether you are having a good time at work, whether you have improved your abilities, and how your skills are, you know best. Don't deceive yourself and live in chaos. A well-written article by a former Google programmer: Start with being honest with yourself, excerpt:

Looking back at my previous blog now, I am sad to find that I am far from the passion for technology or the clearness of my life goals-when I was in school, I had a simple idea-write the best program and use it as the cornerstone Find a good job.

Now I see that this goal is achieved: I found a job that is not bad for my current year, and I wrote an article about my mind that now seems ridiculous. At that time, the article was reposted in various ways, and my vanity was also Has been greatly satisfied.

What's ridiculous is that my work at Google is not going well, and I didn't think of a way to change the status quo by myself, but found solace outside of work to fill my vanity. During this time, I created my own independent blog and spent a lot of spare time writing quality long articles such as Sublime tutorials and must-read books for programmers. The response to these articles has been very good, and I have become a big bull in the mouths of readers because of these articles.

Vanity is satisfied again. However, compared with the "fame" of the Internet, I have made no progress in real work. I have stayed at the entry level for 3 years at Google (generally speaking, I can upgrade to a level with a normal performance in one and a half to two years). Despite the factors such as group change and project cuts, it is undeniable that I have Work (perhaps the most precious three years), thoroughly doomed.

When I was on Google, many people found me through my blog and wanted to have a meal and chat with me (they might think I am really a big cow), but they were secretly evaded by my own-I didn't want them See yourself in reality.

In 2017, I wrote a lot of things on FB and made many new friends. I read some books and gained some new skills (driving, photography, weightlifting).

The biggest gain is that you can finally face yourself honestly, and you won't have self-perception contradictions due to the inconsistency between online and offline.

Instead of pretending to be what you want others to see on the Internet, it is better to be honest with yourself and become what you want in reality.

I hope this article can end my own exaggeration and the "curse" of the article I wrote 5 years ago. Stay hungry, stay foolish, and be honest to myself. This is the first article in 18 years, but it will not be the last. I hope that through writing, I can exercise my thinking skills, summarize my gains, clarify my goals, and make myself more honest with myself.

At last

A true story always resonates.

If you want to be who you want to be, you must first face your true self. Change does not happen overnight, but starts from bit by bit every day. I would like to urge myself to change with this article!

The harder you work, the luckier you are. If you are not the official second generation, rich second generation, or red second generation, then please remember:

Diligence is the only shortcut to change your destiny .

I believe what Jobs said:

Only those who are crazy enough to think they can change the world can truly change the world. In the face of pressure, I can use the lamp to fight night and sleep endlessly; in the face of difficulties, I am willing to face the difficulties and never back down.

To this end, I share an Android learning PDF+architecture video+source notes compiled by the big guys , advanced architecture technology advanced mind map, Android development interview topic materials, advanced advanced architecture materials

These are the fine materials that I will read again and again in my spare time. There are detailed explanations on the high-frequency knowledge points of interviews with major factories in recent years. I believe it can effectively help everyone master knowledge and understand principles.

Of course, you can also use it to check for omissions and improve your competitiveness.

I believe it will bring you a lot of gains. If you need it, you can click to get it !

If you like this article, you might as well give me a like, leave a message in the comment area, or forward and support it~

Guess you like

Origin blog.csdn.net/ajsliu1233/article/details/108602936