Click on the top of the blue word code eggs
If you do not listen to the old monkey, you will suffer in front of you
Akiko: The programmer thing
Blog: http://www.jianshu.com/u/e03fc43b507b
Start small and expand
Whether it’s creating a new system or adding features to an existing one, I always start with a version so simple that it has almost no required features, and then work through the problem step by step until I’m satisfied. I never dreamed that I could reach the sky at once. Instead, I learn as I develop, and the new information can be used in the solution.
I love John Gall’s quote that “complex systems always evolve from simple systems.”
02
Change one thing at a time
When testing fails and features don’t work during development, it’s much easier to get to the bottom of a problem if you study it one at a time. In other words, use short iterations. Make sure this problem is solved before you move on to another one. This applies to downward submissions. If you need to refactor code before adding new features, submit the refactoring first and then add new features.
03
Add logging and error handling as early as possible
One of the first things I do when developing a new system is add logging and error handling, because both are very useful from the start. If the system isn’t working, then you need to know what’s going on in the program — that’s what logging is for. The same goes for error handling — the earlier errors and exceptions are handled, the better.
04
Each new line of code must be executed at least once
Before you can actually finish a feature, you have to test it. Otherwise, how do you know if it’s working the way you want it to? Often, but not always, the best way to do this is through automated testing. However, each new line of code must be executed at least once.
05
Test the modules before testing the whole
It saves time to test some modules first. Generally speaking, we also have problems integrating different modules, such as interface mismatch between modules. But tracking integration issues is much easier if we can trust the components.
06
You need a safe environment to study
A necessary part of learning is making mistakes. In the Dreyfus model, this means that, especially at the advanced primary stage, people need to learn by making mistakes. However, when people feel that making a mistake will negatively affect their work, lose the respect of their colleagues or hurt others in the process, then they will not take the risk of making a mistake.
Because I’m passionate about teaching and learning, I’ve managed to create a safe space for failure, where failure can be learned by making basic mistakes.
07
Everyone can be a leader
I’ve written about this topic before because it’s a very important observation. A common mind-set trap I see is that people feel that in order to be like a leader, you need to be in a leadership position. But people can demonstrate leadership regardless of their title, and they can do so in many different ways, simply by acting on things that are not explicitly expected or required.
08
Architects often make the best decisions when they write code
At the Tech Lead Courses I run, I encourage technology leaders to spend at least 30% of their time writing code. Spending time coding helps build trust, respect, and understanding of the current system. When making architectural decisions, not considering the constraints of the current system often leads to wrong decisions.
09
It takes courage to change
I remember someone talking about XP values, and one of them was courage. Courage is necessary in leadership because of the risk of failure and the risk/reward of trying something new. Without risk, there is often no great reward.
10
His registered permanent residence file, endowment insurance, medical treatment insurance, housing accumulation fund must keep well.
Since the programmer industry changes jobs every year, I’m not going to lie to you that I’ve moved at least five jobs, hopping around, even three cities in between. Fortunately, the registered permanent residence did not lose, other are already disorderly, several cities, have made three gold, even a program in the 2 districts have, those things, 10 years later, will become very important. If you buy a house to have accumulation fund, can take out, loan interest rate also can compare a little lower, had a child, still need to go to school, fell ill still need medical treatment insurance.
11
Don’t change your laptop easily, don’t follow trends, don’t buy too many electronic products, and don’t change your cell phone too often.
I’ve learned this the hard way. I bought before and after about 5-6 laptops, are more than 10000 yuan a, is a recently bought more than 10000 to his girlfriend, his bought a 7500 yuan left, right, mobile phone probably changed near 10, add up the money is enough to more than 100000, you may accidentally bought these electronic products, but in the long run, Your time too much to think about it, why do you earn a lot of, but why is still so poor, because you spent too much money to buy these electronic products, laptop at ordinary times what valuables to protect good, I lost a colleague accidentally 2 laptop, after the loss of nearly 20000, you 20000 net, is not so easy, This hole is not a joke, I have also been stolen a brand new notebook, lost about 15000, worse is the latest code lost and stolen.
12
Nowadays foreign language, academic background, professional title and driving license are very important.
Want to find a high salary, foreign capital enterprise is the right choice, in the same work, the foreign capital enterprise income is generally high, I don’t understand, how could our ability to make money than the somebody else, however, the social development, have gone to foreign, like a string in the future, also perhaps, foreign language good employment opportunities in the future will be more and more widely.
13
Be able to write beautiful code
An architect is not someone who talks the talk and doesn’t do anything about the code. An architect is first and foremost a good programmer, able to write core features in a project or product, ready to roll up his sleeves and solve problems in the project.
How can you write code that isn’t beautiful? How can you convince people?
Beautiful code is not only clear, easy to understand, elegant, but also functional, bug-free or minimally buggy.
In fact, if the code is simple and elegant, there is usually no problem.
Writing beautiful code is not easy. It requires clear thinking, good programming fundamentals, good abstraction, and a good command of a language.
14
The ability to abstract
The ability to think abstractly cannot be overemphasized.
Real requirements are complex and complex, and systems cannot be designed at all if the architect is not able to abstract these chaotic requirements into “concepts” and think at the conceptual level.
But it’s not enough to abstract the concept, but to see if the concept is orthogonal, can it change independently, and if not, consider a new concept abstraction.
Orthogonal means linearly independent, very important, just like a point (x,y), a change in the x axis doesn’t affect y, a change in the y axis doesn’t affect x, that’s orthogonal.
“Orthogonal” is powerful. (x,y) can express all points in a two-dimensional plane. If a Z-axis is added, not only can all points in a three-dimensional space be expressed, but each axis can change independently.
If you can do orthogonal design, the development and maintenance of the system will be very comfortable, you can feel safe to boldly modify one aspect of the system without affecting the others.
This is what design patterns have always said about “finding change and encapsulating change.”
There is no shortcut to abstract ability training, is the accumulation of experience, diligent thinking and learning. For example: learning Android programmers can think about how Android abstracts unknown, complex applications. Why are there four components: Activity, Service, BroadcastReceiver, and ContentProvider?
15
Technical leadership
The big lesson I learned at IBM was to lead with the influence of technology, not authoritarianism and position.
In other words, you need to be able to convince the technicians. With technical influence, your voice on the team will be heard and respected.
But impact is not built quickly, it’s a long process: you solve a technical problem, you come up with a solution that works… .
Little by little, these things build up your image in the eyes of others, build your personal brand, and eventually people will label you as a big bull.
16
Keep an eye on and understand development tools
Now many large enterprises are constantly launching a variety of development tools, cloud computing and cloud platform development with each passing day, such as Huawei Software Development cloud, Ali Cloud, Tencent cloud and so on. Don’t resist innovation from the bottom of your heart. It’s easy to say you’re never too old to learn. Companies and leaders will be impressed if you use tools to shorten the lead time and deliver projects faster.