1

Preface

I recently read a book and haven’t finished it yet, but some things in the book resonate with me, so I also want to write it out so that everyone can feel it. I have been working for 7 years and I have encountered various things in my work. All kinds of people and things, but in general, those who mix well are as written in the book. Programmers are indeed a special profession, but no matter what, what a good professionalism brings is Good development prospects. Let me take a look at the professional qualities that can save you a detour and leave more confidence.

Professionalism

What will happen to you if you accidentally let go of a bug, causing the company to lose money?

  • A: People are not gods, so will there be problems inevitably? Can't blame me for this.
  • B: I am willing to pay for the company's loss. (You are saying this, but the company will also decide according to the actual situation.)

Are you A or B at work? I believe that many people will be in the state of A, and I have encountered many such people around me, trying to find reasons for the mistakes I made, but in fact this situation seems reasonable, and the lack of it in the boss’s heart makes you not worth training. The bane of good professionalism will make you choose B and be brave to take responsibility. I believe that most companies will not disgust you or even expel you because of your fault and performance, unless you are deliberately wrong or caused Great loss. But you will definitely lose confidence in you because you shirk, don't admit, and don't return inward.

Take responsibility

Treating the interests of the company as personal interests is the essence of taking responsibility. We in China like to say that there is a grasshopper on a rope (a community of interests). You will find a characteristic of work. There is a line between employees and employees, and a line between leaders and the company. Therefore, a company has two grasshoppers. Haha, right, of course, a good leader can build a bridge between these two lines, making employees and the company appear to be a line, but only when employees are actively connected can they become a real line.
Some people may think that personal interests are more important and feel that it is impossible to treat the interests of the company as personal interests. But in fact, this sentence only shows one thing, that is, the interests of the company can be regarded as their own. If the company does not treat you as What happened, then this condition is actually not true, I think, we still have to achieve each other, this is the right responsibility.

Reduce mistakes

The courage to take on mistakes is definitely a good quality, but repeated mistakes, no matter how good the quality, will make the leader lose confidence in you. What we have to do is not only dare to be responsible, but to reduce mistakes, and even gradually close to zero. Of course, mistakes cannot be equal to zero, but you can make it infinitely close to zero.

Let QA not find the problem

I believe you have met such a person. After ta development is completed, you are lazy and do not self-test, but leave the bug to QA, wait for them to raise the bug, and then fix it. You must think this is a wrong approach like me, but How many people can really do the self-test? It must be a minority. If QA is also lazy, let the user find the problem, and wait for the customer service to feedback the problem before raising the bug. Wouldn't it cause unpredictable losses to the company? If you are willing to treat the company's interests as your own, please start now and let QA not find any problems as your professional quality. Come on.

Software structure

Why talk about software structure? In fact, you will encounter a variety of needs in your work, and you will also encounter a variety of problems in the coding process. A good software structure will help you not have to go to war and destroy the software when facing new needs. Structure, the fundamental guiding principle of all software projects is easy to modify, so how can I make it easy to modify? In fact, it’s not difficult. Learn the principles of software design, learn design patterns, and use them more in development, as well as the experience of learning older generations. For example, in Java, we take object-oriented as the core, but experience tells us that interface-oriented programming is only Easier to modify, composition is greater than inheritance and so on.

Career Development

Every programmer has to go through, elementary-intermediate-advanced or even higher levels. But you have to understand that career development is your own business. The company is not obligated to ensure that you continue to develop in the workplace, nor is it obligated to train you. If you trust your career development to the company, I don't think it is reliable. If you have met such a company, congratulations. So there is a question, how can we improve ourselves? The author gave an example:
You work 60 hours a week, the first 40 hours are given to your employer, and the next 20 hours are given to yourself. During these 20 hours, you should read books, practice and do things to improve your vocational skills. Some people will refute how this is possible. I can't finish the work in the company, and I can't finish the classes, so I don't have time to study. I'm tired from work all day, so I can't learn. What I just want to tell you is that if you continue to stay in a company like this, that’s your own reason. I have never opposed working overtime or hard work, but if the company arranges for you, it’s super The kind of load just uses you as a tool. Do you think you need to stay? This is no longer a matter of treating the company's interests as personal interests, but the company has completely turned your interests into the company's interests. Respect is always mutual, and we must dare to say "no" (saying "no" is also a quality required in professional accomplishment). The "no" expressed here is not a blind rejection, but one's own judgment, such as reasonable prediction. When estimating working hours, say "no" to unreasonable working hours arrangements)

Field essential

As a programmer, of course you have to be good or even proficient in the field of programmers. What are the skills that every programmer must have? See below

  • Design Patterns
  • Design principles (SOLID principles, component design principles, etc.)
  • method. Understand Scrum agile development, Kanban, waterfall, structured analysis, structured design, etc.
  • practice. Test-driven development, object-oriented design, structured programming, continuous integration, pair programming, etc.
  • Artifact. How to use UML diagrams, structure diagrams, flowcharts, sequence diagrams, etc.

When books are used, they hate less, and programmers do too. They need soft skills to assist themselves, not just coding. When you write a PPT to give back your work, are you going to post 10,000 lines of code? Haha definitely not. This is their role, how to show your software structure with a simple diagram so that people who do not understand technology can understand it.

Keep learning

The sustainable development of programmers is continuous learning. The software industry is developing rapidly. There will be 5G in the future, and more smart terminals will appear. It is not limited to the current mobile phones. You can call or even play games on the refrigerator, washing machine, or even razor. These technologies are all It's something that you can only keep learning. Read books, read articles, write blogs. If you are a Java developer, I suggest you learn Ruby. This is what the author said. I have time to practice and learn Ruby. See if it can help me.

Continuous practice

Believe that learning is just a process, and your goal is practice. Only by constant practice and trial and error can you master the career of programmers more proficiently.

Cooperation

16 words:
Code together, practice together, design together, plan together.
Don't be long-winded, everyone understands.

Understand the business area

This is something I didn’t expect. I actually knew the importance of business to a programmer in my work, but it didn’t take it as a requirement for myself, but after reading the author’s explanation, I also realized that a good professional quality is In addition to your technical ability, to understand the business, to understand the domain knowledge. For example, if you write a financial system, if you do not understand the financial field, it will be difficult to make perfect software. I also suggest that no matter which field you are in for development, buy two books about the field, study and study will not let you be a domain expert, but at least you have an understanding of the process and the details of the business pain points.

At last

I will use the language in the book to make a summary to end this sharing:
Programming is a creative activity, and writing code is a creative process out of nothing. We boldly create order from chaos. We confidently issue accurate instructions. With a slight error, the behavior of the machine may cause immeasurable losses. Therefore, programming is an extremely conceited behavior. Professionals know that they are arrogant and will not pretend to be humble. They are familiar with their work and are proud of it. They are confident in their abilities and therefore have the courage to take responsibility. Then, they also know that they will stumble, when their risk assessment is wrong, and when they are unable to do what they want. At this time, when they look in the mirror, they will see the arrogant fool smiling at themselves. Therefore, when they find that they have become a laughingstock, they will accept others' ridicule on their own terms. On the contrary, he will not be affected by the mistakes made by others. Laugh at others because he knows that he might be the next person to make a mistake.
Don't envy anyone, don't laugh at anyone.


i校长
68 声望297 粉丝

抽象化是一种非常的不同于模糊化的东西,抽象的目的并不是为了模糊,而是为了创造出一种能让我们做到百分百精确的新语义。