Controversial programming opinions – part 1
If you only know one language, you will never be a great programmer.
Once you’re very good at C# or Java or other language you started with, then that’s all you’ll ever need. Every language you learn teaches something new about programming and anyone who restrict himself to one language will never be as good as he could be.
Programmers who code in their spare time are better than those who don’t.
Not even the smartest and talented people won’t become very good programmers if they don’t treat programming as more than a job. Everybody should do a side project or try different languages in their spare time.
Not all programmers are equal and never will be.
Although people tend to think that programmers A and B are equal because they have the same level of expertise or the same number of years in programming, the performance of one developer can vary compared to that of another.
Unit testing won’t help a programmer write good code.
Unit tests are used to make sure that a working code won’t break. Writing tests first or writing code to the tests is useless. If you write to the tests before the code, you could have code that passes the tests but fails in unforeseen circumstances.
“Use Your Brain”” is the only “best practice” you should be using.
Way to many programmers are trying to force methods, patterns, frameworks, etc. onto things that don’t warrant them. Just because someone with experience has an opinion, it doesn’t mean it will fit all.
Most comments in code are a ruinous form of code duplication.
Most of the time is spent maintaining already written code (by ourselves or others) and outdated, incorrect and misleading comments are one of the most disturbing elements in code. Better concentrate on making the code readable and minimize idioms. But many courses teach people that comments are very nearly more important than the code itself.
“Google it!” It’s fine.
Years of reading and memorizing stacks of programming books are nothing compared to the resources that everyone can access within seconds. Googling for answers to problems should not be subject to criticism. Everybody needs some reference, so does it matter where you get the information? Is looking up in a book in any way better then searching online? It is important that you understand the answer and apply it properly.
Java is not the best first programming language taught in universities.
A first programming language should highlight the need to know control flow and variables instead of objects and syntax. People who have not had experience in debugging memory leaks in C / C++ will not fully appreciate what Java offers. Progression should be from “how can I do this” towards “how can I find the library which does that” not the other way round.
Garbage code is acceptable once in a while.
For particular tasks, a quick piece of garbage code the fastest way to finish the requirement.