Programming is relatively a highly professional technical work , There are also a lot of programmers around the world , Every day people talk about what programming languages are best , Standards for good programmers, etc . Let's take a look at some of the most controversial programming ideas .
1. Programmers who don't program for fun in their spare time , Never compare with those who enjoy programming .
I think even the smartest 、 The most talented people , If it's just programming as a job , And never a really good programmer . People who enjoy programming do small projects in their spare time , Or play with different programming languages and programming ideas .
2. Unit testing doesn't help you write good code .
The only reason to write unit tests is to make sure that the code that already works doesn't go wrong . It's ridiculous to write tests first or code by tests . If you write a test before the code , You don't know what the boundary is . Although it can make the code pass the test , But there are problems when things are not foreseen . and , Good developers try to reduce cohesion , It's impossible to add new code to make an existing one go wrong .
3. The only universal best practice , yes " Think in your head ".
Too many people like to pursue so many fashionable technologies , Try every means to 、 Pattern 、 Frames are used where they don't fit . New technology and celebrity big bull's point of view do not apply to the actual situation .
4. Most of the comments in code are actually a vicious manifestation of code duplication .
It is necessary to annotate the code , But not every item should be annotated . too bad 、 error 、 Outdated and misleading comments can also lead to worse results . Many people think that we should focus on improving the readability of the code . Many textbooks still preach that annotations are even more important than code , The result is a lot of nonsense commentary . In fact, there is a special meaning in the code , Or relatively complex , It needs to be annotated , Simple code , It's easy to understand at a glance , There's no need to annotate it .
5. rely on Google What's wrong? .
This kind of talk will certainly annoy those who are well-educated . But everybody needs to check the information. It's not ？ The right answer is the right answer , It doesn't matter which secret script or private secretary it comes from , still Google What comes out? ？ It's important to really understand , And give a successful programming solution , Make the customer and the boss satisfied .
6. Programmers are not created equal .
Managers tend to think that programmers A== The programmer B, Because they are about the same age . actually , One developer can be ten or even a hundred times more efficient than another .
7. I really can't understand why C Language is the first language most suitable for university teaching , It's obviously out of date .
There was a question on a website before , And because the way of questioning is suspected of provoking war , It is known that the administrator re edited and released .
University education , In especial 985、211 This is one of the top universities in China , General education should not be emphasized , We should pay more attention to the foundation in the major 、 Bottom 、 The principle of bias . Only when you have mastered the core things , It's easy to learn those skills .
Time can prove everything ,C Language has a history of more than 40 years , But today , Still occupy all the year round TIOBE Top three programming languages , Even at the top of the list , This is enough to show that it is an enduring language .
8. If you only know one language , No matter how proficient , Still not a good programmer .
Some people think that , As long as you are proficient in C#、Java Or whatever the first language you learned , That's enough .
Anyone is limited to one language , They can't give full play to their potential . And a lack of curiosity and desire to explore , It doesn't fit the characteristics of a good programmer .
Now there are a lot of people who are developing into full stack engineers , A lot of people don't understand , In fact, the real meaning of the whole stack is not to learn a few more techniques , It's about saying , You have the ability to completely transform an idea into a product . This ability allows you to move from a screw that cannot be detached from the production line 、 Employees who can't survive without the company , It becomes a job for you , To your own life , A person who has the right to choose his own career .
9. It doesn't hurt to write junk code occasionally .
I've also shared how to keep your code clean , Today I'll tell you how to write junk code . But sometimes there are specific tasks , Fast and dirty code can handle it . Who doesn't want to be lazy , Pattern 、ORM、SRP（ Principle of single responsibility ） Forget it .
10. print Statement is an effective debugging method .
I think it uses System.out.println Such output statements debugging code is very good . This is often faster than formal debugging , And you can compare the output of different runs . But be sure to delete these statements before putting them into production , Or put them in a log statement .
11. Your job is to pick yourself up .
As mentioned above, we write notes for the convenience of others and Fang Bo Ni himself , The software you write should make it easy for any other developer to understand and take over . Software should be elegant in design , The code is clear and consistent , The format is clean , The documentation is appropriate , Daily construction , There is proper version management . The more you do this , The more valuable you are to the company . Don't be afraid to be replaced , If you teach someone to take your place , There's no place for you in the current position , You can only get promoted ~
12. getter and setter It's been overused .
Thousands of people say that public fields are evil , It should be private , Provide getter and setter. I don't think it's different , Unless the program is multithreaded , Or access methods have business or presentation logic （ That's weird enough ）. I'm not in favor of public fields , It's just against using access methods or property packages , It's called encapsulation 、 Hidden information .
13. SQL Code, too , Please wait and see .
SQL and C#, Java Or something else 、 Process languages are no different , Notice the format of the code 、 Readability and maintainability .
14. UML The graph is overrated .
Some of the graphs are of course useful , such as Composite The class diagram of the pattern . But many UML The pictures are worthless .
15. Readability is the most important aspect of code .
More important than correctness . Readable code is also easy to fix , Easy to optimize 、 modify 、 understand . And other developers can benefit from it .
16. XML Be greatly overestimated .
A lot of people go with the flow XML The people in this black boat have no brains .XML be used for Web Good application , Because that's what it's all about . In addition, the problem definition 、 Design ideas should try not to XML.
17. Software development is just a job .
Work is not all , Why is there “ Workers ” Appearance of words , It's because the meaning of the word is in line with the psychology of the public . But a lot of people forget , We don't work for work , Work is a good service for life . Many developers also forget that writing programs is not the ultimate goal , It just provides us with conditions , To happily do the most important things in life .
18. Developers should be able to write code .
Has this become a controversial point of view ……
19. Design patterns do more harm than good .
software design , Especially good software design is ever-changing , There's no way to summarize in a meaningful way , Especially those patterns that you remember , And these patterns are too abstract , In fact, few people really remember too much . So design patterns don't really work . On the other hand , There are too many people obsessed with the concept of design patterns , Try to use it everywhere —— The result code is often in addition to meaningless singletons and abstract factories , There's hardly any design .
20. Less code is better .
There's no need for lengthy code , Less and better is the purpose .
There are other different views ：
21. Performance is really important .
22. Enterprise applications are funny . need n Years of experience is bullshit . Computer science degree course is pure fraud .
23. Unit testing doesn't help you write good code , Most of the so-called best practices in software engineering are designed to prevent bad programmers from doing too much damage .
24. Every programmer should be familiar with the architecture of modern computers .
25. Write a little method .
26. PHP It's rotten ！
27. C++ It's one of the worst languages ever .
28. Most professional programmers are bad .
29. To be a programmer , You have to learn to type first .
30. The more rules there are outside of programming , The worse the quality of the code .
31. Computer science should only be a minor degree .
32. New programmers haven't figured out how to break down problems and turn solutions into code , It's a big mistake to introduce object orientation to them .
33. Complex compiler optimizations have little value , Even if you get faster code . They can greatly reduce compilation speed and are likely to produce intractable bug, Make it more difficult to deal with performance problems .
34. You can't allow someone without ten years of programming experience to write libraries for others . Ignore this , Regret for life .
35. It doesn't matter whether the code is ugly or not . There is no format and whether the code works 、 It doesn't matter to be reliable , You can let automation tools organize the format .
36. Pure functional programming doesn't work . It works well in a bunch of commands .
37. The fixed thinking of software engineering can hinder you from making great works .
What's your opinion ？ Come to the comments section and tell me about it ~
C Language is the first language that every partner who wants to learn programming should learn ~ If you want to be a programmer too , Want to master programming quickly , Here is a learning base for you ！
There are senior professional software development engineers , Answer all your doubts online ~ C Introduction to language “so easy” The information contains ： Introduction to programming 、 Game programming 、 curriculum design 、 Hackers, etc . Click to enter the learning base