The mistakes are explained below.
1. Hands-on mode
A person who has never seen something starts coding without even planning the solution. Just turns on hands-on mode without analysis and detailed planning.
2. Lack of knowledge about the business
Without the knowledge about the business itself, just with a punctual requirement and a single vision about the functionality and with no idea about problems that could occur in the future.
3. Unknown infrastructure
Many developers don’t know or don’t care to know about the infrastructure. For example, how does Web host or the memory Recycle Bin work, among other subjects. If the developers knew the basics of an environment; the solutions and programming would be different.
4. Inability to speak user language
Most are extremely technical and are unable to relate to the user language. It means that they can understand programming and solving coding issues, but are unable to make an analysis on the user’s requirements.
5. Guilt free
He never takes the blame. The guilt is always on the person that didn’t allow him to test.
6. Estimates hours only for development.
The hours estimated are based on the amount of times a fly swings its wings divided by the turtle steps in a minute. Mostly the estimated time has no real basis in fact and they forget that they need hours for an analysis and test beyond the development hours.
7. Fear of changes
When a new technology comes out, it’s like Oh my god! It’s going to take a while to learn, it’s hard, I won’t be able to deliver.
8. Think that others are better than yourself
Developers are likely to think that other developers are better than he is. Nevertheless, he tends to forget that better is not always only about knowledge but the role package, commitment, responsibility, punctuality etc. Relax.
9. Wants to create for the web with desktop concepts
For example, the developer who thinks that only someone who knows how to program in C# and has worked with Windows Forms is going to be able to develop a Web Application in MVC. He or she starts programming using desktop concepts and gets side-tracked at the client/Server concept.
10. Code jealousy
“What a beautiful code! Wonderful! Can I see?" "Don’t touch this! Don’t change anything in that part…” When someone is going to change something in the code that someone else created it is always war and the manager must interfere.
11. Wants to create mobile with Web concepts.
Another interesting point is when a programmer starts to develop mobile apps with the looks or the concepts of the Web. It’s easy to realize that what has been done looks like a responsive Webpage.
12. Under-usage of design patterns.
Design patterns were created to be used. They were exhaustively tested before becoming a pattern. Thus, let's not reinvent the wheel. Use design patterns.
13. Doesn’t follow any software architecture
The developers are the architects of their own ego and ignore the basic principles of separating the responsibilities.
14. Viewstate is a madhouse
I have seen lots of developers use and abuse the famous Viewstate of the Webforms, filling it up with datasets and almost a full database.
15. Try and find out an error without reading the documentation
A person who has never seen a developer tries without even looking at the documentation.
16. Coding without the comments
/* NO COMMENTS */
17. Copying and pasting the code; unsure of what it does.
Many programmers say “Copy and paste that it should work!”
You must ask “What’s that for?”
Answer: “Don’t know, but it works!”
18. Doesn’t follow the best practices
“Is it working? Yes! Good enough.”
19. Doesn’t follow a pattern or logic
Do something here in one way and the same there in another completely different way.
20. Doesn’t know exception error meanings
Exceptions are hieroglyphs.
21. Doesn’t handle possible null reference exceptions.
“We have a winner!” The biggest cause of the errors and bugs in the software.