In the last month, I have been on a business trip in Huawei to follow up the project. My work has been 996 or 997, so I haven’t updated my article much in the last month. Spare some time during the weekend, and try to make up the articles I want to write as soon as possible.

I have been doing development for many years and I am a senior programmer. At the same time, I also came into contact with a lot of programmers, some excellent, some mediocre, after contact, I found that all excellent programmers have many excellent universal characteristics. So I wanted to write a series of articles about the path to programmer advancement.

This is the first article, this article mainly from the programmer’s mindset and mentality to describe the path of progress for junior programmers. If you want to be a good programmer, look at the things that are valuable to you. Why put thinking mode and mentality in the first article? Because I think thinking mode and mentality are the most important factors to determine a person’s growth.

A closed-loop thinking

Closed-loop thinking reflects a person’s sense of responsibility and professionalism. You’re given a task, not just to complete the code. It’s about pushing the mission to its final completion. For example, when you finish the task, you should transfer the test and leave the test plan to the tester. I met some programmers with decent development skills, but poor closed-loop thinking. A lot of times you just code and run away. Not accountable for basic results, or even basic self-testing or unit testing. When the leader gives you a task and you have completed it, or completed it in stages, you need to take the initiative to report to the leader, or write a progress report regularly, or submit your progress report in the management system, which is also a reflection of closed thinking. Is also a reliable performance. In practice, you may encounter more problems than you expected. You’ll meet lots of people, lots of companies, lots of projects. Among the problems encountered, Lin Lin. In many cases, the challenge may not be technical in nature, but involves different process coordination levels. Sometimes, in addition to finishing your own work, you also need to drive integration and docking with others. For example, some large projects involve multiple departments or even multiple companies’ R&D teams. At this time, various docking processes may not be so perfect and automated, so closed thinking becomes particularly important. For example, Department A (company) is responsible for the front-end part, while Department B (Company) is responsible for the back-end part. Front-end development is completed, we must take the initiative to drive the front-end and back-end integration and docking; And be proactive in driving subsequent testing. It is not the case that the development is completed and then the leader or customer comes to us for consultation, only to say innocently that the development is completed. In short, closed-loop thinking is about being responsible for the end result. It’s about doing your best to get the results your leaders and customers want.

Don’t run away from difficult points

Your attitude when encountering difficulties determines the height of your technical road. I met some people who were reasonably smart, and when I was developing, the technology was good, and the development efficiency and quality were ok. But when it comes to technical problems, they run away. It’s giving up the opportunity to improve yourself. When you encounter a problem, it means that you have started to deepen in a certain area, at this time if you stick to it, do not give up the difficult point, you will really deepen. As long as you insist, your thinking ability and a certain aspect of the professional will be greatly improved. When you go up one step, and look back at the problems you once found difficult, you will find that they have become easier. Fear is your general learning, are not in-depth. Run away from problems, and you’ll always be outside the threshold. Say a chicken soup words is: meet a pit to bypass, your life is all pit. Meet pit you go to fill pit, your life may be more and more smooth. Tell me about my experience. I usually have a problem and if I can’t solve it for the time being. I’ll add it to the TODO List, and I’ll add it to the ToThink List in my head. Whenever I have free time, I put in time to think. A lot of them. I think of them on the way to and from work. Big data rendering, 2.5D solutions, etc. (I may write a 2.5D birth record post later). Believe that most of the problems you encounter, as long as you have a passion for it, do not give up, keep thinking, believe that there will always be a solution. There is no star to be raised, no quick achievement.

There is one word mentioned above: “enthusiasm”. After so many years of research and development, I find that the height one can reach is not so much related to intelligence and talent as people think, but the decisive factor is the continuous enthusiasm, confidence and determination for one thing. This is something I would like to share with you.

Don’t complain

It is harmful to form the habit of complaining. Complain makes you weak. Complaining and emotions don’t solve anything, they only make you weaker. Complaining wastes your time, saps your energy, and prevents you from facing problems.

After all, many of us are normal people. Of course, you can challenge yourself to never complain, but it’s hard. I don’t want to offer chicken soup for never complaining. But if you complain too much, and fail to adjust your mindset so that it becomes habitual brain feedback, you will become a nuisance and certainly not a favorite of your boss. From my personal point of view, if an employee occasionally complains to me, I can accept and identify with some of the outpouring, understand some objective difficulties and unfairness, and try to eliminate these objective factors. But if an employee complains about something, or habitually complains about something, I definitely think it’s the employee’s fault.

Complaining is an emotion, and a harmful negative one at that. If you can’t manage your emotions, you can’t manage your work well. If you can’t manage your negative emotions well, you can’t manage your work well. It’s a sign of immaturity and will never be promoted. This is the consensus of many bosses. So if you want to build your image as a mature, stable and trustworthy person, start by avoiding emotional outpourings.

When you feel the urge to complain, calm down and ask yourself if complaining will ultimately solve the problem. If the answer is NO, stop complaining. Be positive about problems and unfairness. In fact, when you give up complaining and make a positive effort, you will find that your brain is happier, and when you are positive, you will definitely improve yourself.

Learn the correct way to say no

I’m not going to give you chicken soup of never say no. Because some things, under limited conditions, it is really impossible to achieve results. However, you should develop the correct “say no” posture. Let’s take a look at the wrong poses. Here are some common ones: “This solution is technically impossible.” Well, technically impossible. It’s definitely not going to be delivered at this point. “Well, it’s not going to be delivered, we all know that.” Sorry, your needs are out of order, don’t do it. If you’ve ever done a project, you’ll know that there’s no such thing as an overarching customer requirement, and all kinds of terms and conditions don’t work. The problem with all of the “say no” statements above is that there is no room for negotiation. This is bound to upset the product manager, or the leader, or the customer. What is the correct “say no” pose? Number one, this solution is technically impossible. Stop your habitual rejection. First think about it, is it really impossible to achieve. Maybe you can think of a good way to do it without having to think positively and say no. You don’t need to say no. Or didn’t think of the implementation method? Maybe it’s not impossible, it’s just that you don’t know how to do it, or rather, you don’t know how to do it yet. Your say no should be: “I don’t have a solution yet, and I need to go down and study it, so I’m not sure I can make it happen.” The key here is that you don’t make the other person feel much better by simply saying no (be it the product manager, leader, or customer). At the same time, you’re not rejecting your own growth path, because you really should be down there exploring it. In my opinion, many problems that cannot be realized can be solved most of the time. If it turns out to be impossible, but you’ve explored it before, you can see what the real reason is, what the real difficulty is. In the meantime, you can come up with a workaround for the best. Second, “Delivery is not possible at this time.” Indeed, the time is too tight to deliver. But the attitude was still too stiff. Your best bet is to list your workload and explain what you can deliver. I believe that most people will make compromises and concessions, and will not hold on to them. Number three, “Sorry, your needs are out of order, don’t do it.” Well, I understand you. As I said before, there is no superordinate requirement for customers (product managers). However, if you just say no, you will make the client look bad. As a result, it could cause problems for you in later deliveries. In fact, you should carefully understand and listen to the needs of customers, understand the real needs and pain points of customers. If there is a real pain point, and the workload is not too much, please help to change it. If the workload is too large, you can consider the company concerned departments to negotiate, paid to increase the demand. Please cherish the pain point of the customer, because this is your value opportunity.

There may be other cases, but in short, you should not be too rigid about saying no. In addition, do not say no directly. Do more research. In my opinion, habitual “say no” turns “say no” into an excuse for laziness or incompetence.

Technical confidence

I’ve been in development for more than 10 years, and during that time I’ve done a little bit. If these years of development work have brought me any changes, I think there is a very important point, is the technical confidence. What is technological confidence? It’s actually a word I coined myself. What does that mean? I believe technology can solve 99.9 of the needs, as long as you are willing to dig and study, that’s technological confidence. Not blindly confident, of course, but self-aware of the need to build a rocket. The problem is, a lot of times, there isn’t really a need. This is why you should never say no. Hopefully every programmer has that kind of technical confidence. I recently read psychologist Carol Dweck’s classic book “Lifelong Growth.” There are two modes of thinking, growth mode of thinking and fixed mode of thinking. In the fixed mindset, success comes from the results of things that prove one’s talents and abilities. In the growth mindset, success comes from doing your best, from learning and self-improvement. I suggest interested readers, can read this book, very inspiring. If you are a programmer with technical confidence, you have a growth mindset. This mindset will affect your growth throughout your life.

Seriously thinking about

Confucius all said, learning without thought is useless; thought without learning is perilous. A programmer who is not willing to think has no future. No matter how busy you are, you need time to think. Because thinking can let you in the complicated and trivial daily work, find their own growth ladder. There is a saying, do not use tactical efforts to cover up strategic laziness. Being lazy in thinking is strategic laziness, and being diligent in thinking is a kind of strategic effort. For programmers, there’s a lot to think about. For example, reviewing what we have already done, we can think about what we have done well, what we can improve and how we should improve. Tools, efficiency, code quality, and specifications. For what we haven’t done for a while, we constantly reflect on how we can do it. We do more projects, we write more code, we can consider induction, summary, extract valuable things. Package common functions into a tool library, tool functions. Then improve our work efficiency, is also a precipitation process. You take something like that, you abstract it away, and you make it more generic. In fact, many well-known open source libraries/frameworks are believed to have been developed through abstraction. Also, can think of some creative solutions to some problems. The process of thinking can improve our thinking ability, improve our cognition and ability. If you can’t think and do the same repetitive work mechanically every day, you can’t blame others for calling you a coder. What’s more, you don’t grow.

Be prepared for lifelong learning

If you want to be a good programmer, you must be prepared for lifelong learning. Because the world has more to learn for programmers than it can take a lifetime to learn. But I find that most programmers love to learn, so I’m not going to say much about that. But one thing I want to say is, please make sure you enjoy the learning process, not the painful learning, because it’s not a long way to go.

Accept the mundane

A lot of people are like that about a lot of things: they start with a lot of enthusiasm, a lot of enthusiasm, but as time goes on, that enthusiasm fades. We are no longer interested in what we seem to be skilled at. Technology is also like a siege, you always look at the other mountain higher, always hate the current situation, and yearn for the so-called high mountain, because it always makes you excited, but maybe only stay in the inner excitement. But even if you go to another mountain, it will eventually become the present you hate.

Many people are eager to learn new things, but they are blind to problems at work. In fact, you should realize that your value in the workplace is based on how many problems you can solve, not how many new skills you can learn. Of course, I am not asking you not to learn, but to learn new things on the basis of doing your own job well. If you ignore a lot of problems in your own job and take interest in learning new things, it is putting the cart before the horse.

Can stick to the ordinary people, to extraordinary. Because anything, all eventually become ordinary and trivial. No matter how much you like the goddess, will eventually look old. We always envy those great cattle, they have rich knowledge, have superb skills, have extraordinary charm. But you do not know, Daniel today, is countless silently pay nights, countless hours of typing the keyboard in the morning accumulative but come. They never give up any of the current problems, can always find new fun in the dull daily, can explore an extraordinary way out of the ordinary. The persistence of every line of code, the in-depth exploration of every problem, after all, you and I need to experience. Believe me, your rapid growth can come from mundane and trivial work, from your optimization of common code, persistent exploration of every problem in daily life, and hard thinking about the difficulties.

For, as retreat and webs, and many people chose to retreat and step back. I hope you can settle down and solve the current problem. All we have to do is keep going. As Paul Coelho’s book “Pilgrimage” says, the transcendent is on the ordinary road, I wish to share this with you.

Welcome to the public account “ITman Biao Shu”. Biao Shu, with more than 10 years of development experience, is now the company’s system architect, technical director, technical trainer, career planner. Familiar with Java and JavaScript. In-depth research in computer graphics, WebGL, front-end visualization. Strong interest in programmer thinking ability training and training, programmer career planning and programmer financial investment.


ITman biao Shu public account