Ten tips for becoming a good programmer

http://begeek.cn/post/7506.html?_biz=MjM5OTA1MDUyMA==&mid=407358558&idx=2&sn=b21877f23bf4063fa311185009c1f0b7&scene=0#wechat_redirect1468809971406?ref=myread

Understanding Technical Debt

Technical debt, like a credit card, will have a high interest rate. The longer it takes, the more expensive it will be to repair it. Programmers should have a deep understanding of this. At the same time, the team should foster a culture of design quality, should encourage refactoring, and should also encourage other practices related to code quality, and should dedicate a portion of development time to solving technical debt. Without proper care, the code will become more and more complicated and difficult to understand, and eventually no one will want to touch it.

remain curious about principles

Not only know how to use it, but also know why. For example, if you are Android, you can know what its event distribution mechanism is like, how its Measure/Layout works, and have time to read its source code to see how its native controls are implemented. Learn iOS, understand its memory management, how autorelease works, how runtime works, and what is the principle of runloop. For server development, you can understand why Nginx performs well, how Redis works, and you can read its source code when you have time. For front-end, you can also read the source code of Angular or React.

focus

The productivity of programmers can vary widely, and one of the big differences is focus. Like thread switching, restoring context has a high cost. It is recommended to arrange your own time reasonably, try to leave a large amount of dedicated time in the morning/afternoon for design and programming, turn off IM/mail/WeChat, and arrange interviews/meetings outside the large time. Try the Pomodoro Technique.

empathy

Be empathetic when writing code, think about how another programmer with little or no context understands how he would read this code, so that he naturally knows how to write readable code, how to name it, Where to add a note. The person who considers maintaining the code in the future is yourself, so you will think twice when you are lazy and do some temporary workarounds. When delivering to testers, you should also have empathy, whether you have done basic quality assurance, and whether you have communicated with the test the possible impact of changes, so that testers can test more targeted.

plan and then act

Good programmers don't start writing code when they get the requirements, but think about it first. Whether the demand is reasonable, whether it can solve the user's problem, and whether there is ambiguity or incompleteness in the logic. Then consider the design issues, what is the flow chart, what is the class diagram, what is the interface, what is the impact on the architecture and modules, and then start writing code after thinking about it clearly.

Architectural Thinking/Global Thinking

Understand what the overall architecture looks like, the level of the modules you develop in the architecture, whether the new changes will pollute the architecture, whether the architecture needs to be adjusted, and whether the developed modules can be abstracted into general modules or can be reused modules, or refactoring existing modules to achieve reusability.

design language

Master a proper design language, such as Plantuml or Visio, or some design patterns, and know how to describe and communicate your design and architecture with other programmers in a simple and clear way. Only when everyone understands the same, can you collaborate more efficiently.

Pursuit of code quality

Code quality is the foundation of programmers, and at this point, there must be "ingenuity" for excellence. I see that many ordinary programmers have not improved their level significantly after they have done a lot of projects. Without it, they do not have the spirit of excellence in code quality. Code specification, robustness, readability, maintainability, no duplication of code, etc., must be improved.

code review

Code review is the most effective means to ensure the quality of code and engineering. Excellent companies (such as Facebook, Google) and excellent teams (such as us, welcome to pay attention to the team's public account mtydev) attach great importance to code review. If you still can't realize its importance, you can check it here.

automation

Good programmers should have automated thinking and tool thinking, and should know a scripting language and have their own tool library. We should improve our work efficiency through tools and automation, and avoid some human errors.

Guess you like

Origin http://10.200.1.11:23101/article/api/json?id=326919105&siteId=291194637