This article is the experience of a friend of mine, and I would like to share it with those who are striving for a better future. No matter what small company you are in now, don’t be discouraged, there are opportunities, as long as you dare to work hard, I believe you can succeed.

First of all, I would like to introduce a friend of mine: my friend Xiao Wang, who has been able to bear hardships since childhood. He is an unknown junior college graduates, education is not very high, learn the computer major. From the educational background, he has no advantage, not 985, not 211, not undergraduate. He doesn’t have any of the antecedents. So how did it get into Ali? Please see below for detailed description:

Here I have summarized some successful secrets for reference only:

1. Win every battle

Technology is similar to war, you are always ready to develop, in order to go online. The first step is to have a clear understanding of what skills you know and what you don’t understand. It is suggested to look at the interview questions and interview requirements of large companies, see what aspects their main technical direction has, and then serve as a reference to consolidate learning.

Technical assessment this is recommended once a month. This can be done either by yourself or within the group. If your company has specific KPIs, you can use the results as an aid to the KPIs.

Generally speaking, there is a very detailed evaluation form, which mainly includes the technical classification, each technical summary, the score, and then the future development direction, etc. Through this table, you will list all the skills you have learned in that month and the skills you have used, and then make a detailed evaluation according to the mastery level. Then, you will need to work on the direction of the next step and the application of technology in the project. Although small companies do not have the ability to do technical assessment for you, you may also be independent development, there is no group assessment, it is recommended to do a personal assessment, to have a better understanding of your own technology, convenient for the next stage of technology improvement and expansion.

Study and repeat, review the old and know the new

Technology changes so fast that you learn it one day, don’t use it for a while, and forget it the next. So I suggest not only to study, more important is to review more, you have learned things to consolidate review.

(1) Note-taking tool selection:

In order to review better in the future, you should develop a good habit of taking notes. If you do not have a paper diary, you can use memory tools such as Youdao Cloud Notes or Evernote to help you take notes.

(2) About mind mapping:

After taking notes, we should make a mind map to catalogue the notes, through which we can see the structure of the whole notes at a glance and clearly see the key points that you need to review. Recommended mind mapping tools: XMind, ProcessOn online, etc.

(3) About the way of taking notes:

About taking notes don’t just copy source code, don’t just copy someone else’s blog, be sure to grasp the main points to take notes. For example, if you are looking for a bangs screen adaptation, you copy the full text of other people’s blogs and save them to read later. This way of taking notes is not advisable. You just need to grasp the core points, such as what adaptation it uses, based on what adaptation, what the core code is and so on. Then, I will do a comprehensive analysis of my previous collection of similar blogs, which is not only taking notes, but also a summary and reflection.

Know not to ask, do not be on your high horse

Skill is important, but attitude is more important. Correct your attitude and you may not be far behind.

This is an attitude, is a difficult spirit. See a netizen’s interview experience mentioned: some big factory out of the people always talk about what I am big factory out of how, often show off, appear to be very 6. In fact, if you ask him a question, he still looks patronizing and indifferent. In fact, you can see that although these people are in big factories, their attitude is not very friendly. All men are created equal; no one is superior or inferior. One day you’re happy in dachang, the next you’re out of office. Getting carried away will do you no good and gain you a bad reputation. You may not be able to do it, you may not be able to do it but they may be able to do it, and you’ll find that by asking questions, you can actually learn more.

In addition to asking questions, there is also a very good quality, that is: modest. People who respect others and ask questions are basically modest. My friend Xiao Wang is very easy-going and modest. He has no AIRS. He wears glasses and looks like a scholar, but in fact he is a technology mogul.

All things in advance, unanticipated waste

What is said here is that everything should have a good plan, whether it is the arrangement of work tasks, learning arrangements, or the future future planning, need to have a plan first. As the old saying goes, “all things are done beforehand, and unanticipated waste”, which is not unreasonable. It doesn’t matter if you are in a small company now. Don’t be discouraged, don’t sigh, and don’t complain about being busy and tired.

The first thing you need to be clear about is what is your goal?

If it is dawdling, then you basically do not have what good development, programmers eat youth meal everyone understands, is a good time to learn you do not work hard, you have no plan for the future, then you even if you leave that company or no good development (except entrepreneurship or mining at home).

I’m sure we all don’t want to fool around, we all want to have a better development. So you need to start planning when you come in. How do you move towards your goals right now? What is missing from your future? What requirements do you need to follow up in the future? Then you have to make a short term plan, what breakthroughs you want to achieve in the short term, what technical solutions you want to break, what results you have, and how you want to apply them to the project. Make a schedule, schedule it, and set aside an hour or two each day to study according to the schedule.

Some people will ask: “I am a small company, I do feature time so busy? How do you have time to arrange this and that?” This is actually a mistake. Time is squeezed out, we can take one or two hours to study every day, reading official accounts on the way to work, reading and studying on the way off work, which are examples of making full use of time. If you look at some successful executives, they have a plan. They don’t do things without a plan. In fact, you can find wang Jianlin’s work and rest time on the Internet, when to get up, when to read, when to have a meeting have a clear arrangement. Although we are ordinary people, we can also make some small goals for ourselves, starting from one small goal to learn. Wang jianlin said: “give yourself a goal, earn him 100 million try.” Of course we can’t do that, we can do something like this: “Try writing 100W lines of code first.”

Let’s say you’re going to learn about custom controls. Within a short period of a month you can set a goal to explore all the API uses of custom Views. If you haven’t finished your study, keep scheduling your study. Later, once you’re comfortable with it, you can schedule a month or two or more to look at the source code in the View, such as the drawing process, rendering mechanism, event distribution mechanism, etc., and see how it progresses. And then how to flexibly apply to the project.

Short step, no thousands of miles

The technology is moving so fast, the requirements are so diverse, and how can you quickly apply the technology you have learned to develop a requirement is a big challenge. Sometimes you see a need, but you can’t do it with your current ability, but as you keep learning and accumulating, you can do it with ease when you meet the same need in the future. It’s a matter of skill accumulation.

In addition, the accumulation of skills is also very important for the improvement of the ability to solve problems. When you have a certain accumulation of technology, when you see a bug, you will automatically Debug a big breakpoint, check the Debug log, read the following information, see each parameter assignment information, see whether the code has low-level errors and so on. Such as memory leak problem again, when you use a tool to detect memory leaks, you normal is not easy to find, but when you study at ordinary times the memory leak detection methods and screening program, you will be in accordance with some solutions to solve the memory leak, possible solutions are not unique, but step by step, will always find the root cause of the problem. This requires constant accumulation and practice of technology to achieve. Like small companies write business code every day, as long as the online promotion can, generally will not pay attention to the quality of App. But as apes, a program for your strict requirements, the quality of the App as well as far as possible to the point, even if the company didn’t request, you also want to try to do it, because it is very important for a large application, so you can start from small application to begin to exercise your technology accumulation. Maybe one day when your user growth to millions or even tens of millions of time, you have the accumulation of the front, and then to do, there will be some experience to follow.

For example, the big factory’s App basically uses the plug-in technology. So I suggest you first use the popular plug-in framework, take it and then encapsulate it into your project. Then I went deep into the source code of the framework, combined with the blogs of some big names and related books, tried to analyze the source code, made a summary of my own, studied the implementation principle, studied the connection between the plug-in framework and Java virtual machine, AMS, PMS, Binder mechanism how to use these, hook is how to do. This is a long process, looking at the Android Framework source code is painful, and requires a long-term goal to do it.

A sparrow knows the ambition of a swan

Don’t lose heart in a small company. Believe you can do it. Don’t stop chasing footsteps because of other people’s ridicule, others into the big factory is just one step faster than you, what to worry about? You have to have a strong inner support so that you can resist external doubts. There is a saying that a sparrow cannot understand the ambition of a swan. As long as you establish confidence, firm to do, even if the project is small, as long as you can reflect a certain level, that is also very desirable. After all, the first step of the interview is basically to take the skills to speak, whether it is basic, or the bottom, do not be afraid, as long as you master enough, and have actual combat experience, the next step is easy to do.

7. Swim with the wind

The development of technology is so fast that it is a difficult question whether we should choose technology according to the development of The Times or use the old scheme step by step. This problem should be viewed dialectically.

First of all, we should practice the basic skills solid, first from the depth of learning, as mentioned before to make plans, to accumulate in technology. Then we need to expand horizontally in breadth, constantly extending the stack of other language technologies, such as groovy scripting language, Python; Such as JS, React, vue and other front-end technologies.

Android development isn’t as easy as it used to be. There’s less native development, more hybrid development, and more cross-platform frameworks and tools. But no matter what the changes are, we must first understand how to use them, then we must understand the core mechanics, and whether to use them or not needs to be decided based on the actual situation of the project. For example, rn was very popular for the first two years. It was all about react syntax, and the core of it was JS bridging. Cordova, for example, is developed using JS. So we properly master some front-end language is also good, such as JS, HTML5 these suggestions to learn, even if not very proficient, can write it. React and Vue frameworks are recommended. In the past two years, small programs have also become popular. I am familiar with the front-end technology stack, and I can quickly get started with the development of small programs. Especially, the use of front-end frameworks like React and Vue can help better develop small programs with high quality and easy maintenance, which is also worth recommending.

Since Google introduced Flutter at Google I/O in 2017, many Android developers have expressed interest in Flutter, saying that Flutter is easy to learn, cheap to learn, and has good performance. In fact, Flutter is a good cross-platform technology to try out. At present, the official version has not come out, and it is impossible to know what unexpected pit it will have in the project. However, you can write some small projects to play and experience the convenience and experience brought by this technology.

Thought is far, can go far

There are two main ideas: technology and management.

(1) In terms of technology, if you want to deeply cultivate technology, you must have enough recognition of technology, whether it is depth or breadth, you must have a certain level. Specific technical requirements can refer to the large factory interview requirements to improve their own. It is recommended to look at programming with an architectural mind.

1. Don't be lazy when writing code. You must standardize it, strictly follow the Java code specification. 2. Always have a document, whether it's an interface document, a project document, or a requirements document for the project itself. Small companies may be relatively simple, a lot of them are oral, turn around and change. It is suggested that there must be a written document to record, the benefits of doing so: first, in order to record demand changes, documented; Second, in order to standardize the process, reduce unnecessary communication, blame and conflict. 3. Focus on code quality, scalability and stability. Because the development of an APP will continue to iterate, it is very normal to make modifications, so when writing code, reserve as many interfaces and open codes as possible, so as to facilitate future expansion. It is necessary to master the commonly used framework MVP, while MVC and MVVM(Google's) are generally not recommended. The three-layer structure code of MVP is flexibly encapsulated in the project. If you are developing independently, you need to determine from the beginning how the project will be structured, how it will be layered, and what technologies will be used? What open source libraries can I implement myself? What needs to be modified for project use? If it is to take over the old project, first also want to be familiar with the business logic, and then modify to make the code more rigorous, logical clearer, more hierarchical, more scalable. 4. The above is also about too much learning, learning the source code of open source libraries, learning the source code of the framework layer, learning the JVM. Being familiar with the underlying layers and source code is one of the necessary skills to do architecture, and once you master it, you will have more solutions.Copy the code

(2) In terms of management, if you are interested in becoming a team leader and managing people in the development team, you must read more management books. Professional theories are necessary, such as how to arrange tasks reasonably and ensure that they are completed on time, how to improve the efficiency of team development and how to lead the team to improve its technology. How to bring more benefits to the team (such as project bonus, etc.), how to shoulder the responsibilities and safeguard the interests of the team, how to stabilize the emotions of development team members, how to deal with emergencies, how to deal with the relationship between superiors and subordinates, etc. These aspects need to be understood and familiar with, when you really do management, you will find that the way is actually very complicated.

Fish by water and grass, birds choose good wood and habitat

Always learn from people who are better than you. If you surround yourself with good people, no matter where you’re from, you won’t be too bad. As the old saying goes, “Fish live by water and grass, and birds live by trees.” If you want to challenge yourself in Dachang, you must constantly communicate with people in dachang, even interns. Learn more about how they develop, how they manage their teams, what technologies they need to use, etc.

Go out and walk more, attend more forums and technical activities, get to know more people, drink more peer communication, broaden your horizon. As your circle grows larger, you’ll find it easy to extrapolate. If you have friends who often write blogs, open source projects or open public accounts, then even better, you can learn from them. These things can not only exercise your style of writing, as well as your personal strength a display platform, can also get some reward, actually also is right choice, when you really participate in some meaningful valuable open source project, but the gold content is relatively higher than you write code, so cherish, premise is you have enough accumulation and technology output, Your open source stuff can bring real, practical help.


Technology is not the only moneymaking tool. Development is the food of youth. When you get older, almost all of you will switch to management or start your own business. In addition to technical skills, you can also pay attention to management. If one day you enter a big factory and there happens to be a vacancy for a group leader, don’t you have the opportunity to have a try?

In addition, there are many factors that determine the interview. Your technique, speech, expression, clothing, and how you come across can all affect the outcome. Now that you decide to go to the interview, you should make full preparation, the technical points to remember must be well mastered, natural play is good, big factory is not so terrible, believe in yourself, you can get the offer of big factory.


The link to this essay contest is juejin.cn/post/684490…