This article is simultaneously published on my wechat official account. You can follow it by scanning the QR code at the bottom of the article or searching Nanchen on wechat

primers

Recently, I have been thinking about how to realize self-growth as a software development engineer. Is there a shortcut? As a matter of fact, I have thought a lot intermittently, and communicated a lot with students of all ages. Based on my own experience, I have gained some insights and reflections. This article can be applied to other ends, but I’m an Android developer, so I’ll just say it from the point of view of an ordinary Android developer.

The whole article may read down will be more wordy and vernacular, but every true word, every word sincerely, welcome everyone to exchange. The whole article only represents personal views, students can express their own views.

Due to the feeling of text, so today to the first article is: engineers must go through the three stages.

The stages an engineer must go through

I think every software development engineer needs to go through three stages:

  • I don’t know what I don’t know
  • Know what you don’t know
  • I don’t know what I know

It looks tricky, but it’s true.

I don’t know what I don’t know

For most students who are new to Android development, software development is a vast ocean, a completely new field with its own ecosystem. So students coming into development have no idea what else they have to learn, so they often get into a very confusing phase, especially in school.

Oneself at the beginning is also like this, naive think computer major is the development of games, the computer major, so he became a member of the computer college. When I went to college, I found that I still had to learn a lot of math courses and language courses, but the language was no longer limited to English, but some C/C++, C#, Java and Python that I had never heard before.

When I was in school, I had no idea what I should learn. I could only study and practice lesson by lesson according to the teaching arrangement. The tasks assigned by the school teachers were as simple as ever. Efforts to get the feeling of results, so that some students are more and more tired of going to class, more and more tired of exams. Especially encountered programming operational subjects, it is a blank brain.

The common situation of college students is that they do not know what kind of talents the society needs and what kind of situation they need to be a qualified software development engineer, and they graduate in a muddled way.

Some of the students who studied hard at school and were more forward-looking seized the internship opportunity of the company in their graduating year, at which time they got in touch with the business project first. They may have learned Java and Python in school, but they have to assume the role of iOS developer in the company, so they started their second round of learning here.

Because there are a group of experienced mentors around me, learning at this time is much easier than in school, but I still don’t know what to learn most of the time. For myself, what should be learned now and what should be learned in the future.

If these students are lucky enough to meet an excellent mentor, it will be much easier. The mentor will teach you how to make your own career planning while arranging your work.

With a detailed learning plan, it will be much easier. With regular review and feedback from the mentor, I will grow up faster. That’s why I suggest that students at the beginning of their career should get into Dachang.

Big factories usually have enough perfect new growth mechanism, and the students around are self-driven and excellent, growing in such an environment, it is really like stepping on white clouds, soar to the sky.

In general, the first two years of your career will be a time when you don’t know exactly what you need to learn, and when you finish the development tasks assigned to you, you fall into a phase of doubt and don’t know how to improve your abilities.

At this time, most students will rely on stepping on pits to improve their own strength, stepping on a pit to remember once, some pit memory is not deep enough to step on three times, but these students will find that their career growth is very slow, if unfortunately, maybe 10 years of development experience, but one year of experience repeated for 10 years.

Learning to fill

Students at this stage may fall into a panic stage if they read a lot of we-media articles, because anxiety-creating articles are really too eye-catching, they are chicken soup for the soul, constantly gaining your resonance, thus consuming your confidence.

At this time, the higher requirements for their own students began to continue to learn, but there is no plan. They may choose to read a lot of blogs and collect a lot of tags for themselves. When they see excellent bloggers, they will pay attention to them quickly. They do not care about the quality of every blog article, and blindly believe in authority. So the wider the scope of the article, the easier it is to get recognition, and the GitHub Star is never stingy. I am such a blogger. I have gained millions of views and 12K Stars on GitHub in the past few years with the number of articles.

But most of the articles I wrote before, are no knowledge of self-restraint, so, I once broke more for a long time, although at the beginning I have every article is very serious to write.

In addition to blog learning, some students also choose some online teaching video websites, such as MOOC, netease Cloud Classroom, Tencent Classroom, Kouding Classroom and so on. There are usually complete language teaching packages on these websites. To be honest, the quality of some courses on these websites is indeed more comprehensive than that in schools, but the knowledge content is really too much, and it is not cost-effective to learn a meal without practice.

So some students put their hopes on books.

** Reading is a good habit and books are also a good thing. ** Many professional books are very well written and comprehensive. Because they are written descriptions, the time cost is lower than video learning. But the quality of the content of the books is also good and bad, apart from the recommendation of other students, it is difficult to really feel the content of the books for their own help. This is when you might want to read “How to Read a Book” to improve your reading efficiency. But found that reading is really difficult to adhere to.

Most people attributed the above way to the lack of learning atmosphere, unable to drive themselves to study seriously, plus there is no sound communication group, no one to solve their doubts, some books tend to explain basic knowledge, can not learn real practical technology.

Therefore, some students put their hopes on training institutions and some paid courses focusing on improving their ability.

Most of the pay-for-knowledge programs are pretty good, like The Throw Line HenCoder Plus by Zhu Kai, and the Android Developer Masters class on Geek Hour. Unfortunately, they are probably designed for most people, and the lack of personal customization may not be right for you right now.

Know what you don’t know

After three years on the job, most people get to the stage where they know what they don’t know and where they’re weak.

This time is actually very easy to handle, because I know where the problem is, of course, to the right remedy, just happened to me at this stage.

Whether it’s HenCoder Plus, a live-streaming, question-and-answer service, or paid-for geek time, it’s a good time.

But there are other ways. Students at this stage is the biggest problem, have enough time, most of the students at this stage may have been at home for the family pressure, the worries and stress in life are more up, work may have to give priority to, in addition to complete some crucial technical problems, may also need to guide the newcomer, so will appear extremely not enough use.

Lack of time is the hardest problem to solve, and probably the best problem to solve. Time is really like a sponge, squeeze is always some, even if sometimes we can not squeeze the situation, but that must be only a short-term situation.

Students at this stage need to study the most, because they usually have their own knowledge system and know where their weaknesses are. At this time, they need to do special improvement. The more they reach this stage, the more they will find the importance of basic knowledge. A lot of things really need to learn the essence, which is why most interviewers like to investigate basic questions, because the real foundation is the fundamental, and a student with excellent foundation will never be too bad.

I also fell in love with reading through the reading activities carried out by the department in the last six months. I read books hundreds of times, and its meaning is the truth. Many books require you to repeat them several times. Each reading is a cognitive improvement, and that cognitive improvement ultimately leads to your cash flow.

I hope I can produce more valuable articles at this stage. Before that, OF course, I also need to lay a solid foundation of knowledge, so I have a series of literacy.

Next, I will bring you the output of a series of articles, starting with design patterns, etc.

Yes, design patterns may not be useful or well understood most of the time due to the inherent strength of the kungfu cheats, but these moves will make your program beautiful and secure some of the time.

We don’t need to obsess over the use of every design pattern, we just need to keep in mind that design patterns come from life, and we don’t need to memorize every definition, just figure out what they mean.

I don’t know what I know

After a long career, many engineers fall into stage three: they don’t know what they know.

At this time, because most of the knowledge has become my own flesh and blood, many design concepts and architecture will make me take it for granted, but if I really take them seriously, I may not know exactly where they come from.

In many cases, these students will become more aware of their own shortcomings. Most of them have become the leader and soul of the team, and they begin to take charge of all matters of the team. They should not only pay attention to the technology itself, but also pay attention to many things outside the technology, such as product sense, project promotion ability and management ability. Most of the time, the Leader determines the ceiling of the team, and a good Leader can make the ceiling even higher.

But very embarrassed, this stage’s classmates have children of their own basic about.for need, need to deal with the world, it’s hard to do the technology of pure enough, even understand their own technology where the shortcoming, but it is difficult to take time out to deal with, because at that time, may be the quality of the soft ascension is the top priority.

conclusion

Generally speaking, an engineer will go through the above three stages, we can not reverse what, the only thing we can do is to advance each stage, so that we can let their energy to invest more in technology.

Do not finish the open source, write not finish hypocritical. Please scan the qr code below or search “Nanchen” on the official account to follow my wechat official account. At present, I mainly operate Android and try my best to improve for you. If you like, give me a “like” and share