10 things that are never taught to programmers in universities.
1. We are wrong
Programmers often have a big ego. Therefore, it is often difficult to realize that we are wrong in something. I have seen a lot of controversy regarding the architecture of projects, where developers extol their ideas. But suppose we are all wrong. And we differ only in the degree of our delusions.
It is very important to realize and accept this fact only once and we will be open to listen to others and use our ideas to create a better solution.
2. Anything that can break, breaks
If you are not sure about something, if you say the word "must", then you have problems. There is only one solution - to do something to make sure that it does not break. This may be a test, debugging or finding out the exact requirements.
')
3. All code is crap
After 10 years of complaints about the shitty code that surrounds me, I came to a wonderful conclusion - all the code (including mine) is shit. Of course, there are many degrees of shitty code, but the best code I saw was quite difficult to read.
This does not mean that efforts to make the code better are in vain. On the contrary, there is a big difference between the best type of code and the worst.
4. There is always a bug in the program.
IS ALWAYS! The only question is how long does it take to find a bug.
5. The most important thing is the customer.
In addition to many other things, the client doesn’t care: the technologies that you use in the project, how many more necessary actions need to be done to make the application appropriate ... or, to summarize, if you use the right approach.
And I can imagine how many angry comments I will receive if I leave only one higher paragraph. Let me explain what I want to say. We must never forget the vision of the client. Sometimes developers use technology or impose other engineering delights just for the sake of the right approach. But remember, if this does not add value to the client, throw them away.
6. The program outlined on paper does not work.
I believed that if I put all my program on paper and then transferred it to a computer, it would not work.
The software development process is complicated and it is impossible to take into account all the dependencies and branches, until you “get your hands dirty”. Design and planning really helps, but don't do it very carefully. And do not take the chart for the contract.
7. Less is Better
Or you can say differently - the best is the enemy of the good. Throw away what is not needed. For all that can break - breaks.
8. Coding takes 20% of the time.
Be prepared to spend 80% on thinking, debugging, testing, meeting, talking ... Other activities are important and you should not only learn technical skills to become a good developer.
9. The customer NEVER knows what he wants
Customers have a need, an idea, but they do not know the details. Software development is all about defining the details and eliminating uncertainties, and at the end of the day from transforming ideas into code.
10. Someone has already done this.
Do not reinvent the wheel, use Google or better yet - ask colleagues. Surely they have done similar or similar things.
Bonus item!
Hey! But our work is cool!
A source