Current location - Loan Platform Complete Network - Big data management - What should be a better career plan for Android programmers?
What should be a better career plan for Android programmers?
Android programmer's career planning, how to say? A saying goes: if you knew it was so, why did you do it in the first place. Some destinies are within your control, others may require luck and opportunity.

One, the path can be reached

First of all, the path can be reached this word it? Some people will feel that his path can not see the future, some people can clearly see his direction. If you are now doing the work over the past two years will not grow and reach your goal. If the answer is no, then it means that the current job is no upward channel, you need to change. Of course it's another thing to rest on your laurels and not think ahead. Always reflect on the path you are taking, and then quickly adjust, may be a lot less detours, after all, time is not reversible.

Two, time planning

I sometimes wonder where I will be in five years? What to do? Most people are a little fuzzy about this. Because the time span is too large. Five years is equivalent to the entire life of the river is actually relatively short, but in the career planning is a very long section, especially the five years after graduation. From the time planning will certainly use the time cut. Macroscopic things are only effective when they are realized on one thing at a time, and only then can they be considered a complete plan. But then again, people have inertia, people have a natural sense of rejection for this kind of limited things, the implementation of a very painful, even if the beginning of the implementation of a very passionate, not more than a few months, all the plans have shrunk, which at the same time also leads to a lot of wasted time and do things blindly. So the timeliness of the program and the implementation is very important, and here will involve a word: "execution".

The lack of a plan also leads to learning to become an isolated point, there is no connectivity at all. Because you are thinking of learning what to learn, rather than planning to learn, there may be some accumulation after a period of time, but never deep enough. This can be a simple experiment, the things in their own brains to sort out, if the time takes a long time to show that the overall knowledge system has been a little chaotic, you can compare the operating system disk organization. If a person can manage time well, then it will become a bull. Good students are good at what they do, excluding the factor of IQ, is time management and good at thinking. I think my biggest problems are time management, self-discipline, and communication skills. These three pieces are what I feel I lack the most to a certain extent is fatal, and to a large extent will determine the height of my future development.

Three, project manager or architect

There has been a discussion among programmers about whether to be a project manager or an architect in the future. The focus of these two paths is not the same, so the accumulation of things may also be different. Project managers emphasize more on comprehensive ability, such as coordination ability, communication ability and a series of management ability. Architects may be more focused on the technology itself, the macro direction of the technology. There is an overlap between the two paths, but there is more of a difference. Some project managers may not be able to write code. But they can also lead a project, a team.

I used to ask myself which of these two paths I would take in the future, and I could actually try them both. For example, if you give me a project to take with me, whether I can take it well, in fact, need the opportunity, but also need to strive for such an opportunity. So my answer is that if you have the opportunity, you can try to walk both ways, that is, some of the capabilities of both directions can be accumulated. Many people think that project manager is a position, but I think it is dynamic, this project you do project manager, another project may be a development engineer. So it's not always a project manager, and it's not always a development engineer.

As far as programmers are concerned, there's nothing wrong with focusing on technology, first technology and then management. Management of this thing in general is a bit vague, each have their own set of theories, more difficult to assess. But technology is measurable, through a certain amount of effort technical level will have a certain leap. I remember that in "Shawshank Redemption", it is said that only two conditions are needed for the formation of geology: pressure and time. In fact, for learning technology is the same. As long as you are willing to learn, you will reach a certain level. To the bull level does require some enlightenment and talent.

Four, my choice

Why do I think I should take the road of the architect, which is the ultimate goal of my career is compatible. Let's start here with what architects do. An architect is responsible for the architecture of an entire project or even an entire system (this sentence is equivalent to nonsense). In general type of project, the design project may be done away with or even no need for architecture. But when the complexity of the system rises, it will involve the interaction between the systems, as well as the technical feasibility and the entire design of the program. This is when the architect comes in. Another job is to take on some of the work of training new people. So the architects need to have a better mouth, many people say that programmers will not speak, wrong, that is the low-end, to the high-end programmers are very good at eloquence, look at those programmers in the General Assembly of the eloquent architects, is not a kind of "high-end atmosphere on the grade" feeling. This later will find that there is a development direction is "trainer", you can also write books, in fact, these may be some "by-products". The technology to a certain realm a lot of things to the water to the drain.

Do architects write code? Of course they do. They certainly don't write simple code, what code do they usually write? Frameworks. Generally speaking, good frameworks are written by one person or very few people. For example, the core of Linux was written by one person. Good code is never piled up by people. You can't give 100 junior programmers a whole Struts. Here will be derived from another way, is the open source framework, a lot of cattlemen are open source community enthusiasts. All more or less involved in some open source projects. Even write some of their own things out of open source. Generally speaking can do this level that is quite impressive.

Fifth, the direction of the field

I remember that I was always asked what is your best field? This question asked me confused, because I never thought about this question. Maybe I haven't reached the level of the field, and I'm still in a kind of "primitive accumulation" stage. When technology has reached a certain stage, it is divided into domains. There is some crossover between fields.

The general direction I know is "high performance, big data, moving to the platform". These are the three directions I've divided Java into. In fact, the three directions I mentioned above are not necessarily the same dimension. But I think that writing Java if you do not dip into one of these three directions, there must be no future. High-performance and big data processing requires more technical reserves. Many people say that writing a Java is CRUD (strictly speaking, all operations on the computer itself are CRUD). However, in the case of high-performance issues involved in an exponential increase. A variety of "horizontal scaling", "servitization", "disaster recovery", "cache" and so on, a variety of bull's-eye vocabulary to come! You write a general CRUD at most know a SSH, this is not the same. For example, the processing of large amounts of data will know Hadoop, and then the cloud computing, cloud storage. Anyway, what bull what to come. Mobile platform and the above I said the dimension is not the same, because the mobile platform corresponding to the PC platform. But because the development of the mobile platform is very short. So can ride on this express train also have good development. If earlier years (before 2012) to enter the mobile platform development, now the same level of programmer wages must be higher. This is the dividend brought by the development of the platform. Although three years ago I foresee the mobile platform of the infinite, but at that time, like a person with nothing to lose, but also care about it what mobile platform or PC platform, can write code to do the project on the OK. so I learned a month of Android on the ceasefire.

Regardless of how the underlying technology is the same, so a solid foundation is necessary, which is why algorithms and data structures are timeless. Many people say that algorithms and data structures are useless that is a sign of ignorance. This ignorance is like discussing whether it is useful to go to college or not.

Sixth, summed up

Some of the things mentioned above may be relatively false, many people may understand the road, such as time management, which is estimated to be from the age of students in the talk. But the real implementation is still very different. So back to where? Back to the people themselves. Later, I figured out one thing, even if the reasoning is clear, without good implementation is still tantamount to empty talk. Here I recalled Liu Weipeng's "Dark Time". In it, it talks about time management in great detail. When I was in college, I also discussed this in a book called "What to Read in College". Of course, the two directions are different, one is the thinking of programmers, the other is the thinking of liberal arts students. But there is only one reason, what is the nature of time utilization.

The other is practice, intense practice. I remember reading "Human Weakness" in college was really mind-blowing, but I forgot what was in the book before too long. So without imprinting something from the book in your mind and transforming it into something of your own, it will always be just knowledge.