There is a post on Stack Overflow titled What's your most controversial programming opinion? "What do you think is the most controversial programming point of view ?", However, among more than 400 primary replies and thousands of all replies, it seems that it is not very controversial, but quite a bit of a storm. The following lists some of them, hoping to help you.
1) The only "best practice" you shoshould be using all the time is "Use your brain ".
The only "best practice" does not use a variety of design methods, models, and frameworks summarized by our predecessors. The famous methods, models, and frameworks only mean that many people agree with them, it does not mean that they are suitable for you. You should use your brain more and think independently about the reasons for the appearance of methods, models, and frameworks and the ideas and thoughts behind them, that is "best practice ". In fact, the so-called "best practice" is only to limit the destructive power of bad programmers.
2) programmers who don't code in their spare time for fun will never become as good as those that do.
If you are not happy with programming and do not program in an entertaining way when you are idle, you are simply dealing with your work, even if you are a very intelligent and talented person, you will not become a good programmer, or you will only become a nerd in technology. Of course, this point of view is controversial, and there is a big gap between enthusiasm and ability. However, we can take a positive view from it.
3) Most comments in code are in fact a pernicious form of code duplication.
Comments should be comments on why, rather than how and what. For more information, see "ten things that annoy programmers". The Code tells you how, and the comments should tell you why. However, most programs do not know what a good comment is. The comments are actually duplicated with the code and meaningless.
4) XML is highly overrated
XML may be overestimated. XML is good for Web applications, but we use it in various places, as if there is no XML, we will not program it.
5) Not all programmers are created equal
These are the mistakes that junior managers love to make. They always think that when their title is the same, they think that their ability, speed, and solution to problems are the same, the skills are the same. What's more, in some cases, it is the worst programmer, and they will think it is ten times better than others.
6) "Googling it" is okay!
Google will only give you knowledge and will not teach you skills. There are only "fish", no "fish", and excessive use of Google will only make you unable to do without it, and you will not think, explore, or study on your own. If KFC fast food is junk food that is not good for our health, Google is also a fast food culture that is not good for our intellectual development.
7) If you only know one language, no matter how well you know it, you're not a great programmer.
If you only know one language and accurately say that, if you only know a class of languages, such as Java, C #, PHP, and Perl, then you will be limited, only when you understand various languages and different methods of different languages can you compare them. Only by comparing them can you understand the strengths and weaknesses of various languages, it will give you a more mature point of view. In addition, you may argue with other programs on the internet whether Windows is good, UNIX is good, C is good, or C ++ is good, you can do a lot of things with this effort. The world is wonderful because it is different. It is harmful to know only one side of things.
8) Your job is to put yourself out of work.
Your work should not be conservative. The idea of the church apprentice, the starving master, is not only very short, but also quite brainless. Because, in the computer world, the more old technologies you master, the less useless you are, because the technology is updated too quickly. The more conservative you are to work, the more you will be unable to leave this job. The less you will be unable to learn new things, the more out you will be. Remember: If you can't be replaced then you can't be promoted!
9) design patterns are hurting good design more than they're helping it.
Many programmers regard the design pattern as a god of God. They even forget what the demand is. As a result, the whole system design is messy by the design pattern, we call this programming "Design Pattern-driven programming". As the first point is said, if you don't know how to use your own brain to think about it, in this case, not only do you not benefit from it, but you are tired of it.
10) Unit Testing won't help you write good code
To be accurate, we can think of this as test-driven development. In fact, this development is to write unit test cases first. The main purpose of this development method is, to prevent you from introducing bugs due to a change, this does not allow you to write better code. This will only allow you to write code without errors. At the same time, this method only prevents bad programmers, rather than improving the quality of programmers or code. On the contrary, unit test becomes a pretext for programmers to justify their own code.